> For the complete documentation index, see [llms.txt](https://documentation.immuta.com/saas/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.immuta.com/saas/developer-guides/api-intro/marketplace-api/data-product.md).

# Data Product

APIs for managing data products

## Search data products across the marketplace

> Search data products in the marketplace using the provided filters

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PaginatedDataProduct":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true},"domains":{"minItems":1,"type":"array","items":{"type":"string"}},"suspended":{"description":"Whether access to the data product's data sources is suspended","type":"boolean"},"createdBy":{"description":"Immuta global user ID of the user who created the data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedBy":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","description":"Immuta global user ID of the user who last updated the data product","nullable":true},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"expiration":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"stats":{"$ref":"#/components/schemas/DataProductStats"},"requestId":{"description":"If requested, the ID of the access request for the data product","type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"sourceTypes":{"description":"The types of data sources contained in the data product.","type":"array","items":{"type":"string"}},"metadata":{"type":"object","properties":{"subjectMatterExpert":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert for this data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"required":["subjectMatterExpert"],"nullable":true},"dataAccessPolicy":{"$ref":"#/components/schemas/DataProductDataAccessPolicy"},"maskingExceptionPolicy":{"$ref":"#/components/schemas/DataProductMaskingExceptionPolicy"}},"required":["id","name","domains","suspended","createdBy","createdAt","updatedAt","metadata"]}},"meta":{"type":"object","properties":{"nextToken":{"type":"string","format":"base64","contentEncoding":"base64","pattern":"^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$","description":"Pagination token to fetch the next page of results, or null if there are no more pages.","nullable":true},"limit":{"description":"The number of items to return per page","default":10,"type":"number","minimum":1,"maximum":100}},"required":["nextToken"]}},"required":["data","meta"]},"DataProductStats":{"description":"Data product statistics","title":"Data Product Stats","type":"object","properties":{"dataSourceCount":{"description":"Count of data sources in a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pendingRequestCount":{"description":"Count of pending requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"approvedRequestCount":{"description":"Count of approved requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"revokedRequestCount":{"description":"Count of revoked requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"canceledRequestCount":{"description":"Count of canceled requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deniedRequestCount":{"description":"Count of denied requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalRequestCount":{"description":"Count of total requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["dataSourceCount","pendingRequestCount","approvedRequestCount","revokedRequestCount","canceledRequestCount","deniedRequestCount","totalRequestCount"]},"DataProductDataAccessPolicy":{"title":"Data Product Data Access Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"RuleProperties":{"type":"object","properties":{"conditions":{"oneOf":[{"$ref":"#/components/schemas/AllConditions"},{"$ref":"#/components/schemas/AnyConditions"},{"$ref":"#/components/schemas/NotConditions"}]},"event":{"$ref":"#/components/schemas/ReviewPolicyEvent"}},"required":["conditions","event"]},"AllConditions":{"type":"object","properties":{"all":{"type":"array","items":{}}},"required":["all"],"additionalProperties":false},"AnyConditions":{"type":"object","properties":{"any":{"type":"array","items":{}}},"required":["any"],"additionalProperties":false},"NotConditions":{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},"ReviewPolicyEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/DenyEvent"},{"$ref":"#/components/schemas/ReviewEvent"},{"$ref":"#/components/schemas/DataProductPolicyEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","deny":"#/components/schemas/DenyEvent","review":"#/components/schemas/ReviewEvent","dataProductPolicy":"#/components/schemas/DataProductPolicyEvent"}}},"ApproveEvent":{"type":"object","properties":{"type":{"type":"string","enum":["approve"]},"params":{"type":"object","properties":{"comment":{"type":"string"},"duration":{"type":"number","minimum":1},"durationUnit":{"type":"string","enum":["HOURS","DAYS","WEEKS","MONTHS","YEARS"]}}}},"required":["type","params"]},"DenyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["deny"]},"params":{"type":"object","properties":{"comment":{"type":"string"}}}},"required":["type","params"]},"ReviewEvent":{"type":"object","properties":{"type":{"type":"string","enum":["review"]},"params":{"type":"object","properties":{"stages":{"description":"Array of stages for manual review","type":"array","items":{"oneOf":[{"type":"object","properties":{"all":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["all"]},{"type":"object","properties":{"any":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["any"]}]}}},"required":["stages"]}},"required":["type","params"]},"DataProductPolicyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["dataProductPolicy"]}},"required":["type"]},"DataProductMaskingExceptionPolicy":{"title":"Data Product Masking Exception Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product":{"get":{"description":"Search data products in the marketplace using the provided filters","operationId":"searchDataProducts","parameters":[{"name":"nextToken","required":false,"in":"query","description":"Pagination token to fetch the next page of results","contentEncoding":"base64","schema":{"format":"base64","pattern":"^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$","type":"string"}},{"name":"limit","required":false,"in":"query","description":"The number of items to return per page","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"name":"sortOrder","required":false,"in":"query","schema":{"default":"asc","type":"string","enum":["asc","desc"]}},{"name":"sortBy","required":false,"in":"query","schema":{"type":"string","enum":["name"]}},{"name":"nameFilter","required":false,"in":"query","schema":{"type":"string"}},{"name":"statusFilter","required":false,"in":"query","schema":{"type":"array","items":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]}}},{"name":"roleFilter","required":false,"in":"query","schema":{"type":"array","items":{"type":"string","enum":["manager","member","noRole","steward"]}}},{"name":"expiration","required":false,"in":"query","description":"Filter data products by whether data access has an expiration.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedDataProduct"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Search data products across the marketplace","tags":["Data Product"]}}}}
```

## Add new data products to the marketplace

> Add one or more data products to the marketplace

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"CreateDataProduct":{"type":"object","properties":{"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true},"metadata":{"type":"object","properties":{"subjectMatterExpert":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert for this data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"required":["subjectMatterExpert"],"nullable":true},"domains":{"minItems":1,"type":"array","items":{"type":"string"}},"id":{"description":"Data product ID","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"dataSources":{"type":"array","items":{"type":"object","properties":{"sourceId":{"type":"string"}},"required":["sourceId"]}},"dataAccessPolicy":{"deprecated":true,"type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"maskingExceptionPolicy":{"deprecated":true,"type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"requestFormId":{"deprecated":true,"description":"Deprecated. Use dataAccessRequestFormId and maskingExceptionRequestFormId together, or keep using this field to set both to the same form.","oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"dataAccessRequestFormId":{"description":"The request form ID for the data access review flow.","oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"maskingExceptionRequestFormId":{"description":"The request form ID for the masking exception review flow.","oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]}},"required":["name","metadata","domains","dataSources"]},"RuleProperties":{"type":"object","properties":{"conditions":{"oneOf":[{"$ref":"#/components/schemas/AllConditions"},{"$ref":"#/components/schemas/AnyConditions"},{"$ref":"#/components/schemas/NotConditions"}]},"event":{"$ref":"#/components/schemas/ReviewPolicyEvent"}},"required":["conditions","event"]},"AllConditions":{"type":"object","properties":{"all":{"type":"array","items":{}}},"required":["all"],"additionalProperties":false},"AnyConditions":{"type":"object","properties":{"any":{"type":"array","items":{}}},"required":["any"],"additionalProperties":false},"NotConditions":{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},"ReviewPolicyEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/DenyEvent"},{"$ref":"#/components/schemas/ReviewEvent"},{"$ref":"#/components/schemas/DataProductPolicyEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","deny":"#/components/schemas/DenyEvent","review":"#/components/schemas/ReviewEvent","dataProductPolicy":"#/components/schemas/DataProductPolicyEvent"}}},"ApproveEvent":{"type":"object","properties":{"type":{"type":"string","enum":["approve"]},"params":{"type":"object","properties":{"comment":{"type":"string"},"duration":{"type":"number","minimum":1},"durationUnit":{"type":"string","enum":["HOURS","DAYS","WEEKS","MONTHS","YEARS"]}}}},"required":["type","params"]},"DenyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["deny"]},"params":{"type":"object","properties":{"comment":{"type":"string"}}}},"required":["type","params"]},"ReviewEvent":{"type":"object","properties":{"type":{"type":"string","enum":["review"]},"params":{"type":"object","properties":{"stages":{"description":"Array of stages for manual review","type":"array","items":{"oneOf":[{"type":"object","properties":{"all":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["all"]},{"type":"object","properties":{"any":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["any"]}]}}},"required":["stages"]}},"required":["type","params"]},"DataProductPolicyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["dataProductPolicy"]}},"required":["type"]},"DataProduct":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true},"domains":{"minItems":1,"type":"array","items":{"type":"string"}},"suspended":{"description":"Whether access to the data product's data sources is suspended","type":"boolean"},"createdBy":{"description":"Immuta global user ID of the user who created the data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedBy":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","description":"Immuta global user ID of the user who last updated the data product","nullable":true},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"expiration":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"stats":{"$ref":"#/components/schemas/DataProductStats"},"requestId":{"description":"If requested, the ID of the access request for the data product","type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"sourceTypes":{"description":"The types of data sources contained in the data product.","type":"array","items":{"type":"string"}},"metadata":{"type":"object","properties":{"subjectMatterExpert":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert for this data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"required":["subjectMatterExpert"],"nullable":true},"dataAccessPolicy":{"$ref":"#/components/schemas/DataProductDataAccessPolicy"},"maskingExceptionPolicy":{"$ref":"#/components/schemas/DataProductMaskingExceptionPolicy"}},"required":["id","name","domains","suspended","createdBy","createdAt","updatedAt","metadata"]},"DataProductStats":{"description":"Data product statistics","title":"Data Product Stats","type":"object","properties":{"dataSourceCount":{"description":"Count of data sources in a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pendingRequestCount":{"description":"Count of pending requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"approvedRequestCount":{"description":"Count of approved requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"revokedRequestCount":{"description":"Count of revoked requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"canceledRequestCount":{"description":"Count of canceled requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deniedRequestCount":{"description":"Count of denied requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalRequestCount":{"description":"Count of total requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["dataSourceCount","pendingRequestCount","approvedRequestCount","revokedRequestCount","canceledRequestCount","deniedRequestCount","totalRequestCount"]},"DataProductDataAccessPolicy":{"title":"Data Product Data Access Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"DataProductMaskingExceptionPolicy":{"title":"Data Product Masking Exception Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product":{"post":{"description":"Add one or more data products to the marketplace","operationId":"createDataProduct","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDataProduct"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataProduct"}}}},"409":{"description":"Data Product name in use."},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Add new data products to the marketplace","tags":["Data Product"]}}}}
```

## Get data product by ID

> Get data product metadata for the specified data product ID

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"DataProduct":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true},"domains":{"minItems":1,"type":"array","items":{"type":"string"}},"suspended":{"description":"Whether access to the data product's data sources is suspended","type":"boolean"},"createdBy":{"description":"Immuta global user ID of the user who created the data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedBy":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","description":"Immuta global user ID of the user who last updated the data product","nullable":true},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"expiration":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"stats":{"$ref":"#/components/schemas/DataProductStats"},"requestId":{"description":"If requested, the ID of the access request for the data product","type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"sourceTypes":{"description":"The types of data sources contained in the data product.","type":"array","items":{"type":"string"}},"metadata":{"type":"object","properties":{"subjectMatterExpert":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert for this data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"required":["subjectMatterExpert"],"nullable":true},"dataAccessPolicy":{"$ref":"#/components/schemas/DataProductDataAccessPolicy"},"maskingExceptionPolicy":{"$ref":"#/components/schemas/DataProductMaskingExceptionPolicy"}},"required":["id","name","domains","suspended","createdBy","createdAt","updatedAt","metadata"]},"DataProductStats":{"description":"Data product statistics","title":"Data Product Stats","type":"object","properties":{"dataSourceCount":{"description":"Count of data sources in a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pendingRequestCount":{"description":"Count of pending requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"approvedRequestCount":{"description":"Count of approved requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"revokedRequestCount":{"description":"Count of revoked requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"canceledRequestCount":{"description":"Count of canceled requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deniedRequestCount":{"description":"Count of denied requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalRequestCount":{"description":"Count of total requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["dataSourceCount","pendingRequestCount","approvedRequestCount","revokedRequestCount","canceledRequestCount","deniedRequestCount","totalRequestCount"]},"DataProductDataAccessPolicy":{"title":"Data Product Data Access Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"RuleProperties":{"type":"object","properties":{"conditions":{"oneOf":[{"$ref":"#/components/schemas/AllConditions"},{"$ref":"#/components/schemas/AnyConditions"},{"$ref":"#/components/schemas/NotConditions"}]},"event":{"$ref":"#/components/schemas/ReviewPolicyEvent"}},"required":["conditions","event"]},"AllConditions":{"type":"object","properties":{"all":{"type":"array","items":{}}},"required":["all"],"additionalProperties":false},"AnyConditions":{"type":"object","properties":{"any":{"type":"array","items":{}}},"required":["any"],"additionalProperties":false},"NotConditions":{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},"ReviewPolicyEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/DenyEvent"},{"$ref":"#/components/schemas/ReviewEvent"},{"$ref":"#/components/schemas/DataProductPolicyEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","deny":"#/components/schemas/DenyEvent","review":"#/components/schemas/ReviewEvent","dataProductPolicy":"#/components/schemas/DataProductPolicyEvent"}}},"ApproveEvent":{"type":"object","properties":{"type":{"type":"string","enum":["approve"]},"params":{"type":"object","properties":{"comment":{"type":"string"},"duration":{"type":"number","minimum":1},"durationUnit":{"type":"string","enum":["HOURS","DAYS","WEEKS","MONTHS","YEARS"]}}}},"required":["type","params"]},"DenyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["deny"]},"params":{"type":"object","properties":{"comment":{"type":"string"}}}},"required":["type","params"]},"ReviewEvent":{"type":"object","properties":{"type":{"type":"string","enum":["review"]},"params":{"type":"object","properties":{"stages":{"description":"Array of stages for manual review","type":"array","items":{"oneOf":[{"type":"object","properties":{"all":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["all"]},{"type":"object","properties":{"any":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["any"]}]}}},"required":["stages"]}},"required":["type","params"]},"DataProductPolicyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["dataProductPolicy"]}},"required":["type"]},"DataProductMaskingExceptionPolicy":{"title":"Data Product Masking Exception Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}":{"get":{"description":"Get data product metadata for the specified data product ID","operationId":"getDataProductById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataProduct"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Get data product by ID","tags":["Data Product"]}}}}
```

## Update an existing data product

> Update an existing data product by ID

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"UpdateDataProduct":{"type":"object","properties":{"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true},"metadata":{"type":"object","properties":{"subjectMatterExpert":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert for this data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"required":["subjectMatterExpert"],"nullable":true},"domains":{"minItems":1,"type":"array","items":{"type":"string"}},"id":{"description":"Data product ID","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"dataAccessPolicy":{"deprecated":true,"type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"maskingExceptionPolicy":{"deprecated":true,"type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"requestFormId":{"deprecated":true,"description":"Deprecated. Use dataAccessRequestFormId and maskingExceptionRequestFormId together, or keep using this field to set both to the same form.","oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"dataAccessRequestFormId":{"description":"The request form ID for the data access review flow.","oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"maskingExceptionRequestFormId":{"description":"The request form ID for the masking exception review flow.","oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"suspended":{"description":"Whether access to the data product's data sources is suspended","type":"boolean"}}},"RuleProperties":{"type":"object","properties":{"conditions":{"oneOf":[{"$ref":"#/components/schemas/AllConditions"},{"$ref":"#/components/schemas/AnyConditions"},{"$ref":"#/components/schemas/NotConditions"}]},"event":{"$ref":"#/components/schemas/ReviewPolicyEvent"}},"required":["conditions","event"]},"AllConditions":{"type":"object","properties":{"all":{"type":"array","items":{}}},"required":["all"],"additionalProperties":false},"AnyConditions":{"type":"object","properties":{"any":{"type":"array","items":{}}},"required":["any"],"additionalProperties":false},"NotConditions":{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},"ReviewPolicyEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/DenyEvent"},{"$ref":"#/components/schemas/ReviewEvent"},{"$ref":"#/components/schemas/DataProductPolicyEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","deny":"#/components/schemas/DenyEvent","review":"#/components/schemas/ReviewEvent","dataProductPolicy":"#/components/schemas/DataProductPolicyEvent"}}},"ApproveEvent":{"type":"object","properties":{"type":{"type":"string","enum":["approve"]},"params":{"type":"object","properties":{"comment":{"type":"string"},"duration":{"type":"number","minimum":1},"durationUnit":{"type":"string","enum":["HOURS","DAYS","WEEKS","MONTHS","YEARS"]}}}},"required":["type","params"]},"DenyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["deny"]},"params":{"type":"object","properties":{"comment":{"type":"string"}}}},"required":["type","params"]},"ReviewEvent":{"type":"object","properties":{"type":{"type":"string","enum":["review"]},"params":{"type":"object","properties":{"stages":{"description":"Array of stages for manual review","type":"array","items":{"oneOf":[{"type":"object","properties":{"all":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["all"]},{"type":"object","properties":{"any":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["any"]}]}}},"required":["stages"]}},"required":["type","params"]},"DataProductPolicyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["dataProductPolicy"]}},"required":["type"]},"DataProduct":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true},"domains":{"minItems":1,"type":"array","items":{"type":"string"}},"suspended":{"description":"Whether access to the data product's data sources is suspended","type":"boolean"},"createdBy":{"description":"Immuta global user ID of the user who created the data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedBy":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","description":"Immuta global user ID of the user who last updated the data product","nullable":true},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"expiration":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"stats":{"$ref":"#/components/schemas/DataProductStats"},"requestId":{"description":"If requested, the ID of the access request for the data product","type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"sourceTypes":{"description":"The types of data sources contained in the data product.","type":"array","items":{"type":"string"}},"metadata":{"type":"object","properties":{"subjectMatterExpert":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert for this data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"required":["subjectMatterExpert"],"nullable":true},"dataAccessPolicy":{"$ref":"#/components/schemas/DataProductDataAccessPolicy"},"maskingExceptionPolicy":{"$ref":"#/components/schemas/DataProductMaskingExceptionPolicy"}},"required":["id","name","domains","suspended","createdBy","createdAt","updatedAt","metadata"]},"DataProductStats":{"description":"Data product statistics","title":"Data Product Stats","type":"object","properties":{"dataSourceCount":{"description":"Count of data sources in a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pendingRequestCount":{"description":"Count of pending requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"approvedRequestCount":{"description":"Count of approved requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"revokedRequestCount":{"description":"Count of revoked requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"canceledRequestCount":{"description":"Count of canceled requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deniedRequestCount":{"description":"Count of denied requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalRequestCount":{"description":"Count of total requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["dataSourceCount","pendingRequestCount","approvedRequestCount","revokedRequestCount","canceledRequestCount","deniedRequestCount","totalRequestCount"]},"DataProductDataAccessPolicy":{"title":"Data Product Data Access Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"DataProductMaskingExceptionPolicy":{"title":"Data Product Masking Exception Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}":{"put":{"description":"Update an existing data product by ID","operationId":"updateDataProduct","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDataProduct"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataProduct"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Update an existing data product","tags":["Data Product"]}}}}
```

## Delete data product by ID

> Delete the specified data product from the system

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}":{"delete":{"description":"Delete the specified data product from the system","operationId":"deleteDataProduct","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Delete data product by ID","tags":["Data Product"]}}}}
```

## Get data product by name

> Get data product metadata for the specified data product name

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"DataProduct":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true},"domains":{"minItems":1,"type":"array","items":{"type":"string"}},"suspended":{"description":"Whether access to the data product's data sources is suspended","type":"boolean"},"createdBy":{"description":"Immuta global user ID of the user who created the data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedBy":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","description":"Immuta global user ID of the user who last updated the data product","nullable":true},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"expiration":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"stats":{"$ref":"#/components/schemas/DataProductStats"},"requestId":{"description":"If requested, the ID of the access request for the data product","type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"sourceTypes":{"description":"The types of data sources contained in the data product.","type":"array","items":{"type":"string"}},"metadata":{"type":"object","properties":{"subjectMatterExpert":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert for this data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"required":["subjectMatterExpert"],"nullable":true},"dataAccessPolicy":{"$ref":"#/components/schemas/DataProductDataAccessPolicy"},"maskingExceptionPolicy":{"$ref":"#/components/schemas/DataProductMaskingExceptionPolicy"}},"required":["id","name","domains","suspended","createdBy","createdAt","updatedAt","metadata"]},"DataProductStats":{"description":"Data product statistics","title":"Data Product Stats","type":"object","properties":{"dataSourceCount":{"description":"Count of data sources in a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pendingRequestCount":{"description":"Count of pending requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"approvedRequestCount":{"description":"Count of approved requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"revokedRequestCount":{"description":"Count of revoked requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"canceledRequestCount":{"description":"Count of canceled requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deniedRequestCount":{"description":"Count of denied requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalRequestCount":{"description":"Count of total requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["dataSourceCount","pendingRequestCount","approvedRequestCount","revokedRequestCount","canceledRequestCount","deniedRequestCount","totalRequestCount"]},"DataProductDataAccessPolicy":{"title":"Data Product Data Access Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"RuleProperties":{"type":"object","properties":{"conditions":{"oneOf":[{"$ref":"#/components/schemas/AllConditions"},{"$ref":"#/components/schemas/AnyConditions"},{"$ref":"#/components/schemas/NotConditions"}]},"event":{"$ref":"#/components/schemas/ReviewPolicyEvent"}},"required":["conditions","event"]},"AllConditions":{"type":"object","properties":{"all":{"type":"array","items":{}}},"required":["all"],"additionalProperties":false},"AnyConditions":{"type":"object","properties":{"any":{"type":"array","items":{}}},"required":["any"],"additionalProperties":false},"NotConditions":{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},"ReviewPolicyEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/DenyEvent"},{"$ref":"#/components/schemas/ReviewEvent"},{"$ref":"#/components/schemas/DataProductPolicyEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","deny":"#/components/schemas/DenyEvent","review":"#/components/schemas/ReviewEvent","dataProductPolicy":"#/components/schemas/DataProductPolicyEvent"}}},"ApproveEvent":{"type":"object","properties":{"type":{"type":"string","enum":["approve"]},"params":{"type":"object","properties":{"comment":{"type":"string"},"duration":{"type":"number","minimum":1},"durationUnit":{"type":"string","enum":["HOURS","DAYS","WEEKS","MONTHS","YEARS"]}}}},"required":["type","params"]},"DenyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["deny"]},"params":{"type":"object","properties":{"comment":{"type":"string"}}}},"required":["type","params"]},"ReviewEvent":{"type":"object","properties":{"type":{"type":"string","enum":["review"]},"params":{"type":"object","properties":{"stages":{"description":"Array of stages for manual review","type":"array","items":{"oneOf":[{"type":"object","properties":{"all":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["all"]},{"type":"object","properties":{"any":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["any"]}]}}},"required":["stages"]}},"required":["type","params"]},"DataProductPolicyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["dataProductPolicy"]}},"required":["type"]},"DataProductMaskingExceptionPolicy":{"title":"Data Product Masking Exception Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{name}/byName":{"get":{"description":"Get data product metadata for the specified data product name","operationId":"getDataProductByName","parameters":[{"name":"name","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataProduct"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Get data product by name","tags":["Data Product"]}}}}
```

## Search all data sources in the data product

> Search all data sources for the data product using the provided filters

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"},{"name":"Data Source","description":"APIs for managing data sources"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PaginatedDataSourceWithStatus":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"name":{"type":"string"},"type":{"type":"string"},"sourceId":{"type":"string"},"hostname":{"type":"string","description":"Data source hostname","nullable":true},"database":{"type":"string","description":"Data source database name","nullable":true},"schema":{"type":"string","description":"Data source schema name","nullable":true},"table":{"type":"string","description":"Data source table name","nullable":true},"prefix":{"type":"string","description":"The native S3 prefix","nullable":true},"status":{"description":"DAG Subscription Status","type":"string","enum":["NONE","RESTRICTED","SUBSCRIBED"]}},"required":["id","name","type","sourceId","status"]}},"meta":{"type":"object","properties":{"nextToken":{"type":"string","format":"base64","contentEncoding":"base64","pattern":"^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$","description":"Pagination token to fetch the next page of results, or null if there are no more pages.","nullable":true},"limit":{"description":"The number of items to return per page","default":10,"type":"number","minimum":1,"maximum":100}},"required":["nextToken"]}},"required":["data","meta"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/datasources":{"get":{"description":"Search all data sources for the data product using the provided filters","operationId":"searchDataSources","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"nextToken","required":false,"in":"query","description":"Pagination token to fetch the next page of results","contentEncoding":"base64","schema":{"format":"base64","pattern":"^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$","type":"string"}},{"name":"limit","required":false,"in":"query","description":"The number of items to return per page","schema":{"minimum":1,"maximum":100,"default":10,"type":"number"}},{"name":"user","required":false,"in":"query","description":"The global user ID to search data source access status for","schema":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","type":"string"}},{"name":"nameFilter","required":false,"in":"query","description":"Data source name to filter by","schema":{"default":"","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedDataSourceWithStatus"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Search all data sources in the data product","tags":["Data Product","Data Source"]}}}}
```

## Update the data product's data sources

> Update the data sources associated with the data product. Any currently associated data sources not included in the payload will be removed.

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"},{"name":"Data Source","description":"APIs for managing data sources"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"UpdateDataSources":{"type":"object","properties":{"dataSources":{"type":"array","items":{"type":"object","properties":{"sourceId":{"type":"string"}},"required":["sourceId"]}}},"required":["dataSources"]},"DataProduct":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true},"domains":{"minItems":1,"type":"array","items":{"type":"string"}},"suspended":{"description":"Whether access to the data product's data sources is suspended","type":"boolean"},"createdBy":{"description":"Immuta global user ID of the user who created the data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedBy":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","description":"Immuta global user ID of the user who last updated the data product","nullable":true},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"expiration":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","nullable":true},"stats":{"$ref":"#/components/schemas/DataProductStats"},"requestId":{"description":"If requested, the ID of the access request for the data product","type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"sourceTypes":{"description":"The types of data sources contained in the data product.","type":"array","items":{"type":"string"}},"metadata":{"type":"object","properties":{"subjectMatterExpert":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert for this data product","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"required":["subjectMatterExpert"],"nullable":true},"dataAccessPolicy":{"$ref":"#/components/schemas/DataProductDataAccessPolicy"},"maskingExceptionPolicy":{"$ref":"#/components/schemas/DataProductMaskingExceptionPolicy"}},"required":["id","name","domains","suspended","createdBy","createdAt","updatedAt","metadata"]},"DataProductStats":{"description":"Data product statistics","title":"Data Product Stats","type":"object","properties":{"dataSourceCount":{"description":"Count of data sources in a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pendingRequestCount":{"description":"Count of pending requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"approvedRequestCount":{"description":"Count of approved requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"revokedRequestCount":{"description":"Count of revoked requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"canceledRequestCount":{"description":"Count of canceled requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deniedRequestCount":{"description":"Count of denied requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalRequestCount":{"description":"Count of total requests for a data product","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["dataSourceCount","pendingRequestCount","approvedRequestCount","revokedRequestCount","canceledRequestCount","deniedRequestCount","totalRequestCount"]},"DataProductDataAccessPolicy":{"title":"Data Product Data Access Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"RuleProperties":{"type":"object","properties":{"conditions":{"oneOf":[{"$ref":"#/components/schemas/AllConditions"},{"$ref":"#/components/schemas/AnyConditions"},{"$ref":"#/components/schemas/NotConditions"}]},"event":{"$ref":"#/components/schemas/ReviewPolicyEvent"}},"required":["conditions","event"]},"AllConditions":{"type":"object","properties":{"all":{"type":"array","items":{}}},"required":["all"],"additionalProperties":false},"AnyConditions":{"type":"object","properties":{"any":{"type":"array","items":{}}},"required":["any"],"additionalProperties":false},"NotConditions":{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},"ReviewPolicyEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/DenyEvent"},{"$ref":"#/components/schemas/ReviewEvent"},{"$ref":"#/components/schemas/DataProductPolicyEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","deny":"#/components/schemas/DenyEvent","review":"#/components/schemas/ReviewEvent","dataProductPolicy":"#/components/schemas/DataProductPolicyEvent"}}},"ApproveEvent":{"type":"object","properties":{"type":{"type":"string","enum":["approve"]},"params":{"type":"object","properties":{"comment":{"type":"string"},"duration":{"type":"number","minimum":1},"durationUnit":{"type":"string","enum":["HOURS","DAYS","WEEKS","MONTHS","YEARS"]}}}},"required":["type","params"]},"DenyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["deny"]},"params":{"type":"object","properties":{"comment":{"type":"string"}}}},"required":["type","params"]},"ReviewEvent":{"type":"object","properties":{"type":{"type":"string","enum":["review"]},"params":{"type":"object","properties":{"stages":{"description":"Array of stages for manual review","type":"array","items":{"oneOf":[{"type":"object","properties":{"all":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["all"]},{"type":"object","properties":{"any":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["any"]}]}}},"required":["stages"]}},"required":["type","params"]},"DataProductPolicyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["dataProductPolicy"]}},"required":["type"]},"DataProductMaskingExceptionPolicy":{"title":"Data Product Masking Exception Policy","type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/ReviewEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","review":"#/components/schemas/ReviewEvent"}}}},"required":["rules","defaultEvent"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/datasources":{"put":{"description":"Update the data sources associated with the data product. Any currently associated data sources not included in the payload will be removed.","operationId":"updateDataSources","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDataSources"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataProduct"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Update the data product's data sources","tags":["Data Product","Data Source"]}}}}
```

