CreateAssetFilter
Creates a data asset filter.
Asset filters provide a sophisticated way to create controlled views of data assets by selecting specific columns or applying row-level filters. This capability is crucial for organizations that need to share data while maintaining security and privacy controls. For example, your database might be filtered to show only non-PII fields to certain users, or sales data might be filtered by region for different regional teams. Asset filters enable fine-grained access control while maintaining a single source of truth.
Prerequisites:
-
A valid domain (
--domain-identifier
) must exist. -
A data asset (
--asset-identifier
) must already be created under that domain. -
The asset must have the referenced columns available in its schema for column-based filtering.
-
You cannot specify both (
columnConfiguration
,rowConfiguration
)at the same time.
Request Syntax
POST /v2/domains/domainIdentifier
/assets/assetIdentifier
/filters HTTP/1.1
Content-type: application/json
{
"clientToken": "string
",
"configuration": { ... },
"description": "string
",
"name": "string
"
}
URI Request Parameters
The request uses the following URI parameters.
- assetIdentifier
-
The ID of the data asset.
Pattern:
[a-zA-Z0-9_-]{1,36}
Required: Yes
- domainIdentifier
-
The ID of the domain in which you want to create an asset filter.
Pattern:
dzd[-_][a-zA-Z0-9_-]{1,36}
Required: Yes
Request Body
The request accepts the following data in JSON format.
- clientToken
-
A unique, case-sensitive identifier that is provided to ensure the idempotency of the request.
Type: String
Required: No
- configuration
-
The configuration of the asset filter.
Type: AssetFilterConfiguration object
Note: This object is a Union. Only one member of this object can be specified or returned.
Required: Yes
- description
-
The description of the asset filter.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 2048.
Required: No
- name
-
The name of the asset filter.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 64.
Pattern:
[\w -]+
Required: Yes
Response Syntax
HTTP/1.1 201
Content-type: application/json
{
"assetId": "string",
"configuration": { ... },
"createdAt": number,
"description": "string",
"domainId": "string",
"effectiveColumnNames": [ "string" ],
"effectiveRowFilter": "string",
"errorMessage": "string",
"id": "string",
"name": "string",
"status": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 201 response.
The following data is returned in JSON format by the service.
- assetId
-
The ID of the asset.
Type: String
Pattern:
[a-zA-Z0-9_-]{1,36}
- configuration
-
The configuration of the asset filter.
Type: AssetFilterConfiguration object
Note: This object is a Union. Only one member of this object can be specified or returned.
- createdAt
-
The timestamp at which the asset filter was created.
Type: Timestamp
- description
-
The description of the asset filter.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 2048.
- domainId
-
The ID of the domain where the asset filter is created.
Type: String
Pattern:
dzd[-_][a-zA-Z0-9_-]{1,36}
- effectiveColumnNames
-
The column names in the asset filter.
Type: Array of strings
- effectiveRowFilter
-
The row filter in the asset filter.
Type: String
- errorMessage
-
The error message that is displayed if the asset filter is not created successfully.
Type: String
- id
-
The ID of the asset filter.
Type: String
Pattern:
[a-zA-Z0-9_-]{1,36}
- name
-
The name of the asset filter.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 64.
Pattern:
[\w -]+
- status
-
The status of the asset filter.
Type: String
Valid Values:
VALID | INVALID
Errors
For information about the errors that are common to all actions, see Common Errors.
- AccessDeniedException
-
You do not have sufficient access to perform this action.
HTTP Status Code: 403
- ConflictException
-
There is a conflict while performing this action.
HTTP Status Code: 409
- InternalServerException
-
The request has failed because of an unknown error, exception or failure.
HTTP Status Code: 500
- ResourceNotFoundException
-
The specified resource cannot be found.
HTTP Status Code: 404
- ServiceQuotaExceededException
-
The request has exceeded the specified service quota.
HTTP Status Code: 402
- ThrottlingException
-
The request was denied due to request throttling.
HTTP Status Code: 429
- UnauthorizedException
-
You do not have permission to perform this action.
HTTP Status Code: 401
- ValidationException
-
The input fails to satisfy the constraints specified by the AWS service.
HTTP Status Code: 400
Examples
Example
This example illustrates one usage of CreateAssetFilter.
Sample Request
aws datazone create-asset-filter \
--domain-identifier "dzd_53ielnpxktdilj" \
--asset-identifier "ast7k9mpq2xvn4" \
--name "customer-pii-filter" \
--configuration '{
"columnConfiguration": {
"includedColumnNames": [
"customer_id",
"email",
"phone_number",
"address"
]
}
}'
Sample Request
{
"assetId": "ast7k9mpq2xvn4",
"configuration": {
"columnConfiguration": {
"includedColumnNames": [
"customer_id",
"email",
"phone_number",
"address"
]
}
},
"domainId": "dzd_53ielnpxktdilj",
"effectiveColumnNames": [
"customer_id",
"email",
"phone_number",
"address"
],
"id": "flt8p2mq3xvn5",
"name": "customer-pii-filter",
"status": "VALID"
}
Example
Failure case - missing required field: --configuration
:
Sample Request
aws datazone create-asset-filter \
--domain-identifier "dzd_53ielnpxktdilj" \
--asset-identifier "ast7k9mpq2xvn4" \
--name "missing-config"
Sample Response
aws: error: the following arguments are required: —configuration
Example
Failure case - invalid JSON in --configuration
Sample Request
aws datazone create-asset-filter \
--domain-identifier "dzd_53ielnpxktdilj" \
--asset-identifier "ast7k9mpq2xvn4" \
--name "invalid-json" \
--configuration '{ "columnConfiguration": { "includedColumnNames": ["customer_id", "email" }'
Sample Response
Error parsing parameter '--configuration': Invalid JSON: Expecting ',' delimiter: line 1 column 65 (char 64)
JSON received: { "columnConfiguration": { "includedColumnNames": ["customer_id", "email" }
Example
Failure case - both columnConfiguration
and
rowConfiguration
present
Sample Request
aws datazone create-asset-filter \
--domain-identifier "dzd_53ielnpxktdilj" \
--asset-identifier "ast7k9mpq2xvn4" \
--name "dual-config" \
--configuration '{
"columnConfiguration": {
"includedColumnNames": ["customer_id"]
},
"rowConfiguration": {
"rowFilter": {
"expression": {
"equalTo": {
"columnName": "customer_id",
"value": "CUST123"
}
}
}
}
}'
Sample Response
Parameter validation failed:
Invalid number of parameters set for tagged union structure configuration. Can only set one of the following keys: columnConfiguration, rowConfiguration.
Example
Failure case - empty includedColumnNames
:
Sample Request
aws datazone create-asset-filter \
--domain-identifier "dzd_53ielnpxktdilj" \
--asset-identifier "ast7k9mpq2xvn4" \
--name "empty-columns" \
--configuration '{
"columnConfiguration": {
"includedColumnNames": []
}
}'
Sample Response
An error occurred (ValidationException) when calling the CreateAssetFilter operation: Invalid column configuration. No valid columns found.
Example
Failure case - invalid key in rowFilter
expression:
Sample Request
aws datazone create-asset-filter \
--domain-identifier "dzd_53ielnpxktdilj" \
--asset-identifier "ast7k9mpq2xvn4" \
--name "invalid-row-key" \
--configuration '{
"rowConfiguration": {
"rowFilter": {
"expression": {
"invalidOperator": {
"columnName": "customer_id",
"value": "CUST123"
}
}
}
}
}'
Sample Response
Parameter validation failed:
Unknown parameter in configuration.rowConfiguration.rowFilter.expression: "invalidOperator", must be one of: equalTo, greaterThan, greaterThanOrEqualTo, in, isNotNull, isNull, lessThan, lessThanOrEqualTo, like, notEqualTo, notIn, notLike
Example
Failure case - missing columnName
in row filter:
Sample Request
aws datazone create-asset-filter \
--domain-identifier "dzd_53ielnpxktdilj" \
--asset-identifier "ast7k9mpq2xvn4" \
--name "missing-column-name" \
--configuration '{
"rowConfiguration": {
"rowFilter": {
"expression": {
"equalTo": {
"value": "CUST123"
}
}
}
}
}'
Sample Response
Parameter validation failed:
Missing required parameter in configuration.rowConfiguration.rowFilter.expression.equalTo: "columnName"
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: