# Protocol Documentation
## Table of Contents
- [ory/keto/opl/v1alpha1/syntax_service.proto](#ory_keto_opl_v1alpha1_syntax_service-proto)
- [CheckRequest](#ory-keto-opl-v1alpha1-CheckRequest)
- [CheckResponse](#ory-keto-opl-v1alpha1-CheckResponse)
- [ParseError](#ory-keto-opl-v1alpha1-ParseError)
- [SourcePosition](#ory-keto-opl-v1alpha1-SourcePosition)
- [SyntaxService](#ory-keto-opl-v1alpha1-SyntaxService)
- [ory/keto/relation_tuples/v1alpha2/relation_tuples.proto](#ory_keto_relation_tuples_v1alpha2_relation_tuples-proto)
- [RelationQuery](#ory-keto-relation_tuples-v1alpha2-RelationQuery)
- [RelationTuple](#ory-keto-relation_tuples-v1alpha2-RelationTuple)
- [Subject](#ory-keto-relation_tuples-v1alpha2-Subject)
- [SubjectSet](#ory-keto-relation_tuples-v1alpha2-SubjectSet)
- [ory/keto/relation_tuples/v1alpha2/check_service.proto](#ory_keto_relation_tuples_v1alpha2_check_service-proto)
- [BatchCheckRequest](#ory-keto-relation_tuples-v1alpha2-BatchCheckRequest)
- [BatchCheckResponse](#ory-keto-relation_tuples-v1alpha2-BatchCheckResponse)
- [CheckRequest](#ory-keto-relation_tuples-v1alpha2-CheckRequest)
- [CheckResponse](#ory-keto-relation_tuples-v1alpha2-CheckResponse)
- [CheckResponseWithError](#ory-keto-relation_tuples-v1alpha2-CheckResponseWithError)
- [CheckService](#ory-keto-relation_tuples-v1alpha2-CheckService)
- [ory/keto/relation_tuples/v1alpha2/expand_service.proto](#ory_keto_relation_tuples_v1alpha2_expand_service-proto)
- [ExpandRequest](#ory-keto-relation_tuples-v1alpha2-ExpandRequest)
- [ExpandResponse](#ory-keto-relation_tuples-v1alpha2-ExpandResponse)
- [SubjectTree](#ory-keto-relation_tuples-v1alpha2-SubjectTree)
- [NodeType](#ory-keto-relation_tuples-v1alpha2-NodeType)
- [ExpandService](#ory-keto-relation_tuples-v1alpha2-ExpandService)
- [ory/keto/relation_tuples/v1alpha2/namespaces_service.proto](#ory_keto_relation_tuples_v1alpha2_namespaces_service-proto)
- [ListNamespacesRequest](#ory-keto-relation_tuples-v1alpha2-ListNamespacesRequest)
- [ListNamespacesResponse](#ory-keto-relation_tuples-v1alpha2-ListNamespacesResponse)
- [Namespace](#ory-keto-relation_tuples-v1alpha2-Namespace)
- [NamespacesService](#ory-keto-relation_tuples-v1alpha2-NamespacesService)
- [ory/keto/relation_tuples/v1alpha2/read_service.proto](#ory_keto_relation_tuples_v1alpha2_read_service-proto)
- [ListRelationTuplesRequest](#ory-keto-relation_tuples-v1alpha2-ListRelationTuplesRequest)
- [ListRelationTuplesRequest.Query](#ory-keto-relation_tuples-v1alpha2-ListRelationTuplesRequest-Query)
- [ListRelationTuplesResponse](#ory-keto-relation_tuples-v1alpha2-ListRelationTuplesResponse)
- [ReadService](#ory-keto-relation_tuples-v1alpha2-ReadService)
- [ory/keto/relation_tuples/v1alpha2/version.proto](#ory_keto_relation_tuples_v1alpha2_version-proto)
- [GetVersionRequest](#ory-keto-relation_tuples-v1alpha2-GetVersionRequest)
- [GetVersionResponse](#ory-keto-relation_tuples-v1alpha2-GetVersionResponse)
- [VersionService](#ory-keto-relation_tuples-v1alpha2-VersionService)
- [ory/keto/relation_tuples/v1alpha2/write_service.proto](#ory_keto_relation_tuples_v1alpha2_write_service-proto)
- [DeleteRelationTuplesRequest](#ory-keto-relation_tuples-v1alpha2-DeleteRelationTuplesRequest)
- [DeleteRelationTuplesRequest.Query](#ory-keto-relation_tuples-v1alpha2-DeleteRelationTuplesRequest-Query)
- [DeleteRelationTuplesResponse](#ory-keto-relation_tuples-v1alpha2-DeleteRelationTuplesResponse)
- [RelationTupleDelta](#ory-keto-relation_tuples-v1alpha2-RelationTupleDelta)
- [TransactRelationTuplesRequest](#ory-keto-relation_tuples-v1alpha2-TransactRelationTuplesRequest)
- [TransactRelationTuplesResponse](#ory-keto-relation_tuples-v1alpha2-TransactRelationTuplesResponse)
- [RelationTupleDelta.Action](#ory-keto-relation_tuples-v1alpha2-RelationTupleDelta-Action)
- [WriteService](#ory-keto-relation_tuples-v1alpha2-WriteService)
- [Scalar Value Types](#scalar-value-types)
Top
## ory/keto/opl/v1alpha1/syntax_service.proto
### CheckRequest
| Field | Type | Label | Description |
| ------- | --------------- | ----- | ----------- |
| content | [bytes](#bytes) | | |
### CheckResponse
| Field | Type | Label | Description |
| ------------ | ----------------------------------------------- | -------- | ----------- |
| parse_errors | [ParseError](#ory-keto-opl-v1alpha1-ParseError) | repeated | |
### ParseError
| Field | Type | Label | Description |
| ------- | ------------------------------------------------------- | ----- | ----------- |
| message | [string](#string) | | |
| start | [SourcePosition](#ory-keto-opl-v1alpha1-SourcePosition) | | |
| end | [SourcePosition](#ory-keto-opl-v1alpha1-SourcePosition) | | |
### SourcePosition
| Field | Type | Label | Description |
| ------ | ----------------- | ----- | ----------- |
| line | [uint32](#uint32) | | |
| column | [uint32](#uint32) | | |
### SyntaxService
The service that checks the syntax of an OPL file.
| Method Name | Request Type | Response Type | Description |
| ----------- | --------------------------------------------------- | ----------------------------------------------------- | -------------------------------- |
| Check | [CheckRequest](#ory-keto-opl-v1alpha1-CheckRequest) | [CheckResponse](#ory-keto-opl-v1alpha1-CheckResponse) | Performs a syntax check request. |
Top
## ory/keto/relation_tuples/v1alpha2/relation_tuples.proto
### RelationQuery
The query for listing relationships. Clients can specify any optional field to
partially filter for specific relationships.
Example use cases (namespace is always required):
- object only: display a list of all permissions referring to a specific object
- relation only: get all groups that have members; get all directories that have
content
- object & relation: display all subjects that have a specific permission
relation
- subject & relation: display all groups a subject belongs to; display all
objects a subject has access to
- object & relation & subject: check whether the relation tuple already exists
| Field | Type | Label | Description |
| --------- | ----------------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| namespace | [string](#string) | optional | The namespace this relation tuple lives in. |
| object | [string](#string) | optional | The object related by this tuple.
It is an object in the namespace of the tuple. |
| relation | [string](#string) | optional | The relation between an Object and a Subject. |
| subject | [Subject](#ory-keto-relation_tuples-v1alpha2-Subject) | optional | The subject related by this tuple.
A Subject either represents a concrete subject id or
a `SubjectSet` that expands to more Subjects. |
### RelationTuple
RelationTuple defines a relation between an Object and a Subject.
| Field | Type | Label | Description |
| --------- | ----------------------------------------------------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| namespace | [string](#string) | | The namespace this relation tuple lives in. |
| object | [string](#string) | | The object related by this tuple.
It is an object in the namespace of the tuple. |
| relation | [string](#string) | | The relation between an Object and a Subject. |
| subject | [Subject](#ory-keto-relation_tuples-v1alpha2-Subject) | | The subject related by this tuple.
A Subject either represents a concrete subject id or
a `SubjectSet` that expands to more Subjects. |
### Subject
Subject is either a concrete subject id or a `SubjectSet` expanding to more
Subjects.
| Field | Type | Label | Description |
| ----- | ----------------------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------ |
| id | [string](#string) | | A concrete id of the subject. |
| set | [SubjectSet](#ory-keto-relation_tuples-v1alpha2-SubjectSet) | | A subject set that expands to more Subjects.
More information are available under [concepts](../concepts/15_subjects.mdx). |
### SubjectSet
SubjectSet refers to all subjects who have the same `relation` on an `object`.
| Field | Type | Label | Description |
| --------- | ----------------- | ----- | ---------------------------------------------------------------------------- |
| namespace | [string](#string) | | The namespace of the object and relation
referenced in this subject set. |
| object | [string](#string) | | The object related by this subject set. |
| relation | [string](#string) | | The relation between the object and the subjects. |
Top
## ory/keto/relation_tuples/v1alpha2/check_service.proto
### BatchCheckRequest
The request for a CheckService.BatchCheck RPC. Checks a batch of relations.
| Field | Type | Label | Description |
| --------- | ----------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| tuples | [RelationTuple](#ory-keto-relation_tuples-v1alpha2-RelationTuple) | repeated | |
| latest | [bool](#bool) | | This field is not implemented yet and has no effect.
|
| snaptoken | [string](#string) | | This field is not implemented yet and has no effect.
|
| max_depth | [int32](#int32) | | The maximum depth to search for a relation.
If the value is less than 1 or greater than the global
max-depth then the global max-depth will be used instead. |
### BatchCheckResponse
The response for a CheckService.BatchCheck rpc.
| Field | Type | Label | Description |
| ------- | ----------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------- |
| results | [CheckResponseWithError](#ory-keto-relation_tuples-v1alpha2-CheckResponseWithError) | repeated | The results of the batch check. The order of these
results will match the order of the input. |
### CheckRequest
The request for a CheckService.Check RPC. Checks whether a specific subject is
related to an object.
| Field | Type | Label | Description |
| --------- | ----------------------------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| namespace | [string](#string) | | **Deprecated.** The namespace to evaluate the check.
Note: If you use the expand-API and the check
evaluates a RelationTuple specifying a SubjectSet as
subject or due to a rewrite rule in a namespace config
this check request may involve other namespaces automatically. |
| object | [string](#string) | | **Deprecated.** The related object in this check. |
| relation | [string](#string) | | **Deprecated.** The relation between the Object and the Subject. |
| subject | [Subject](#ory-keto-relation_tuples-v1alpha2-Subject) | | **Deprecated.** The related subject in this check. |
| tuple | [RelationTuple](#ory-keto-relation_tuples-v1alpha2-RelationTuple) | | |
| latest | [bool](#bool) | | This field is not implemented yet and has no effect.
|
| snaptoken | [string](#string) | | This field is not implemented yet and has no effect.
|
| max_depth | [int32](#int32) | | The maximum depth to search for a relation.
If the value is less than 1 or greater than the global
max-depth then the global max-depth will be used instead. |
### CheckResponse
The response for a CheckService.Check rpc.
| Field | Type | Label | Description |
| --------- | ----------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| allowed | [bool](#bool) | | Whether the specified subject (id)
is related to the requested object.
It is false by default if no ACL matches. |
| snaptoken | [string](#string) | | This field is not implemented yet and has no effect.
|
### CheckResponseWithError
The response for an individual check in the CheckService.BatchCheck rpc.
| Field | Type | Label | Description |
| --------- | ----------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| allowed | [bool](#bool) | | Whether the specified subject (id)
is related to the requested object.
It is false by default if no ACL matches. |
| error | [string](#string) | | If there was an error checking the tuple,
this will contain the error message.
If the check was performed successfully, this will be empty. |
| snaptoken | [string](#string) | | This field is not implemented yet and has no effect.
|
### CheckService
The service that performs authorization checks based on the stored Access
Control Lists.
This service is part of the
[read-APIs](../concepts/25_api-overview.mdx#read-apis).
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -------------------------------- |
| Check | [CheckRequest](#ory-keto-relation_tuples-v1alpha2-CheckRequest) | [CheckResponse](#ory-keto-relation_tuples-v1alpha2-CheckResponse) | Performs an authorization check. |
| BatchCheck | [BatchCheckRequest](#ory-keto-relation_tuples-v1alpha2-BatchCheckRequest) | [BatchCheckResponse](#ory-keto-relation_tuples-v1alpha2-BatchCheckResponse) | |
Top
## ory/keto/relation_tuples/v1alpha2/expand_service.proto
### ExpandRequest
The request for an ExpandService.Expand RPC. Expands the given subject set.
| Field | Type | Label | Description |
| --------- | ----------------------------------------------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| subject | [Subject](#ory-keto-relation_tuples-v1alpha2-Subject) | | The subject to expand. |
| max_depth | [int32](#int32) | | The maximum depth of tree to build.
If the value is less than 1 or greater than the global
max-depth then the global max-depth will be used instead.
It is important to set this parameter to a meaningful
value. Ponder how deep you really want to display this. |
| snaptoken | [string](#string) | | This field is not implemented yet and has no effect.
|
### ExpandResponse
The response for a ExpandService.Expand RPC.
| Field | Type | Label | Description |
| ----- | ------------------------------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| tree | [SubjectTree](#ory-keto-relation_tuples-v1alpha2-SubjectTree) | | The tree the requested subject set expands to.
The requested subject set is the subject of the root.
This field can be nil in some circumstances. |
### SubjectTree
| Field | Type | Label | Description |
| --------- | ----------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------- |
| node_type | [NodeType](#ory-keto-relation_tuples-v1alpha2-NodeType) | | The type of the node. |
| subject | [Subject](#ory-keto-relation_tuples-v1alpha2-Subject) | | **Deprecated.** The subject this node represents.
Deprecated: More information is now available in the tuple field. |
| tuple | [RelationTuple](#ory-keto-relation_tuples-v1alpha2-RelationTuple) | | The relation tuple this node represents. |
| children | [SubjectTree](#ory-keto-relation_tuples-v1alpha2-SubjectTree) | repeated | The children of this node.
This is never set if `node_type` == `NODE_TYPE_LEAF`. |
### NodeType
| Name | Number | Description |
| ---------------------- | ------ | -------------------------------------------------------------------------------------------------------------- |
| NODE_TYPE_UNSPECIFIED | 0 | |
| NODE_TYPE_UNION | 1 | This node expands to a union of all children. |
| NODE_TYPE_EXCLUSION | 2 | Not implemented yet. |
| NODE_TYPE_INTERSECTION | 3 | Not implemented yet. |
| NODE_TYPE_LEAF | 4 | This node is a leaf and contains no children.
Its subject is a `SubjectID` unless `max_depth` was reached. |
### ExpandService
The service that performs subject set expansion based on the stored Access
Control Lists.
This service is part of the
[read-APIs](../concepts/25_api-overview.mdx#read-apis).
| Method Name | Request Type | Response Type | Description |
| ----------- | ----------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------ |
| Expand | [ExpandRequest](#ory-keto-relation_tuples-v1alpha2-ExpandRequest) | [ExpandResponse](#ory-keto-relation_tuples-v1alpha2-ExpandResponse) | Expands the subject set into a tree of subjects. |
Top
## ory/keto/relation_tuples/v1alpha2/namespaces_service.proto
### ListNamespacesRequest
Request for ReadService.ListNamespaces RPC.
### ListNamespacesResponse
| Field | Type | Label | Description |
| ---------- | --------------------------------------------------------- | -------- | ----------- |
| namespaces | [Namespace](#ory-keto-relation_tuples-v1alpha2-Namespace) | repeated | |
### Namespace
| Field | Type | Label | Description |
| ----- | ----------------- | ----- | ----------- |
| name | [string](#string) | | |
### NamespacesService
The service to query namespaces.
This service is part of the
[read-APIs](../concepts/25_api-overview.mdx#read-apis).
| Method Name | Request Type | Response Type | Description |
| -------------- | --------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ---------------- |
| ListNamespaces | [ListNamespacesRequest](#ory-keto-relation_tuples-v1alpha2-ListNamespacesRequest) | [ListNamespacesResponse](#ory-keto-relation_tuples-v1alpha2-ListNamespacesResponse) | Lists Namespaces |
Top
## ory/keto/relation_tuples/v1alpha2/read_service.proto
### ListRelationTuplesRequest
Request for ReadService.ListRelationTuples RPC. See
`ListRelationTuplesRequest_Query` for how to filter the query.
| Field | Type | Label | Description |
| -------------- | ----------------------------------------------------------------------------------------------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| query | [ListRelationTuplesRequest.Query](#ory-keto-relation_tuples-v1alpha2-ListRelationTuplesRequest-Query) | | **Deprecated.** All query constraints are concatenated
with a logical AND operator.
The RelationTuple list from ListRelationTuplesResponse
is ordered from the newest RelationTuple to the oldest. |
| relation_query | [RelationQuery](#ory-keto-relation_tuples-v1alpha2-RelationQuery) | | |
| expand_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | This field is not implemented yet and has no effect.
|
| snaptoken | [string](#string) | | This field is not implemented yet and has no effect.
|
| page_size | [int32](#int32) | | Optional. The maximum number of
RelationTuples to return in the response.
Default: 100 |
| page_token | [string](#string) | | Optional. An opaque pagination token returned from
a previous call to `ListRelationTuples` that
indicates where the page should start at.
An empty token denotes the first page. All successive
pages require the token from the previous page. |
### ListRelationTuplesRequest.Query
The query for listing relationships. Clients can specify any optional field to
partially filter for specific relationships.
Example use cases (namespace is always required):
- object only: display a list of all permissions referring to a specific object
- relation only: get all groups that have members; get all directories that have
content
- object & relation: display all subjects that have a specific permission
relation
- subject & relation: display all groups a subject belongs to; display all
objects a subject has access to
- object & relation & subject: check whether the relation tuple already exists
| Field | Type | Label | Description |
| --------- | ----------------------------------------------------- | ----- | ------------------------------------ |
| namespace | [string](#string) | | Required. The namespace to query. |
| object | [string](#string) | | Optional. The object to query for. |
| relation | [string](#string) | | Optional. The relation to query for. |
| subject | [Subject](#ory-keto-relation_tuples-v1alpha2-Subject) | | Optional. The subject to query for. |
### ListRelationTuplesResponse
The response of a ReadService.ListRelationTuples RPC.
| Field | Type | Label | Description |
| --------------- | ----------------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------- |
| relation_tuples | [RelationTuple](#ory-keto-relation_tuples-v1alpha2-RelationTuple) | repeated | The relationships matching the list request. |
| next_page_token | [string](#string) | | The token required to get the next page.
If this is the last page, the token will be the empty string. |
### ReadService
The service to query relationships.
This service is part of the
[read-APIs](../concepts/25_api-overview.mdx#read-apis).
| Method Name | Request Type | Response Type | Description |
| ------------------ | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------ |
| ListRelationTuples | [ListRelationTuplesRequest](#ory-keto-relation_tuples-v1alpha2-ListRelationTuplesRequest) | [ListRelationTuplesResponse](#ory-keto-relation_tuples-v1alpha2-ListRelationTuplesResponse) | Lists ACL relationships. |
Top
## ory/keto/relation_tuples/v1alpha2/version.proto
### GetVersionRequest
Request for the VersionService.GetVersion RPC.
### GetVersionResponse
Response of the VersionService.GetVersion RPC.
| Field | Type | Label | Description |
| ------- | ----------------- | ----- | -------------------------------------------- |
| version | [string](#string) | | The version string of the Ory Keto instance. |
### VersionService
The service returning the specific Ory Keto instance version.
This service is part of the
[read-APIs](../concepts/25_api-overview.mdx#read-apis) and
[write-APIs](../concepts/25_api-overview.mdx#write-apis).
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------- |
| GetVersion | [GetVersionRequest](#ory-keto-relation_tuples-v1alpha2-GetVersionRequest) | [GetVersionResponse](#ory-keto-relation_tuples-v1alpha2-GetVersionResponse) | Returns the version of the Ory Keto instance. |
Top
## ory/keto/relation_tuples/v1alpha2/write_service.proto
### DeleteRelationTuplesRequest
| Field | Type | Label | Description |
| -------------- | --------------------------------------------------------------------------------------------------------- | ----- | --------------- |
| query | [DeleteRelationTuplesRequest.Query](#ory-keto-relation_tuples-v1alpha2-DeleteRelationTuplesRequest-Query) | | **Deprecated.** |
| relation_query | [RelationQuery](#ory-keto-relation_tuples-v1alpha2-RelationQuery) | | |
### DeleteRelationTuplesRequest.Query
The query for deleting relationships
| Field | Type | Label | Description |
| --------- | ----------------------------------------------------- | ----- | ------------------------------------ |
| namespace | [string](#string) | | Optional. The namespace to query. |
| object | [string](#string) | | Optional. The object to query for. |
| relation | [string](#string) | | Optional. The relation to query for. |
| subject | [Subject](#ory-keto-relation_tuples-v1alpha2-Subject) | | Optional. The subject to query for. |
### DeleteRelationTuplesResponse
### RelationTupleDelta
Write-delta for a TransactRelationTuplesRequest.
| Field | Type | Label | Description |
| -------------- | ----------------------------------------------------------------------------------------- | ----- | -------------------------------------- |
| action | [RelationTupleDelta.Action](#ory-keto-relation_tuples-v1alpha2-RelationTupleDelta-Action) | | The action to do on the RelationTuple. |
| relation_tuple | [RelationTuple](#ory-keto-relation_tuples-v1alpha2-RelationTuple) | | The target RelationTuple. |
### TransactRelationTuplesRequest
The request of a WriteService.TransactRelationTuples RPC.
| Field | Type | Label | Description |
| --------------------- | --------------------------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| relation_tuple_deltas | [RelationTupleDelta](#ory-keto-relation_tuples-v1alpha2-RelationTupleDelta) | repeated | The write delta for the relationships operated in one single transaction.
Either all actions succeed or no change takes effect on error. |
### TransactRelationTuplesResponse
The response of a WriteService.TransactRelationTuples rpc.
| Field | Type | Label | Description |
| ---------- | ----------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| snaptokens | [string](#string) | repeated | This field is not implemented yet and has no effect.
|
### RelationTupleDelta.Action
| Name | Number | Description |
| ------------------ | ------ | ------------------------------------------------------------------------------------------------------------------- |
| ACTION_UNSPECIFIED | 0 | Unspecified.
The `TransactRelationTuples` RPC ignores this
RelationTupleDelta if an action was unspecified. |
| ACTION_INSERT | 1 | Insertion of a new RelationTuple. |
| ACTION_DELETE | 2 | Deletion of the RelationTuple.
It is ignored if it does not exist. |
### WriteService
The write service to create and delete Access Control Lists.
This service is part of the
[write-APIs](../concepts/25_api-overview.mdx#write-apis).
| Method Name | Request Type | Response Type | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| TransactRelationTuples | [TransactRelationTuplesRequest](#ory-keto-relation_tuples-v1alpha2-TransactRelationTuplesRequest) | [TransactRelationTuplesResponse](#ory-keto-relation_tuples-v1alpha2-TransactRelationTuplesResponse) | Writes one or more relationships in a single transaction. |
| DeleteRelationTuples | [DeleteRelationTuplesRequest](#ory-keto-relation_tuples-v1alpha2-DeleteRelationTuplesRequest) | [DeleteRelationTuplesResponse](#ory-keto-relation_tuples-v1alpha2-DeleteRelationTuplesResponse) | Deletes relationships based on relation query |
## Scalar Value Types
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ---------- | ----------- | ------- | ---------- | -------------- | ------------------------------ |
| double | | double | double | float | float64 | double | float | Float |
| float | | float | float | float | float32 | float | float | Float |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |