openapi: 3.0.0 info: title: aserto//v2/.proto Authorizer directory API version: version not set security: - AuthorizerAPIKey: [] TenantID: [] tags: - name: directory paths: /api/v3/directory/assertion: post: description: Set assertion. operationId: directory.assertion.v3.assertion.set requestBody: content: application/json: schema: $ref: '#/components/schemas/v3SetAssertionRequest' required: true responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3SetAssertionResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Set assertion tags: - directory /api/v3/directory/assertion/{id}: delete: description: Delete assertion. operationId: directory.assertion.v3.assertion.delete parameters: - description: assertion identifier in: path name: id required: true schema: type: integer format: int64 responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3DeleteAssertionResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Delete assertion tags: - directory get: description: Returns single assertion instance. operationId: directory.assertion.v3.assertion.get parameters: - description: assertion identifier in: path name: id required: true schema: type: integer format: int64 responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3GetAssertionResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Get assertion instance tags: - directory /api/v3/directory/assertions: get: description: Returns list of assertion instances. operationId: directory.assertion.v3.assertions.list parameters: - description: requested page size, valid value between 1-100 rows (default 100) in: query name: page.size required: false schema: type: integer format: int32 - description: pagination start token, default "" in: query name: page.token required: false schema: type: string responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3ListAssertionsResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: List assertions tags: - directory /api/v3/directory/check: post: description: Returns check outcome. operationId: directory.reader.v3.check requestBody: content: application/json: schema: $ref: '#/components/schemas/v3CheckRequest' required: true responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3CheckResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Check tags: - directory /api/v3/directory/check/permission: post: deprecated: true description: Returns check permission outcome. operationId: directory.reader.v3.check.permission requestBody: content: application/json: schema: $ref: '#/components/schemas/v3CheckPermissionRequest' required: true responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3CheckPermissionResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Check permission tags: - directory /api/v3/directory/check/relation: post: deprecated: true description: Returns check relation outcome. operationId: directory.reader.v3.check.relation requestBody: content: application/json: schema: $ref: '#/components/schemas/v3CheckRelationRequest' required: true responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3CheckRelationResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Check relation tags: - directory /api/v3/directory/checks: post: description: Returns multiple check outcomes. operationId: directory.reader.v3.checks requestBody: content: application/json: schema: $ref: '#/components/schemas/v3ChecksRequest' required: true responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3ChecksResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Checks tags: - directory /api/v3/directory/graph/{object_type}/{relation}/{subject_type}: get: description: Returns object graph from anchor to subject or object. operationId: directory.reader.v3.graph parameters: - description: object type in: path name: object_type required: true schema: type: string - description: relation name in: path name: relation required: true schema: type: string - description: subject type in: path name: subject_type required: true schema: type: string - description: object identifier in: query name: object_id required: false schema: type: string - description: subject identifier in: query name: subject_id required: false schema: type: string - description: subject relation in: query name: subject_relation required: false schema: type: string - description: return graph paths for each result in: query name: explain required: false schema: type: boolean - description: collect trace information in: query name: trace required: false schema: type: boolean responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3GetGraphResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Get graph tags: - directory /api/v3/directory/manifest: delete: description: Delete manifest. operationId: directory.model.v3.manifest.delete parameters: - description: empty request in: query name: empty required: false schema: type: object responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3DeleteManifestResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Delete manifest tags: - directory /api/v3/directory/object: post: description: Set object. operationId: directory.writer.v3.object.set requestBody: content: application/json: schema: $ref: '#/components/schemas/v3SetObjectRequest' required: true responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3SetObjectResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Set object tags: - directory /api/v3/directory/object/{object_type}/{object_id}: delete: description: Delete object. operationId: directory.writer.v3.object.delete parameters: - description: object type in: path name: object_type required: true schema: type: string - description: object identifier in: path name: object_id required: true schema: type: string - description: delete object relations, both object and subject relations. in: query name: with_relations required: false schema: type: boolean responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3DeleteObjectResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Delete object tags: - directory get: description: Returns single object instance, optionally with relations. operationId: directory.reader.v3.object.get parameters: - description: object type name (lc-string) in: path name: object_type required: true schema: type: string - description: object identifier (cs-string) in: path name: object_id required: true schema: type: string - description: materialize the object relations objects in: query name: with_relations required: false schema: type: boolean - description: requested page size, valid value between 1-100 rows (default 100) in: query name: page.size required: false schema: type: integer format: int32 - description: pagination start token, default "" in: query name: page.token required: false schema: type: string responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3GetObjectResponse' '304': description: Object not modified. content: application/json: schema: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Get object instance tags: - directory /api/v3/directory/objects: get: description: Returns list of object instances. operationId: directory.reader.v3.objects.list parameters: - description: object type name (lc-string) in: query name: object_type required: false schema: type: string - description: requested page size, valid value between 1-100 rows (default 100) in: query name: page.size required: false schema: type: integer format: int32 - description: pagination start token, default "" in: query name: page.token required: false schema: type: string responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3GetObjectsResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: List object instances tags: - directory /api/v3/directory/relation: delete: description: Delete relation. operationId: directory.writer.v3.relation.delete parameters: - description: object type in: query name: object_type required: true schema: type: string - description: object identifier in: query name: object_id required: true schema: type: string - description: object relation name in: query name: relation required: true schema: type: string - description: subject type in: query name: subject_type required: true schema: type: string - description: subject identifier in: query name: subject_id required: true schema: type: string - description: optional subject relation name in: query name: subject_relation required: false schema: type: string responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3DeleteRelationResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Delete relation tags: - directory get: description: Returns single relation instance, optionally with objects. operationId: directory.reader.v3.relation.get parameters: - description: object type in: query name: object_type required: true schema: type: string - description: object identifier in: query name: object_id required: true schema: type: string - description: relation name in: query name: relation required: true schema: type: string - description: subject type in: query name: subject_type required: true schema: type: string - description: subject identifier in: query name: subject_id required: true schema: type: string - description: optional subject relation name in: query name: subject_relation required: false schema: type: string - description: materialize relation objects in: query name: with_objects required: false schema: type: boolean responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3GetRelationResponse' '304': description: Relation not modified. content: application/json: schema: {} default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Get relation instance tags: - directory post: description: Set relation. operationId: directory.writer.v3.relation.set requestBody: content: application/json: schema: $ref: '#/components/schemas/v3SetRelationRequest' required: true responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3SetRelationResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: Set relation tags: - directory /api/v3/directory/relations: get: description: Returns list of relation instances. operationId: directory.reader.v3.relations.list parameters: - description: object type in: query name: object_type required: false schema: type: string - description: object identifier in: query name: object_id required: false schema: type: string - description: relation name in: query name: relation required: false schema: type: string - description: subject type in: query name: subject_type required: false schema: type: string - description: subject identifier in: query name: subject_id required: false schema: type: string - description: optional subject relation name in: query name: subject_relation required: false schema: type: string - description: materialize relation objects in: query name: with_objects required: false schema: type: boolean - description: only return relations that do not have a subject relation. in: query name: with_empty_subject_relation required: false schema: type: boolean - description: requested page size, valid value between 1-100 rows (default 100) in: query name: page.size required: false schema: type: integer format: int32 - description: pagination start token, default "" in: query name: page.token required: false schema: type: string responses: '200': description: A successful response. content: application/json: schema: $ref: '#/components/schemas/v3GetRelationsResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/rpcStatus' security: - DirectoryAPIKey: [] TenantID: [] summary: List relations instances tags: - directory components: schemas: v3SetAssertionRequest: properties: assert: $ref: '#/components/schemas/v3Assert' required: - assert type: object v3Object: properties: created_at: format: date-time readOnly: true title: created at timestamp (UTC) type: string display_name: title: display name object type: string etag: title: object instance etag type: string id: title: external object identifier (cs-string, no spaces or tabs) type: string properties: title: property bag type: object type: title: object type name type: string updated_at: format: date-time readOnly: true title: last updated timestamp (UTC) type: string required: - type - id type: object v3DeleteObjectResponse: properties: result: properties: {} title: empty result type: object type: object v3CheckResponse: properties: check: title: check result type: boolean context: title: context type: object trace: items: type: string title: trace information type: array type: object v3CheckRequest: properties: object_id: title: object identifier type: string object_type: title: object type type: string relation: title: relation name type: string subject_id: title: subject identifier type: string subject_type: title: subject type type: string trace: title: collect trace information type: boolean required: - object_type - object_id - relation - subject_type - subject_id type: object v3GetAssertionResponse: properties: result: $ref: '#/components/schemas/v3Assert' type: object v3SetRelationRequest: properties: relation: $ref: '#/components/schemas/v3Relation' required: - relation type: object v3Relation: properties: created_at: format: date-time readOnly: true title: created at timestamp (UTC) type: string etag: title: object instance etag type: string object_id: title: object identifier type: string object_type: title: object type type: string relation: title: object relation name type: string subject_id: title: subject identifier type: string subject_relation: title: optional subject relation name type: string subject_type: title: subject type type: string updated_at: format: date-time readOnly: true title: last updated timestamp (UTC) type: string required: - object_type - object_id - relation - subject_type - subject_id type: object v3DeleteAssertionResponse: properties: result: properties: {} title: empty result type: object type: object v3Assert: properties: check: $ref: '#/components/schemas/v3CheckRequest' check_permission: $ref: '#/components/schemas/v3CheckPermissionRequest' check_relation: $ref: '#/components/schemas/v3CheckRelationRequest' description: title: description type: string expected: title: expected outcome of assertion type: boolean id: format: int64 title: assertion identifier type: integer required: - expected type: object protobufAny: additionalProperties: {} properties: '@type': type: string type: object v3ChecksRequest: properties: checks: items: $ref: '#/components/schemas/v3CheckRequest' type: array default: $ref: '#/components/schemas/v3CheckRequest' title: EXPERIMENTAL type: object v3ListAssertionsResponse: properties: page: $ref: '#/components/schemas/v3PaginationResponse' results: items: $ref: '#/components/schemas/v3Assert' type: array type: object v3CheckRelationResponse: properties: check: title: check result type: boolean trace: items: type: string title: trace information type: array type: object v3CheckPermissionResponse: properties: check: title: check result type: boolean trace: items: type: string title: trace information type: array type: object v3DeleteManifestResponse: properties: result: properties: {} title: empty result type: object type: object v3SetRelationResponse: properties: result: $ref: '#/components/schemas/v3Relation' type: object v3SetObjectResponse: properties: result: $ref: '#/components/schemas/v3Object' type: object v3GetObjectResponse: properties: page: $ref: '#/components/schemas/v3PaginationResponse' relations: items: $ref: '#/components/schemas/v3Relation' title: object relations type: array result: $ref: '#/components/schemas/v3Object' type: object v3GetGraphResponse: properties: explanation: title: explanation of results type: object results: items: $ref: '#/components/schemas/v3ObjectIdentifier' title: matching object identifiers type: array trace: items: type: string title: trace information type: array type: object v3ChecksResponse: properties: checks: items: $ref: '#/components/schemas/v3CheckResponse' type: array title: EXPERIMENTAL type: object v3SetObjectRequest: properties: object: $ref: '#/components/schemas/v3Object' required: - object type: object v3GetRelationsResponse: properties: objects: additionalProperties: $ref: '#/components/schemas/v3Object' title: map of materialized relation objects type: object page: $ref: '#/components/schemas/v3PaginationResponse' results: items: $ref: '#/components/schemas/v3Relation' title: array of relation instances type: array type: object rpcStatus: properties: code: format: int32 type: integer details: items: $ref: '#/components/schemas/protobufAny' type: array message: type: string type: object v3PaginationResponse: properties: next_token: readOnly: true title: next page token, when empty there are no more pages to fetch type: string title: Pagination response type: object v3GetRelationResponse: properties: objects: additionalProperties: $ref: '#/components/schemas/v3Object' title: map of materialized relation objects type: object result: $ref: '#/components/schemas/v3Relation' type: object v3CheckRelationRequest: properties: object_id: title: object identifier type: string object_type: title: object type type: string relation: title: relation name type: string subject_id: title: subject identifier type: string subject_type: title: subject type type: string trace: title: collect trace information type: boolean required: - object_type - object_id - relation - subject_type - subject_id type: object v3SetAssertionResponse: properties: result: $ref: '#/components/schemas/v3Assert' type: object v3ObjectIdentifier: properties: object_id: title: object identifier (cs-string) type: string object_type: title: object type (lc-string) type: string required: - object_type - object_id title: Object identifier type: object v3DeleteRelationResponse: properties: result: properties: {} title: empty result type: object type: object v3GetObjectsResponse: properties: page: $ref: '#/components/schemas/v3PaginationResponse' results: items: $ref: '#/components/schemas/v3Object' title: array of object instances type: array type: object v3CheckPermissionRequest: properties: object_id: title: object identifier type: string object_type: title: object type type: string permission: title: permission name type: string subject_id: title: subject identifier type: string subject_type: title: subject type type: string trace: title: collect trace information type: boolean required: - object_type - object_id - permission - subject_type - subject_id type: object securitySchemes: AuthorizerAPIKey: in: header name: authorization type: apiKey TenantID: in: header name: aserto-tenant-id type: apiKey