Aserto directory API
The directory API from Aserto — 14 operation(s) for directory.
The directory API from Aserto — 14 operation(s) for directory.
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