> For the complete documentation index, see [llms.txt](https://developer.collibra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.collibra.com/api/references/protect/models.md).

# Models

## The ProtectGroupSortFieldOptions object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"ProtectGroupSortFieldOptions":{"type":"string","description":"Sort field options available for groups. Possible values are: `NAME`, `CREATED_ON` or `LAST_MODIFIED_ON`."}}}}
```

## The ProtectGroupSortFieldOrder object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"ProtectGroupSortFieldOrder":{"description":"Order on the sort field options available for groups. Possible values are: `ASC` or `DESC`.","type":"string"}}}}
```

## The PagedGroups object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"PagedGroups":{"description":"A page of groups.","type":"object","properties":{"cursors":{"$ref":"#/components/schemas/Cursors"},"results":{"type":"array","items":{"$ref":"#/components/schemas/Group"}}},"required":["cursors","results"]},"Cursors":{"description":"A cursor refers to a random string of characters which marks a specific item in a list of data.\nThe cursor will always point to the item, however it will be invalidated if the item is deleted or removed.\nTherefore, your app shouldn't store cursors or assume that they will be valid in the future.\n","type":"object","properties":{"after":{"description":"This is the cursor that points to the end of the page of data that has been returned.","type":"string"}}},"Group":{"type":"object","properties":{"id":{"description":"The ID of the group.","type":"string","format":"uuid"},"createdBy":{"description":"Id of the Collibra user who created this group","type":"string","format":"uuid"},"createdOn":{"description":"Timestamp when this group is created","type":"integer","format":"int64"},"lastModifiedBy":{"description":"Id of the Collibra user who last updated this group","type":"string","format":"uuid"},"lastModifiedOn":{"description":"Timestamp when this group has last been updated","type":"integer","format":"int64"}},"allOf":[{"$ref":"#/components/schemas/EditableGroup"}],"required":["id","createdBy","createdOn","lastModifiedBy","lastModifiedOn"]},"EditableGroup":{"type":"object","properties":{"name":{"description":"The name of the group.","type":"string"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/GroupMapping"}}},"required":["name","mappings"]},"GroupMapping":{"description":"This dictionary describes to which Snowflake, GoogleBigQuery or AWSLakeFormation roles this group maps to.","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"identity":{"description":"An existing Snowflake, GoogleBigQuery or AWSLakeFormation role.","type":"string"}},"required":["provider","identity"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""}}}}
```

## The Cursors object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"Cursors":{"description":"A cursor refers to a random string of characters which marks a specific item in a list of data.\nThe cursor will always point to the item, however it will be invalidated if the item is deleted or removed.\nTherefore, your app shouldn't store cursors or assume that they will be valid in the future.\n","type":"object","properties":{"after":{"description":"This is the cursor that points to the end of the page of data that has been returned.","type":"string"}}}}}}
```

## The AddGroupRequest object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"AddGroupRequest":{"type":"object","allOf":[{"$ref":"#/components/schemas/EditableGroup"}]},"EditableGroup":{"type":"object","properties":{"name":{"description":"The name of the group.","type":"string"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/GroupMapping"}}},"required":["name","mappings"]},"GroupMapping":{"description":"This dictionary describes to which Snowflake, GoogleBigQuery or AWSLakeFormation roles this group maps to.","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"identity":{"description":"An existing Snowflake, GoogleBigQuery or AWSLakeFormation role.","type":"string"}},"required":["provider","identity"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""}}}}
```

## The ChangeGroupRequest object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"ChangeGroupRequest":{"type":"object","properties":{"name":{"description":"The name of the group.","type":"string"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/GroupMapping"}}}},"GroupMapping":{"description":"This dictionary describes to which Snowflake, GoogleBigQuery or AWSLakeFormation roles this group maps to.","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"identity":{"description":"An existing Snowflake, GoogleBigQuery or AWSLakeFormation role.","type":"string"}},"required":["provider","identity"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""}}}}
```

## The EditableGroup object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"EditableGroup":{"type":"object","properties":{"name":{"description":"The name of the group.","type":"string"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/GroupMapping"}}},"required":["name","mappings"]},"GroupMapping":{"description":"This dictionary describes to which Snowflake, GoogleBigQuery or AWSLakeFormation roles this group maps to.","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"identity":{"description":"An existing Snowflake, GoogleBigQuery or AWSLakeFormation role.","type":"string"}},"required":["provider","identity"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""}}}}
```

## The Group object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"Group":{"type":"object","properties":{"id":{"description":"The ID of the group.","type":"string","format":"uuid"},"createdBy":{"description":"Id of the Collibra user who created this group","type":"string","format":"uuid"},"createdOn":{"description":"Timestamp when this group is created","type":"integer","format":"int64"},"lastModifiedBy":{"description":"Id of the Collibra user who last updated this group","type":"string","format":"uuid"},"lastModifiedOn":{"description":"Timestamp when this group has last been updated","type":"integer","format":"int64"}},"allOf":[{"$ref":"#/components/schemas/EditableGroup"}],"required":["id","createdBy","createdOn","lastModifiedBy","lastModifiedOn"]},"EditableGroup":{"type":"object","properties":{"name":{"description":"The name of the group.","type":"string"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/GroupMapping"}}},"required":["name","mappings"]},"GroupMapping":{"description":"This dictionary describes to which Snowflake, GoogleBigQuery or AWSLakeFormation roles this group maps to.","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"identity":{"description":"An existing Snowflake, GoogleBigQuery or AWSLakeFormation role.","type":"string"}},"required":["provider","identity"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""}}}}
```

## The Provider object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""}}}}
```

## The GroupMapping object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"GroupMapping":{"description":"This dictionary describes to which Snowflake, GoogleBigQuery or AWSLakeFormation roles this group maps to.","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"identity":{"description":"An existing Snowflake, GoogleBigQuery or AWSLakeFormation role.","type":"string"}},"required":["provider","identity"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""}}}}
```

## The AssetTypeIds object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"AssetTypeIds":{"description":"An array of asset type ids.","type":"array","items":{"type":"string","format":"uuid"}}}}}
```

## The PrescriptivePaths object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"PrescriptivePaths":{"description":"An array of prescriptive paths.","type":"array","items":{"$ref":"#/components/schemas/PrescriptivePath"}},"PrescriptivePath":{"type":"object","properties":{"assetTypeId":{"description":"The ID of the prescriptive path's asset type.","type":"string","format":"uuid"},"createdBy":{"description":"Id of the Collibra user who created this group","type":"string","format":"uuid"},"createdOn":{"description":"Timestamp when this prescriptive path was created","type":"integer","format":"int64"},"lastModifiedBy":{"description":"Id of the Collibra user who last updated this prescriptive path","type":"string","format":"uuid"},"lastModifiedOn":{"description":"Timestamp when this prescriptive path has last been updated","type":"integer","format":"int64"}},"allOf":[{"$ref":"#/components/schemas/EditablePrescriptivePath"}],"required":["assetTypeId","createdBy","createdOn","lastModifiedBy","lastModifiedOn"]},"EditablePrescriptivePath":{"type":"object","properties":{"description":{"type":"string"},"relations":{"type":"array","items":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}},"required":["relations"]},"PrescriptivePathRelation":{"type":"object","properties":{"relationTypeId":{"type":"string","format":"uuid"},"relationTypeDirection":{"$ref":"#/components/schemas/RelationTypeDirection"},"assetType":{"$ref":"#/components/schemas/PrescriptivePathAssetType"}},"required":["relationTypeId","relationTypeDirection","assetType"]},"RelationTypeDirection":{"type":"string","description":"Indicates whether the PrescriptivePathAssetType containing a PrescriptivePathRelation is the\nhead/source or tail/target of that relation type. The only allowed values are SOURCE and TARGET.\n"},"PrescriptivePathAssetType":{"type":"object","properties":{"assetTypeId":{"type":"string","format":"uuid"},"relation":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}}}}}
```

## The EditablePrescriptivePath object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"EditablePrescriptivePath":{"type":"object","properties":{"description":{"type":"string"},"relations":{"type":"array","items":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}},"required":["relations"]},"PrescriptivePathRelation":{"type":"object","properties":{"relationTypeId":{"type":"string","format":"uuid"},"relationTypeDirection":{"$ref":"#/components/schemas/RelationTypeDirection"},"assetType":{"$ref":"#/components/schemas/PrescriptivePathAssetType"}},"required":["relationTypeId","relationTypeDirection","assetType"]},"RelationTypeDirection":{"type":"string","description":"Indicates whether the PrescriptivePathAssetType containing a PrescriptivePathRelation is the\nhead/source or tail/target of that relation type. The only allowed values are SOURCE and TARGET.\n"},"PrescriptivePathAssetType":{"type":"object","properties":{"assetTypeId":{"type":"string","format":"uuid"},"relation":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}}}}}
```

## The PrescriptivePathAssetType object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"PrescriptivePathAssetType":{"type":"object","properties":{"assetTypeId":{"type":"string","format":"uuid"},"relation":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}},"PrescriptivePathRelation":{"type":"object","properties":{"relationTypeId":{"type":"string","format":"uuid"},"relationTypeDirection":{"$ref":"#/components/schemas/RelationTypeDirection"},"assetType":{"$ref":"#/components/schemas/PrescriptivePathAssetType"}},"required":["relationTypeId","relationTypeDirection","assetType"]},"RelationTypeDirection":{"type":"string","description":"Indicates whether the PrescriptivePathAssetType containing a PrescriptivePathRelation is the\nhead/source or tail/target of that relation type. The only allowed values are SOURCE and TARGET.\n"}}}}
```

## The PrescriptivePathRelation object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"PrescriptivePathRelation":{"type":"object","properties":{"relationTypeId":{"type":"string","format":"uuid"},"relationTypeDirection":{"$ref":"#/components/schemas/RelationTypeDirection"},"assetType":{"$ref":"#/components/schemas/PrescriptivePathAssetType"}},"required":["relationTypeId","relationTypeDirection","assetType"]},"RelationTypeDirection":{"type":"string","description":"Indicates whether the PrescriptivePathAssetType containing a PrescriptivePathRelation is the\nhead/source or tail/target of that relation type. The only allowed values are SOURCE and TARGET.\n"},"PrescriptivePathAssetType":{"type":"object","properties":{"assetTypeId":{"type":"string","format":"uuid"},"relation":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}}}}}
```

## The RelationTypeDirection object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"RelationTypeDirection":{"type":"string","description":"Indicates whether the PrescriptivePathAssetType containing a PrescriptivePathRelation is the\nhead/source or tail/target of that relation type. The only allowed values are SOURCE and TARGET.\n"}}}}
```

## The PrescriptivePath object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"PrescriptivePath":{"type":"object","properties":{"assetTypeId":{"description":"The ID of the prescriptive path's asset type.","type":"string","format":"uuid"},"createdBy":{"description":"Id of the Collibra user who created this group","type":"string","format":"uuid"},"createdOn":{"description":"Timestamp when this prescriptive path was created","type":"integer","format":"int64"},"lastModifiedBy":{"description":"Id of the Collibra user who last updated this prescriptive path","type":"string","format":"uuid"},"lastModifiedOn":{"description":"Timestamp when this prescriptive path has last been updated","type":"integer","format":"int64"}},"allOf":[{"$ref":"#/components/schemas/EditablePrescriptivePath"}],"required":["assetTypeId","createdBy","createdOn","lastModifiedBy","lastModifiedOn"]},"EditablePrescriptivePath":{"type":"object","properties":{"description":{"type":"string"},"relations":{"type":"array","items":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}},"required":["relations"]},"PrescriptivePathRelation":{"type":"object","properties":{"relationTypeId":{"type":"string","format":"uuid"},"relationTypeDirection":{"$ref":"#/components/schemas/RelationTypeDirection"},"assetType":{"$ref":"#/components/schemas/PrescriptivePathAssetType"}},"required":["relationTypeId","relationTypeDirection","assetType"]},"RelationTypeDirection":{"type":"string","description":"Indicates whether the PrescriptivePathAssetType containing a PrescriptivePathRelation is the\nhead/source or tail/target of that relation type. The only allowed values are SOURCE and TARGET.\n"},"PrescriptivePathAssetType":{"type":"object","properties":{"assetTypeId":{"type":"string","format":"uuid"},"relation":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}}}}}
```

## The AddPrescriptivePathRequest object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"AddPrescriptivePathRequest":{"type":"object","properties":{"assetTypeId":{"description":"The ID of the prescriptive path's asset type.","type":"string","format":"uuid"}},"allOf":[{"$ref":"#/components/schemas/EditablePrescriptivePath"}],"required":["assetTypeId"]},"EditablePrescriptivePath":{"type":"object","properties":{"description":{"type":"string"},"relations":{"type":"array","items":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}},"required":["relations"]},"PrescriptivePathRelation":{"type":"object","properties":{"relationTypeId":{"type":"string","format":"uuid"},"relationTypeDirection":{"$ref":"#/components/schemas/RelationTypeDirection"},"assetType":{"$ref":"#/components/schemas/PrescriptivePathAssetType"}},"required":["relationTypeId","relationTypeDirection","assetType"]},"RelationTypeDirection":{"type":"string","description":"Indicates whether the PrescriptivePathAssetType containing a PrescriptivePathRelation is the\nhead/source or tail/target of that relation type. The only allowed values are SOURCE and TARGET.\n"},"PrescriptivePathAssetType":{"type":"object","properties":{"assetTypeId":{"type":"string","format":"uuid"},"relation":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}}}}}
```

## The ChangePrescriptivePathRequest object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"ChangePrescriptivePathRequest":{"type":"object","allOf":[{"$ref":"#/components/schemas/EditablePrescriptivePath"}]},"EditablePrescriptivePath":{"type":"object","properties":{"description":{"type":"string"},"relations":{"type":"array","items":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}},"required":["relations"]},"PrescriptivePathRelation":{"type":"object","properties":{"relationTypeId":{"type":"string","format":"uuid"},"relationTypeDirection":{"$ref":"#/components/schemas/RelationTypeDirection"},"assetType":{"$ref":"#/components/schemas/PrescriptivePathAssetType"}},"required":["relationTypeId","relationTypeDirection","assetType"]},"RelationTypeDirection":{"type":"string","description":"Indicates whether the PrescriptivePathAssetType containing a PrescriptivePathRelation is the\nhead/source or tail/target of that relation type. The only allowed values are SOURCE and TARGET.\n"},"PrescriptivePathAssetType":{"type":"object","properties":{"assetTypeId":{"type":"string","format":"uuid"},"relation":{"$ref":"#/components/schemas/PrescriptivePathRelation"}}}}}}
```

## The PagedCustomMaskings object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"PagedCustomMaskings":{"description":"A page of custom maskings.","type":"object","properties":{"cursors":{"$ref":"#/components/schemas/Cursors"},"results":{"type":"array","items":{"$ref":"#/components/schemas/CustomMasking"}}},"required":["cursors","results"]},"Cursors":{"description":"A cursor refers to a random string of characters which marks a specific item in a list of data.\nThe cursor will always point to the item, however it will be invalidated if the item is deleted or removed.\nTherefore, your app shouldn't store cursors or assume that they will be valid in the future.\n","type":"object","properties":{"after":{"description":"This is the cursor that points to the end of the page of data that has been returned.","type":"string"}}},"CustomMasking":{"allOf":[{"$ref":"#/components/schemas/EditableCustomMasking"},{"type":"object","properties":{"id":{"description":"The ID of the masking.","type":"string","format":"uuid"},"createdBy":{"description":"ID of the Collibra user who created this custom mapping.","type":"string","format":"uuid"},"createdOn":{"description":"The timestamp of when this custom mapping was created","type":"integer","format":"int64"},"lastModifiedBy":{"description":"ID of the Collibra user who last updated this custom mapping.","type":"string","format":"uuid"},"lastModifiedOn":{"description":"The timestamp of when this custom mapping was last updated.","type":"integer","format":"int64"}},"required":["id","createdBy","createdOn","lastModifiedBy","lastModifiedOn"]}]},"EditableCustomMasking":{"type":"object","properties":{"name":{"description":"The name of the custom masking.","type":"string"},"mappings":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/ProviderMaskingMappings"}}},"required":["name","mappings"]},"ProviderMaskingMappings":{"description":"This dictionary describes a list of mappings of data types and the function name used to provide custom mapping for one provider (Snowflake, GoogleBigQuery, or AWSLakeFormation).","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/MaskingMapping"}}},"required":["provider","mappings"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""},"MaskingMapping":{"description":"a mapping of the data type and function name used to provide the custom mapping.","properties":{"dataType":{"type":"string","description":"The name of the data type (String, Number, Date ...). Data types name depend on the provider, a list of compatible types per provider is available in the documentation."},"functionName":{"type":"string","description":"The name of the function that will be used on the provider to provide the custom masking."}},"required":["dataType","functionName"]}}}}
```

## The AddCustomMaskingRequest object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"AddCustomMaskingRequest":{"allOf":[{"$ref":"#/components/schemas/EditableCustomMasking"}]},"EditableCustomMasking":{"type":"object","properties":{"name":{"description":"The name of the custom masking.","type":"string"},"mappings":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/ProviderMaskingMappings"}}},"required":["name","mappings"]},"ProviderMaskingMappings":{"description":"This dictionary describes a list of mappings of data types and the function name used to provide custom mapping for one provider (Snowflake, GoogleBigQuery, or AWSLakeFormation).","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/MaskingMapping"}}},"required":["provider","mappings"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""},"MaskingMapping":{"description":"a mapping of the data type and function name used to provide the custom mapping.","properties":{"dataType":{"type":"string","description":"The name of the data type (String, Number, Date ...). Data types name depend on the provider, a list of compatible types per provider is available in the documentation."},"functionName":{"type":"string","description":"The name of the function that will be used on the provider to provide the custom masking."}},"required":["dataType","functionName"]}}}}
```

## The ChangeCustomMaskingRequest object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"ChangeCustomMaskingRequest":{"type":"object","properties":{"name":{"description":"The name of the custom masking.","type":"string"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/ProviderMaskingMappings"}}}},"ProviderMaskingMappings":{"description":"This dictionary describes a list of mappings of data types and the function name used to provide custom mapping for one provider (Snowflake, GoogleBigQuery, or AWSLakeFormation).","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/MaskingMapping"}}},"required":["provider","mappings"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""},"MaskingMapping":{"description":"a mapping of the data type and function name used to provide the custom mapping.","properties":{"dataType":{"type":"string","description":"The name of the data type (String, Number, Date ...). Data types name depend on the provider, a list of compatible types per provider is available in the documentation."},"functionName":{"type":"string","description":"The name of the function that will be used on the provider to provide the custom masking."}},"required":["dataType","functionName"]}}}}
```

## The EditableCustomMasking object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"EditableCustomMasking":{"type":"object","properties":{"name":{"description":"The name of the custom masking.","type":"string"},"mappings":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/ProviderMaskingMappings"}}},"required":["name","mappings"]},"ProviderMaskingMappings":{"description":"This dictionary describes a list of mappings of data types and the function name used to provide custom mapping for one provider (Snowflake, GoogleBigQuery, or AWSLakeFormation).","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/MaskingMapping"}}},"required":["provider","mappings"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""},"MaskingMapping":{"description":"a mapping of the data type and function name used to provide the custom mapping.","properties":{"dataType":{"type":"string","description":"The name of the data type (String, Number, Date ...). Data types name depend on the provider, a list of compatible types per provider is available in the documentation."},"functionName":{"type":"string","description":"The name of the function that will be used on the provider to provide the custom masking."}},"required":["dataType","functionName"]}}}}
```

## The ProviderMaskingMappings object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"ProviderMaskingMappings":{"description":"This dictionary describes a list of mappings of data types and the function name used to provide custom mapping for one provider (Snowflake, GoogleBigQuery, or AWSLakeFormation).","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/MaskingMapping"}}},"required":["provider","mappings"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""},"MaskingMapping":{"description":"a mapping of the data type and function name used to provide the custom mapping.","properties":{"dataType":{"type":"string","description":"The name of the data type (String, Number, Date ...). Data types name depend on the provider, a list of compatible types per provider is available in the documentation."},"functionName":{"type":"string","description":"The name of the function that will be used on the provider to provide the custom masking."}},"required":["dataType","functionName"]}}}}
```

## The MaskingMapping object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"MaskingMapping":{"description":"a mapping of the data type and function name used to provide the custom mapping.","properties":{"dataType":{"type":"string","description":"The name of the data type (String, Number, Date ...). Data types name depend on the provider, a list of compatible types per provider is available in the documentation."},"functionName":{"type":"string","description":"The name of the function that will be used on the provider to provide the custom masking."}},"required":["dataType","functionName"]}}}}
```

## The CustomMasking object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"CustomMasking":{"allOf":[{"$ref":"#/components/schemas/EditableCustomMasking"},{"type":"object","properties":{"id":{"description":"The ID of the masking.","type":"string","format":"uuid"},"createdBy":{"description":"ID of the Collibra user who created this custom mapping.","type":"string","format":"uuid"},"createdOn":{"description":"The timestamp of when this custom mapping was created","type":"integer","format":"int64"},"lastModifiedBy":{"description":"ID of the Collibra user who last updated this custom mapping.","type":"string","format":"uuid"},"lastModifiedOn":{"description":"The timestamp of when this custom mapping was last updated.","type":"integer","format":"int64"}},"required":["id","createdBy","createdOn","lastModifiedBy","lastModifiedOn"]}]},"EditableCustomMasking":{"type":"object","properties":{"name":{"description":"The name of the custom masking.","type":"string"},"mappings":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/ProviderMaskingMappings"}}},"required":["name","mappings"]},"ProviderMaskingMappings":{"description":"This dictionary describes a list of mappings of data types and the function name used to provide custom mapping for one provider (Snowflake, GoogleBigQuery, or AWSLakeFormation).","type":"object","properties":{"provider":{"$ref":"#/components/schemas/Provider"},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/MaskingMapping"}}},"required":["provider","mappings"]},"Provider":{"type":"string","description":"Value must be \"Snowflake\", \"GoogleBigQuery, or \"AWSLakeFormation\""},"MaskingMapping":{"description":"a mapping of the data type and function name used to provide the custom mapping.","properties":{"dataType":{"type":"string","description":"The name of the data type (String, Number, Date ...). Data types name depend on the provider, a list of compatible types per provider is available in the documentation."},"functionName":{"type":"string","description":"The name of the function that will be used on the provider to provide the custom masking."}},"required":["dataType","functionName"]}}}}
```

## The PagedDataSources object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"PagedDataSources":{"description":"A page of data sources.","type":"object","properties":{"cursors":{"$ref":"#/components/schemas/Cursors"},"results":{"type":"array","items":{"$ref":"#/components/schemas/DataSource"}}},"required":["cursors","results"]},"Cursors":{"description":"A cursor refers to a random string of characters which marks a specific item in a list of data.\nThe cursor will always point to the item, however it will be invalidated if the item is deleted or removed.\nTherefore, your app shouldn't store cursors or assume that they will be valid in the future.\n","type":"object","properties":{"after":{"description":"This is the cursor that points to the end of the page of data that has been returned.","type":"string"}}},"DataSource":{"allOf":[{"$ref":"#/components/schemas/EditableDataSource"},{"type":"object","properties":{"id":{"description":"The ID of the data source.","type":"string","format":"uuid"},"isBuiltIn":{"description":"Indicates whether the data source is protect built-in or not.","type":"boolean","default":false},"createdBy":{"description":"ID of the Collibra user who created this data source.","type":"string","format":"uuid"},"createdOn":{"description":"The timestamp of when this data source was created","type":"integer","format":"int64"},"lastModifiedBy":{"description":"ID of the Collibra user who last updated this data source.","type":"string","format":"uuid"},"lastModifiedOn":{"description":"The timestamp of when this data source was last updated.","type":"integer","format":"int64"}},"required":["id","createdBy","createdOn","lastModifiedBy","lastModifiedOn"]}]},"EditableDataSource":{"type":"object","properties":{"name":{"description":"The name of the data source.","type":"string"},"dataSourceName":{"description":"The value of the \"Data Source Type\" attribute on the Database asset. It is also used in group mapping as the \"provider\" name","type":"string"},"dataSourceAliases":{"description":"A list of aliases for the data source name used in the \"Data Source Type\" attribute on the Database asset.","type":"array","items":{"$ref":"#/components/schemas/DataSourceAlias"}}},"required":["name","dataSourceName"]},"DataSourceAlias":{"description":"Alias name for a data source.","type":"string"}}}}
```

## The AddDataSourceRequest object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"AddDataSourceRequest":{"allOf":[{"$ref":"#/components/schemas/EditableDataSource"}]},"EditableDataSource":{"type":"object","properties":{"name":{"description":"The name of the data source.","type":"string"},"dataSourceName":{"description":"The value of the \"Data Source Type\" attribute on the Database asset. It is also used in group mapping as the \"provider\" name","type":"string"},"dataSourceAliases":{"description":"A list of aliases for the data source name used in the \"Data Source Type\" attribute on the Database asset.","type":"array","items":{"$ref":"#/components/schemas/DataSourceAlias"}}},"required":["name","dataSourceName"]},"DataSourceAlias":{"description":"Alias name for a data source.","type":"string"}}}}
```

## The ChangeDataSourceRequest object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"ChangeDataSourceRequest":{"type":"object","properties":{"name":{"description":"The name of the data source.","type":"string"},"dataSourceName":{"description":"The value of the \"Data Source Type\" attribute on the Database asset. It is also used in group mapping as the \"provider\" name","type":"string"},"dataSourceAliases":{"description":"A list of aliases for the data source name used in the \"Data Source Type\" attribute on the Database asset.","type":"array","items":{"$ref":"#/components/schemas/DataSourceAlias"}}}},"DataSourceAlias":{"description":"Alias name for a data source.","type":"string"}}}}
```

## The DataSourceAlias object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"DataSourceAlias":{"description":"Alias name for a data source.","type":"string"}}}}
```

## The EditableDataSource object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"EditableDataSource":{"type":"object","properties":{"name":{"description":"The name of the data source.","type":"string"},"dataSourceName":{"description":"The value of the \"Data Source Type\" attribute on the Database asset. It is also used in group mapping as the \"provider\" name","type":"string"},"dataSourceAliases":{"description":"A list of aliases for the data source name used in the \"Data Source Type\" attribute on the Database asset.","type":"array","items":{"$ref":"#/components/schemas/DataSourceAlias"}}},"required":["name","dataSourceName"]},"DataSourceAlias":{"description":"Alias name for a data source.","type":"string"}}}}
```

## The DataSource object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"DataSource":{"allOf":[{"$ref":"#/components/schemas/EditableDataSource"},{"type":"object","properties":{"id":{"description":"The ID of the data source.","type":"string","format":"uuid"},"isBuiltIn":{"description":"Indicates whether the data source is protect built-in or not.","type":"boolean","default":false},"createdBy":{"description":"ID of the Collibra user who created this data source.","type":"string","format":"uuid"},"createdOn":{"description":"The timestamp of when this data source was created","type":"integer","format":"int64"},"lastModifiedBy":{"description":"ID of the Collibra user who last updated this data source.","type":"string","format":"uuid"},"lastModifiedOn":{"description":"The timestamp of when this data source was last updated.","type":"integer","format":"int64"}},"required":["id","createdBy","createdOn","lastModifiedBy","lastModifiedOn"]}]},"EditableDataSource":{"type":"object","properties":{"name":{"description":"The name of the data source.","type":"string"},"dataSourceName":{"description":"The value of the \"Data Source Type\" attribute on the Database asset. It is also used in group mapping as the \"provider\" name","type":"string"},"dataSourceAliases":{"description":"A list of aliases for the data source name used in the \"Data Source Type\" attribute on the Database asset.","type":"array","items":{"$ref":"#/components/schemas/DataSourceAlias"}}},"required":["name","dataSourceName"]},"DataSourceAlias":{"description":"Alias name for a data source.","type":"string"}}}}
```

## The StandardErrorResponse object

```json
{"openapi":"3.0.3","info":{"title":"Collibra Protect API","version":"1.0.0"},"components":{"schemas":{"StandardErrorResponse":{"type":"object","properties":{"statusCode":{"type":"integer","description":"HTTP response code"},"titleMessage":{"type":"string","description":"The title of the error message."},"helpMessage":{"type":"string","description":"A message containing actions you can take regarding the error."},"userMessage":{"type":"string","description":"A user friendly error message."},"errorCode":{"type":"string","description":"An error code identifier."}},"required":["statusCode","userMessage"]}}}}
```


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.collibra.com/api/references/protect/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