## Search all access requests for the data product

> Search all access requests for the data product using the provided filters

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"},{"name":"Access Request","description":"APIs for managing data access"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PaginatedAccessRequest":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/HydratedAccessRequest"}},"meta":{"type":"object","properties":{"offset":{"default":0,"type":"number","minimum":0},"limit":{"default":10,"type":"number","minimum":1},"totalCount":{"type":"number"},"pageCount":{"type":"number"},"currentPage":{"type":"number"},"totalPages":{"type":"number"}},"required":["totalCount","pageCount","currentPage","totalPages"]}},"required":["data","meta"]},"HydratedAccessRequest":{"title":"Hydrated Access Request","description":"Access request with user and data product metadata","type":"object","properties":{"id":{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"requestingUser":{"$ref":"#/components/schemas/ImmutaUser"},"user":{"$ref":"#/components/schemas/ImmutaUser"},"formVersion":{"type":"string","nullable":true},"form":{"description":"The request form submission"},"type":{"type":"string","enum":["DATA_ACCESS","MASKING_EXCEPTION"]},"metadata":{"description":"Metadata associated with the access request"},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"expiration":{"description":"When the temporary access will expire","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"dataProduct":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"type":{"type":"string","enum":["DATA_OBJECT"]},"name":{"description":"Asset name","type":"string","minLength":1},"metadata":{"description":"Data object asset metadata","type":"object","properties":{"subjectMatterExperts":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"objectPath":{"type":"array","items":{"type":"string"}},"technology":{"type":"string","enum":["Snowflake","PostgreSQL","Databricks","Phantom","Glue","MySQL","Teradata","MariaDB","Oracle","SQLServer","Trino","Redshift","BigQuery","Custom"]},"host":{"type":"string"},"port":{"type":"integer","minimum":1,"maximum":65535},"legacyType":{"type":"string"},"dataSourceId":{"type":"number"},"description":{"type":"string","nullable":true},"externalLink":{"type":"string","nullable":true}},"required":["objectPath"]}},"required":["id","type","name","metadata"]},"isProcessing":{"description":"Whether the request is still processing","type":"boolean"}},"required":["id","requestingUser","user","type","status","createdAt","updatedAt","isProcessing"]},"ImmutaUser":{"title":"Immuta User","type":"object","properties":{"id":{"type":"number"},"iamId":{"description":"ID of the IAM the user is associated with","type":"string"},"globalUserId":{"description":"Immuta global user ID","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"trackingId":{"type":"string"},"username":{"description":"Username/login name for the user","type":"string"},"name":{"description":"Display name","type":"string"},"email":{"type":"string","description":"Email address","nullable":true},"authorizations":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["id","iamId","globalUserId","username","name"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/request":{"get":{"description":"Search all access requests for the data product using the provided filters","operationId":"searchDataProductAccessRequests","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"searchText","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"array","items":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]}}},{"name":"type","required":false,"in":"query","schema":{"type":"array","items":{"type":"string","enum":["DATA_ACCESS","MASKING_EXCEPTION"]}}},{"name":"userIds","required":false,"in":"query","schema":{"type":"array","items":{"description":"Immuta global user ID of the user for whom access is being requested","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}}},{"name":"includeTemporary","required":false,"in":"query","description":"Whether to include temporary access requests","deprecated":true,"schema":{"type":"boolean"}},{"name":"expiration","required":false,"in":"query","description":"Filter access requests by whether it has an expiration","schema":{"type":"boolean"}},{"name":"dataProductId","required":false,"in":"query","description":"The ID of the data product to filter requests by","schema":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]}},{"name":"assetId","required":false,"in":"query","description":"The ID of the asset to filter requests by","schema":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","type":"string"}},{"name":"assetType","required":false,"in":"query","description":"Filter access requests by asset type (DATA_OBJECT or DATA_PRODUCT)","schema":{"type":"array","items":{"type":"string","enum":["DATA_PRODUCT","DATA_OBJECT"]}}},{"name":"targetType","required":false,"in":"query","description":"Target type filter selections (DATA_PRODUCT, COLUMNS, or legacy type strings like table/view/schema)","schema":{"type":"array","items":{"type":"string"}}},{"name":"reviewerUserIds","required":false,"in":"query","description":"Filter access requests to those any of the specified users can still review or have already reviewed","schema":{"maxItems":10,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}}},{"name":"reviewStatus","required":false,"in":"query","description":"Filter access requests by review status","schema":{"type":"array","items":{"type":"string","enum":["noReviews","reviewedByYou","awaitingReviewFromYou"]}}},{"name":"offset","required":false,"in":"query","schema":{"minimum":0,"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"default":10,"type":"number"}},{"name":"sortOrder","required":false,"in":"query","schema":{"default":"desc","type":"string","enum":["asc","desc"]}},{"name":"sortBy","required":false,"in":"query","schema":{"default":"createdAt","type":"string","enum":["status","dataProduct","createdAt","updatedAt","expiration"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedAccessRequest"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Search all access requests for the data product","tags":["Data Product","Access Request"]}}}}
```

## Request access to a data product

> Create a new data access request for the specified data product

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"},{"name":"Access Request","description":"APIs for managing data access"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"CreateAccessRequest":{"type":"object","properties":{"user":{"description":"Immuta global user ID of the user for whom access is being requested","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"form":{"description":"The request form submission"}},"required":["user"]},"HydratedAccessRequest":{"title":"Hydrated Access Request","description":"Access request with user and data product metadata","type":"object","properties":{"id":{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"requestingUser":{"$ref":"#/components/schemas/ImmutaUser"},"user":{"$ref":"#/components/schemas/ImmutaUser"},"formVersion":{"type":"string","nullable":true},"form":{"description":"The request form submission"},"type":{"type":"string","enum":["DATA_ACCESS","MASKING_EXCEPTION"]},"metadata":{"description":"Metadata associated with the access request"},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"expiration":{"description":"When the temporary access will expire","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"dataProduct":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"type":{"type":"string","enum":["DATA_OBJECT"]},"name":{"description":"Asset name","type":"string","minLength":1},"metadata":{"description":"Data object asset metadata","type":"object","properties":{"subjectMatterExperts":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"objectPath":{"type":"array","items":{"type":"string"}},"technology":{"type":"string","enum":["Snowflake","PostgreSQL","Databricks","Phantom","Glue","MySQL","Teradata","MariaDB","Oracle","SQLServer","Trino","Redshift","BigQuery","Custom"]},"host":{"type":"string"},"port":{"type":"integer","minimum":1,"maximum":65535},"legacyType":{"type":"string"},"dataSourceId":{"type":"number"},"description":{"type":"string","nullable":true},"externalLink":{"type":"string","nullable":true}},"required":["objectPath"]}},"required":["id","type","name","metadata"]},"isProcessing":{"description":"Whether the request is still processing","type":"boolean"}},"required":["id","requestingUser","user","type","status","createdAt","updatedAt","isProcessing"]},"ImmutaUser":{"title":"Immuta User","type":"object","properties":{"id":{"type":"number"},"iamId":{"description":"ID of the IAM the user is associated with","type":"string"},"globalUserId":{"description":"Immuta global user ID","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"trackingId":{"type":"string"},"username":{"description":"Username/login name for the user","type":"string"},"name":{"description":"Display name","type":"string"},"email":{"type":"string","description":"Email address","nullable":true},"authorizations":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["id","iamId","globalUserId","username","name"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/request":{"post":{"description":"Create a new data access request for the specified data product","operationId":"requestAccess","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccessRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HydratedAccessRequest"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Request access to a data product","tags":["Data Product","Access Request"]}}}}
```

