Skip to main content
POST
/
v1
/
instances
/
{instance}
/
policies
cURL
curl --request POST \
  --url https://api.example.com/v1/instances/{instance}/policies \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "inheritFromParent": true,
  "type": "POLICY_TYPE_UNSPECIFIED",
  "rolloutPolicy": {
    "automatic": true,
    "roles": [
      "<string>"
    ]
  },
  "maskingRulePolicy": {
    "rules": [
      {
        "id": "<string>",
        "condition": {
          "id": "<string>",
          "constExpr": {
            "nullValue": "NULL_VALUE",
            "boolValue": true,
            "int64Value": "<string>",
            "uint64Value": "<string>",
            "doubleValue": 123,
            "stringValue": "<string>",
            "bytesValue": "<string>",
            "durationValue": "<string>",
            "timestampValue": "2023-11-07T05:31:56Z"
          },
          "identExpr": {
            "name": "<string>"
          },
          "selectExpr": {
            "operand": "<unknown>",
            "field": "<string>",
            "testOnly": true
          },
          "callExpr": {
            "target": "<unknown>",
            "function": "<string>",
            "args": "<array>"
          },
          "listExpr": {
            "elements": "<array>",
            "optionalIndices": [
              123
            ]
          },
          "structExpr": {
            "messageName": "<string>",
            "entries": [
              {
                "id": "<string>",
                "fieldKey": "<string>",
                "mapKey": "<unknown>",
                "value": "<unknown>",
                "optionalEntry": true
              }
            ]
          },
          "comprehensionExpr": {
            "iterVar": "<string>",
            "iterVar2": "<string>",
            "iterRange": "<unknown>",
            "accuVar": "<string>",
            "accuInit": "<unknown>",
            "loopCondition": "<unknown>",
            "loopStep": "<unknown>",
            "result": "<unknown>"
          }
        },
        "semanticType": "<string>"
      }
    ]
  },
  "maskingExemptionPolicy": {
    "exemptions": [
      {
        "members": [
          "<string>"
        ],
        "condition": {
          "id": "<string>",
          "constExpr": {
            "nullValue": "NULL_VALUE",
            "boolValue": true,
            "int64Value": "<string>",
            "uint64Value": "<string>",
            "doubleValue": 123,
            "stringValue": "<string>",
            "bytesValue": "<string>",
            "durationValue": "<string>",
            "timestampValue": "2023-11-07T05:31:56Z"
          },
          "identExpr": {
            "name": "<string>"
          },
          "selectExpr": {
            "operand": "<unknown>",
            "field": "<string>",
            "testOnly": true
          },
          "callExpr": {
            "target": "<unknown>",
            "function": "<string>",
            "args": "<array>"
          },
          "listExpr": {
            "elements": "<array>",
            "optionalIndices": [
              123
            ]
          },
          "structExpr": {
            "messageName": "<string>",
            "entries": [
              {
                "id": "<string>",
                "fieldKey": "<string>",
                "mapKey": "<unknown>",
                "value": "<unknown>",
                "optionalEntry": true
              }
            ]
          },
          "comprehensionExpr": {
            "iterVar": "<string>",
            "iterVar2": "<string>",
            "iterRange": "<unknown>",
            "accuVar": "<string>",
            "accuInit": "<unknown>",
            "loopCondition": "<unknown>",
            "loopStep": "<unknown>",
            "result": "<unknown>"
          }
        }
      }
    ]
  },
  "tagPolicy": {
    "tags": {}
  },
  "dataSourceQueryPolicy": {
    "adminDataSourceRestriction": "RESTRICTION_UNSPECIFIED",
    "disallowDdl": true,
    "disallowDml": true
  },
  "queryDataPolicy": {
    "timeout": "<string>",
    "disableExport": true,
    "maximumResultSize": "<string>",
    "maximumResultRows": 123,
    "disableCopyData": true
  },
  "enforce": true
}
'
{
  "name": "<string>",
  "inheritFromParent": true,
  "type": "POLICY_TYPE_UNSPECIFIED",
  "rolloutPolicy": {
    "automatic": true,
    "roles": [
      "<string>"
    ]
  },
  "maskingRulePolicy": {
    "rules": [
      {
        "id": "<string>",
        "condition": {
          "id": "<string>",
          "constExpr": {
            "nullValue": "NULL_VALUE",
            "boolValue": true,
            "int64Value": "<string>",
            "uint64Value": "<string>",
            "doubleValue": 123,
            "stringValue": "<string>",
            "bytesValue": "<string>",
            "durationValue": "<string>",
            "timestampValue": "2023-11-07T05:31:56Z"
          },
          "identExpr": {
            "name": "<string>"
          },
          "selectExpr": {
            "operand": "<unknown>",
            "field": "<string>",
            "testOnly": true
          },
          "callExpr": {
            "target": "<unknown>",
            "function": "<string>",
            "args": "<array>"
          },
          "listExpr": {
            "elements": "<array>",
            "optionalIndices": [
              123
            ]
          },
          "structExpr": {
            "messageName": "<string>",
            "entries": [
              {
                "id": "<string>",
                "fieldKey": "<string>",
                "mapKey": "<unknown>",
                "value": "<unknown>",
                "optionalEntry": true
              }
            ]
          },
          "comprehensionExpr": {
            "iterVar": "<string>",
            "iterVar2": "<string>",
            "iterRange": "<unknown>",
            "accuVar": "<string>",
            "accuInit": "<unknown>",
            "loopCondition": "<unknown>",
            "loopStep": "<unknown>",
            "result": "<unknown>"
          }
        },
        "semanticType": "<string>"
      }
    ]
  },
  "maskingExemptionPolicy": {
    "exemptions": [
      {
        "members": [
          "<string>"
        ],
        "condition": {
          "id": "<string>",
          "constExpr": {
            "nullValue": "NULL_VALUE",
            "boolValue": true,
            "int64Value": "<string>",
            "uint64Value": "<string>",
            "doubleValue": 123,
            "stringValue": "<string>",
            "bytesValue": "<string>",
            "durationValue": "<string>",
            "timestampValue": "2023-11-07T05:31:56Z"
          },
          "identExpr": {
            "name": "<string>"
          },
          "selectExpr": {
            "operand": "<unknown>",
            "field": "<string>",
            "testOnly": true
          },
          "callExpr": {
            "target": "<unknown>",
            "function": "<string>",
            "args": "<array>"
          },
          "listExpr": {
            "elements": "<array>",
            "optionalIndices": [
              123
            ]
          },
          "structExpr": {
            "messageName": "<string>",
            "entries": [
              {
                "id": "<string>",
                "fieldKey": "<string>",
                "mapKey": "<unknown>",
                "value": "<unknown>",
                "optionalEntry": true
              }
            ]
          },
          "comprehensionExpr": {
            "iterVar": "<string>",
            "iterVar2": "<string>",
            "iterRange": "<unknown>",
            "accuVar": "<string>",
            "accuInit": "<unknown>",
            "loopCondition": "<unknown>",
            "loopStep": "<unknown>",
            "result": "<unknown>"
          }
        }
      }
    ]
  },
  "tagPolicy": {
    "tags": {}
  },
  "dataSourceQueryPolicy": {
    "adminDataSourceRestriction": "RESTRICTION_UNSPECIFIED",
    "disallowDdl": true,
    "disallowDml": true
  },
  "queryDataPolicy": {
    "timeout": "<string>",
    "disableExport": true,
    "maximumResultSize": "<string>",
    "maximumResultRows": 123,
    "disableCopyData": true
  },
  "enforce": true,
  "resourceType": "RESOURCE_TYPE_UNSPECIFIED"
}

