components: schemas: DataCatalog: properties: databases: description: A top-most level of the catalog. This is typically a database. items: $ref: '#/components/schemas/DataCatalog_Database' type: array id: description: An arbitrary but unique identifier for the catalog. This matches the id from the PACE app configuration. type: string tags: items: type: string type: array type: enum: - TYPE_UNSPECIFIED - COLLIBRA - ODD - DATAHUB format: enum type: string type: object DataCatalog_Database: properties: catalog: allOf: - $ref: '#/components/schemas/DataCatalog' description: The parent catalog to which this database belongs. displayName: type: string id: description: The id used by the catalog. type: string schemas: description: The schemas in this database. items: $ref: '#/components/schemas/DataCatalog_Schema' type: array tags: items: type: string type: array type: type: string type: object DataCatalog_Schema: properties: database: allOf: - $ref: '#/components/schemas/DataCatalog_Database' description: The parent database to which this schema belongs. id: description: The id used by the catalog. type: string name: type: string tables: description: The tables in this schema. items: $ref: '#/components/schemas/DataCatalog_Table' type: array tags: items: type: string type: array type: object DataCatalog_Table: properties: id: description: The id used by the catalog. type: string name: type: string schema: allOf: - $ref: '#/components/schemas/DataCatalog_Schema' description: The parent schema to which this table belongs. tags: items: type: string type: array type: object DataPolicy: properties: id: type: string metadata: $ref: '#/components/schemas/DataPolicy_Metadata' platform: $ref: '#/components/schemas/DataPolicy_ProcessingPlatform' ruleSets: items: $ref: '#/components/schemas/DataPolicy_RuleSet' type: array source: $ref: '#/components/schemas/DataPolicy_Source' type: object DataPolicy_Field: properties: nameParts: description: Instead of using "nodes", nesting can be expressed by specifying multiple name parts. A flat table (e.g. csv file) will only contain a single name part for all fields. items: type: string type: array required: description: Whether the field is required. If not, the field may be null. type: boolean tags: items: type: string type: array type: description: The data type of the field. type: string type: object DataPolicy_Metadata: properties: createTime: format: date-time type: string description: type: string tags: items: type: string type: array title: type: string updateTime: format: date-time type: string version: description: For new policies, the version does not need to be set. When updating a policy, the version must match the current version. The version is then automatically incremented. format: int32 type: integer type: object DataPolicy_Principal: properties: group: type: string type: object DataPolicy_ProcessingPlatform: properties: id: description: An arbitrary but unique identifier for the platform. This matches the id from the PACE app configuration. type: string platformType: enum: - PLATFORM_TYPE_UNSPECIFIED - DATABRICKS - SNOWFLAKE - BIGQUERY - POSTGRES format: enum type: string type: object DataPolicy_RuleSet: properties: fieldTransforms: description: Zero or more field transforms. Any field for which no field transform is specified will be included as-is. items: $ref: '#/components/schemas/RuleSet_FieldTransform' type: array filters: description: "Zero or more filters. Records that match the conditions are\ \ included in the result.\n When no filters are defined, all records are\ \ always included." items: $ref: '#/components/schemas/RuleSet_Filter' type: array target: $ref: '#/components/schemas/DataPolicy_Target' type: object DataPolicy_Source: properties: fields: description: A representation of the source data schema. Nested fields are supported. items: $ref: '#/components/schemas/DataPolicy_Field' type: array ref: description: The ref is an identifier for the source, unique at the source platform level. type: string tags: items: type: string type: array type: object DataPolicy_Target: properties: fullname: description: The full and unique name to be used in the target platform. E.g. the view name. type: string type: enum: - TARGET_TYPE_UNSPECIFIED - SQL_VIEW format: enum type: string type: object FieldTransform_Transform: properties: detokenize: allOf: - $ref: '#/components/schemas/Transform_Detokenize' description: Replaces a tokenized field value with its original value, looked up in a token source. If no value is found, the tokenized value is left as-is. fixed: allOf: - $ref: '#/components/schemas/Transform_Fixed' description: Provide a fixed value for the field. hash: allOf: - $ref: '#/components/schemas/Transform_Hash' description: Hash the field value, optionally with a seed. The exact algorithm is platform-specific. identity: allOf: - $ref: '#/components/schemas/Transform_Identity' description: Use the identity transform to copy a field value as-is. nullify: allOf: - $ref: '#/components/schemas/Transform_Nullify' description: Make the field value null. principals: description: The principals (e.g. groups) for which this transform will be applied. items: $ref: '#/components/schemas/DataPolicy_Principal' type: array regexp: allOf: - $ref: '#/components/schemas/Transform_Regexp' description: Extract and optionally replace a value in a field using a regular expression. Use the syntax matching the processing platform. sqlStatement: allOf: - $ref: '#/components/schemas/Transform_SqlStatement' description: Execute a SQL statement to transform the field value. The exact syntax is platform-specific. type: object Filter_Condition: properties: condition: description: A (platform-specific) SQL expression. If it evaluates to true, the principals are allowed to access the data. type: string principals: description: The principals (e.g. groups) that apply to this condition. items: $ref: '#/components/schemas/DataPolicy_Principal' type: array type: object GetBarePolicyResponse: properties: dataPolicy: $ref: '#/components/schemas/DataPolicy' type: object GetDataPolicyResponse: properties: dataPolicy: $ref: '#/components/schemas/DataPolicy' type: object GoogleProtobufAny: additionalProperties: true description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. properties: '@type': description: The type of the serialized message. type: string type: object ListCatalogsResponse: properties: catalogs: items: $ref: '#/components/schemas/DataCatalog' type: array type: object ListDataPoliciesResponse: properties: dataPolicies: items: $ref: '#/components/schemas/DataPolicy' type: array type: object ListDatabasesResponse: properties: databases: items: $ref: '#/components/schemas/DataCatalog_Database' type: array type: object ListGroupsResponse: properties: groups: items: type: string type: array type: object ListProcessingPlatformsResponse: properties: processingPlatforms: items: $ref: '#/components/schemas/DataPolicy_ProcessingPlatform' type: array type: object ListSchemasResponse: description: "(-- api-linter: core::0158::response-plural-first-field=disabled\n\ \ aip.dev/not-precedent: Schemata? Get real. --)" properties: schemas: items: $ref: '#/components/schemas/DataCatalog_Schema' type: array type: object ListTablesResponse: properties: tables: items: $ref: '#/components/schemas/DataCatalog_Table' type: array type: object RuleSet_FieldTransform: properties: field: $ref: '#/components/schemas/DataPolicy_Field' transforms: description: "The last condition in the list must have 0 principals, as\ \ this acts as the default / else condition.\n Transforms should have\ \ mutually exclusive sets of principals." items: $ref: '#/components/schemas/FieldTransform_Transform' type: array type: object RuleSet_Filter: properties: conditions: description: The last condition in the list must have 0 principals, as this acts as the default / else condition. items: $ref: '#/components/schemas/Filter_Condition' type: array type: object Status: description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).' properties: code: description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. format: int32 type: integer details: description: A list of messages that carry the error details. There is a common set of message types for APIs to use. items: $ref: '#/components/schemas/GoogleProtobufAny' type: array message: description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. type: string type: object Transform_Detokenize: properties: tokenField: allOf: - $ref: '#/components/schemas/DataPolicy_Field' description: The field in the token source that contains the token. Only the name parts are required. tokenSourceRef: description: Full reference to the token source, e.g. a fully qualified table name. type: string valueField: allOf: - $ref: '#/components/schemas/DataPolicy_Field' description: The field in the token source that contains the value. Only the name parts are required. type: object Transform_Fixed: properties: value: type: string type: object Transform_Hash: properties: seed: type: string type: object Transform_Identity: properties: {} type: object Transform_Nullify: properties: {} type: object Transform_Regexp: properties: regexp: type: string replacement: description: If the replacement is left empty, the regexp match result (full match or first capturing group) is used. type: string type: object Transform_SqlStatement: properties: statement: type: string type: object UpsertDataPolicyRequest: properties: dataPolicy: $ref: '#/components/schemas/DataPolicy' type: object UpsertDataPolicyResponse: properties: dataPolicy: $ref: '#/components/schemas/DataPolicy' type: object info: title: PACE API version: 1.0.0-alpha.12 openapi: 3.0.3 paths: /catalogs: get: description: Lists all configured catalogs. operationId: DataCatalogsService_ListCatalogs responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListCatalogsResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: ListCatalogs tags: - DataCatalogsService /catalogs/{catalogId}/bare-policy: get: description: "Returns a data policy without any rule sets, based on the given\ \ table's data structure in the catalog.\n Extend this bare policy with field\ \ transforms and/or rule sets to create a complete data policy.\n Use the\ \ UpsertDataPolicy endpoint to save and enforce the policy." operationId: DataCatalogsService_GetBarePolicy parameters: - in: path name: catalogId required: true schema: type: string - in: query name: databaseId schema: type: string - in: query name: schemaId schema: type: string - in: query name: tableId schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetBarePolicyResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: GetBarePolicy tags: - DataCatalogsService /catalogs/{catalogId}/databases: get: description: Lists all databases for the given catalog. operationId: DataCatalogsService_ListDatabases parameters: - in: path name: catalogId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListDatabasesResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: ListDatabases tags: - DataCatalogsService /catalogs/{catalogId}/schemas: get: description: Lists all schemas (for a given database, if applicable). operationId: DataCatalogsService_ListSchemas parameters: - in: path name: catalogId required: true schema: type: string - in: query name: databaseId schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListSchemasResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: ListSchemas tags: - DataCatalogsService /catalogs/{catalogId}/tables: get: description: Lists all tables (for a given schema and database, if applicable). operationId: DataCatalogsService_ListTables parameters: - in: path name: catalogId required: true schema: type: string - in: query name: databaseId schema: type: string - in: query name: schemaId schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListTablesResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: ListTables tags: - DataCatalogsService /data-policies: get: description: Returns the latest policy for a given id and platform. operationId: DataPoliciesService_GetDataPolicy parameters: - in: query name: dataPolicyId schema: type: string - in: query name: platformId schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetDataPolicyResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: GetDataPolicy tags: - DataPoliciesService post: description: Creates or updates a DataPolicy in PACE and applies it to the processing platform. operationId: DataPoliciesService_UpsertDataPolicy requestBody: content: application/json: schema: $ref: '#/components/schemas/UpsertDataPolicyRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpsertDataPolicyResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: UpsertDataPolicy tags: - DataPoliciesService /data-policies/list: get: description: Lists all DataPolicies for all platforms. operationId: DataPoliciesService_ListDataPolicies responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListDataPoliciesResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: ListDataPolicies tags: - DataPoliciesService /processing-platforms: get: description: Lists all configured processing platforms. operationId: ProcessingPlatformsService_ListProcessingPlatforms responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListProcessingPlatformsResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: ListProcessingPlatforms tags: - ProcessingPlatformsService /processing-platforms/{platformId}/groups: get: description: Lists all available user groups for the given platform. operationId: ProcessingPlatformsService_ListGroups parameters: - in: path name: platformId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListGroupsResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: ListGroups tags: - ProcessingPlatformsService /processing-platforms/{platformId}/tables: get: description: Lists all available table names for the given platform. operationId: ProcessingPlatformsService_ListTables parameters: - in: path name: platformId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListTablesResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: ListTables tags: - ProcessingPlatformsService /processing-platforms/{platformId}/tables/{tableId}/bare-policy: get: description: "Returns a data policy without any rule sets, based on the given\ \ table's data structure in the platform.\n Extend this bare policy with field\ \ transforms and/or rule sets to create a complete data policy.\n Use the\ \ UpsertDataPolicy endpoint to save and enforce the policy." operationId: ProcessingPlatformsService_GetBarePolicy parameters: - in: path name: platformId required: true schema: type: string - in: path name: tableId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/GetBarePolicyResponse' description: OK default: content: application/json: schema: $ref: '#/components/schemas/Status' description: Default error response summary: GetBarePolicy tags: - ProcessingPlatformsService tags: - name: DataCatalogsService - name: DataPoliciesService - name: ProcessingPlatformsService