## Search all access requests for the data product

> Search all approved access requests for the data product

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"},{"name":"Access Request","description":"APIs for managing data access"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PaginatedAccessRequest":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/HydratedAccessRequest"}},"meta":{"type":"object","properties":{"offset":{"default":0,"type":"number","minimum":0},"limit":{"default":10,"type":"number","minimum":1},"totalCount":{"type":"number"},"pageCount":{"type":"number"},"currentPage":{"type":"number"},"totalPages":{"type":"number"}},"required":["totalCount","pageCount","currentPage","totalPages"]}},"required":["data","meta"]},"HydratedAccessRequest":{"title":"Hydrated Access Request","description":"Access request with user and data product metadata","type":"object","properties":{"id":{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"requestingUser":{"$ref":"#/components/schemas/ImmutaUser"},"user":{"$ref":"#/components/schemas/ImmutaUser"},"formVersion":{"type":"string","nullable":true},"form":{"description":"The request form submission"},"type":{"type":"string","enum":["DATA_ACCESS","MASKING_EXCEPTION"]},"metadata":{"description":"Metadata associated with the access request"},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"expiration":{"description":"When the temporary access will expire","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"dataProduct":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"type":{"type":"string","enum":["DATA_OBJECT"]},"name":{"description":"Asset name","type":"string","minLength":1},"metadata":{"description":"Data object asset metadata","type":"object","properties":{"subjectMatterExperts":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"objectPath":{"type":"array","items":{"type":"string"}},"technology":{"type":"string","enum":["Snowflake","PostgreSQL","Databricks","Phantom","Glue","MySQL","Teradata","MariaDB","Oracle","SQLServer","Trino","Redshift","BigQuery","Custom"]},"host":{"type":"string"},"port":{"type":"integer","minimum":1,"maximum":65535},"legacyType":{"type":"string"},"dataSourceId":{"type":"number"},"description":{"type":"string","nullable":true},"externalLink":{"type":"string","nullable":true}},"required":["objectPath"]}},"required":["id","type","name","metadata"]},"isProcessing":{"description":"Whether the request is still processing","type":"boolean"}},"required":["id","requestingUser","user","type","status","createdAt","updatedAt","isProcessing"]},"ImmutaUser":{"title":"Immuta User","type":"object","properties":{"id":{"type":"number"},"iamId":{"description":"ID of the IAM the user is associated with","type":"string"},"globalUserId":{"description":"Immuta global user ID","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"trackingId":{"type":"string"},"username":{"description":"Username/login name for the user","type":"string"},"name":{"description":"Display name","type":"string"},"email":{"type":"string","description":"Email address","nullable":true},"authorizations":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["id","iamId","globalUserId","username","name"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/members":{"get":{"description":"Search all approved access requests for the data product","operationId":"searchDataProductMembers","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"searchText","required":false,"in":"query","schema":{"type":"string"}},{"name":"status","required":false,"in":"query","schema":{"type":"array","items":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]}}},{"name":"type","required":false,"in":"query","schema":{"type":"array","items":{"type":"string","enum":["DATA_ACCESS","MASKING_EXCEPTION"]}}},{"name":"userIds","required":false,"in":"query","schema":{"type":"array","items":{"description":"Immuta global user ID of the user for whom access is being requested","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}}},{"name":"expiration","required":false,"in":"query","description":"Filter access requests by whether it has an expiration","schema":{"type":"boolean"}},{"name":"dataProductId","required":false,"in":"query","description":"The ID of the data product to filter requests by","schema":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]}},{"name":"assetId","required":false,"in":"query","description":"The ID of the asset to filter requests by","schema":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","type":"string"}},{"name":"assetType","required":false,"in":"query","description":"Filter access requests by asset type (DATA_OBJECT or DATA_PRODUCT)","schema":{"type":"array","items":{"type":"string","enum":["DATA_PRODUCT","DATA_OBJECT"]}}},{"name":"targetType","required":false,"in":"query","description":"Target type filter selections (DATA_PRODUCT, COLUMNS, or legacy type strings like table/view/schema)","schema":{"type":"array","items":{"type":"string"}}},{"name":"reviewerUserIds","required":false,"in":"query","description":"Filter access requests to those any of the specified users can still review or have already reviewed","schema":{"maxItems":10,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}}},{"name":"reviewStatus","required":false,"in":"query","description":"Filter access requests by review status","schema":{"type":"array","items":{"type":"string","enum":["noReviews","reviewedByYou","awaitingReviewFromYou"]}}},{"name":"offset","required":false,"in":"query","schema":{"minimum":0,"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"default":10,"type":"number"}},{"name":"sortOrder","required":false,"in":"query","schema":{"default":"desc","type":"string","enum":["asc","desc"]}},{"name":"sortBy","required":false,"in":"query","schema":{"default":"createdAt","type":"string","enum":["status","dataProduct","createdAt","updatedAt","expiration"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedAccessRequest"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Search all access requests for the data product","tags":["Data Product","Access Request"]}}}}
```

## Request masking exception to columns in a data product

> Create a new masking exception request for specific columns in the specified data product

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"},{"name":"Access Request","description":"APIs for managing data access"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"CreateMaskingExceptionRequest":{"type":"object","properties":{"user":{"description":"Immuta global user ID of the user for whom access is being requested","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"form":{"description":"The request form submission"},"columns":{"description":"List of columns to request masking exception for","type":"array","items":{"description":"Column in the data source to request masking exception for","type":"object","properties":{"columnName":{"description":"The name of the column to request masking exception for","type":"string"},"sourceId":{"description":"The ID of the data source this column belongs to","type":"string"}},"required":["columnName","sourceId"]}}},"required":["user","columns"]},"HydratedAccessRequest":{"title":"Hydrated Access Request","description":"Access request with user and data product metadata","type":"object","properties":{"id":{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"requestingUser":{"$ref":"#/components/schemas/ImmutaUser"},"user":{"$ref":"#/components/schemas/ImmutaUser"},"formVersion":{"type":"string","nullable":true},"form":{"description":"The request form submission"},"type":{"type":"string","enum":["DATA_ACCESS","MASKING_EXCEPTION"]},"metadata":{"description":"Metadata associated with the access request"},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"expiration":{"description":"When the temporary access will expire","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"dataProduct":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Data product name","type":"string","minLength":1,"maxLength":255,"pattern":"^[\\p{L}\\p{M}\\p{N})(\\-_/\\\\\\s]*$"},"description":{"type":"string","description":"Data product description","nullable":true}},"required":["id","name"]},"asset":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"type":{"type":"string","enum":["DATA_OBJECT"]},"name":{"description":"Asset name","type":"string","minLength":1},"metadata":{"description":"Data object asset metadata","type":"object","properties":{"subjectMatterExperts":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"objectPath":{"type":"array","items":{"type":"string"}},"technology":{"type":"string","enum":["Snowflake","PostgreSQL","Databricks","Phantom","Glue","MySQL","Teradata","MariaDB","Oracle","SQLServer","Trino","Redshift","BigQuery","Custom"]},"host":{"type":"string"},"port":{"type":"integer","minimum":1,"maximum":65535},"legacyType":{"type":"string"},"dataSourceId":{"type":"number"},"description":{"type":"string","nullable":true},"externalLink":{"type":"string","nullable":true}},"required":["objectPath"]}},"required":["id","type","name","metadata"]},"isProcessing":{"description":"Whether the request is still processing","type":"boolean"}},"required":["id","requestingUser","user","type","status","createdAt","updatedAt","isProcessing"]},"ImmutaUser":{"title":"Immuta User","type":"object","properties":{"id":{"type":"number"},"iamId":{"description":"ID of the IAM the user is associated with","type":"string"},"globalUserId":{"description":"Immuta global user ID","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"trackingId":{"type":"string"},"username":{"description":"Username/login name for the user","type":"string"},"name":{"description":"Display name","type":"string"},"email":{"type":"string","description":"Email address","nullable":true},"authorizations":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["id","iamId","globalUserId","username","name"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/request/masking-exception":{"post":{"description":"Create a new masking exception request for specific columns in the specified data product","operationId":"requestMaskingException","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMaskingExceptionRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HydratedAccessRequest"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Request masking exception to columns in a data product","tags":["Data Product","Access Request"]}}}}
```