Path Parameters

instance
string
required

The instance id.

Query Parameters

type
enum<string>

The type of policy to create.

Available options:
POLICY_TYPE_UNSPECIFIED,
MASKING_RULE,
MASKING_EXEMPTION,
ROLLOUT_POLICY,
TAG,
DATA_SOURCE_QUERY,
DATA_QUERY

Body

application/json
name
string

The name of the policy. Format: {resource name}/policies/{policy type} Workspace resource name: "". Environment resource name: environments/environment-id. Instance resource name: instances/instance-id. Database resource name: instances/instance-id/databases/database-name.

inheritFromParent
boolean

Whether this policy inherits from its parent resource.

type
enum<string>

The type of policy.

Available options:
POLICY_TYPE_UNSPECIFIED,
MASKING_RULE,
MASKING_EXEMPTION,
ROLLOUT_POLICY,
TAG,
DATA_SOURCE_QUERY,
DATA_QUERY
rolloutPolicy
object

Rollout policy configuration.

maskingRulePolicy
object

Policy for configuring data masking rules.

maskingExemptionPolicy
object

MaskingExemptionPolicy is the allowlist of users who can access sensitive data.

tagPolicy
object

Policy for tagging resources with metadata.

dataSourceQueryPolicy
object

Policy for controlling which data sources can be queried in the SQL editor.

queryDataPolicy
object

QueryDataPolicy is the policy configuration for querying data.

enforce
boolean

Whether the policy is enforced.

Response

OK

name
string

The name of the policy. Format: {resource name}/policies/{policy type} Workspace resource name: "". Environment resource name: environments/environment-id. Instance resource name: instances/instance-id. Database resource name: instances/instance-id/databases/database-name.

inheritFromParent
boolean

Whether this policy inherits from its parent resource.

type
enum<string>

The type of policy.

Available options:
POLICY_TYPE_UNSPECIFIED,
MASKING_RULE,
MASKING_EXEMPTION,
ROLLOUT_POLICY,
TAG,
DATA_SOURCE_QUERY,
DATA_QUERY
rolloutPolicy
object

Rollout policy configuration.

maskingRulePolicy
object

Policy for configuring data masking rules.

maskingExemptionPolicy
object

MaskingExemptionPolicy is the allowlist of users who can access sensitive data.

tagPolicy
object

Policy for tagging resources with metadata.

dataSourceQueryPolicy
object

Policy for controlling which data sources can be queried in the SQL editor.

queryDataPolicy
object

QueryDataPolicy is the policy configuration for querying data.

enforce
boolean

Whether the policy is enforced.

resourceType
enum<string>

The resource type for the policy.

Available options:
RESOURCE_TYPE_UNSPECIFIED,
WORKSPACE,
ENVIRONMENT,
PROJECT