## Revoke access to a data product

> Updates the specified access request to revoked and revokes access to data sources associated with the data product

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"},{"name":"Access Request","description":"APIs for managing data access"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/request/{requestId}":{"delete":{"description":"Updates the specified access request to revoked and revokes access to data sources associated with the data product","operationId":"revokeAccess","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"requestId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Revoke access to a data product","tags":["Data Product","Access Request"]}}}}
```

## Get all data sources in the data product

> Get all data sources in the data product

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"},{"name":"Data Source","description":"APIs for managing data sources"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"AllDataSources":{"type":"object","properties":{"dataSources":{"type":"array","items":{"type":"object","properties":{"sourceId":{"type":"string"}},"required":["sourceId"]}}},"required":["dataSources"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/datasources/all":{"get":{"description":"Get all data sources in the data product","operationId":"getAllDataSources","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AllDataSources"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Get all data sources in the data product","tags":["Data Product","Data Source"]}}}}
```

## Returns 5 most recent manual access determinations

> Returns 5 most recent data access requests with a terminal status as well as the approval records which contributed to that status.

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"},{"name":"Access Request","description":"APIs for managing data access"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"RecentDeterminations":{"type":"object","properties":{"determinations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"requestingUser":{"$ref":"#/components/schemas/ImmutaUser"},"user":{"$ref":"#/components/schemas/ImmutaUser"},"actionBy":{"allOf":[{"$ref":"#/components/schemas/ImmutaUser"}],"nullable":true},"reason":{"type":"string"},"status":{"type":"string","enum":["APPROVED","BLOCKED","CANCELED","DENIED","PENDING"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"expiration":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","requestingUser","user","actionBy","status","createdAt","updatedAt"]}}},"required":["determinations"],"title":"Recent Data Product Manual Determinations"},"ImmutaUser":{"title":"Immuta User","type":"object","properties":{"id":{"type":"number"},"iamId":{"description":"ID of the IAM the user is associated with","type":"string"},"globalUserId":{"description":"Immuta global user ID","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"trackingId":{"type":"string"},"username":{"description":"Username/login name for the user","type":"string"},"name":{"description":"Display name","type":"string"},"email":{"type":"string","description":"Email address","nullable":true},"authorizations":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["id","iamId","globalUserId","username","name"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/recent-determinations":{"get":{"description":"Returns 5 most recent data access requests with a terminal status as well as the approval records which contributed to that status.","operationId":"recentDeterminations","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"type","required":false,"in":"query","schema":{"default":"DATA_ACCESS","type":"string","enum":["DATA_ACCESS","MASKING_EXCEPTION"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecentDeterminations"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Returns 5 most recent manual access determinations","tags":["Data Product","Access Request"]}}}}
```

## View all request forms for a data product

> Get all the request forms for the specified data product

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"},{"name":"Request Form","description":"APIs for managing request forms"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"DataProductRequestForm":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"name":{"type":"string"},"fields":{"title":"RequestFormFields","type":"array","items":{"$ref":"#/components/schemas/RequestFormField"}},"policy":{"type":"object","properties":{"version":{"description":"Policy schema version","type":"string"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/RuleProperties"}},"defaultEvent":{"$ref":"#/components/schemas/ReviewPolicyEvent"}},"required":["rules","defaultEvent"]},"dataUseAgreements":{"title":"Request Form Data Use Agreements","default":[],"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"name":{"description":"The name of data use agreement","type":"string"},"body":{"description":"The contents of data use agreement","type":"string"}},"required":["id","name","body"]}},"createdBy":{"description":"The user who originally created the request form","type":"object","properties":{"globalUserId":{"description":"Immuta global user ID","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"name":{"description":"Display name","type":"string"}},"required":["globalUserId","name"]},"createdAt":{"description":"The date when the request form was originally created","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedBy":{"description":"The user who last updated the request form","type":"object","properties":{"globalUserId":{"description":"Immuta global user ID","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"name":{"description":"Display name","type":"string"}},"required":["globalUserId","name"]},"updatedAt":{"description":"The date when the request form was last updated","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"version":{"description":"The current version of the request form","type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"inheritedFrom":{"$ref":"#/components/schemas/DataObjectAsset"},"requestType":{"type":"string","enum":["DATA_ACCESS","MASKING_EXCEPTION"]}},"required":["id","name","fields","policy","createdBy","createdAt","updatedBy","updatedAt","version","requestType"]},"RequestFormField":{"oneOf":[{"$ref":"#/components/schemas/SelectionFormField"},{"$ref":"#/components/schemas/ShortAnswerFormField"},{"$ref":"#/components/schemas/AccessDurationFormField"}],"discriminator":{"propertyName":"type","mapping":{"DROPDOWN":"#/components/schemas/SelectionFormField","CHECKBOXES":"#/components/schemas/SelectionFormField","SHORT_ANSWER":"#/components/schemas/ShortAnswerFormField","ACCESS_DURATION":"#/components/schemas/AccessDurationFormField"}}},"SelectionFormField":{"title":"Selection Form Field","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"type":{"type":"string","enum":["DROPDOWN","CHECKBOXES"]},"label":{"type":"string"},"required":{"default":true,"type":"boolean"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}}},"required":["id","type","label","options"]},"ShortAnswerFormField":{"title":"Short Answer Form Field","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"type":{"type":"string","enum":["SHORT_ANSWER"]},"label":{"type":"string"},"required":{"default":true,"type":"boolean"}},"required":["id","type","label"]},"AccessDurationFormField":{"title":"Access Duration Form Field","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"type":{"type":"string","enum":["ACCESS_DURATION"]},"label":{"type":"string","enum":["How long do you need access to this data?"]},"required":{"type":"boolean","enum":[true]}},"required":["id","type","label","required"]},"RuleProperties":{"type":"object","properties":{"conditions":{"oneOf":[{"$ref":"#/components/schemas/AllConditions"},{"$ref":"#/components/schemas/AnyConditions"},{"$ref":"#/components/schemas/NotConditions"}]},"event":{"$ref":"#/components/schemas/ReviewPolicyEvent"}},"required":["conditions","event"]},"AllConditions":{"type":"object","properties":{"all":{"type":"array","items":{}}},"required":["all"],"additionalProperties":false},"AnyConditions":{"type":"object","properties":{"any":{"type":"array","items":{}}},"required":["any"],"additionalProperties":false},"NotConditions":{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},"ReviewPolicyEvent":{"oneOf":[{"$ref":"#/components/schemas/ApproveEvent"},{"$ref":"#/components/schemas/DenyEvent"},{"$ref":"#/components/schemas/ReviewEvent"},{"$ref":"#/components/schemas/DataProductPolicyEvent"}],"discriminator":{"propertyName":"type","mapping":{"approve":"#/components/schemas/ApproveEvent","deny":"#/components/schemas/DenyEvent","review":"#/components/schemas/ReviewEvent","dataProductPolicy":"#/components/schemas/DataProductPolicyEvent"}}},"ApproveEvent":{"type":"object","properties":{"type":{"type":"string","enum":["approve"]},"params":{"type":"object","properties":{"comment":{"type":"string"},"duration":{"type":"number","minimum":1},"durationUnit":{"type":"string","enum":["HOURS","DAYS","WEEKS","MONTHS","YEARS"]}}}},"required":["type","params"]},"DenyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["deny"]},"params":{"type":"object","properties":{"comment":{"type":"string"}}}},"required":["type","params"]},"ReviewEvent":{"type":"object","properties":{"type":{"type":"string","enum":["review"]},"params":{"type":"object","properties":{"stages":{"description":"Array of stages for manual review","type":"array","items":{"oneOf":[{"type":"object","properties":{"all":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["all"]},{"type":"object","properties":{"any":{"minItems":1,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["USER"]},"id":{"description":"Entity ID","type":"string"},"displayName":{"description":"Entity display name","type":"string"}},"required":["type","id"]},{"type":"object","properties":{"type":{"description":"Entity type","type":"string","enum":["GROUP"]},"id":{"description":"Entity ID","type":"number"},"iamId":{"description":"IAM ID","type":"string"},"name":{"description":"Entity display name","type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["PERMISSION"]},"permission":{"description":"Global permission","type":"string","enum":["GOVERNANCE","USER_ADMIN","AUDIT"]}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["DOMAIN PERMISSION"]},"permission":{"description":"Domain permission","type":"string","enum":["Manage Policies","Audit Activity","Manage Data Products","Manage Identifiers"]},"domainId":{"description":"Domain ID","type":"string"}},"required":["type","permission"]},{"type":"object","properties":{"type":{"type":"string","enum":["ATTRIBUTE"]},"key":{"description":"Attribute key","type":"string"},"value":{"description":"Attribute value","type":"string"}},"required":["type","key","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["CATALOG PERMISSION"]}},"required":["type"]}]}}},"required":["any"]}]}}},"required":["stages"]}},"required":["type","params"]},"DataProductPolicyEvent":{"type":"object","properties":{"type":{"type":"string","enum":["dataProductPolicy"]}},"required":["type"]},"DataObjectAsset":{"title":"Data Object Asset","type":"object","properties":{"id":{"oneOf":[{"type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"}]},"name":{"description":"Asset name","type":"string","minLength":1},"type":{"type":"string","enum":["DATA_OBJECT"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedBy":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","description":"Immuta global user ID of the user who last updated the asset","nullable":true},"dagTagId":{"type":"number","nullable":true},"requestId":{"description":"If requested, the ID of the access request for the asset","type":"string","format":"cuid","pattern":"^[cC][^\\s-]{8,}$"},"status":{"type":"string","enum":["APPROVED","CANCELED","DENIED","PENDING","NONE","PUBLISHER","REVOKED","EXPIRED"]},"metadata":{"description":"Data object asset metadata","type":"object","properties":{"subjectMatterExperts":{"default":[],"type":"array","items":{"type":"object","properties":{"id":{"description":"Immuta global user ID of the subject matter expert","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"username":{"type":"string"},"name":{"type":"string"}},"required":["id"]}},"objectPath":{"type":"array","items":{"type":"string"}},"technology":{"type":"string","enum":["Snowflake","PostgreSQL","Databricks","Phantom","Glue","MySQL","Teradata","MariaDB","Oracle","SQLServer","Trino","Redshift","BigQuery","Custom"]},"host":{"type":"string"},"port":{"type":"integer","minimum":1,"maximum":65535},"legacyType":{"type":"string"},"dataSourceId":{"type":"number"},"description":{"type":"string","nullable":true},"externalLink":{"type":"string","nullable":true}},"required":["objectPath"]},"registered":{"description":"Whether the asset has been registered","default":true,"type":"boolean"},"stats":{"$ref":"#/components/schemas/DataObjectAssetStats"}},"required":["id","name","type","metadata"]},"DataObjectAssetStats":{"description":"Data object asset statistics","title":"Data Object Asset Stats","type":"object","properties":{"dataSourceCount":{"description":"Count of data sources in the data object (from DAG)","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["dataSourceCount"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/request-forms":{"get":{"description":"Get all the request forms for the specified data product","operationId":"getRequestForms","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DataProductRequestForm"}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"View all request forms for a data product","tags":["Data Product","Request Form"]}}}}
```

## Search columns in data product

> Search and filter columns in the data product using the provided filters

```json
{"openapi":"3.0.0","info":{"title":"Immuta Data Marketplace","version":"1.0"},"tags":[{"name":"Data Product","description":"APIs for managing data products"}],"servers":[{"url":"https://{global-segment}.api.immutacloud.com/marketplace","description":"Marketplace API Endpoint","variables":{"global-segment":{"default":"na","enum":["na","eu","ap"],"description":"Marketplace API global segment"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"PaginatedImmutaDataSourceColumns":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Name of the column","type":"string"},"sourceId":{"description":"The ID of the data source containing the column","type":"string"},"sourceName":{"description":"The name of the data source containing the column","type":"string"},"tags":{"description":"Tags associated with the column","type":"array","items":{"type":"string"}},"type":{"description":"The data source technology/platform type","type":"string"},"globalPolicyInfo":{"type":"object","properties":{"maskingType":{"description":"The type of masking policy that was applied","type":"string"}},"required":["maskingType"],"nullable":true},"localPolicyInfo":{"type":"object","properties":{"maskingType":{"description":"The type of masking policy that was applied","type":"string"}},"required":["maskingType"],"nullable":true}},"required":["name","sourceId","sourceName","tags"]}},"meta":{"type":"object","properties":{"offset":{"default":0,"type":"number","minimum":0},"limit":{"default":10,"type":"number","minimum":1},"totalCount":{"type":"number"},"pageCount":{"type":"number"},"currentPage":{"type":"number"},"totalPages":{"type":"number"}},"required":["totalCount","pageCount","currentPage","totalPages"]}},"required":["data","meta"]},"AugmentedZodDto":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/api/data-product/{id}/columns":{"get":{"description":"Search and filter columns in the data product using the provided filters","operationId":"searchDataProductColumns","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"offset","required":false,"in":"query","schema":{"minimum":0,"default":0,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"default":10,"type":"number"}},{"name":"sortOrder","required":false,"in":"query","schema":{"default":"asc","type":"string","enum":["asc","desc"]}},{"name":"searchText","required":false,"in":"query","description":"Search text to filter data source columns","schema":{"type":"string"}},{"name":"maskedOnly","required":false,"in":"query","description":"Whether to filter columns that have a masking policy applied to them","schema":{"type":"boolean"}},{"name":"tagIds","required":false,"in":"query","schema":{"type":"array","items":{"description":"Array of tag IDs to filter data product columns","type":"string"}}},{"name":"dir","required":false,"in":"query","schema":{"default":"ASC","type":"string","enum":["ASC","DESC"]}},{"name":"dataSourceIds","required":false,"in":"query","schema":{"type":"array","items":{"description":"The data source IDs to search data source columns for","type":"string"}}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedImmutaDataSourceColumns"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AugmentedZodDto"}}}}},"summary":"Search columns in data product","tags":["Data Product"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://documentation.immuta.com/saas/developer-guides/api-intro/marketplace-api/data-product.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
