diff --git a/docs/AttributeType.md b/docs/AttributeType.md index 2927d2e..72ad213 100644 --- a/docs/AttributeType.md +++ b/docs/AttributeType.md @@ -1,6 +1,6 @@ # AttributeType -Enumerates the types of attribute. - ATTRIBUTE_TYPE_UNSPECIFIED: Not specified attribute type. This is the default value. - ATTRIBUTE_TYPE_BOOLEAN: A boolean attribute type. - ATTRIBUTE_TYPE_BOOLEAN_ARRAY: A boolean array attribute type. - ATTRIBUTE_TYPE_STRING: A string attribute type. - ATTRIBUTE_TYPE_STRING_ARRAY: A string array attribute type. - ATTRIBUTE_TYPE_INTEGER: An integer attribute type. - ATTRIBUTE_TYPE_INTEGER_ARRAY: An integer array attribute type. - ATTRIBUTE_TYPE_DOUBLE: A double attribute type. - ATTRIBUTE_TYPE_DOUBLE_ARRAY: A double array attribute type. +Enumerates the types of attribute. - ATTRIBUTE_TYPE_BOOLEAN: A boolean attribute type. - ATTRIBUTE_TYPE_BOOLEAN_ARRAY: A boolean array attribute type. - ATTRIBUTE_TYPE_STRING: A string attribute type. - ATTRIBUTE_TYPE_STRING_ARRAY: A string array attribute type. - ATTRIBUTE_TYPE_INTEGER: An integer attribute type. - ATTRIBUTE_TYPE_INTEGER_ARRAY: An integer array attribute type. - ATTRIBUTE_TYPE_DOUBLE: A double attribute type. - ATTRIBUTE_TYPE_DOUBLE_ARRAY: A double array attribute type. ## Properties diff --git a/docs/CheckResult.md b/docs/CheckResult.md index e9c6a72..240db72 100644 --- a/docs/CheckResult.md +++ b/docs/CheckResult.md @@ -1,6 +1,6 @@ # CheckResult -Enumerates results of a check operation. - CHECK_RESULT_UNSPECIFIED: Not specified check result. This is the default value. - CHECK_RESULT_ALLOWED: Represents a successful check (the check allowed the operation). - CHECK_RESULT_DENIED: Represents a failed check (the check denied the operation). +Enumerates results of a check operation. - CHECK_RESULT_ALLOWED: Represents a successful check (the check allowed the operation). - CHECK_RESULT_DENIED: Represents a failed check (the check denied the operation). ## Properties diff --git a/docs/Component.md b/docs/Component.md index fa2bd5b..6aafd21 100644 --- a/docs/Component.md +++ b/docs/Component.md @@ -1,6 +1,6 @@ # Component -CEL component specifier. - COMPONENT_UNSPECIFIED: Unspecified, default. - COMPONENT_PARSER: Parser. Converts a CEL string to an AST. - COMPONENT_TYPE_CHECKER: Type checker. Checks that references in an AST are defined and types agree. - COMPONENT_RUNTIME: Runtime. Evaluates a parsed and optionally checked CEL AST against a context. +CEL component specifier. - COMPONENT_PARSER: Parser. Converts a CEL string to an AST. - COMPONENT_TYPE_CHECKER: Type checker. Checks that references in an AST are defined and types agree. - COMPONENT_RUNTIME: Runtime. Evaluates a parsed and optionally checked CEL AST against a context. ## Properties diff --git a/docs/DataChangeOperation.md b/docs/DataChangeOperation.md index 27db140..16ada55 100644 --- a/docs/DataChangeOperation.md +++ b/docs/DataChangeOperation.md @@ -1,6 +1,6 @@ # DataChangeOperation - - OPERATION_UNSPECIFIED: Default operation, not specified. - OPERATION_CREATE: Creation operation. - OPERATION_DELETE: Deletion operation. + - OPERATION_CREATE: Creation operation. - OPERATION_DELETE: Deletion operation. ## Properties diff --git a/docs/EntityDefinitionReference.md b/docs/EntityDefinitionReference.md index 321bce4..1751c56 100644 --- a/docs/EntityDefinitionReference.md +++ b/docs/EntityDefinitionReference.md @@ -1,6 +1,6 @@ # EntityDefinitionReference -The Reference enum specifies whether a name pertains to a relation, permission, or attribute. - REFERENCE_UNSPECIFIED: Default, unspecified reference. - REFERENCE_RELATION: Indicates that the name refers to a relation. - REFERENCE_PERMISSION: Indicates that the name refers to a permission. - REFERENCE_ATTRIBUTE: Indicates that the name refers to an attribute. +The Reference enum specifies whether a name pertains to a relation, permission, or attribute. - REFERENCE_RELATION: Indicates that the name refers to a relation. - REFERENCE_PERMISSION: Indicates that the name refers to a permission. - REFERENCE_ATTRIBUTE: Indicates that the name refers to an attribute. ## Properties diff --git a/docs/NullValue.md b/docs/NullValue.md deleted file mode 100644 index 1a6d92b..0000000 --- a/docs/NullValue.md +++ /dev/null @@ -1,12 +0,0 @@ -# NullValue - -`NullValue` is a singleton enumeration to represent the null value for the `Value` type union. The JSON representation for `NullValue` is JSON `null`. - NULL_VALUE: Null value. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/docs/PrimitiveType.md b/docs/PrimitiveType.md index d0ac849..84b7193 100644 --- a/docs/PrimitiveType.md +++ b/docs/PrimitiveType.md @@ -1,6 +1,6 @@ # PrimitiveType -CEL primitive types. - PRIMITIVE_TYPE_UNSPECIFIED: Unspecified type. - BOOL: Boolean type. - INT64: Int64 type. Proto-based integer values are widened to int64. - UINT64: Uint64 type. Proto-based unsigned integer values are widened to uint64. - DOUBLE: Double type. Proto-based float values are widened to double values. - STRING: String type. - BYTES: Bytes type. +CEL primitive types. - BOOL: Boolean type. - INT64: Int64 type. Proto-based integer values are widened to int64. - UINT64: Uint64 type. Proto-based unsigned integer values are widened to uint64. - DOUBLE: Double type. Proto-based float values are widened to double values. - STRING: String type. - BYTES: Bytes type. ## Properties diff --git a/docs/RewriteOperation.md b/docs/RewriteOperation.md index ddd25ba..90eac96 100644 --- a/docs/RewriteOperation.md +++ b/docs/RewriteOperation.md @@ -1,6 +1,6 @@ # RewriteOperation -Operation enum includes potential rewrite operations. OPERATION_UNION: Represents a union operation. OPERATION_INTERSECTION: Represents an intersection operation. OPERATION_EXCLUSION: Represents an exclusion operation. - OPERATION_UNSPECIFIED: Default, unspecified operation. - OPERATION_UNION: Represents a union operation. - OPERATION_INTERSECTION: Represents an intersection operation. - OPERATION_EXCLUSION: Represents an exclusion operation. +Operation enum includes potential rewrite operations. OPERATION_UNION: Represents a union operation. OPERATION_INTERSECTION: Represents an intersection operation. OPERATION_EXCLUSION: Represents an exclusion operation. - OPERATION_UNION: Represents a union operation. - OPERATION_INTERSECTION: Represents an intersection operation. - OPERATION_EXCLUSION: Represents an exclusion operation. ## Properties diff --git a/docs/SchemaDefinitionReference.md b/docs/SchemaDefinitionReference.md index e5388dc..4f6792f 100644 --- a/docs/SchemaDefinitionReference.md +++ b/docs/SchemaDefinitionReference.md @@ -1,6 +1,6 @@ # SchemaDefinitionReference -The Reference enum helps distinguish whether a name corresponds to an entity or a rule. - REFERENCE_UNSPECIFIED: Default, unspecified reference. - REFERENCE_ENTITY: Indicates that the name refers to an entity. - REFERENCE_RULE: Indicates that the name refers to a rule. +The Reference enum helps distinguish whether a name corresponds to an entity or a rule. - REFERENCE_ENTITY: Indicates that the name refers to an entity. - REFERENCE_RULE: Indicates that the name refers to a rule. ## Properties diff --git a/docs/WellKnownType.md b/docs/WellKnownType.md index 58ef58c..f569e41 100644 --- a/docs/WellKnownType.md +++ b/docs/WellKnownType.md @@ -1,6 +1,6 @@ # WellKnownType -Well-known protobuf types treated with first-class support in CEL. - WELL_KNOWN_TYPE_UNSPECIFIED: Unspecified type. - ANY: Well-known protobuf.Any type. Any types are a polymorphic message type. During type-checking they are treated like `DYN` types, but at runtime they are resolved to a specific message type specified at evaluation time. - TIMESTAMP: Well-known protobuf.Timestamp type, internally referenced as `timestamp`. - DURATION: Well-known protobuf.Duration type, internally referenced as `duration`. +Well-known protobuf types treated with first-class support in CEL. - ANY: Well-known protobuf.Any type. Any types are a polymorphic message type. During type-checking they are treated like `DYN` types, but at runtime they are resolved to a specific message type specified at evaluation time. - TIMESTAMP: Well-known protobuf.Timestamp type, internally referenced as `timestamp`. - DURATION: Well-known protobuf.Duration type, internally referenced as `duration`. ## Properties diff --git a/generator/openapi.json b/generator/openapi.json index 42f6a9c..07f9ce8 100644 --- a/generator/openapi.json +++ b/generator/openapi.json @@ -1,3724 +1,3699 @@ { - "swagger": "2.0", - "info": { - "title": "Permify API", - "description": "Permify is an open source authorization service for creating fine-grained and scalable authorization systems.", - "version": "v1.6.0", - "contact": { - "name": "API Support", - "url": "https://github.com/Permify/permify/issues", - "email": "hello@permify.co" - }, - "license": { - "name": "AGPL-3.0 license", - "url": "https://github.com/Permify/permify/blob/master/LICENSE" - } + "swagger": "2.0", + "info": { + "title": "Permify API", + "description": "Permify is an open source authorization service for creating fine-grained and scalable authorization systems.", + "version": "v1.6.1", + "contact": { + "name": "API Support", + "url": "https://github.com/Permify/permify/issues", + "email": "hello@permify.co" }, - "tags": [ - { - "name": "Permission" - }, - { - "name": "Watch" - }, - { - "name": "Schema" - }, - { - "name": "Data" - }, - { - "name": "Bundle" - }, - { - "name": "Tenancy" - } - ], - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/v1/tenants/create": { - "post": { - "summary": "create tenant", - "operationId": "tenants.create", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/TenantCreateResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "body", - "description": "TenantCreateRequest is the message used for the request to create a tenant.", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/TenantCreateRequest" - } - } - ], - "tags": [ - "Tenancy" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "rr, err := client.Tenancy.Create(context.Background(), \u0026v1.TenantCreateRequest{\n Id: \"\",\n Name: \"\"\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.tenancy.create({\n id: \"\",\n name: \"\"\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'http://localhost:3476/v1/tenants/create' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"id\": \"\",\n \"name\": \"\"\n}'" - } - ] - } - }, - "/v1/tenants/list": { - "post": { - "summary": "list tenants", - "operationId": "tenants.list", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/TenantListResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "body", - "description": "TenantListRequest is the message used for the request to list all tenants.", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/TenantListRequest" - } - } - ], - "tags": [ - "Tenancy" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "cr, err := client.Tenancy.List(context.Background(), \u0026v1.TenantListRequest{\n PageSize: 20,\n ContinuousToken: \"\",\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "let res = client.tenancy.list({\n pageSize: 20,\n continuousToken: \"\",\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/list' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"page_size\": 20,\n \"continuous_token\": \"\"\n}'" - } - ] - } - }, - "/v1/tenants/{id}": { - "delete": { - "summary": "delete tenant", - "operationId": "tenants.delete", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/TenantDeleteResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "id", - "description": "id is the unique identifier of the tenant to be deleted.", - "in": "path", - "required": true, - "type": "string" - } - ], - "tags": [ - "Tenancy" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "rr, err := client.Tenancy.Delete(context.Background(), \u0026v1.TenantDeleteRequest{\n Id: \"\"\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.tenancy.delete({\n id: \"\",\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request DELETE 'http://localhost:3476/v1/tenants/t1'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/bundle/delete": { - "post": { - "summary": "delete bundle", - "operationId": "bundle.delete", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/BundleDeleteResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Bundle.DeleteBody" - } - } - ], - "tags": [ - "Bundle" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "rr, err := client.Bundle.Delete(context.Background(), \u0026v1.BundleDeleteRequest{\n TenantId: \"t1\",\n Name: \"organization_created\",\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.bundle.delete({\n tenantId: \"t1\",\n name: \"organization_created\",\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/bundle/delete' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"organization_created\"\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/bundle/read": { - "post": { - "summary": "read bundle", - "operationId": "bundle.read", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/BundleReadResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Bundle.ReadBody" - } - } - ], - "tags": [ - "Bundle" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "rr, err := client.Bundle.Read(context.Background(), \u0026v1.BundleReadRequest{\n TenantId: \"t1\",\n Name: \"organization_created\",\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.bundle.read({\n tenantId: \"t1\",\n name: \"organization_created\",\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/bundle/read' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"organization_created\"\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/bundle/write": { - "post": { - "summary": "write bundle", - "operationId": "bundle.write", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/BundleWriteResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Bundle.WriteBody" - } - } - ], - "tags": [ - "Bundle" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "rr, err := client.Bundle.Write(context.Background(), \u0026v1.BundleWriteRequest{\n TenantId: \"t1\",\n Bundles: []*v1.DataBundle{\n {\n Name: \"organization_created\",\n Arguments: []string{\n \"creatorID\",\n \"organizationID\",\n },\n Operations: []*v1.Operation{\n {\n RelationshipsWrite: []string{\n \"organization:{{.organizationID}}#admin@user:{{.creatorID}}\",\n \"organization:{{.organizationID}}#manager@user:{{.creatorID}}\",\n },\n AttributesWrite: []string{\n \"organization:{{.organizationID}}$public|boolean:false\",\n },\n },\n },\n },\n },\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.bundle.write({\n tenantId: \"t1\",\n bundles: [\n {\n name: \"organization_created\",\n arguments: [\n \"creatorID\",\n \"organizationID\",\n ],\n operations: [\n {\n relationships_write: [\n \"organization:{{.organizationID}}#admin@user:{{.creatorID}}\",\n \"organization:{{.organizationID}}#manager@user:{{.creatorID}}\",\n ],\n attributes_write: [\n \"organization:{{.organizationID}}$public|boolean:false\",\n ]\n }\n ]\n }\n ]\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/bundle/write' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"bundles\": [\n {\n \"name\": \"organization_created\",\n \"arguments\": [\n \"creatorID\",\n \"organizationID\"\n ],\n \"operations\": [\n {\n \"relationships_write\": [\n \"organization:{{.organizationID}}#admin@user:{{.creatorID}}\",\n \"organization:{{.organizationID}}#manager@user:{{.creatorID}}\"\n ],\n \"attributes_write\": [\n \"organization:{{.organizationID}}$public|boolean:false\"\n ]\n }\n ]\n }\n ]\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/data/attributes/read": { - "post": { - "summary": "read attributes", - "operationId": "data.attributes.read", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/AttributeReadResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ReadAttributesBody" - } - } - ], - "tags": [ - "Data" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "rr, err := client.Data.ReadAttributes(context.Background(), \u0026v1.Data.AttributeReadRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.Data.AttributeReadRequestMetadata{\n SnapToken: \"\",\n },\n Filter: \u0026v1.AttributeFilter{\n Entity: \u0026v1.EntityFilter{\n Type: \"organization\",\n Ids: []string{\"1\"},\n },\n Attributes: []string{\"private\"},\n },\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.data.readAttributes({\n tenantId: \"t1\",\n metadata: {\n snap_token: \"\",\n },\n filter: {\n entity: {\n type: \"organization\",\n ids: [\n \"1\"\n ]\n },\n attributes: [\n \"private\"\n ],\n }\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/data/attributes/read' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n metadata: {\n snap_token: \"\",\n },\n filter: {\n entity: {\n type: \"organization\",\n ids: [\n \"1\"\n ]\n },\n attributes: [\n \"private\"\n ],\n }\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/data/delete": { - "post": { - "summary": "delete data", - "operationId": "data.delete", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/DataDeleteResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Data.DeleteBody" - } - } - ], - "tags": [ - "Data" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "rr, err := client.Data.Delete(context.Background(), \u0026v1.DataDeleteRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.DataDeleteRequestMetadata{\n SnapToken: \"\",\n },\n TupleFilter: \u0026v1.TupleFilter{\n Entity: \u0026v1.EntityFilter{\n Type: \"organization\",\n Ids: []string{\"1\"},\n },\n Relation: \"admin\",\n Subject: \u0026v1.SubjectFilter{\n Type: \"user\",\n Id: []string{\"1\"},\n Relation: \"\"\n }\n }\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.data.delete({\n tenantId: \"t1\",\n metadata: {\n snap_token: \"\",\n },\n tupleFilter: {\n entity: {\n type: \"organization\",\n ids: [\n \"1\"\n ]\n },\n relation: \"admin\",\n subject: {\n type: \"user\",\n ids: [\n \"1\"\n ],\n relation: \"\"\n }\n }\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/data/delete' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"tuple_filter\": {\n \"entity\": {\n \"type\": \"organization\",\n \"ids\": [\n \"1\"\n ]\n },\n \"relation\": \"admin\",\n \"subject\": {\n \"type\": \"user\",\n \"ids\": [\n \"1\"\n ],\n \"relation\": \"\"\n }\n },\n \"attribute_filter\": {}\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/data/relationships/read": { - "post": { - "summary": "read relationships", - "operationId": "data.relationships.read", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/RelationshipReadResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ReadRelationshipsBody" - } - } - ], - "tags": [ - "Data" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "rr, err := client.Data.ReadRelationships(context.Background(), \u0026v1.Data.RelationshipReadRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.Data.RelationshipReadRequestMetadata{\n SnapToken: \"\"\n },\n Filter: \u0026v1.TupleFilter{\n Entity: \u0026v1.EntityFilter{\n Type: \"organization\",\n Ids: []string{\"1\"},\n },\n Relation: \"member\",\n Subject: \u0026v1.SubjectFilter{\n Type: \"\",\n Id: []string{\"\"},\n Relation: \"\"\n }\n }\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.data.readRelationships({\n tenantId: \"t1\",\n metadata: {\n snap_token: \"\",\n },\n filter: {\n entity: {\n type: \"organization\",\n ids: [\n \"1\"\n ]\n },\n relation: \"member\",\n subject: {\n type: \"\",\n ids: [],\n relation: \"\"\n }\n }\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/data/relationships/read' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n metadata: {\n snap_token: \"\",\n },\n filter: {\n entity: {\n type: \"organization\",\n ids: [\n \"1\"\n ]\n },\n relation: \"member\",\n subject: {\n type: \"\",\n ids: [],\n relation: \"\"\n }\n }\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/data/run-bundle": { - "post": { - "summary": "run bundle", - "operationId": "bundle.run", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/BundleRunResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/RunBundleBody" - } - } - ], - "tags": [ - "Data" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "rr, err := client.Data.RunBundle(context.Background(), \u0026v1.BundleRunRequest{\n TenantId: \"t1\",\n Name: \"organization_created\",\n Arguments: map[string]string{\n \"creatorID\": \"564\",\n \"organizationID\": \"789\",\n },\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.data.runBundle({\n tenantId: \"t1\",\n name: \"organization_created\",\n arguments: {\n creatorID: \"564\",\n organizationID: \"789\",\n }\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/data/run-bundle' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"organization_created\",\n \"arguments\": {\n \"creatorID\": \"564\",\n \"organizationID\": \"789\"\n }\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/data/write": { - "post": { - "summary": "write data", - "operationId": "data.write", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/DataWriteResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Data.WriteBody" - } - } - ], - "tags": [ - "Data" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "// Convert the wrapped attribute value into Any proto message\nvalue, err := anypb.New(\u0026v1.BooleanValue{\n Data: true,\n})\nif err != nil {\n // Handle error\n}\n\ncr, err := client.Data.Write(context.Background(), \u0026v1.DataWriteRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.DataWriteRequestMetadata{\n SchemaVersion: \"\",\n },\n Tuples: []*v1.Tuple{\n {\n Entity: \u0026v1.Entity{\n Type: \"document\",\n Id: \"1\",\n },\n Relation: \"editor\",\n Subject: \u0026v1.Subject{\n Type: \"user\",\n Id: \"1\",\n Relation: \"\",\n },\n },\n },\n Attributes: []*v1.Attribute{\n {\n Entity: \u0026v1.Entity{\n Type: \"document\",\n Id: \"1\",\n },\n Attribute: \"is_private\",\n Value: value,\n },\n },\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "const booleanValue = BooleanValue.fromJSON({ data: true });\n\nconst value = Any.fromJSON({\n typeUrl: 'type.googleapis.com/base.v1.BooleanValue',\n value: BooleanValue.encode(booleanValue).finish()\n});\n\nclient.data.write({\n tenantId: \"t1\",\n metadata: {\n schemaVersion: \"\"\n },\n tuples: [{\n entity: {\n type: \"document\",\n id: \"1\"\n },\n relation: \"editor\",\n subject: {\n type: \"user\",\n id: \"1\"\n }\n }],\n attributes: [{\n entity: {\n type: \"document\",\n id: \"1\"\n },\n attribute: \"is_private\",\n value: value,\n }]\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/data/write' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {\n \"schema_version\": \"\"\n },\n \"tuples\": [\n {\n \"entity\": {\n \"type\": \"document\",\n \"id\": \"1\"\n },\n \"relation\": \"editor\",\n \"subject\": {\n \"type\": \"user\",\n \"id\": \"1\"\n }\n }\n ],\n \"attributes\": [\n {\n \"entity\": {\n \"type\": \"document\",\n \"id\": \"1\"\n },\n \"attribute\": \"is_private\",\n \"value\": {\n \"@type\": \"type.googleapis.com/base.v1.BooleanValue\",\n \"data\": true\n }\n }\n ]\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/permissions/bulk-check": { - "post": { - "summary": "bulk check api", - "description": "Check multiple permissions in a single request. Maximum 100 requests allowed.", - "operationId": "permissions.bulk-check", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/PermissionBulkCheckResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BulkCheckBody" - } - } - ], - "tags": [ - "Permission" - ] - } - }, - "/v1/tenants/{tenant_id}/permissions/check": { - "post": { - "summary": "check api", - "operationId": "permissions.check", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/PermissionCheckResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CheckBody" - } - } - ], - "tags": [ - "Permission" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "cr, err := client.Permission.Check(context.Background(), \u0026v1.PermissionCheckRequest {\n TenantId: \"t1\",\n Metadata: \u0026v1.PermissionCheckRequestMetadata {\n SnapToken: \"\",\n SchemaVersion: \"\",\n Depth: 20,\n },\n Entity: \u0026v1.Entity {\n Type: \"repository\",\n Id: \"1\",\n },\n Permission: \"edit\",\n Subject: \u0026v1.Subject {\n Type: \"user\",\n Id: \"1\",\n },\n})\nif cr.Can == v1.PermissionCheckResponse_Result_RESULT_ALLOWED {\n // RESULT_ALLOWED\n} else {\n // RESULT_DENIED\n}" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.permission.check({\n tenantId: \"t1\", \n metadata: {\n snapToken: \"\",\n schemaVersion: \"\",\n depth: 20\n },\n entity: {\n type: \"repository\",\n id: \"1\"\n },\n permission: \"edit\",\n subject: {\n type: \"user\",\n id: \"1\"\n }\n}).then((response) =\u003e {\n if (response.can === PermissionCheckResponse_Result.RESULT_ALLOWED) {\n console.log(\"RESULT_ALLOWED\")\n } else {\n console.log(\"RESULT_DENIED\")\n }\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/permissions/check' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {\n \"snap_token\": \"\",\n \"schema_version\": \"\",\n \"depth\": 20\n },\n \"entity\": {\n \"type\": \"repository\",\n \"id\": \"1\"\n },\n \"permission\": \"edit\",\n \"subject\": {\n \"type\": \"user\",\n \"id\": \"1\",\n \"relation\": \"\"\n }\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/permissions/expand": { - "post": { - "summary": "expand api", - "operationId": "permissions.expand", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/PermissionExpandResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Permission.ExpandBody" - } - } - ], - "tags": [ - "Permission" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "cr, err := client.Permission.Expand(context.Background(), \u0026v1.PermissionExpandRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.PermissionExpandRequestMetadata{\n SnapToken: \"\",\n SchemaVersion: \"\",\n },\n Entity: \u0026v1.Entity{\n Type: \"repository\",\n Id: \"1\",\n },\n Permission: \"push\",\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.permission.expand({\n tenantId: \"t1\",\n metadata: {\n snapToken: \"\",\n schemaVersion: \"\"\n },\n entity: {\n type: \"repository\",\n id: \"1\"\n },\n permission: \"push\",\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/permissions/expand' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {\n \"schema_version\": \"\",\n \"snap_token\": \"\"\n },\n \"entity\": {\n \"type\": \"repository\",\n \"id\": \"1\"\n },\n \"permission\": \"push\"\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/permissions/lookup-entity": { - "post": { - "summary": "lookup entity", - "operationId": "permissions.lookupEntity", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/PermissionLookupEntityResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/LookupEntityBody" - } - } - ], - "tags": [ - "Permission" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "cr, err := client.Permission.LookupEntity(context.Background(), \u0026v1.PermissionLookupEntityRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.PermissionLookupEntityRequestMetadata{\n SnapToken: \"\",\n SchemaVersion: \"\",\n Depth: 20,\n },\n EntityType: \"document\",\n Permission: \"edit\",\n Subject: \u0026v1.Subject{\n Type: \"user\",\n Id: \"1\",\n }\n PageSize: 20,\n ContinuousToken: \"\",\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.permission.lookupEntity({\n tenantId: \"t1\",\n metadata: {\n snapToken: \"\",\n schemaVersion: \"\",\n depth: 20\n },\n entity_type: \"document\",\n permission: \"edit\",\n subject: {\n type: \"user\",\n id: \"1\"\n },\n page_size: 20,\n continuous_token: \"\"\n}).then((response) =\u003e {\n console.log(response.entity_ids)\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/permissions/lookup-entity' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\":{\n \"snap_token\": \"\",\n \"schema_version\": \"\",\n \"depth\": 20\n },\n \"entity_type\": \"document\",\n \"permission\": \"edit\",\n \"subject\": {\n \"type\":\"user\",\n \"id\":\"1\"\n },\n \"page_size\": 20,\n \"continuous_token\": \"\",\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/permissions/lookup-entity-stream": { - "post": { - "summary": "lookup entity stream", - "operationId": "permissions.lookupEntityStream", - "responses": { - "200": { - "description": "A successful response.(streaming responses)", - "schema": { - "type": "object", - "properties": { - "result": { - "$ref": "#/definitions/PermissionLookupEntityStreamResponse" - }, - "error": { - "$ref": "#/definitions/Status" - } - }, - "title": "Stream result of PermissionLookupEntityStreamResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/LookupEntityStreamBody" - } - } - ], - "tags": [ - "Permission" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "str, err := client.Permission.LookupEntityStream(context.Background(), \u0026v1.PermissionLookupEntityRequest{\n Metadata: \u0026v1.PermissionLookupEntityRequestMetadata{\n SnapToken: \"\",\n SchemaVersion: \"\",\n Depth: 50,\n },\n EntityType: \"document\",\n Permission: \"view\",\n Subject: \u0026v1.Subject{\n Type: \"user\",\n Id: \"1\",\n },\n PageSize: 20,\n ContinuousToken: \"\",\n})\n\n// handle stream response\nfor {\n res, err := str.Recv()\n\n if err == io.EOF {\n break\n }\n\n // res.EntityId\n}" - }, - { - "label": "node", - "lang": "javascript", - "source": "const permify = require(\"@permify/permify-node\");\nconst {PermissionLookupEntityStreamResponse} = require(\"@permify/permify-node/dist/src/grpc/generated/base/v1/service\");\n\nfunction main() {\n const client = new permify.grpc.newClient({\n endpoint: \"localhost:3478\",\n });\n\n let res = client.permission.lookupEntityStream({\n metadata: {\n snapToken: \"\",\n schemaVersion: \"\",\n depth: 20\n },\n entityType: \"document\",\n permission: \"view\",\n subject: {\n type: \"user\",\n id: \"1\"\n },\n page_size: 20,\n continuous_token: \"\"\n });\n\n handle(res);\n}\n\nasync function handle(res: AsyncIterable\u003cPermissionLookupEntityStreamResponse\u003e) {\n for await (const response of res) {\n // response.entityId\n }\n}" - } - ] - } - }, - "/v1/tenants/{tenant_id}/permissions/lookup-subject": { - "post": { - "summary": "lookup-subject", - "operationId": "permissions.lookupSubject", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/PermissionLookupSubjectResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/LookupSubjectBody" - } - } - ], - "tags": [ - "Permission" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "cr, err := client.Permission.LookupSubject(context.Background(), \u0026v1.PermissionLookupSubjectRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.PermissionLookupSubjectRequestMetadata{\n SnapToken: \"\",\n SchemaVersion: \"\",\n Depth: 20,\n },\n Entity: \u0026v1.Entity{\n Type: \"document\",\n Id: \"1\",\n },\n Permission: \"edit\",\n SubjectReference: \u0026v1.RelationReference{\n Type: \"user\",\n Relation: \"\",\n },\n PageSize: 20,\n ContinuousToken: \"\",\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.permission.lookupSubject({\n tenantId: \"t1\",\n metadata: {\n snapToken: \"\",\n schemaVersion: \"\",\n depth: 20,\n },\n entity: {\n type: \"document\",\n id: \"1\",\n },\n permission: \"edit\",\n subject_reference: {\n type: \"user\",\n relation: \"\"\n },\n page_size: 10,\n continuous_token: \"\"\n}).then((response) =\u003e {\n console.log(response.subject_ids)\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/permissions/lookup-subject' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\":{\n \"snap_token\": \"\",\n \"schema_version\": \"\",\n \"depth\": 20,\n },\n \"entity\": {\n \"type\": \"document\",\n \"id\": \"1\"\n },\n \"permission\": \"edit\",\n \"subject_reference\": {\n \"type\": \"user\",\n \"relation\": \"\"\n },\n page_size: 20,\n continuous_token: \"\"\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/permissions/subject-permission": { - "post": { - "summary": "subject permission", - "operationId": "permissions.subjectPermission", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/PermissionSubjectPermissionResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SubjectPermissionBody" - } - } - ], - "tags": [ - "Permission" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "cr, err := client.Permission.SubjectPermission(context.Background(), \u0026v1.PermissionSubjectPermissionRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.PermissionSubjectPermissionRequestMetadata{\n SnapToken: \"\",\n SchemaVersion: \"\",\n OnlyPermission: false,\n Depth: 20,\n },\n Entity: \u0026v1.Entity{\n Type: \"repository\",\n Id: \"1\",\n },\n Subject: \u0026v1.Subject{\n Type: \"user\",\n Id: \"1\",\n },\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.permission.subjectPermission({\n tenantId: \"t1\",\n metadata: {\n snapToken: \"\",\n schemaVersion: \"\",\n onlyPermission: true,\n depth: 20\n },\n entity: {\n type: \"repository\",\n id: \"1\"\n },\n subject: {\n type: \"user\",\n id: \"1\"\n }\n}).then((response) =\u003e {\n console.log(response);\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/permissions/subject-permission' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\":{\n \"snap_token\": \"\",\n \"schema_version\": \"\",\n \"only_permission\": true,\n \"depth\": 20\n },\n \"entity\": {\n \"type\": \"repository\",\n \"id\": \"1\"\n },\n \"subject\": {\n \"type\": \"user\",\n \"id\": \"1\",\n \"relation\": \"\"\n }\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/relationships/delete": { - "post": { - "summary": "delete relationships", - "operationId": "relationships.delete", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/RelationshipDeleteResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/DeleteRelationshipsBody" - } - } - ], - "tags": [ - "Data" - ] - } - }, - "/v1/tenants/{tenant_id}/relationships/write": { - "post": { - "summary": "write relationships", - "operationId": "relationships.write", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/RelationshipWriteResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/WriteRelationshipsBody" - } - } - ], - "tags": [ - "Data" - ] - } - }, - "/v1/tenants/{tenant_id}/schemas/list": { - "post": { - "summary": "list schema", - "operationId": "schemas.list", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/SchemaListResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Schema.ListBody" - } - } - ], - "tags": [ - "Schema" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "sr, err := client.Schema.List(context.Background(), \u0026v1.SchemaListRequest{\n TenantId: \"t1\",\n PageSize: 20,\n ContinuousToken: \"\",\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "let res = client.schema.list({\n tenantId: \"t1\",\n continuousToken: \"\"\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/schemas/list' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"page_size\": 20,\n \"continuous_token\": \"\"\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/schemas/partial-write": { - "patch": { - "summary": "partially update your authorization model", - "operationId": "schemas.partial-write", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/SchemaPartialWriteResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "tenant_id is a string that identifies the tenant. It must match the pattern \"[a-zA-Z0-9-,]+\",\nbe a maximum of 64 bytes, and must not be empty.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PartialWriteBody" - } - } - ], - "tags": [ - "Schema" - ] - } - }, - "/v1/tenants/{tenant_id}/schemas/read": { - "post": { - "summary": "read schema", - "operationId": "schemas.read", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/SchemaReadResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Schema.ReadBody" - } - } - ], - "tags": [ - "Schema" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "sr, err := client.Schema.Read(context.Background(), \u0026v1.SchemaReadRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.SchemaReadRequestMetadata{\n SchemaVersion: \"cnbe6se5fmal18gpc66g\",\n },\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "let res = client.schema.read({\n tenantId: \"t1\",\n metadata: {\n schemaVersion: swResponse.schemaVersion,\n },\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/schemas/read' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {\n \"schema_version\": \"cnbe6se5fmal18gpc66g\"\n }\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/schemas/write": { - "post": { - "summary": "write schema", - "operationId": "schemas.write", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/SchemaWriteResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Schema.WriteBody" - } - } - ], - "tags": [ - "Schema" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "sr, err := client.Schema.Write(context.Background(), \u0026v1.SchemaWriteRequest{\n TenantId: \"t1\",\n Schema: `\n entity user {}\n\n entity organization {\n relation admin @user\n relation member @user\n\n action create_repository = (admin or member)\n action delete = admin\n }\n\n entity repository {\n relation owner @user\n relation parent @organization\n\n action push = owner\n action read = (owner and (parent.admin and parent.member))\n action delete = (parent.member and (parent.admin or owner))\n }\n `,\n})" - }, - { - "label": "node", - "lang": "javascript", - "source": "client.schema.write({\n tenantId: \"t1\",\n schema: `\n entity user {}\n\n entity organization {\n relation admin @user\n relation member @user\n\n action create_repository = (admin or member)\n action delete = admin\n }\n\n entity repository {\n relation owner @user\n relation parent @organization\n\n action push = owner\n action read = (owner and (parent.admin and parent.member))\n action delete = (parent.member and (parent.admin or owner))\n }\n `\n}).then((response) =\u003e {\n // handle response\n})" - }, - { - "label": "cURL", - "lang": "curl", - "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/schemas/write' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"schema\": \"entity user {}\\n\\n entity organization {\\n\\n relation admin @user\\n relation member @user\\n\\n action create_repository = (admin or member)\\n action delete = admin\\n }\\n\\n entity repository {\\n\\n relation owner @user\\n relation parent @organization\\n\\n action push = owner\\n action read = (owner and (parent.admin and parent.member))\\n action delete = (parent.member and (parent.admin or owner))\\n }\"\n}'" - } - ] - } - }, - "/v1/tenants/{tenant_id}/watch": { - "post": { - "summary": "watch changes", - "operationId": "watch.watch", - "responses": { - "200": { - "description": "A successful response.(streaming responses)", - "schema": { - "type": "object", - "properties": { - "result": { - "$ref": "#/definitions/WatchResponse" - }, - "error": { - "$ref": "#/definitions/Status" - } - }, - "title": "Stream result of WatchResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - }, - "parameters": [ - { - "name": "tenant_id", - "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/WatchBody" - } - } - ], - "tags": [ - "Watch" - ], - "x-codeSamples": [ - { - "label": "go", - "lang": "go", - "source": "cr, err := client.Watch.Watch(context.Background(), \u0026v1.WatchRequest{\n TenantId: \"t1\",\n SnapToken: \"\",\n})\n// handle stream response\nfor {\n res, err := cr.Recv()\n\n if err == io.EOF {\n break\n }\n\n // res.Changes\n}\n" - }, - { - "label": "node", - "lang": "javascript", - "source": "const permify = require(\"@permify/permify-node\");\nconst {WatchResponse} = require(\"@permify/permify-node/dist/src/grpc/generated/base/v1/service\");\n\nfunction main() {\n const client = new permify.grpc.newClient({\n endpoint: \"localhost:3478\",\n });\n\n let res = client.watch.watch({\n tenantId: \"t1\",\n snapToken: \"\"\n });\n\n handle(res);\n}\n\nasync function handle(res: AsyncIterable\u003cWatchResponse\u003e) {\n for await (const response of res) {\n // response.changes\n }\n}\n" - } - ] - } + "license": { + "name": "AGPL-3.0 license", + "url": "https://github.com/Permify/permify/blob/master/LICENSE" + } + }, + "tags": [ + { + "name": "Permission" + }, + { + "name": "Watch" + }, + { + "name": "Schema" + }, + { + "name": "Data" + }, + { + "name": "Bundle" + }, + { + "name": "Tenancy" + } + ], + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v1/tenants/create": { + "post": { + "summary": "create tenant", + "operationId": "tenants.create", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/TenantCreateResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "body", + "description": "TenantCreateRequest is the message used for the request to create a tenant.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TenantCreateRequest" + } + } + ], + "tags": [ + "Tenancy" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "rr, err := client.Tenancy.Create(context.Background(), \u0026v1.TenantCreateRequest{\n Id: \"\",\n Name: \"\"\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.tenancy.create({\n id: \"\",\n name: \"\"\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'http://localhost:3476/v1/tenants/create' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"id\": \"\",\n \"name\": \"\"\n}'" + } + ] } }, - "definitions": { - "AbstractType": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The fully qualified name of this abstract type." - }, - "parameterTypes": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1alpha1.Type" - }, - "description": "Parameter types for this abstract type." + "/v1/tenants/list": { + "post": { + "summary": "list tenants", + "operationId": "tenants.list", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/TenantListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } } }, - "description": "Application defined abstract type." - }, - "Any": { - "type": "object", - "properties": { - "@type": { - "type": "string", - "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + "parameters": [ + { + "name": "body", + "description": "TenantListRequest is the message used for the request to list all tenants.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TenantListRequest" + } } - }, - "additionalProperties": {}, - "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" - }, - "Argument": { - "type": "object", - "properties": { - "computedAttribute": { - "$ref": "#/definitions/ComputedAttribute" + ], + "tags": [ + "Tenancy" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "cr, err := client.Tenancy.List(context.Background(), \u0026v1.TenantListRequest{\n PageSize: 20,\n ContinuousToken: \"\",\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "let res = client.tenancy.list({\n pageSize: 20,\n continuousToken: \"\",\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/list' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"page_size\": 20,\n \"continuous_token\": \"\"\n}'" + } + ] + } + }, + "/v1/tenants/{id}": { + "delete": { + "summary": "delete tenant", + "operationId": "tenants.delete", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/TenantDeleteResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "id", + "description": "id is the unique identifier of the tenant to be deleted.", + "in": "path", + "required": true, + "type": "string" } - }, - "description": "Argument defines the type of argument in a Call. It can be either a ComputedAttribute or a ContextAttribute." - }, - "Attribute": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "attribute": { - "type": "string", - "title": "Name of the attribute" + ], + "tags": [ + "Tenancy" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "rr, err := client.Tenancy.Delete(context.Background(), \u0026v1.TenantDeleteRequest{\n Id: \"\"\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.tenancy.delete({\n id: \"\",\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request DELETE 'http://localhost:3476/v1/tenants/t1'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/bundle/delete": { + "post": { + "summary": "delete bundle", + "operationId": "bundle.delete", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BundleDeleteResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "value": { - "$ref": "#/definitions/Any" + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Bundle.DeleteBody" + } } - }, - "description": "Attribute represents an attribute of an entity with a specific type and value." - }, - "AttributeDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the attribute, which follows a specific string pattern and has a maximum byte size." + ], + "tags": [ + "Bundle" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "rr, err := client.Bundle.Delete(context.Background(), \u0026v1.BundleDeleteRequest{\n TenantId: \"t1\",\n Name: \"organization_created\",\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.bundle.delete({\n tenantId: \"t1\",\n name: \"organization_created\",\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/bundle/delete' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"organization_created\"\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/bundle/read": { + "post": { + "summary": "read bundle", + "operationId": "bundle.read", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BundleReadResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "type": { - "$ref": "#/definitions/AttributeType", - "description": "The type of the attribute." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Bundle.ReadBody" + } } - }, - "description": "The AttributeDefinition message provides detailed information about a specific attribute." - }, - "AttributeFilter": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/EntityFilter" + ], + "tags": [ + "Bundle" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "rr, err := client.Bundle.Read(context.Background(), \u0026v1.BundleReadRequest{\n TenantId: \"t1\",\n Name: \"organization_created\",\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.bundle.read({\n tenantId: \"t1\",\n name: \"organization_created\",\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/bundle/read' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"organization_created\"\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/bundle/write": { + "post": { + "summary": "write bundle", + "operationId": "bundle.write", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BundleWriteResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "attributes": { - "type": "array", - "items": { - "type": "string" - }, - "title": "Names of the attributes to be filtered" - } - }, - "description": "AttributeFilter is used to filter attributes based on the entity and attribute names." - }, - "AttributeReadRequestMetadata": { - "type": "object", - "properties": { - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Bundle.WriteBody" + } } - }, - "description": "AttributeReadRequestMetadata defines the structure for the metadata of an attribute read request.\nIt includes the snap_token associated with a particular state of the database." - }, - "AttributeReadResponse": { - "type": "object", - "properties": { - "attributes": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Attribute" - }, - "description": "attributes is a list of the attributes retrieved in the read operation." - }, - "continuous_token": { - "type": "string", - "description": "continuous_token is used in the case of paginated reads to retrieve the next page of results." - } - }, - "description": "AttributeReadResponse defines the structure of the response to an attribute read request.\nIt includes the attributes retrieved and a continuous token for handling result pagination." - }, - "AttributeType": { - "type": "string", - "enum": [ - "ATTRIBUTE_TYPE_UNSPECIFIED", - "ATTRIBUTE_TYPE_BOOLEAN", - "ATTRIBUTE_TYPE_BOOLEAN_ARRAY", - "ATTRIBUTE_TYPE_STRING", - "ATTRIBUTE_TYPE_STRING_ARRAY", - "ATTRIBUTE_TYPE_INTEGER", - "ATTRIBUTE_TYPE_INTEGER_ARRAY", - "ATTRIBUTE_TYPE_DOUBLE", - "ATTRIBUTE_TYPE_DOUBLE_ARRAY" ], - "default": "ATTRIBUTE_TYPE_UNSPECIFIED", - "description": "Enumerates the types of attribute.\n\n - ATTRIBUTE_TYPE_UNSPECIFIED: Not specified attribute type. This is the default value.\n - ATTRIBUTE_TYPE_BOOLEAN: A boolean attribute type.\n - ATTRIBUTE_TYPE_BOOLEAN_ARRAY: A boolean array attribute type.\n - ATTRIBUTE_TYPE_STRING: A string attribute type.\n - ATTRIBUTE_TYPE_STRING_ARRAY: A string array attribute type.\n - ATTRIBUTE_TYPE_INTEGER: An integer attribute type.\n - ATTRIBUTE_TYPE_INTEGER_ARRAY: An integer array attribute type.\n - ATTRIBUTE_TYPE_DOUBLE: A double attribute type.\n - ATTRIBUTE_TYPE_DOUBLE_ARRAY: A double array attribute type." - }, - "BulkCheckBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/PermissionCheckRequestMetadata", - "description": "Metadata associated with this request, required." - }, - "items": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/PermissionBulkCheckRequestItem" - }, - "description": "List of permission check requests, maximum 100 items." - }, - "context": { - "$ref": "#/definitions/Context", - "description": "Contextual data that can be dynamically added to permission check requests. See details on [Contextual Data](../../operations/contextual-tuples)" + "tags": [ + "Bundle" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "rr, err := client.Bundle.Write(context.Background(), \u0026v1.BundleWriteRequest{\n TenantId: \"t1\",\n Bundles: []*v1.DataBundle{\n {\n Name: \"organization_created\",\n Arguments: []string{\n \"creatorID\",\n \"organizationID\",\n },\n Operations: []*v1.Operation{\n {\n RelationshipsWrite: []string{\n \"organization:{{.organizationID}}#admin@user:{{.creatorID}}\",\n \"organization:{{.organizationID}}#manager@user:{{.creatorID}}\",\n },\n AttributesWrite: []string{\n \"organization:{{.organizationID}}$public|boolean:false\",\n },\n },\n },\n },\n },\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.bundle.write({\n tenantId: \"t1\",\n bundles: [\n {\n name: \"organization_created\",\n arguments: [\n \"creatorID\",\n \"organizationID\",\n ],\n operations: [\n {\n relationships_write: [\n \"organization:{{.organizationID}}#admin@user:{{.creatorID}}\",\n \"organization:{{.organizationID}}#manager@user:{{.creatorID}}\",\n ],\n attributes_write: [\n \"organization:{{.organizationID}}$public|boolean:false\",\n ]\n }\n ]\n }\n ]\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/bundle/write' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"bundles\": [\n {\n \"name\": \"organization_created\",\n \"arguments\": [\n \"creatorID\",\n \"organizationID\"\n ],\n \"operations\": [\n {\n \"relationships_write\": [\n \"organization:{{.organizationID}}#admin@user:{{.creatorID}}\",\n \"organization:{{.organizationID}}#manager@user:{{.creatorID}}\"\n ],\n \"attributes_write\": [\n \"organization:{{.organizationID}}$public|boolean:false\"\n ]\n }\n ]\n }\n ]\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/data/attributes/read": { + "post": { + "summary": "read attributes", + "operationId": "data.attributes.read", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/AttributeReadResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "arguments": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Argument" - }, - "description": "Additional arguments associated with this request." - } - }, - "description": "PermissionBulkCheckRequest is the request message for the BulkCheck method in the Permission service." - }, - "Bundle.DeleteBody": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the bundle to be deleted." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ReadAttributesBody" + } } - }, - "description": "BundleDeleteRequest is used to request the deletion of a bundle.\nIt contains the tenant_id to specify the tenant and the name of the bundle to be deleted." - }, - "Bundle.ReadBody": { - "type": "object", - "properties": { - "name": { + ], + "tags": [ + "Data" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "rr, err := client.Data.ReadAttributes(context.Background(), \u0026v1.Data.AttributeReadRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.Data.AttributeReadRequestMetadata{\n SnapToken: \"\",\n },\n Filter: \u0026v1.AttributeFilter{\n Entity: \u0026v1.EntityFilter{\n Type: \"organization\",\n Ids: []string{\"1\"},\n },\n Attributes: []string{\"private\"},\n },\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.data.readAttributes({\n tenantId: \"t1\",\n metadata: {\n snap_token: \"\",\n },\n filter: {\n entity: {\n type: \"organization\",\n ids: [\n \"1\"\n ]\n },\n attributes: [\n \"private\"\n ],\n }\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/data/attributes/read' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n metadata: {\n snap_token: \"\",\n },\n filter: {\n entity: {\n type: \"organization\",\n ids: [\n \"1\"\n ]\n },\n attributes: [\n \"private\"\n ],\n }\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/data/delete": { + "post": { + "summary": "delete data", + "operationId": "data.delete", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/DataDeleteResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Data.DeleteBody" + } } - } - }, - "Bundle.WriteBody": { - "type": "object", - "properties": { - "bundles": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/DataBundle" - }, - "description": "Contains the bundle data to be written." - } - }, - "description": "BundleWriteRequest is used to request the writing of a bundle.\nIt contains the tenant_id to identify the tenant and the Bundles object." - }, - "BundleDeleteResponse": { - "type": "object", - "properties": { - "name": { + ], + "tags": [ + "Data" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "rr, err := client.Data.Delete(context.Background(), \u0026v1.DataDeleteRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.DataDeleteRequestMetadata{\n SnapToken: \"\",\n },\n TupleFilter: \u0026v1.TupleFilter{\n Entity: \u0026v1.EntityFilter{\n Type: \"organization\",\n Ids: []string{\"1\"},\n },\n Relation: \"admin\",\n Subject: \u0026v1.SubjectFilter{\n Type: \"user\",\n Id: []string{\"1\"},\n Relation: \"\"\n }\n }\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.data.delete({\n tenantId: \"t1\",\n metadata: {\n snap_token: \"\",\n },\n tupleFilter: {\n entity: {\n type: \"organization\",\n ids: [\n \"1\"\n ]\n },\n relation: \"admin\",\n subject: {\n type: \"user\",\n ids: [\n \"1\"\n ],\n relation: \"\"\n }\n }\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/data/delete' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"tuple_filter\": {\n \"entity\": {\n \"type\": \"organization\",\n \"ids\": [\n \"1\"\n ]\n },\n \"relation\": \"admin\",\n \"subject\": {\n \"type\": \"user\",\n \"ids\": [\n \"1\"\n ],\n \"relation\": \"\"\n }\n },\n \"attribute_filter\": {}\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/data/relationships/read": { + "post": { + "summary": "read relationships", + "operationId": "data.relationships.read", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/RelationshipReadResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, "type": "string" - } - } - }, - "BundleReadResponse": { - "type": "object", - "properties": { - "bundle": { - "$ref": "#/definitions/DataBundle" - } - } - }, - "BundleRunResponse": { - "type": "object", - "properties": { - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" - } - }, - "description": "BundleRunResponse is the response for a BundleRunRequest.\nIt includes a snap_token, which may be used for tracking the execution or its results." - }, - "BundleWriteResponse": { - "type": "object", - "properties": { - "names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Identifier or acknowledgment of the written bundle." - } - }, - "description": "BundleWriteResponse is the response for a BundleWriteRequest.\nIt includes a name which could be used as an identifier or acknowledgment." - }, - "CheckBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/PermissionCheckRequestMetadata", - "description": "Metadata associated with this request, required." - }, - "entity": { - "$ref": "#/definitions/Entity", - "example": "repository:1", - "description": "Entity on which the permission needs to be checked, required." - }, - "permission": { - "type": "string", - "description": "The action the user wants to perform on the resource" - }, - "subject": { - "$ref": "#/definitions/Subject", - "description": "Subject for which the permission needs to be checked, required." - }, - "context": { - "$ref": "#/definitions/Context", - "description": "Contextual data that can be dynamically added to permission check requests. See details on [Contextual Data](../../operations/contextual-tuples)" }, - "arguments": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Argument" - }, - "description": "Additional arguments associated with this request." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ReadRelationshipsBody" + } } - }, - "description": "PermissionCheckRequest is the request message for the Check method in the Permission service." - }, - "CheckResult": { - "type": "string", - "enum": [ - "CHECK_RESULT_UNSPECIFIED", - "CHECK_RESULT_ALLOWED", - "CHECK_RESULT_DENIED" ], - "default": "CHECK_RESULT_UNSPECIFIED", - "description": "Enumerates results of a check operation.\n\n - CHECK_RESULT_UNSPECIFIED: Not specified check result. This is the default value.\n - CHECK_RESULT_ALLOWED: Represents a successful check (the check allowed the operation).\n - CHECK_RESULT_DENIED: Represents a failed check (the check denied the operation)." - }, - "CheckedExpr": { - "type": "object", - "properties": { - "referenceMap": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/v1alpha1.Reference" - }, - "description": "A map from expression ids to resolved references.\n\nThe following entries are in this table:\n\n- An Ident or Select expression is represented here if it resolves to a\n declaration. For instance, if `a.b.c` is represented by\n `select(select(id(a), b), c)`, and `a.b` resolves to a declaration,\n while `c` is a field selection, then the reference is attached to the\n nested select expression (but not to the id or or the outer select).\n In turn, if `a` resolves to a declaration and `b.c` are field selections,\n the reference is attached to the ident expression.\n- Every Call expression has an entry here, identifying the function being\n called.\n- Every CreateStruct expression for a message has an entry, identifying\n the message." + "tags": [ + "Data" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "rr, err := client.Data.ReadRelationships(context.Background(), \u0026v1.Data.RelationshipReadRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.Data.RelationshipReadRequestMetadata{\n SnapToken: \"\"\n },\n Filter: \u0026v1.TupleFilter{\n Entity: \u0026v1.EntityFilter{\n Type: \"organization\",\n Ids: []string{\"1\"},\n },\n Relation: \"member\",\n Subject: \u0026v1.SubjectFilter{\n Type: \"\",\n Id: []string{\"\"},\n Relation: \"\"\n }\n }\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.data.readRelationships({\n tenantId: \"t1\",\n metadata: {\n snap_token: \"\",\n },\n filter: {\n entity: {\n type: \"organization\",\n ids: [\n \"1\"\n ]\n },\n relation: \"member\",\n subject: {\n type: \"\",\n ids: [],\n relation: \"\"\n }\n }\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/data/relationships/read' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n metadata: {\n snap_token: \"\",\n },\n filter: {\n entity: {\n type: \"organization\",\n ids: [\n \"1\"\n ]\n },\n relation: \"member\",\n subject: {\n type: \"\",\n ids: [],\n relation: \"\"\n }\n }\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/data/run-bundle": { + "post": { + "summary": "run bundle", + "operationId": "bundle.run", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BundleRunResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "typeMap": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/v1alpha1.Type" - }, - "description": "A map from expression ids to types.\n\nEvery expression node which has a type different than DYN has a mapping\nhere. If an expression has type DYN, it is omitted from this map to save\nspace." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RunBundleBody" + } + } + ], + "tags": [ + "Data" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "rr, err := client.Data.RunBundle(context.Background(), \u0026v1.BundleRunRequest{\n TenantId: \"t1\",\n Name: \"organization_created\",\n Arguments: map[string]string{\n \"creatorID\": \"564\",\n \"organizationID\": \"789\",\n },\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.data.runBundle({\n tenantId: \"t1\",\n name: \"organization_created\",\n arguments: {\n creatorID: \"564\",\n organizationID: \"789\",\n }\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/data/run-bundle' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"name\": \"organization_created\",\n \"arguments\": {\n \"creatorID\": \"564\",\n \"organizationID\": \"789\"\n }\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/data/write": { + "post": { + "summary": "write data", + "operationId": "data.write", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/DataWriteResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "sourceInfo": { - "$ref": "#/definitions/SourceInfo", - "description": "The source info derived from input that generated the parsed `expr` and\nany optimizations made during the type-checking pass." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Data.WriteBody" + } + } + ], + "tags": [ + "Data" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "// Convert the wrapped attribute value into Any proto message\nvalue, err := anypb.New(\u0026v1.BooleanValue{\n Data: true,\n})\nif err != nil {\n // Handle error\n}\n\ncr, err := client.Data.Write(context.Background(), \u0026v1.DataWriteRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.DataWriteRequestMetadata{\n SchemaVersion: \"\",\n },\n Tuples: []*v1.Tuple{\n {\n Entity: \u0026v1.Entity{\n Type: \"document\",\n Id: \"1\",\n },\n Relation: \"editor\",\n Subject: \u0026v1.Subject{\n Type: \"user\",\n Id: \"1\",\n Relation: \"\",\n },\n },\n },\n Attributes: []*v1.Attribute{\n {\n Entity: \u0026v1.Entity{\n Type: \"document\",\n Id: \"1\",\n },\n Attribute: \"is_private\",\n Value: value,\n },\n },\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "const booleanValue = BooleanValue.fromJSON({ data: true });\n\nconst value = Any.fromJSON({\n typeUrl: 'type.googleapis.com/base.v1.BooleanValue',\n value: BooleanValue.encode(booleanValue).finish()\n});\n\nclient.data.write({\n tenantId: \"t1\",\n metadata: {\n schemaVersion: \"\"\n },\n tuples: [{\n entity: {\n type: \"document\",\n id: \"1\"\n },\n relation: \"editor\",\n subject: {\n type: \"user\",\n id: \"1\"\n }\n }],\n attributes: [{\n entity: {\n type: \"document\",\n id: \"1\"\n },\n attribute: \"is_private\",\n value: value,\n }]\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/data/write' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {\n \"schema_version\": \"\"\n },\n \"tuples\": [\n {\n \"entity\": {\n \"type\": \"document\",\n \"id\": \"1\"\n },\n \"relation\": \"editor\",\n \"subject\": {\n \"type\": \"user\",\n \"id\": \"1\"\n }\n }\n ],\n \"attributes\": [\n {\n \"entity\": {\n \"type\": \"document\",\n \"id\": \"1\"\n },\n \"attribute\": \"is_private\",\n \"value\": {\n \"@type\": \"type.googleapis.com/base.v1.BooleanValue\",\n \"data\": true\n }\n }\n ]\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/permissions/bulk-check": { + "post": { + "summary": "bulk check api", + "description": "Check multiple permissions in a single request. Maximum 100 requests allowed.", + "operationId": "permissions.bulk-check", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PermissionBulkCheckResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "exprVersion": { - "type": "string", - "description": "The expr version indicates the major / minor version number of the `expr`\nrepresentation.\n\nThe most common reason for a version change will be to indicate to the CEL\nruntimes that transformations have been performed on the expr during static\nanalysis. In some cases, this will save the runtime the work of applying\nthe same or similar transformations prior to evaluation." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BulkCheckBody" + } + } + ], + "tags": [ + "Permission" + ] + } + }, + "/v1/tenants/{tenant_id}/permissions/check": { + "post": { + "summary": "check api", + "operationId": "permissions.check", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PermissionCheckResponse" + } }, - "expr": { - "$ref": "#/definitions/Expr", - "description": "The checked expression. Semantically equivalent to the parsed `expr`, but\nmay have structural differences." + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } } }, - "description": "A CEL expression which has been successfully type checked." - }, - "Child": { - "type": "object", - "properties": { - "leaf": { - "$ref": "#/definitions/Leaf", - "description": "Leaf node in the permission tree." + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "rewrite": { - "$ref": "#/definitions/Rewrite", - "description": "Rewrite operation in the permission tree." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CheckBody" + } } - }, - "description": "Child represents a node in the permission tree." - }, - "Component": { - "type": "string", - "enum": [ - "COMPONENT_UNSPECIFIED", - "COMPONENT_PARSER", - "COMPONENT_TYPE_CHECKER", - "COMPONENT_RUNTIME" ], - "default": "COMPONENT_UNSPECIFIED", - "description": "CEL component specifier.\n\n - COMPONENT_UNSPECIFIED: Unspecified, default.\n - COMPONENT_PARSER: Parser. Converts a CEL string to an AST.\n - COMPONENT_TYPE_CHECKER: Type checker. Checks that references in an AST are defined and types\nagree.\n - COMPONENT_RUNTIME: Runtime. Evaluates a parsed and optionally checked CEL AST against a\ncontext." - }, - "Comprehension": { - "type": "object", - "properties": { - "iterVar": { - "type": "string", - "description": "The name of the first iteration variable.\nWhen the iter_range is a list, this variable is the list element.\nWhen the iter_range is a map, this variable is the map entry key." - }, - "iterVar2": { - "type": "string", - "description": "The name of the second iteration variable, empty if not set.\nWhen the iter_range is a list, this variable is the integer index.\nWhen the iter_range is a map, this variable is the map entry value.\nThis field is only set for comprehension v2 macros." - }, - "iterRange": { - "$ref": "#/definitions/Expr", - "description": "The range over which the comprehension iterates." - }, - "accuVar": { - "type": "string", - "description": "The name of the variable used for accumulation of the result." - }, - "accuInit": { - "$ref": "#/definitions/Expr", - "description": "The initial value of the accumulator." - }, - "loopCondition": { - "$ref": "#/definitions/Expr", - "description": "An expression which can contain iter_var, iter_var2, and accu_var.\n\nReturns false when the result has been computed and may be used as\na hint to short-circuit the remainder of the comprehension." - }, - "loopStep": { - "$ref": "#/definitions/Expr", - "description": "An expression which can contain iter_var, iter_var2, and accu_var.\n\nComputes the next value of accu_var." + "tags": [ + "Permission" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "cr, err := client.Permission.Check(context.Background(), \u0026v1.PermissionCheckRequest {\n TenantId: \"t1\",\n Metadata: \u0026v1.PermissionCheckRequestMetadata {\n SnapToken: \"\",\n SchemaVersion: \"\",\n Depth: 20,\n },\n Entity: \u0026v1.Entity {\n Type: \"repository\",\n Id: \"1\",\n },\n Permission: \"edit\",\n Subject: \u0026v1.Subject {\n Type: \"user\",\n Id: \"1\",\n },\n})\nif cr.Can == v1.PermissionCheckResponse_Result_RESULT_ALLOWED {\n // RESULT_ALLOWED\n} else {\n // RESULT_DENIED\n}" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.permission.check({\n tenantId: \"t1\", \n metadata: {\n snapToken: \"\",\n schemaVersion: \"\",\n depth: 20\n },\n entity: {\n type: \"repository\",\n id: \"1\"\n },\n permission: \"edit\",\n subject: {\n type: \"user\",\n id: \"1\"\n }\n}).then((response) =\u003e {\n if (response.can === PermissionCheckResponse_Result.RESULT_ALLOWED) {\n console.log(\"RESULT_ALLOWED\")\n } else {\n console.log(\"RESULT_DENIED\")\n }\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/permissions/check' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {\n \"snap_token\": \"\",\n \"schema_version\": \"\",\n \"depth\": 20\n },\n \"entity\": {\n \"type\": \"repository\",\n \"id\": \"1\"\n },\n \"permission\": \"edit\",\n \"subject\": {\n \"type\": \"user\",\n \"id\": \"1\",\n \"relation\": \"\"\n }\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/permissions/expand": { + "post": { + "summary": "expand api", + "operationId": "permissions.expand", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PermissionExpandResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "result": { - "$ref": "#/definitions/Expr", - "description": "An expression which can contain accu_var.\n\nComputes the result." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Permission.ExpandBody" + } } - }, - "description": "A comprehension expression applied to a list or map.\n\nComprehensions are not part of the core syntax, but enabled with macros.\nA macro matches a specific call signature within a parsed AST and replaces\nthe call with an alternate AST block. Macro expansion happens at parse\ntime.\n\nThe following macros are supported within CEL:\n\nAggregate type macros may be applied to all elements in a list or all keys\nin a map:\n\n* `all`, `exists`, `exists_one` - test a predicate expression against\n the inputs and return `true` if the predicate is satisfied for all,\n any, or only one value `list.all(x, x \u003c 10)`.\n* `filter` - test a predicate expression against the inputs and return\n the subset of elements which satisfy the predicate:\n `payments.filter(p, p \u003e 1000)`.\n* `map` - apply an expression to all elements in the input and return the\n output aggregate type: `[1, 2, 3].map(i, i * i)`.\n\nThe `has(m.x)` macro tests whether the property `x` is present in struct\n`m`. The semantics of this macro depend on the type of `m`. For proto2\nmessages `has(m.x)` is defined as 'defined, but not set`. For proto3, the\nmacro tests whether the property is set to its default. For map and struct\ntypes, the macro tests whether the property `x` is defined on `m`.\n\nComprehensions for the standard environment macros evaluation can be best\nvisualized as the following pseudocode:\n\n```\nlet `accu_var` = `accu_init`\nfor (let `iter_var` in `iter_range`) {\n if (!`loop_condition`) {\n break\n }\n `accu_var` = `loop_step`\n}\nreturn `result`\n```\n\nComprehensions for the optional V2 macros which support map-to-map\ntranslation differ slightly from the standard environment macros in that\nthey expose both the key or index in addition to the value for each list\nor map entry:\n\n```\nlet `accu_var` = `accu_init`\nfor (let `iter_var`, `iter_var2` in `iter_range`) {\n if (!`loop_condition`) {\n break\n }\n `accu_var` = `loop_step`\n}\nreturn `result`\n```" - }, - "ComputedAttribute": { - "type": "object", - "properties": { - "name": { - "type": "string", - "title": "Name of the computed attribute" + ], + "tags": [ + "Permission" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "cr, err := client.Permission.Expand(context.Background(), \u0026v1.PermissionExpandRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.PermissionExpandRequestMetadata{\n SnapToken: \"\",\n SchemaVersion: \"\",\n },\n Entity: \u0026v1.Entity{\n Type: \"repository\",\n Id: \"1\",\n },\n Permission: \"push\",\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.permission.expand({\n tenantId: \"t1\",\n metadata: {\n snapToken: \"\",\n schemaVersion: \"\"\n },\n entity: {\n type: \"repository\",\n id: \"1\"\n },\n permission: \"push\",\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/permissions/expand' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {\n \"schema_version\": \"\",\n \"snap_token\": \"\"\n },\n \"entity\": {\n \"type\": \"repository\",\n \"id\": \"1\"\n },\n \"permission\": \"push\"\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/permissions/lookup-entity": { + "post": { + "summary": "lookup entity", + "operationId": "permissions.lookupEntity", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PermissionLookupEntityResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LookupEntityBody" + } } - }, - "description": "ComputedAttribute defines a computed attribute which includes its name." - }, - "ComputedUserSet": { - "type": "object", - "properties": { - "relation": { - "type": "string", - "title": "Relation name" + ], + "tags": [ + "Permission" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "cr, err := client.Permission.LookupEntity(context.Background(), \u0026v1.PermissionLookupEntityRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.PermissionLookupEntityRequestMetadata{\n SnapToken: \"\",\n SchemaVersion: \"\",\n Depth: 20,\n },\n EntityType: \"document\",\n Permission: \"edit\",\n Subject: \u0026v1.Subject{\n Type: \"user\",\n Id: \"1\",\n }\n PageSize: 20,\n ContinuousToken: \"\",\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.permission.lookupEntity({\n tenantId: \"t1\",\n metadata: {\n snapToken: \"\",\n schemaVersion: \"\",\n depth: 20\n },\n entity_type: \"document\",\n permission: \"edit\",\n subject: {\n type: \"user\",\n id: \"1\"\n },\n page_size: 20,\n continuous_token: \"\"\n}).then((response) =\u003e {\n console.log(response.entity_ids)\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/permissions/lookup-entity' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\":{\n \"snap_token\": \"\",\n \"schema_version\": \"\",\n \"depth\": 20\n },\n \"entity_type\": \"document\",\n \"permission\": \"edit\",\n \"subject\": {\n \"type\":\"user\",\n \"id\":\"1\"\n },\n \"page_size\": 20,\n \"continuous_token\": \"\",\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/permissions/lookup-entity-stream": { + "post": { + "summary": "lookup entity stream", + "operationId": "permissions.lookupEntityStream", + "responses": { + "200": { + "description": "A successful response.(streaming responses)", + "schema": { + "type": "object", + "properties": { + "result": { + "$ref": "#/definitions/PermissionLookupEntityStreamResponse" + }, + "error": { + "$ref": "#/definitions/Status" + } + }, + "title": "Stream result of PermissionLookupEntityStreamResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } } }, - "description": "ComputedUserSet defines a set of computed users which includes the relation name." - }, - "Constant": { - "type": "object", - "properties": { - "nullValue": { - "type": "string", - "description": "null value." - }, - "boolValue": { - "type": "boolean", - "description": "boolean value." - }, - "int64Value": { - "type": "string", - "format": "int64", - "description": "int64 value." - }, - "uint64Value": { - "type": "string", - "format": "uint64", - "description": "uint64 value." - }, - "doubleValue": { - "type": "number", - "format": "double", - "description": "double value." + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "stringValue": { - "type": "string", - "description": "string value." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LookupEntityStreamBody" + } + } + ], + "tags": [ + "Permission" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "str, err := client.Permission.LookupEntityStream(context.Background(), \u0026v1.PermissionLookupEntityRequest{\n Metadata: \u0026v1.PermissionLookupEntityRequestMetadata{\n SnapToken: \"\",\n SchemaVersion: \"\",\n Depth: 50,\n },\n EntityType: \"document\",\n Permission: \"view\",\n Subject: \u0026v1.Subject{\n Type: \"user\",\n Id: \"1\",\n },\n PageSize: 20,\n ContinuousToken: \"\",\n})\n\n// handle stream response\nfor {\n res, err := str.Recv()\n\n if err == io.EOF {\n break\n }\n\n // res.EntityId\n}" + }, + { + "label": "node", + "lang": "javascript", + "source": "const permify = require(\"@permify/permify-node\");\nconst {PermissionLookupEntityStreamResponse} = require(\"@permify/permify-node/dist/src/grpc/generated/base/v1/service\");\n\nfunction main() {\n const client = new permify.grpc.newClient({\n endpoint: \"localhost:3478\",\n });\n\n let res = client.permission.lookupEntityStream({\n metadata: {\n snapToken: \"\",\n schemaVersion: \"\",\n depth: 20\n },\n entityType: \"document\",\n permission: \"view\",\n subject: {\n type: \"user\",\n id: \"1\"\n },\n page_size: 20,\n continuous_token: \"\"\n });\n\n handle(res);\n}\n\nasync function handle(res: AsyncIterable\u003cPermissionLookupEntityStreamResponse\u003e) {\n for await (const response of res) {\n // response.entityId\n }\n}" + } + ] + } + }, + "/v1/tenants/{tenant_id}/permissions/lookup-subject": { + "post": { + "summary": "lookup-subject", + "operationId": "permissions.lookupSubject", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PermissionLookupSubjectResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "bytesValue": { - "type": "string", - "format": "byte", - "description": "bytes value." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/LookupSubjectBody" + } + } + ], + "tags": [ + "Permission" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "cr, err := client.Permission.LookupSubject(context.Background(), \u0026v1.PermissionLookupSubjectRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.PermissionLookupSubjectRequestMetadata{\n SnapToken: \"\",\n SchemaVersion: \"\",\n Depth: 20,\n },\n Entity: \u0026v1.Entity{\n Type: \"document\",\n Id: \"1\",\n },\n Permission: \"edit\",\n SubjectReference: \u0026v1.RelationReference{\n Type: \"user\",\n Relation: \"\",\n },\n PageSize: 20,\n ContinuousToken: \"\",\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.permission.lookupSubject({\n tenantId: \"t1\",\n metadata: {\n snapToken: \"\",\n schemaVersion: \"\",\n depth: 20,\n },\n entity: {\n type: \"document\",\n id: \"1\",\n },\n permission: \"edit\",\n subject_reference: {\n type: \"user\",\n relation: \"\"\n },\n page_size: 10,\n continuous_token: \"\"\n}).then((response) =\u003e {\n console.log(response.subject_ids)\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/permissions/lookup-subject' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\":{\n \"snap_token\": \"\",\n \"schema_version\": \"\",\n \"depth\": 20,\n },\n \"entity\": {\n \"type\": \"document\",\n \"id\": \"1\"\n },\n \"permission\": \"edit\",\n \"subject_reference\": {\n \"type\": \"user\",\n \"relation\": \"\"\n },\n page_size: 20,\n continuous_token: \"\"\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/permissions/subject-permission": { + "post": { + "summary": "subject permission", + "operationId": "permissions.subjectPermission", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/PermissionSubjectPermissionResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "durationValue": { - "type": "string", - "description": "protobuf.Duration value.\n\nDeprecated: duration is no longer considered a builtin cel type." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SubjectPermissionBody" + } + } + ], + "tags": [ + "Permission" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "cr, err := client.Permission.SubjectPermission(context.Background(), \u0026v1.PermissionSubjectPermissionRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.PermissionSubjectPermissionRequestMetadata{\n SnapToken: \"\",\n SchemaVersion: \"\",\n OnlyPermission: false,\n Depth: 20,\n },\n Entity: \u0026v1.Entity{\n Type: \"repository\",\n Id: \"1\",\n },\n Subject: \u0026v1.Subject{\n Type: \"user\",\n Id: \"1\",\n },\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.permission.subjectPermission({\n tenantId: \"t1\",\n metadata: {\n snapToken: \"\",\n schemaVersion: \"\",\n onlyPermission: true,\n depth: 20\n },\n entity: {\n type: \"repository\",\n id: \"1\"\n },\n subject: {\n type: \"user\",\n id: \"1\"\n }\n}).then((response) =\u003e {\n console.log(response);\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/permissions/subject-permission' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\":{\n \"snap_token\": \"\",\n \"schema_version\": \"\",\n \"only_permission\": true,\n \"depth\": 20\n },\n \"entity\": {\n \"type\": \"repository\",\n \"id\": \"1\"\n },\n \"subject\": {\n \"type\": \"user\",\n \"id\": \"1\",\n \"relation\": \"\"\n }\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/relationships/delete": { + "post": { + "summary": "delete relationships", + "operationId": "relationships.delete", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/RelationshipDeleteResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "timestampValue": { - "type": "string", - "format": "date-time", - "description": "protobuf.Timestamp value.\n\nDeprecated: timestamp is no longer considered a builtin cel type." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/DeleteRelationshipsBody" + } } - }, - "description": "Represents a primitive literal.\n\nNamed 'Constant' here for backwards compatibility.\n\nThis is similar as the primitives supported in the well-known type\n`google.protobuf.Value`, but richer so it can represent CEL's full range of\nprimitives.\n\nLists and structs are not included as constants as these aggregate types may\ncontain [Expr][google.api.expr.v1alpha1.Expr] elements which require\nevaluation and are thus not constant.\n\nExamples of literals include: `\"hello\"`, `b'bytes'`, `1u`, `4.2`, `-2`,\n`true`, `null`." - }, - "Context": { - "type": "object", - "properties": { - "tuples": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Tuple" - }, - "description": "A repeated field of tuples involved in the operation." + ], + "tags": [ + "Data" + ] + } + }, + "/v1/tenants/{tenant_id}/relationships/write": { + "post": { + "summary": "write relationships", + "operationId": "relationships.write", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/RelationshipWriteResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "attributes": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Attribute" - }, - "description": "A repeated field of attributes associated with the operation." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WriteRelationshipsBody" + } + } + ], + "tags": [ + "Data" + ] + } + }, + "/v1/tenants/{tenant_id}/schemas/list": { + "post": { + "summary": "list schema", + "operationId": "schemas.list", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/SchemaListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "data": { - "type": "object", - "description": "Additional data associated with the context." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Schema.ListBody" + } } - }, - "description": "Context encapsulates the information related to a single operation,\nincluding the tuples involved and the associated attributes." - }, - "CreateList": { - "type": "object", - "properties": { - "elements": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Expr" - }, - "description": "The elements part of the list." - }, - "optionalIndices": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "description": "The indices within the elements list which are marked as optional\nelements.\n\nWhen an optional-typed value is present, the value it contains\nis included in the list. If the optional-typed value is absent, the list\nelement is omitted from the CreateList result." - } - }, - "description": "A list creation expression.\n\nLists may either be homogenous, e.g. `[1, 2, 3]`, or heterogeneous, e.g.\n`dyn([1, 'hello', 2.0])`" - }, - "CreateStruct": { - "type": "object", - "properties": { - "messageName": { - "type": "string", - "description": "The type name of the message to be created, empty when creating map\nliterals." - }, - "entries": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Entry" - }, - "description": "The entries in the creation expression." + ], + "tags": [ + "Schema" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "sr, err := client.Schema.List(context.Background(), \u0026v1.SchemaListRequest{\n TenantId: \"t1\",\n PageSize: 20,\n ContinuousToken: \"\",\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "let res = client.schema.list({\n tenantId: \"t1\",\n continuousToken: \"\"\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/schemas/list' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"page_size\": 20,\n \"continuous_token\": \"\"\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/schemas/partial-write": { + "patch": { + "summary": "partially update your authorization model", + "operationId": "schemas.partial-write", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/SchemaPartialWriteResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "tenant_id is a string that identifies the tenant. It must match the pattern \"[a-zA-Z0-9-,]+\",\nbe a maximum of 64 bytes, and must not be empty.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PartialWriteBody" + } } - }, - "description": "A map or message creation expression.\n\nMaps are constructed as `{'key_name': 'value'}`. Message construction is\nsimilar, but prefixed with a type name and composed of field ids:\n`types.MyType{field_id: 'value'}`." - }, - "Data.DeleteBody": { - "type": "object", - "properties": { - "tuple_filter": { - "$ref": "#/definitions/TupleFilter", - "description": "tuple_filter specifies the criteria used to select the tuples that should be deleted." + ], + "tags": [ + "Schema" + ] + } + }, + "/v1/tenants/{tenant_id}/schemas/read": { + "post": { + "summary": "read schema", + "operationId": "schemas.read", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/SchemaReadResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "attribute_filter": { - "$ref": "#/definitions/AttributeFilter", - "description": "attribute_filter specifies the criteria used to select the attributes that should be deleted." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Schema.ReadBody" + } } - }, - "description": "DataDeleteRequest defines the structure of a request to delete data.\nIt includes the tenant_id and filters for selecting tuples and attributes to be deleted." - }, - "Data.WriteBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/DataWriteRequestMetadata", - "description": "metadata holds additional data related to the request." + ], + "tags": [ + "Schema" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "sr, err := client.Schema.Read(context.Background(), \u0026v1.SchemaReadRequest{\n TenantId: \"t1\",\n Metadata: \u0026v1.SchemaReadRequestMetadata{\n SchemaVersion: \"cnbe6se5fmal18gpc66g\",\n },\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "let res = client.schema.read({\n tenantId: \"t1\",\n metadata: {\n schemaVersion: swResponse.schemaVersion,\n },\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/schemas/read' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"metadata\": {\n \"schema_version\": \"cnbe6se5fmal18gpc66g\"\n }\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/schemas/write": { + "post": { + "summary": "write schema", + "operationId": "schemas.write", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/SchemaWriteResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "tuples": { - "type": "array", - "items": { + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Schema.WriteBody" + } + } + ], + "tags": [ + "Schema" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "sr, err := client.Schema.Write(context.Background(), \u0026v1.SchemaWriteRequest{\n TenantId: \"t1\",\n Schema: `\n entity user {}\n\n entity organization {\n relation admin @user\n relation member @user\n\n action create_repository = (admin or member)\n action delete = admin\n }\n\n entity repository {\n relation owner @user\n relation parent @organization\n\n action push = owner\n action read = (owner and (parent.admin and parent.member))\n action delete = (parent.member and (parent.admin or owner))\n }\n `,\n})" + }, + { + "label": "node", + "lang": "javascript", + "source": "client.schema.write({\n tenantId: \"t1\",\n schema: `\n entity user {}\n\n entity organization {\n relation admin @user\n relation member @user\n\n action create_repository = (admin or member)\n action delete = admin\n }\n\n entity repository {\n relation owner @user\n relation parent @organization\n\n action push = owner\n action read = (owner and (parent.admin and parent.member))\n action delete = (parent.member and (parent.admin or owner))\n }\n `\n}).then((response) =\u003e {\n // handle response\n})" + }, + { + "label": "cURL", + "lang": "curl", + "source": "curl --location --request POST 'localhost:3476/v1/tenants/{tenant_id}/schemas/write' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"schema\": \"entity user {}\\n\\n entity organization {\\n\\n relation admin @user\\n relation member @user\\n\\n action create_repository = (admin or member)\\n action delete = admin\\n }\\n\\n entity repository {\\n\\n relation owner @user\\n relation parent @organization\\n\\n action push = owner\\n action read = (owner and (parent.admin and parent.member))\\n action delete = (parent.member and (parent.admin or owner))\\n }\"\n}'" + } + ] + } + }, + "/v1/tenants/{tenant_id}/watch": { + "post": { + "summary": "watch changes", + "operationId": "watch.watch", + "responses": { + "200": { + "description": "A successful response.(streaming responses)", + "schema": { "type": "object", - "$ref": "#/definitions/Tuple" - }, - "description": "tuples contains the list of tuples (entity-relation-entity triples) that need to be written." + "properties": { + "result": { + "$ref": "#/definitions/WatchResponse" + }, + "error": { + "$ref": "#/definitions/Status" + } + }, + "title": "Stream result of WatchResponse" + } }, - "attributes": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Attribute" - }, - "description": "attributes contains the list of attributes (entity-attribute-value triples) that need to be written." - } - }, - "description": "DataWriteRequest defines the structure of a request for writing data.\nIt contains the necessary information such as tenant_id, metadata,\ntuples and attributes for the write operation." - }, - "DataBundle": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "'name' is a simple string field representing the name of the DataBundle." - }, - "arguments": { - "type": "array", - "items": { - "type": "string" - }, - "description": "'arguments' is a repeated field, which means it can contain multiple strings.\nThese are used to store a list of arguments related to the DataBundle." - }, - "operations": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1.Operation" - }, - "description": "'operations' is a repeated field containing multiple Operation messages.\nEach Operation represents a specific action or set of actions to be performed." + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } } }, - "description": "DataBundle is a message representing a bundle of data, which includes a name,\na list of arguments, and a series of operations." - }, - "DataChange": { - "type": "object", - "properties": { - "operation": { - "$ref": "#/definitions/DataChange.Operation", - "description": "The operation type." - }, - "tuple": { - "$ref": "#/definitions/Tuple", - "description": "If the change is a tuple." + "parameters": [ + { + "name": "tenant_id", + "description": "Identifier of the tenant, if you are not using multi-tenancy (have only one tenant) use pre-inserted tenant \u003ccode\u003et1\u003c/code\u003e for this field. Required, and must match the pattern \\“[a-zA-Z0-9-,]+\\“, max 64 bytes.", + "in": "path", + "required": true, + "type": "string" }, - "attribute": { - "$ref": "#/definitions/Attribute", - "description": "If the change is an attribute." + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WatchBody" + } } - }, - "description": "DataChange represents a single change in data, with an operation type and the actual change which could be a tuple or an attribute." - }, - "DataChange.Operation": { - "type": "string", - "enum": [ - "OPERATION_UNSPECIFIED", - "OPERATION_CREATE", - "OPERATION_DELETE" ], - "default": "OPERATION_UNSPECIFIED", - "description": " - OPERATION_UNSPECIFIED: Default operation, not specified.\n - OPERATION_CREATE: Creation operation.\n - OPERATION_DELETE: Deletion operation." - }, - "DataChanges": { - "type": "object", - "properties": { - "snap_token": { - "type": "string", - "description": "The snapshot token." - }, - "data_changes": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/DataChange" - }, - "description": "The list of data changes." - } - }, - "description": "DataChanges represent changes in data with a snap token and a list of data change objects." + "tags": [ + "Watch" + ], + "x-codeSamples": [ + { + "label": "go", + "lang": "go", + "source": "cr, err := client.Watch.Watch(context.Background(), \u0026v1.WatchRequest{\n TenantId: \"t1\",\n SnapToken: \"\",\n})\n// handle stream response\nfor {\n res, err := cr.Recv()\n\n if err == io.EOF {\n break\n }\n\n // res.Changes\n}\n" + }, + { + "label": "node", + "lang": "javascript", + "source": "const permify = require(\"@permify/permify-node\");\nconst {WatchResponse} = require(\"@permify/permify-node/dist/src/grpc/generated/base/v1/service\");\n\nfunction main() {\n const client = new permify.grpc.newClient({\n endpoint: \"localhost:3478\",\n });\n\n let res = client.watch.watch({\n tenantId: \"t1\",\n snapToken: \"\"\n });\n\n handle(res);\n}\n\nasync function handle(res: AsyncIterable\u003cWatchResponse\u003e) {\n for await (const response of res) {\n // response.changes\n }\n}\n" + } + ] + } + } + }, + "definitions": { + "AbstractType": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The fully qualified name of this abstract type." + }, + "parameterTypes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1alpha1.Type" + }, + "description": "Parameter types for this abstract type." + } }, - "DataDeleteResponse": { - "type": "object", - "properties": { - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" - } - }, - "description": "DataDeleteResponse defines the structure of the response to a data delete request.\nIt includes a snap_token representing the state of the database after the deletion." + "description": "Application defined abstract type." + }, + "Any": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } }, - "DataWriteRequestMetadata": { - "type": "object", - "properties": { - "schema_version": { - "type": "string", - "description": "schema_version represents the version of the schema for the data being written." - } - }, - "description": "DataWriteRequestMetadata defines the structure of metadata for a write request.\nIt includes the schema version of the data to be written." + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "Argument": { + "type": "object", + "properties": { + "computedAttribute": { + "$ref": "#/definitions/ComputedAttribute" + } }, - "DataWriteResponse": { - "type": "object", - "properties": { - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." - } - }, - "description": "DataWriteResponse defines the structure of the response after writing data.\nIt contains the snap_token generated after the write operation." + "description": "Argument defines the type of argument in a Call. It can be either a ComputedAttribute or a ContextAttribute." + }, + "Attribute": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/Entity" + }, + "attribute": { + "type": "string", + "title": "Name of the attribute" + }, + "value": { + "$ref": "#/definitions/Any" + } }, - "DeleteRelationshipsBody": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/definitions/TupleFilter" - } - }, - "title": "RelationshipDeleteRequest" + "description": "Attribute represents an attribute of an entity with a specific type and value." + }, + "AttributeDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the attribute, which follows a specific string pattern and has a maximum byte size." + }, + "type": { + "$ref": "#/definitions/AttributeType", + "description": "The type of the attribute." + } }, - "Entity": { - "type": "object", - "properties": { - "type": { + "description": "The AttributeDefinition message provides detailed information about a specific attribute." + }, + "AttributeFilter": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/EntityFilter" + }, + "attributes": { + "type": "array", + "items": { "type": "string" }, - "id": { - "type": "string" - } - }, - "description": "Entity represents an entity with a type and an identifier." + "title": "Names of the attributes to be filtered" + } }, - "EntityDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the entity, which follows a specific string pattern and has a maximum byte size." - }, - "relations": { + "description": "AttributeFilter is used to filter attributes based on the entity and attribute names." + }, + "AttributeReadRequestMetadata": { + "type": "object", + "properties": { + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" + } + }, + "description": "AttributeReadRequestMetadata defines the structure for the metadata of an attribute read request.\nIt includes the snap_token associated with a particular state of the database." + }, + "AttributeReadResponse": { + "type": "object", + "properties": { + "attributes": { + "type": "array", + "items": { "type": "object", - "additionalProperties": { - "$ref": "#/definitions/RelationDefinition" - }, - "description": "Map of relation definitions within this entity. The key is the relation name, and the value is the RelationDefinition." + "$ref": "#/definitions/Attribute" }, - "permissions": { + "description": "attributes is a list of the attributes retrieved in the read operation." + }, + "continuous_token": { + "type": "string", + "description": "continuous_token is used in the case of paginated reads to retrieve the next page of results." + } + }, + "description": "AttributeReadResponse defines the structure of the response to an attribute read request.\nIt includes the attributes retrieved and a continuous token for handling result pagination." + }, + "AttributeType": { + "type": "string", + "enum": [ + "ATTRIBUTE_TYPE_BOOLEAN", + "ATTRIBUTE_TYPE_BOOLEAN_ARRAY", + "ATTRIBUTE_TYPE_STRING", + "ATTRIBUTE_TYPE_STRING_ARRAY", + "ATTRIBUTE_TYPE_INTEGER", + "ATTRIBUTE_TYPE_INTEGER_ARRAY", + "ATTRIBUTE_TYPE_DOUBLE", + "ATTRIBUTE_TYPE_DOUBLE_ARRAY" + ], + "description": "Enumerates the types of attribute.\n\n - ATTRIBUTE_TYPE_BOOLEAN: A boolean attribute type.\n - ATTRIBUTE_TYPE_BOOLEAN_ARRAY: A boolean array attribute type.\n - ATTRIBUTE_TYPE_STRING: A string attribute type.\n - ATTRIBUTE_TYPE_STRING_ARRAY: A string array attribute type.\n - ATTRIBUTE_TYPE_INTEGER: An integer attribute type.\n - ATTRIBUTE_TYPE_INTEGER_ARRAY: An integer array attribute type.\n - ATTRIBUTE_TYPE_DOUBLE: A double attribute type.\n - ATTRIBUTE_TYPE_DOUBLE_ARRAY: A double array attribute type." + }, + "BulkCheckBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/PermissionCheckRequestMetadata", + "description": "Metadata associated with this request, required." + }, + "items": { + "type": "array", + "items": { "type": "object", - "additionalProperties": { - "$ref": "#/definitions/PermissionDefinition" - }, - "description": "Map of permission definitions within this entity. The key is the permission name, and the value is the PermissionDefinition." + "$ref": "#/definitions/PermissionBulkCheckRequestItem" }, - "attributes": { + "description": "List of permission check requests, maximum 100 items." + }, + "context": { + "$ref": "#/definitions/Context", + "description": "Contextual data that can be dynamically added to permission check requests. See details on [Contextual Data](../../operations/contextual-tuples)" + }, + "arguments": { + "type": "array", + "items": { "type": "object", - "additionalProperties": { - "$ref": "#/definitions/AttributeDefinition" - }, - "description": "Map of attribute definitions within this entity. The key is the attribute name, and the value is the AttributeDefinition." + "$ref": "#/definitions/Argument" }, - "references": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/EntityDefinition.Reference" - }, - "description": "Map of references indicating whether a string pertains to a relation, permission, or attribute." - } - }, - "description": "The EntityDefinition message provides detailed information about a specific entity." + "description": "Additional arguments associated with this request." + } }, - "EntityDefinition.Reference": { - "type": "string", - "enum": [ - "REFERENCE_UNSPECIFIED", - "REFERENCE_RELATION", - "REFERENCE_PERMISSION", - "REFERENCE_ATTRIBUTE" - ], - "default": "REFERENCE_UNSPECIFIED", - "description": "The Reference enum specifies whether a name pertains to a relation, permission, or attribute.\n\n - REFERENCE_UNSPECIFIED: Default, unspecified reference.\n - REFERENCE_RELATION: Indicates that the name refers to a relation.\n - REFERENCE_PERMISSION: Indicates that the name refers to a permission.\n - REFERENCE_ATTRIBUTE: Indicates that the name refers to an attribute." + "description": "PermissionBulkCheckRequest is the request message for the BulkCheck method in the Permission service." + }, + "Bundle.DeleteBody": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the bundle to be deleted." + } }, - "EntityFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "title": "Type of the entity" + "description": "BundleDeleteRequest is used to request the deletion of a bundle.\nIt contains the tenant_id to specify the tenant and the name of the bundle to be deleted." + }, + "Bundle.ReadBody": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, + "Bundle.WriteBody": { + "type": "object", + "properties": { + "bundles": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/DataBundle" }, - "ids": { - "type": "array", - "items": { - "type": "string" - }, - "title": "List of entity IDs" - } - }, - "description": "EntityFilter is used to filter entities based on the type and ids." + "description": "Contains the bundle data to be written." + } }, - "Entry": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "int64", - "description": "Required. An id assigned to this node by the parser which is unique\nin a given expression tree. This is used to associate type\ninformation and other attributes to the node." - }, - "fieldKey": { - "type": "string", - "description": "The field key for a message creator statement." - }, - "mapKey": { - "$ref": "#/definitions/Expr", - "description": "The key expression for a map creation statement." - }, - "value": { - "$ref": "#/definitions/Expr", - "description": "Required. The value assigned to the key.\n\nIf the optional_entry field is true, the expression must resolve to an\noptional-typed value. If the optional value is present, the key will be\nset; however, if the optional value is absent, the key will be unset." - }, - "optionalEntry": { - "type": "boolean", - "description": "Whether the key-value pair is optional." - } - }, - "description": "Represents an entry." + "description": "BundleWriteRequest is used to request the writing of a bundle.\nIt contains the tenant_id to identify the tenant and the Bundles object." + }, + "BundleDeleteResponse": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, + "BundleReadResponse": { + "type": "object", + "properties": { + "bundle": { + "$ref": "#/definitions/DataBundle" + } + } + }, + "BundleRunResponse": { + "type": "object", + "properties": { + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" + } }, - "ExpandLeaf": { - "type": "object", - "properties": { - "subjects": { - "$ref": "#/definitions/Subjects", - "description": "subjects are used when the leaf is a set of subjects." - }, - "values": { - "$ref": "#/definitions/Values", - "description": "values are used when the leaf node is a set of values." + "description": "BundleRunResponse is the response for a BundleRunRequest.\nIt includes a snap_token, which may be used for tracking the execution or its results." + }, + "BundleWriteResponse": { + "type": "object", + "properties": { + "names": { + "type": "array", + "items": { + "type": "string" }, - "value": { - "$ref": "#/definitions/Any", - "description": "value is used when the leaf node is a single value." - } - }, - "description": "ExpandLeaf is the leaf node of an Expand tree and can be either a set of Subjects or a set of Values." + "description": "Identifier or acknowledgment of the written bundle." + } }, - "ExpandTreeNode": { - "type": "object", - "properties": { - "operation": { - "$ref": "#/definitions/ExpandTreeNode.Operation", - "title": "Operation to be applied on this tree node" + "description": "BundleWriteResponse is the response for a BundleWriteRequest.\nIt includes a name which could be used as an identifier or acknowledgment." + }, + "CheckBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/PermissionCheckRequestMetadata", + "description": "Metadata associated with this request, required." + }, + "entity": { + "$ref": "#/definitions/Entity", + "example": "repository:1", + "description": "Entity on which the permission needs to be checked, required." + }, + "permission": { + "type": "string", + "description": "The action the user wants to perform on the resource" + }, + "subject": { + "$ref": "#/definitions/Subject", + "description": "Subject for which the permission needs to be checked, required." + }, + "context": { + "$ref": "#/definitions/Context", + "description": "Contextual data that can be dynamically added to permission check requests. See details on [Contextual Data](../../operations/contextual-tuples)" + }, + "arguments": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Argument" }, - "children": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1.Expand" - }, - "title": "The children of this tree node" - } - }, - "description": "ExpandTreeNode represents a node in an expansion tree with a specific operation and its children." + "description": "Additional arguments associated with this request." + } }, - "ExpandTreeNode.Operation": { - "type": "string", - "enum": [ - "OPERATION_UNSPECIFIED", - "OPERATION_UNION", - "OPERATION_INTERSECTION", - "OPERATION_EXCLUSION" - ], - "default": "OPERATION_UNSPECIFIED", - "description": "Operation is an enum representing the type of operation to be applied on the tree node." - }, - "Expr": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "int64", - "description": "Required. An id assigned to this node by the parser which is unique in a\ngiven expression tree. This is used to associate type information and other\nattributes to a node in the parse tree." - }, - "constExpr": { - "$ref": "#/definitions/Constant", - "description": "A literal expression." - }, - "identExpr": { - "$ref": "#/definitions/Ident", - "description": "An identifier expression." - }, - "selectExpr": { - "$ref": "#/definitions/Select", - "description": "A field selection expression, e.g. `request.auth`." - }, - "callExpr": { - "$ref": "#/definitions/Expr.Call", - "description": "A call expression, including calls to predefined functions and operators." - }, - "listExpr": { - "$ref": "#/definitions/CreateList", - "description": "A list creation expression." - }, - "structExpr": { - "$ref": "#/definitions/CreateStruct", - "description": "A map or message creation expression." - }, - "comprehensionExpr": { - "$ref": "#/definitions/Comprehension", - "description": "A comprehension expression." - } - }, - "description": "An abstract representation of a common expression.\n\nExpressions are abstractly represented as a collection of identifiers,\nselect statements, function calls, literals, and comprehensions. All\noperators with the exception of the '.' operator are modelled as function\ncalls. This makes it easy to represent new operators into the existing AST.\n\nAll references within expressions must resolve to a\n[Decl][google.api.expr.v1alpha1.Decl] provided at type-check for an\nexpression to be valid. A reference may either be a bare identifier `name` or\na qualified identifier `google.api.name`. References may either refer to a\nvalue or a function declaration.\n\nFor example, the expression `google.api.name.startsWith('expr')` references\nthe declaration `google.api.name` within a\n[Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and the\nfunction declaration `startsWith`." - }, - "Expr.Call": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/Expr", - "description": "The target of an method call-style expression. For example, `x` in\n`x.f()`." - }, - "function": { - "type": "string", - "description": "Required. The name of the function or method being called." - }, - "args": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Expr" - }, - "description": "The arguments." - } - }, - "description": "A call expression, including calls to predefined functions and operators.\n\nFor example, `value == 10`, `size(map_value)`." + "description": "PermissionCheckRequest is the request message for the Check method in the Permission service." + }, + "CheckResult": { + "type": "string", + "enum": [ + "CHECK_RESULT_ALLOWED", + "CHECK_RESULT_DENIED" + ], + "description": "Enumerates results of a check operation.\n\n - CHECK_RESULT_ALLOWED: Represents a successful check (the check allowed the operation).\n - CHECK_RESULT_DENIED: Represents a failed check (the check denied the operation)." + }, + "CheckedExpr": { + "type": "object", + "properties": { + "referenceMap": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/v1alpha1.Reference" + }, + "description": "A map from expression ids to resolved references.\n\nThe following entries are in this table:\n\n- An Ident or Select expression is represented here if it resolves to a\n declaration. For instance, if `a.b.c` is represented by\n `select(select(id(a), b), c)`, and `a.b` resolves to a declaration,\n while `c` is a field selection, then the reference is attached to the\n nested select expression (but not to the id or or the outer select).\n In turn, if `a` resolves to a declaration and `b.c` are field selections,\n the reference is attached to the ident expression.\n- Every Call expression has an entry here, identifying the function being\n called.\n- Every CreateStruct expression for a message has an entry, identifying\n the message." + }, + "typeMap": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/v1alpha1.Type" + }, + "description": "A map from expression ids to types.\n\nEvery expression node which has a type different than DYN has a mapping\nhere. If an expression has type DYN, it is omitted from this map to save\nspace." + }, + "sourceInfo": { + "$ref": "#/definitions/SourceInfo", + "description": "The source info derived from input that generated the parsed `expr` and\nany optimizations made during the type-checking pass." + }, + "exprVersion": { + "type": "string", + "description": "The expr version indicates the major / minor version number of the `expr`\nrepresentation.\n\nThe most common reason for a version change will be to indicate to the CEL\nruntimes that transformations have been performed on the expr during static\nanalysis. In some cases, this will save the runtime the work of applying\nthe same or similar transformations prior to evaluation." + }, + "expr": { + "$ref": "#/definitions/Expr", + "description": "The checked expression. Semantically equivalent to the parsed `expr`, but\nmay have structural differences." + } }, - "Extension": { - "type": "object", - "properties": { - "id": { - "type": "string", - "title": "Identifier for the extension. Example: constant_folding" - }, - "affectedComponents": { - "type": "array", - "items": { - "$ref": "#/definitions/Component" - }, - "description": "If set, the listed components must understand the extension for the\nexpression to evaluate correctly.\n\nThis field has set semantics, repeated values should be deduplicated." - }, - "version": { - "$ref": "#/definitions/Version", - "description": "Version info. May be skipped if it isn't meaningful for the extension.\n(for example constant_folding might always be v0.0)." - } - }, - "description": "An extension that was requested for the source expression." + "description": "A CEL expression which has been successfully type checked." + }, + "Child": { + "type": "object", + "properties": { + "leaf": { + "$ref": "#/definitions/Leaf", + "description": "Leaf node in the permission tree." + }, + "rewrite": { + "$ref": "#/definitions/Rewrite", + "description": "Rewrite operation in the permission tree." + } }, - "FunctionType": { - "type": "object", - "properties": { - "resultType": { - "$ref": "#/definitions/v1alpha1.Type", - "description": "Result type of the function." - }, - "argTypes": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/v1alpha1.Type" - }, - "description": "Argument types of the function." - } - }, - "description": "Function type with result and arg types." + "description": "Child represents a node in the permission tree." + }, + "Component": { + "type": "string", + "enum": [ + "COMPONENT_PARSER", + "COMPONENT_TYPE_CHECKER", + "COMPONENT_RUNTIME" + ], + "description": "CEL component specifier.\n\n - COMPONENT_PARSER: Parser. Converts a CEL string to an AST.\n - COMPONENT_TYPE_CHECKER: Type checker. Checks that references in an AST are defined and types\nagree.\n - COMPONENT_RUNTIME: Runtime. Evaluates a parsed and optionally checked CEL AST against a\ncontext." + }, + "Comprehension": { + "type": "object", + "properties": { + "iterVar": { + "type": "string", + "description": "The name of the first iteration variable.\nWhen the iter_range is a list, this variable is the list element.\nWhen the iter_range is a map, this variable is the map entry key." + }, + "iterVar2": { + "type": "string", + "description": "The name of the second iteration variable, empty if not set.\nWhen the iter_range is a list, this variable is the integer index.\nWhen the iter_range is a map, this variable is the map entry value.\nThis field is only set for comprehension v2 macros." + }, + "iterRange": { + "$ref": "#/definitions/Expr", + "description": "The range over which the comprehension iterates." + }, + "accuVar": { + "type": "string", + "description": "The name of the variable used for accumulation of the result." + }, + "accuInit": { + "$ref": "#/definitions/Expr", + "description": "The initial value of the accumulator." + }, + "loopCondition": { + "$ref": "#/definitions/Expr", + "description": "An expression which can contain iter_var, iter_var2, and accu_var.\n\nReturns false when the result has been computed and may be used as\na hint to short-circuit the remainder of the comprehension." + }, + "loopStep": { + "$ref": "#/definitions/Expr", + "description": "An expression which can contain iter_var, iter_var2, and accu_var.\n\nComputes the next value of accu_var." + }, + "result": { + "$ref": "#/definitions/Expr", + "description": "An expression which can contain accu_var.\n\nComputes the result." + } }, - "Ident": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Required. Holds a single, unqualified identifier, possibly preceded by a\n'.'.\n\nQualified names are represented by the\n[Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression." - } - }, - "description": "An identifier expression. e.g. `request`." + "description": "A comprehension expression applied to a list or map.\n\nComprehensions are not part of the core syntax, but enabled with macros.\nA macro matches a specific call signature within a parsed AST and replaces\nthe call with an alternate AST block. Macro expansion happens at parse\ntime.\n\nThe following macros are supported within CEL:\n\nAggregate type macros may be applied to all elements in a list or all keys\nin a map:\n\n* `all`, `exists`, `exists_one` - test a predicate expression against\n the inputs and return `true` if the predicate is satisfied for all,\n any, or only one value `list.all(x, x \u003c 10)`.\n* `filter` - test a predicate expression against the inputs and return\n the subset of elements which satisfy the predicate:\n `payments.filter(p, p \u003e 1000)`.\n* `map` - apply an expression to all elements in the input and return the\n output aggregate type: `[1, 2, 3].map(i, i * i)`.\n\nThe `has(m.x)` macro tests whether the property `x` is present in struct\n`m`. The semantics of this macro depend on the type of `m`. For proto2\nmessages `has(m.x)` is defined as 'defined, but not set`. For proto3, the\nmacro tests whether the property is set to its default. For map and struct\ntypes, the macro tests whether the property `x` is defined on `m`.\n\nComprehensions for the standard environment macros evaluation can be best\nvisualized as the following pseudocode:\n\n```\nlet `accu_var` = `accu_init`\nfor (let `iter_var` in `iter_range`) {\n if (!`loop_condition`) {\n break\n }\n `accu_var` = `loop_step`\n}\nreturn `result`\n```\n\nComprehensions for the optional V2 macros which support map-to-map\ntranslation differ slightly from the standard environment macros in that\nthey expose both the key or index in addition to the value for each list\nor map entry:\n\n```\nlet `accu_var` = `accu_init`\nfor (let `iter_var`, `iter_var2` in `iter_range`) {\n if (!`loop_condition`) {\n break\n }\n `accu_var` = `loop_step`\n}\nreturn `result`\n```" + }, + "ComputedAttribute": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name of the computed attribute" + } }, - "Leaf": { - "type": "object", - "properties": { - "computedUserSet": { - "$ref": "#/definitions/ComputedUserSet", - "description": "A computed set of users." - }, - "tupleToUserSet": { - "$ref": "#/definitions/TupleToUserSet", - "description": "A tuple to user set conversion." + "description": "ComputedAttribute defines a computed attribute which includes its name." + }, + "ComputedUserSet": { + "type": "object", + "properties": { + "relation": { + "type": "string", + "title": "Relation name" + } + }, + "description": "ComputedUserSet defines a set of computed users which includes the relation name." + }, + "Constant": { + "type": "object", + "properties": { + "nullValue": { + "type": "string", + "description": "null value." + }, + "boolValue": { + "type": "boolean", + "description": "boolean value." + }, + "int64Value": { + "type": "string", + "format": "int64", + "description": "int64 value." + }, + "uint64Value": { + "type": "string", + "format": "uint64", + "description": "uint64 value." + }, + "doubleValue": { + "type": "number", + "format": "double", + "description": "double value." + }, + "stringValue": { + "type": "string", + "description": "string value." + }, + "bytesValue": { + "type": "string", + "format": "byte", + "description": "bytes value." + }, + "durationValue": { + "type": "string", + "description": "protobuf.Duration value.\n\nDeprecated: duration is no longer considered a builtin cel type." + }, + "timestampValue": { + "type": "string", + "format": "date-time", + "description": "protobuf.Timestamp value.\n\nDeprecated: timestamp is no longer considered a builtin cel type." + } + }, + "description": "Represents a primitive literal.\n\nNamed 'Constant' here for backwards compatibility.\n\nThis is similar as the primitives supported in the well-known type\n`google.protobuf.Value`, but richer so it can represent CEL's full range of\nprimitives.\n\nLists and structs are not included as constants as these aggregate types may\ncontain [Expr][google.api.expr.v1alpha1.Expr] elements which require\nevaluation and are thus not constant.\n\nExamples of literals include: `\"hello\"`, `b'bytes'`, `1u`, `4.2`, `-2`,\n`true`, `null`." + }, + "Context": { + "type": "object", + "properties": { + "tuples": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Tuple" }, - "computedAttribute": { - "$ref": "#/definitions/ComputedAttribute", - "description": "A computed attribute." + "description": "A repeated field of tuples involved in the operation." + }, + "attributes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Attribute" }, - "call": { - "$ref": "#/definitions/v1.Call", - "description": "A call to a function or method." - } + "description": "A repeated field of attributes associated with the operation." }, - "description": "Leaf represents a leaf node in the permission tree." + "data": { + "type": "object", + "description": "Additional data associated with the context." + } }, - "ListType": { - "type": "object", - "properties": { - "elemType": { - "$ref": "#/definitions/v1alpha1.Type", - "description": "The element type." - } + "description": "Context encapsulates the information related to a single operation,\nincluding the tuples involved and the associated attributes." + }, + "CreateList": { + "type": "object", + "properties": { + "elements": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Expr" + }, + "description": "The elements part of the list." }, - "description": "List type with typed elements, e.g. `list\u003cexample.proto.MyMessage\u003e`." - }, - "LookupEntityBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/PermissionLookupEntityRequestMetadata", - "description": "Metadata associated with this request, required." + "optionalIndices": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" }, - "entity_type": { - "type": "string", - "description": "Type of the entity to lookup, required, must start with a letter and can include alphanumeric and underscore, max 64 bytes." + "description": "The indices within the elements list which are marked as optional\nelements.\n\nWhen an optional-typed value is present, the value it contains\nis included in the list. If the optional-typed value is absent, the list\nelement is omitted from the CreateList result." + } + }, + "description": "A list creation expression.\n\nLists may either be homogenous, e.g. `[1, 2, 3]`, or heterogeneous, e.g.\n`dyn([1, 'hello', 2.0])`" + }, + "CreateStruct": { + "type": "object", + "properties": { + "messageName": { + "type": "string", + "description": "The type name of the message to be created, empty when creating map\nliterals." + }, + "entries": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Entry" }, - "permission": { - "type": "string", - "description": "Name of the permission to check, required, must start with a letter and can include alphanumeric and underscore, max 64 bytes." + "description": "The entries in the creation expression." + } + }, + "description": "A map or message creation expression.\n\nMaps are constructed as `{'key_name': 'value'}`. Message construction is\nsimilar, but prefixed with a type name and composed of field ids:\n`types.MyType{field_id: 'value'}`." + }, + "Data.DeleteBody": { + "type": "object", + "properties": { + "tuple_filter": { + "$ref": "#/definitions/TupleFilter", + "description": "tuple_filter specifies the criteria used to select the tuples that should be deleted." + }, + "attribute_filter": { + "$ref": "#/definitions/AttributeFilter", + "description": "attribute_filter specifies the criteria used to select the attributes that should be deleted." + } + }, + "description": "DataDeleteRequest defines the structure of a request to delete data.\nIt includes the tenant_id and filters for selecting tuples and attributes to be deleted." + }, + "Data.WriteBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/DataWriteRequestMetadata", + "description": "metadata holds additional data related to the request." + }, + "tuples": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Tuple" }, - "subject": { - "$ref": "#/definitions/Subject", - "description": "Subject for which to check the permission, required." + "description": "tuples contains the list of tuples (entity-relation-entity triples) that need to be written." + }, + "attributes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Attribute" }, - "context": { - "$ref": "#/definitions/Context", - "description": "Context associated with this request." + "description": "attributes contains the list of attributes (entity-attribute-value triples) that need to be written." + } + }, + "description": "DataWriteRequest defines the structure of a request for writing data.\nIt contains the necessary information such as tenant_id, metadata,\ntuples and attributes for the write operation." + }, + "DataBundle": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "'name' is a simple string field representing the name of the DataBundle." + }, + "arguments": { + "type": "array", + "items": { + "type": "string" }, - "scope": { + "description": "'arguments' is a repeated field, which means it can contain multiple strings.\nThese are used to store a list of arguments related to the DataBundle." + }, + "operations": { + "type": "array", + "items": { "type": "object", - "additionalProperties": { - "$ref": "#/definitions/StringArrayValue" - }, - "description": "Scope: A map that associates entity types with lists of identifiers. Each entry\nhelps filter requests by specifying which entities are relevant to the operation." + "$ref": "#/definitions/v1.Operation" }, - "page_size": { - "type": "integer", - "format": "int64", - "description": "page_size is the number of entities to be returned in the response.\nThe value should be between 1 and 100." + "description": "'operations' is a repeated field containing multiple Operation messages.\nEach Operation represents a specific action or set of actions to be performed." + } + }, + "description": "DataBundle is a message representing a bundle of data, which includes a name,\na list of arguments, and a series of operations." + }, + "DataChange": { + "type": "object", + "properties": { + "operation": { + "$ref": "#/definitions/DataChange.Operation", + "description": "The operation type." + }, + "tuple": { + "$ref": "#/definitions/Tuple", + "description": "If the change is a tuple." + }, + "attribute": { + "$ref": "#/definitions/Attribute", + "description": "If the change is an attribute." + } + }, + "description": "DataChange represents a single change in data, with an operation type and the actual change which could be a tuple or an attribute." + }, + "DataChange.Operation": { + "type": "string", + "enum": [ + "OPERATION_CREATE", + "OPERATION_DELETE" + ], + "description": " - OPERATION_CREATE: Creation operation.\n - OPERATION_DELETE: Deletion operation." + }, + "DataChanges": { + "type": "object", + "properties": { + "snap_token": { + "type": "string", + "description": "The snapshot token." + }, + "data_changes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/DataChange" }, - "continuous_token": { - "type": "string", - "description": "continuous_token is an optional parameter used for pagination.\nIt should be the value received in the previous response." - } + "description": "The list of data changes." + } + }, + "description": "DataChanges represent changes in data with a snap token and a list of data change objects." + }, + "DataDeleteResponse": { + "type": "object", + "properties": { + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" + } + }, + "description": "DataDeleteResponse defines the structure of the response to a data delete request.\nIt includes a snap_token representing the state of the database after the deletion." + }, + "DataWriteRequestMetadata": { + "type": "object", + "properties": { + "schema_version": { + "type": "string", + "description": "schema_version represents the version of the schema for the data being written." + } + }, + "description": "DataWriteRequestMetadata defines the structure of metadata for a write request.\nIt includes the schema version of the data to be written." + }, + "DataWriteResponse": { + "type": "object", + "properties": { + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." + } + }, + "description": "DataWriteResponse defines the structure of the response after writing data.\nIt contains the snap_token generated after the write operation." + }, + "DeleteRelationshipsBody": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/TupleFilter" + } + }, + "title": "RelationshipDeleteRequest" + }, + "Entity": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "description": "Entity represents an entity with a type and an identifier." + }, + "EntityDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the entity, which follows a specific string pattern and has a maximum byte size." }, - "description": "PermissionLookupEntityRequest is the request message for the LookupEntity method in the Permission service." - }, - "LookupEntityStreamBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/PermissionLookupEntityRequestMetadata", - "description": "Metadata associated with this request, required." + "relations": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/RelationDefinition" }, - "entity_type": { - "type": "string", - "description": "Type of the entity to lookup, required, must start with a letter and can include alphanumeric and underscore, max 64 bytes." + "description": "Map of relation definitions within this entity. The key is the relation name, and the value is the RelationDefinition." + }, + "permissions": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/PermissionDefinition" }, - "permission": { - "type": "string", - "description": "Name of the permission to check, required, must start with a letter and can include alphanumeric and underscore, max 64 bytes." + "description": "Map of permission definitions within this entity. The key is the permission name, and the value is the PermissionDefinition." + }, + "attributes": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AttributeDefinition" }, - "subject": { - "$ref": "#/definitions/Subject", - "description": "Subject for which to check the permission, required." + "description": "Map of attribute definitions within this entity. The key is the attribute name, and the value is the AttributeDefinition." + }, + "references": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EntityDefinition.Reference" }, - "context": { - "$ref": "#/definitions/Context", - "description": "Context associated with this request." + "description": "Map of references indicating whether a string pertains to a relation, permission, or attribute." + } + }, + "description": "The EntityDefinition message provides detailed information about a specific entity." + }, + "EntityDefinition.Reference": { + "type": "string", + "enum": [ + "REFERENCE_RELATION", + "REFERENCE_PERMISSION", + "REFERENCE_ATTRIBUTE" + ], + "description": "The Reference enum specifies whether a name pertains to a relation, permission, or attribute.\n\n - REFERENCE_RELATION: Indicates that the name refers to a relation.\n - REFERENCE_PERMISSION: Indicates that the name refers to a permission.\n - REFERENCE_ATTRIBUTE: Indicates that the name refers to an attribute." + }, + "EntityFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "Type of the entity" + }, + "ids": { + "type": "array", + "items": { + "type": "string" }, - "scope": { + "title": "List of entity IDs" + } + }, + "description": "EntityFilter is used to filter entities based on the type and ids." + }, + "Entry": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "int64", + "description": "Required. An id assigned to this node by the parser which is unique\nin a given expression tree. This is used to associate type\ninformation and other attributes to the node." + }, + "fieldKey": { + "type": "string", + "description": "The field key for a message creator statement." + }, + "mapKey": { + "$ref": "#/definitions/Expr", + "description": "The key expression for a map creation statement." + }, + "value": { + "$ref": "#/definitions/Expr", + "description": "Required. The value assigned to the key.\n\nIf the optional_entry field is true, the expression must resolve to an\noptional-typed value. If the optional value is present, the key will be\nset; however, if the optional value is absent, the key will be unset." + }, + "optionalEntry": { + "type": "boolean", + "description": "Whether the key-value pair is optional." + } + }, + "description": "Represents an entry." + }, + "ExpandLeaf": { + "type": "object", + "properties": { + "subjects": { + "$ref": "#/definitions/Subjects", + "description": "subjects are used when the leaf is a set of subjects." + }, + "values": { + "$ref": "#/definitions/Values", + "description": "values are used when the leaf node is a set of values." + }, + "value": { + "$ref": "#/definitions/Any", + "description": "value is used when the leaf node is a single value." + } + }, + "description": "ExpandLeaf is the leaf node of an Expand tree and can be either a set of Subjects or a set of Values." + }, + "ExpandTreeNode": { + "type": "object", + "properties": { + "operation": { + "$ref": "#/definitions/ExpandTreeNode.Operation", + "title": "Operation to be applied on this tree node" + }, + "children": { + "type": "array", + "items": { "type": "object", - "additionalProperties": { - "$ref": "#/definitions/StringArrayValue" - }, - "description": "Scope: A map that associates entity types with lists of identifiers. Each entry\nhelps filter requests by specifying which entities are relevant to the operation." + "$ref": "#/definitions/v1.Expand" }, - "page_size": { - "type": "integer", - "format": "int64", - "description": "page_size is the number of entities to be returned in the response.\nThe value should be between 1 and 100." - }, - "continuous_token": { - "type": "string", - "description": "continuous_token is an optional parameter used for pagination.\nIt should be the value received in the previous response." - } - }, - "description": "PermissionLookupEntityRequest is the request message for the LookupEntity method in the Permission service." + "title": "The children of this tree node" + } }, - "LookupSubjectBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/PermissionLookupSubjectRequestMetadata", - "description": "Metadata associated with this request, required." - }, - "entity": { - "$ref": "#/definitions/Entity", - "description": "Entity for which to check the permission, required." - }, - "permission": { - "type": "string", - "description": "Permission to be checked, can be a permission or relation. Required, and must match the pattern \"^([a-zA-Z][a-zA-Z0-9_]{1,62}[a-zA-Z0-9])$\", max 64 bytes." - }, - "subject_reference": { - "$ref": "#/definitions/RelationReference", - "description": "Reference to the subject to lookup." - }, - "context": { - "$ref": "#/definitions/Context", - "description": "Context associated with this request." - }, - "arguments": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Argument" - }, - "description": "Additional arguments associated with this request." + "description": "ExpandTreeNode represents a node in an expansion tree with a specific operation and its children." + }, + "ExpandTreeNode.Operation": { + "type": "string", + "enum": [ + "OPERATION_UNION", + "OPERATION_INTERSECTION", + "OPERATION_EXCLUSION" + ], + "description": "Operation is an enum representing the type of operation to be applied on the tree node." + }, + "Expr": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "int64", + "description": "Required. An id assigned to this node by the parser which is unique in a\ngiven expression tree. This is used to associate type information and other\nattributes to a node in the parse tree." + }, + "constExpr": { + "$ref": "#/definitions/Constant", + "description": "A literal expression." + }, + "identExpr": { + "$ref": "#/definitions/Ident", + "description": "An identifier expression." + }, + "selectExpr": { + "$ref": "#/definitions/Select", + "description": "A field selection expression, e.g. `request.auth`." + }, + "callExpr": { + "$ref": "#/definitions/Expr.Call", + "description": "A call expression, including calls to predefined functions and operators." + }, + "listExpr": { + "$ref": "#/definitions/CreateList", + "description": "A list creation expression." + }, + "structExpr": { + "$ref": "#/definitions/CreateStruct", + "description": "A map or message creation expression." + }, + "comprehensionExpr": { + "$ref": "#/definitions/Comprehension", + "description": "A comprehension expression." + } + }, + "description": "An abstract representation of a common expression.\n\nExpressions are abstractly represented as a collection of identifiers,\nselect statements, function calls, literals, and comprehensions. All\noperators with the exception of the '.' operator are modelled as function\ncalls. This makes it easy to represent new operators into the existing AST.\n\nAll references within expressions must resolve to a\n[Decl][google.api.expr.v1alpha1.Decl] provided at type-check for an\nexpression to be valid. A reference may either be a bare identifier `name` or\na qualified identifier `google.api.name`. References may either refer to a\nvalue or a function declaration.\n\nFor example, the expression `google.api.name.startsWith('expr')` references\nthe declaration `google.api.name` within a\n[Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and the\nfunction declaration `startsWith`." + }, + "Expr.Call": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/Expr", + "description": "The target of an method call-style expression. For example, `x` in\n`x.f()`." + }, + "function": { + "type": "string", + "description": "Required. The name of the function or method being called." + }, + "args": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Expr" }, - "page_size": { - "type": "integer", - "format": "int64", - "description": "page_size is the number of subjects to be returned in the response.\nThe value should be between 1 and 100." + "description": "The arguments." + } + }, + "description": "A call expression, including calls to predefined functions and operators.\n\nFor example, `value == 10`, `size(map_value)`." + }, + "Extension": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Identifier for the extension. Example: constant_folding" + }, + "affectedComponents": { + "type": "array", + "items": { + "$ref": "#/definitions/Component" }, - "continuous_token": { - "type": "string", - "description": "continuous_token is an optional parameter used for pagination.\nIt should be the value received in the previous response." - } + "description": "If set, the listed components must understand the extension for the\nexpression to evaluate correctly.\n\nThis field has set semantics, repeated values should be deduplicated." }, - "description": "PermissionLookupSubjectRequest is the request message for the LookupSubject method in the Permission service." + "version": { + "$ref": "#/definitions/Version", + "description": "Version info. May be skipped if it isn't meaningful for the extension.\n(for example constant_folding might always be v0.0)." + } }, - "MapType": { - "type": "object", - "properties": { - "keyType": { - "$ref": "#/definitions/v1alpha1.Type", - "description": "The type of the key." + "description": "An extension that was requested for the source expression." + }, + "FunctionType": { + "type": "object", + "properties": { + "resultType": { + "$ref": "#/definitions/v1alpha1.Type", + "description": "Result type of the function." + }, + "argTypes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1alpha1.Type" }, - "valueType": { - "$ref": "#/definitions/v1alpha1.Type", - "description": "The type of the value." - } - }, - "description": "Map type with parameterized key and value types, e.g. `map\u003cstring, int\u003e`." + "description": "Argument types of the function." + } }, - "NullValue": { - "type": "string", - "enum": [ - "NULL_VALUE" - ], - "default": "NULL_VALUE", - "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." + "description": "Function type with result and arg types." + }, + "Ident": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Required. Holds a single, unqualified identifier, possibly preceded by a\n'.'.\n\nQualified names are represented by the\n[Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression." + } }, - "PartialWriteBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/SchemaPartialWriteRequestMetadata", - "description": "metadata is the additional information needed for the Partial Write request." - }, - "partials": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Partials" - }, - "title": "Map of entity name with the values needed to be updated" - } - }, - "title": "It contains the tenant_id to identify the tenant and metadata of the schema to be edited,\nwith the corresponding edits to various entities" + "description": "An identifier expression. e.g. `request`." + }, + "Leaf": { + "type": "object", + "properties": { + "computedUserSet": { + "$ref": "#/definitions/ComputedUserSet", + "description": "A computed set of users." + }, + "tupleToUserSet": { + "$ref": "#/definitions/TupleToUserSet", + "description": "A tuple to user set conversion." + }, + "computedAttribute": { + "$ref": "#/definitions/ComputedAttribute", + "description": "A computed attribute." + }, + "call": { + "$ref": "#/definitions/v1.Call", + "description": "A call to a function or method." + } }, - "Partials": { - "type": "object", - "properties": { - "write": { - "type": "array", - "items": { - "type": "string" - } - }, - "delete": { - "type": "array", - "items": { - "type": "string" - } - }, - "update": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "title": "Partials contains the write, update and delete definitions" + "description": "Leaf represents a leaf node in the permission tree." + }, + "ListType": { + "type": "object", + "properties": { + "elemType": { + "$ref": "#/definitions/v1alpha1.Type", + "description": "The element type." + } }, - "Permission.ExpandBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/PermissionExpandRequestMetadata", - "description": "Metadata associated with this request, required." - }, - "entity": { - "$ref": "#/definitions/Entity", - "description": "Entity on which the permission needs to be expanded, required." - }, - "permission": { - "type": "string", - "description": "Name of the permission to be expanded, not required, must start with a letter and can include alphanumeric and underscore, max 64 bytes." - }, - "context": { - "$ref": "#/definitions/Context", - "description": "Context associated with this request." - }, - "arguments": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Argument" - }, - "description": "Additional arguments associated with this request." - } - }, - "description": "PermissionExpandRequest is the request message for the Expand method in the Permission service." + "description": "List type with typed elements, e.g. `list\u003cexample.proto.MyMessage\u003e`." + }, + "LookupEntityBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/PermissionLookupEntityRequestMetadata", + "description": "Metadata associated with this request, required." + }, + "entity_type": { + "type": "string", + "description": "Type of the entity to lookup, required, must start with a letter and can include alphanumeric and underscore, max 64 bytes." + }, + "permission": { + "type": "string", + "description": "Name of the permission to check, required, must start with a letter and can include alphanumeric and underscore, max 64 bytes." + }, + "subject": { + "$ref": "#/definitions/Subject", + "description": "Subject for which to check the permission, required." + }, + "context": { + "$ref": "#/definitions/Context", + "description": "Context associated with this request." + }, + "scope": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/StringArrayValue" + }, + "description": "Scope: A map that associates entity types with lists of identifiers. Each entry\nhelps filter requests by specifying which entities are relevant to the operation." + }, + "page_size": { + "type": "integer", + "format": "int64", + "description": "page_size is the number of entities to be returned in the response.\nThe value should be between 1 and 100." + }, + "continuous_token": { + "type": "string", + "description": "continuous_token is an optional parameter used for pagination.\nIt should be the value received in the previous response." + } }, - "PermissionBulkCheckRequestItem": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity", - "example": "repository:1", - "description": "Entity on which the permission needs to be checked, required." - }, - "permission": { - "type": "string", - "description": "The action the user wants to perform on the resource" + "description": "PermissionLookupEntityRequest is the request message for the LookupEntity method in the Permission service." + }, + "LookupEntityStreamBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/PermissionLookupEntityRequestMetadata", + "description": "Metadata associated with this request, required." + }, + "entity_type": { + "type": "string", + "description": "Type of the entity to lookup, required, must start with a letter and can include alphanumeric and underscore, max 64 bytes." + }, + "permission": { + "type": "string", + "description": "Name of the permission to check, required, must start with a letter and can include alphanumeric and underscore, max 64 bytes." + }, + "subject": { + "$ref": "#/definitions/Subject", + "description": "Subject for which to check the permission, required." + }, + "context": { + "$ref": "#/definitions/Context", + "description": "Context associated with this request." + }, + "scope": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/StringArrayValue" + }, + "description": "Scope: A map that associates entity types with lists of identifiers. Each entry\nhelps filter requests by specifying which entities are relevant to the operation." + }, + "page_size": { + "type": "integer", + "format": "int64", + "description": "page_size is the number of entities to be returned in the response.\nThe value should be between 1 and 100." + }, + "continuous_token": { + "type": "string", + "description": "continuous_token is an optional parameter used for pagination.\nIt should be the value received in the previous response." + } + }, + "description": "PermissionLookupEntityRequest is the request message for the LookupEntity method in the Permission service." + }, + "LookupSubjectBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/PermissionLookupSubjectRequestMetadata", + "description": "Metadata associated with this request, required." + }, + "entity": { + "$ref": "#/definitions/Entity", + "description": "Entity for which to check the permission, required." + }, + "permission": { + "type": "string", + "description": "Permission to be checked, can be a permission or relation. Required, and must match the pattern \"^([a-zA-Z][a-zA-Z0-9_]{1,62}[a-zA-Z0-9])$\", max 64 bytes." + }, + "subject_reference": { + "$ref": "#/definitions/RelationReference", + "description": "Reference to the subject to lookup." + }, + "context": { + "$ref": "#/definitions/Context", + "description": "Context associated with this request." + }, + "arguments": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Argument" }, - "subject": { - "$ref": "#/definitions/Subject", - "description": "Subject for which the permission needs to be checked, required." - } + "description": "Additional arguments associated with this request." }, - "title": "BULK CHECK" - }, - "PermissionBulkCheckResponse": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/PermissionCheckResponse" - }, - "description": "List of permission check responses corresponding to each request." - } + "page_size": { + "type": "integer", + "format": "int64", + "description": "page_size is the number of subjects to be returned in the response.\nThe value should be between 1 and 100." }, - "description": "PermissionBulkCheckResponse is the response message for the BulkCheck method in the Permission service." + "continuous_token": { + "type": "string", + "description": "continuous_token is an optional parameter used for pagination.\nIt should be the value received in the previous response." + } }, - "PermissionCheckRequestMetadata": { - "type": "object", - "properties": { - "schema_version": { - "type": "string", - "description": "Version of the schema." - }, - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" - }, - "depth": { - "type": "integer", - "format": "int32", - "description": "Query limit when if recursive database queries got in loop" - } - }, - "description": "PermissionCheckRequestMetadata metadata for the PermissionCheckRequest." + "description": "PermissionLookupSubjectRequest is the request message for the LookupSubject method in the Permission service." + }, + "MapType": { + "type": "object", + "properties": { + "keyType": { + "$ref": "#/definitions/v1alpha1.Type", + "description": "The type of the key." + }, + "valueType": { + "$ref": "#/definitions/v1alpha1.Type", + "description": "The type of the value." + } }, - "PermissionCheckResponse": { - "type": "object", - "properties": { - "can": { - "$ref": "#/definitions/CheckResult", - "description": "Result of the permission check." - }, - "metadata": { - "$ref": "#/definitions/PermissionCheckResponseMetadata", - "description": "Metadata associated with this response." - } - }, - "description": "PermissionCheckResponse is the response message for the Check method in the Permission service." + "description": "Map type with parameterized key and value types, e.g. `map\u003cstring, int\u003e`." + }, + "NullValue": { + "type": "string", + "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`." + }, + "PartialWriteBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/SchemaPartialWriteRequestMetadata", + "description": "metadata is the additional information needed for the Partial Write request." + }, + "partials": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Partials" + }, + "title": "Map of entity name with the values needed to be updated" + } }, - "PermissionCheckResponseMetadata": { - "type": "object", - "properties": { - "check_count": { - "type": "integer", - "format": "int32", - "description": "The count of the checks performed." + "title": "It contains the tenant_id to identify the tenant and metadata of the schema to be edited,\nwith the corresponding edits to various entities" + }, + "Partials": { + "type": "object", + "properties": { + "write": { + "type": "array", + "items": { + "type": "string" } }, - "description": "PermissionCheckResponseMetadata metadata for the PermissionCheckResponse." - }, - "PermissionDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the permission, which follows a specific string pattern and has a maximum byte size." - }, - "child": { - "$ref": "#/definitions/Child", - "description": "The child related to this permission." + "delete": { + "type": "array", + "items": { + "type": "string" } }, - "description": "The PermissionDefinition message provides detailed information about a specific permission." + "update": { + "type": "array", + "items": { + "type": "string" + } + } }, - "PermissionExpandRequestMetadata": { - "type": "object", - "properties": { - "schema_version": { - "type": "string", - "description": "Version of the schema." + "title": "Partials contains the write, update and delete definitions" + }, + "Permission.ExpandBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/PermissionExpandRequestMetadata", + "description": "Metadata associated with this request, required." + }, + "entity": { + "$ref": "#/definitions/Entity", + "description": "Entity on which the permission needs to be expanded, required." + }, + "permission": { + "type": "string", + "description": "Name of the permission to be expanded, not required, must start with a letter and can include alphanumeric and underscore, max 64 bytes." + }, + "context": { + "$ref": "#/definitions/Context", + "description": "Context associated with this request." + }, + "arguments": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Argument" }, - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." - } - }, - "description": "PermissionExpandRequestMetadata metadata for the PermissionExpandRequest." + "description": "Additional arguments associated with this request." + } }, - "PermissionExpandResponse": { - "type": "object", - "properties": { - "tree": { - "$ref": "#/definitions/v1.Expand", - "description": "Expansion tree." - } - }, - "description": "PermissionExpandResponse is the response message for the Expand method in the Permission service." + "description": "PermissionExpandRequest is the request message for the Expand method in the Permission service." + }, + "PermissionBulkCheckRequestItem": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/Entity", + "example": "repository:1", + "description": "Entity on which the permission needs to be checked, required." + }, + "permission": { + "type": "string", + "description": "The action the user wants to perform on the resource" + }, + "subject": { + "$ref": "#/definitions/Subject", + "description": "Subject for which the permission needs to be checked, required." + } }, - "PermissionLookupEntityRequestMetadata": { - "type": "object", - "properties": { - "schema_version": { - "type": "string", - "description": "Version of the schema." - }, - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." + "title": "BULK CHECK" + }, + "PermissionBulkCheckResponse": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/PermissionCheckResponse" }, - "depth": { - "type": "integer", - "format": "int32", - "description": "Query limit when if recursive database queries got in loop." - } - }, - "description": "PermissionLookupEntityRequestMetadata metadata for the PermissionLookupEntityRequest." + "description": "List of permission check responses corresponding to each request." + } }, - "PermissionLookupEntityResponse": { - "type": "object", - "properties": { - "entity_ids": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of identifiers for entities that match the lookup." - }, - "continuous_token": { - "type": "string", - "description": "continuous_token is a string that can be used to paginate and retrieve the next set of results." - } - }, - "description": "PermissionLookupEntityResponse is the response message for the LookupEntity method in the Permission service." + "description": "PermissionBulkCheckResponse is the response message for the BulkCheck method in the Permission service." + }, + "PermissionCheckRequestMetadata": { + "type": "object", + "properties": { + "schema_version": { + "type": "string", + "description": "Version of the schema." + }, + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" + }, + "depth": { + "type": "integer", + "format": "int32", + "description": "Query limit when if recursive database queries got in loop" + } }, - "PermissionLookupEntityStreamResponse": { - "type": "object", - "properties": { - "entity_id": { - "type": "string", - "description": "Identifier for an entity that matches the lookup." - }, - "continuous_token": { - "type": "string", - "description": "continuous_token is a string that can be used to paginate and retrieve the next set of results." - } - }, - "description": "PermissionLookupEntityStreamResponse is the response message for the LookupEntityStream method in the Permission service." + "description": "PermissionCheckRequestMetadata metadata for the PermissionCheckRequest." + }, + "PermissionCheckResponse": { + "type": "object", + "properties": { + "can": { + "$ref": "#/definitions/CheckResult", + "description": "Result of the permission check." + }, + "metadata": { + "$ref": "#/definitions/PermissionCheckResponseMetadata", + "description": "Metadata associated with this response." + } }, - "PermissionLookupSubjectRequestMetadata": { - "type": "object", - "properties": { - "schema_version": { - "type": "string", - "description": "Version of the schema." - }, - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." - }, - "depth": { - "type": "integer", - "format": "int32", - "description": "Query limit when if recursive database queries got in loop." - } - }, - "description": "PermissionLookupSubjectRequestMetadata metadata for the PermissionLookupSubjectRequest." + "description": "PermissionCheckResponse is the response message for the Check method in the Permission service." + }, + "PermissionCheckResponseMetadata": { + "type": "object", + "properties": { + "check_count": { + "type": "integer", + "format": "int32", + "description": "The count of the checks performed." + } }, - "PermissionLookupSubjectResponse": { - "type": "object", - "properties": { - "subject_ids": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of identifiers for subjects that match the lookup." - }, - "continuous_token": { - "type": "string", - "description": "continuous_token is a string that can be used to paginate and retrieve the next set of results." - } - }, - "description": "PermissionLookupSubjectResponse is the response message for the LookupSubject method in the Permission service." + "description": "PermissionCheckResponseMetadata metadata for the PermissionCheckResponse." + }, + "PermissionDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the permission, which follows a specific string pattern and has a maximum byte size." + }, + "child": { + "$ref": "#/definitions/Child", + "description": "The child related to this permission." + } }, - "PermissionSubjectPermissionRequestMetadata": { - "type": "object", - "properties": { - "schema_version": { - "type": "string", - "description": "Version of the schema." - }, - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." - }, - "only_permission": { - "type": "boolean", - "description": "Whether to only check permissions." - }, - "depth": { - "type": "integer", - "format": "int32", - "description": "Query limit when if recursive database queries got in loop." - } - }, - "description": "PermissionSubjectPermissionRequestMetadata metadata for the PermissionSubjectPermissionRequest." + "description": "The PermissionDefinition message provides detailed information about a specific permission." + }, + "PermissionExpandRequestMetadata": { + "type": "object", + "properties": { + "schema_version": { + "type": "string", + "description": "Version of the schema." + }, + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." + } }, - "PermissionSubjectPermissionResponse": { - "type": "object", - "properties": { - "results": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/CheckResult" - }, - "description": "Map of results for each permission check." - } - }, - "description": "PermissionSubjectPermissionResponse is the response message for the SubjectPermission method in the Permission service." - }, - "PrimitiveType": { - "type": "string", - "enum": [ - "PRIMITIVE_TYPE_UNSPECIFIED", - "BOOL", - "INT64", - "UINT64", - "DOUBLE", - "STRING", - "BYTES" - ], - "default": "PRIMITIVE_TYPE_UNSPECIFIED", - "description": "CEL primitive types.\n\n - PRIMITIVE_TYPE_UNSPECIFIED: Unspecified type.\n - BOOL: Boolean type.\n - INT64: Int64 type.\n\nProto-based integer values are widened to int64.\n - UINT64: Uint64 type.\n\nProto-based unsigned integer values are widened to uint64.\n - DOUBLE: Double type.\n\nProto-based float values are widened to double values.\n - STRING: String type.\n - BYTES: Bytes type." + "description": "PermissionExpandRequestMetadata metadata for the PermissionExpandRequest." + }, + "PermissionExpandResponse": { + "type": "object", + "properties": { + "tree": { + "$ref": "#/definitions/v1.Expand", + "description": "Expansion tree." + } }, - "ReadAttributesBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/AttributeReadRequestMetadata", - "description": "metadata holds additional information related to the request." - }, - "filter": { - "$ref": "#/definitions/AttributeFilter", - "description": "filter specifies the criteria used to select the attributes that should be returned." - }, - "page_size": { - "type": "integer", - "format": "int64", - "description": "page_size specifies the number of results to return in a single page.\nIf more results are available, a continuous_token is included in the response." - }, - "continuous_token": { - "type": "string", - "description": "continuous_token is used in case of paginated reads to get the next page of results." - } - }, - "description": "AttributeReadRequest defines the structure of a request for reading attributes.\nIt includes the tenant_id, metadata, attribute filter, page size for pagination, and a continuous token for multi-page results." + "description": "PermissionExpandResponse is the response message for the Expand method in the Permission service." + }, + "PermissionLookupEntityRequestMetadata": { + "type": "object", + "properties": { + "schema_version": { + "type": "string", + "description": "Version of the schema." + }, + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." + }, + "depth": { + "type": "integer", + "format": "int32", + "description": "Query limit when if recursive database queries got in loop." + } }, - "ReadRelationshipsBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/RelationshipReadRequestMetadata", - "description": "metadata holds additional data related to the request." - }, - "filter": { - "$ref": "#/definitions/TupleFilter", - "description": "filter is used to specify criteria for the data that needs to be read." - }, - "page_size": { - "type": "integer", - "format": "int64", - "description": "page_size specifies the number of results to return in a single page.\nIf more results are available, a continuous_token is included in the response." + "description": "PermissionLookupEntityRequestMetadata metadata for the PermissionLookupEntityRequest." + }, + "PermissionLookupEntityResponse": { + "type": "object", + "properties": { + "entity_ids": { + "type": "array", + "items": { + "type": "string" }, - "continuous_token": { - "type": "string", - "description": "continuous_token is used in case of paginated reads to get the next page of results." - } + "description": "List of identifiers for entities that match the lookup." }, - "description": "RelationshipReadRequest defines the structure of a request for reading relationships.\nIt contains the necessary information such as tenant_id, metadata, and filter for the read operation." + "continuous_token": { + "type": "string", + "description": "continuous_token is a string that can be used to paginate and retrieve the next set of results." + } }, - "RelationDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the relation, which follows a specific string pattern and has a maximum byte size." - }, - "relationReferences": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/RelationReference" - }, - "description": "A list of references to other relations." - } - }, - "description": "The RelationDefinition message provides detailed information about a specific relation." + "description": "PermissionLookupEntityResponse is the response message for the LookupEntity method in the Permission service." + }, + "PermissionLookupEntityStreamResponse": { + "type": "object", + "properties": { + "entity_id": { + "type": "string", + "description": "Identifier for an entity that matches the lookup." + }, + "continuous_token": { + "type": "string", + "description": "continuous_token is a string that can be used to paginate and retrieve the next set of results." + } + }, + "description": "PermissionLookupEntityStreamResponse is the response message for the LookupEntityStream method in the Permission service." + }, + "PermissionLookupSubjectRequestMetadata": { + "type": "object", + "properties": { + "schema_version": { + "type": "string", + "description": "Version of the schema." + }, + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." + }, + "depth": { + "type": "integer", + "format": "int32", + "description": "Query limit when if recursive database queries got in loop." + } }, - "RelationReference": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of the referenced entity, which follows a specific string pattern and has a maximum byte size." + "description": "PermissionLookupSubjectRequestMetadata metadata for the PermissionLookupSubjectRequest." + }, + "PermissionLookupSubjectResponse": { + "type": "object", + "properties": { + "subject_ids": { + "type": "array", + "items": { + "type": "string" }, - "relation": { - "type": "string", - "description": "The name of the referenced relation, which follows a specific string pattern and has a maximum byte size." - } + "description": "List of identifiers for subjects that match the lookup." }, - "description": "The RelationReference message provides a reference to a specific relation." + "continuous_token": { + "type": "string", + "description": "continuous_token is a string that can be used to paginate and retrieve the next set of results." + } }, - "RelationshipDeleteResponse": { - "type": "object", - "properties": { - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" - } - }, - "title": "RelationshipDeleteResponse" + "description": "PermissionLookupSubjectResponse is the response message for the LookupSubject method in the Permission service." + }, + "PermissionSubjectPermissionRequestMetadata": { + "type": "object", + "properties": { + "schema_version": { + "type": "string", + "description": "Version of the schema." + }, + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." + }, + "only_permission": { + "type": "boolean", + "description": "Whether to only check permissions." + }, + "depth": { + "type": "integer", + "format": "int32", + "description": "Query limit when if recursive database queries got in loop." + } }, - "RelationshipReadRequestMetadata": { - "type": "object", - "properties": { - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" - } - }, - "description": "RelationshipReadRequestMetadata defines the structure of the metadata for a read request focused on relationships.\nIt includes the snap_token associated with a particular state of the database." + "description": "PermissionSubjectPermissionRequestMetadata metadata for the PermissionSubjectPermissionRequest." + }, + "PermissionSubjectPermissionResponse": { + "type": "object", + "properties": { + "results": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/CheckResult" + }, + "description": "Map of results for each permission check." + } }, - "RelationshipReadResponse": { - "type": "object", - "properties": { - "tuples": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Tuple" - }, - "description": "tuples is a list of the relationships retrieved in the read operation, represented as entity-relation-entity triples." + "description": "PermissionSubjectPermissionResponse is the response message for the SubjectPermission method in the Permission service." + }, + "PrimitiveType": { + "type": "string", + "enum": [ + "BOOL", + "INT64", + "UINT64", + "DOUBLE", + "STRING", + "BYTES" + ], + "description": "CEL primitive types.\n\n - BOOL: Boolean type.\n - INT64: Int64 type.\n\nProto-based integer values are widened to int64.\n - UINT64: Uint64 type.\n\nProto-based unsigned integer values are widened to uint64.\n - DOUBLE: Double type.\n\nProto-based float values are widened to double values.\n - STRING: String type.\n - BYTES: Bytes type." + }, + "ReadAttributesBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/AttributeReadRequestMetadata", + "description": "metadata holds additional information related to the request." + }, + "filter": { + "$ref": "#/definitions/AttributeFilter", + "description": "filter specifies the criteria used to select the attributes that should be returned." + }, + "page_size": { + "type": "integer", + "format": "int64", + "description": "page_size specifies the number of results to return in a single page.\nIf more results are available, a continuous_token is included in the response." + }, + "continuous_token": { + "type": "string", + "description": "continuous_token is used in case of paginated reads to get the next page of results." + } + }, + "description": "AttributeReadRequest defines the structure of a request for reading attributes.\nIt includes the tenant_id, metadata, attribute filter, page size for pagination, and a continuous token for multi-page results." + }, + "ReadRelationshipsBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/RelationshipReadRequestMetadata", + "description": "metadata holds additional data related to the request." + }, + "filter": { + "$ref": "#/definitions/TupleFilter", + "description": "filter is used to specify criteria for the data that needs to be read." + }, + "page_size": { + "type": "integer", + "format": "int64", + "description": "page_size specifies the number of results to return in a single page.\nIf more results are available, a continuous_token is included in the response." + }, + "continuous_token": { + "type": "string", + "description": "continuous_token is used in case of paginated reads to get the next page of results." + } + }, + "description": "RelationshipReadRequest defines the structure of a request for reading relationships.\nIt contains the necessary information such as tenant_id, metadata, and filter for the read operation." + }, + "RelationDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the relation, which follows a specific string pattern and has a maximum byte size." + }, + "relationReferences": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/RelationReference" }, - "continuous_token": { - "type": "string", - "description": "continuous_token is used in the case of paginated reads to retrieve the next page of results." - } - }, - "description": "RelationshipReadResponse defines the structure of the response after reading relationships.\nIt includes the tuples representing the relationships and a continuous token for handling result pagination." + "description": "A list of references to other relations." + } }, - "RelationshipWriteRequestMetadata": { - "type": "object", - "properties": { - "schema_version": { - "type": "string" - } - }, - "title": "RelationshipWriteRequestMetadata" + "description": "The RelationDefinition message provides detailed information about a specific relation." + }, + "RelationReference": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of the referenced entity, which follows a specific string pattern and has a maximum byte size." + }, + "relation": { + "type": "string", + "description": "The name of the referenced relation, which follows a specific string pattern and has a maximum byte size." + } }, - "RelationshipWriteResponse": { - "type": "object", - "properties": { - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" - } - }, - "title": "RelationshipWriteResponse" + "description": "The RelationReference message provides a reference to a specific relation." + }, + "RelationshipDeleteResponse": { + "type": "object", + "properties": { + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" + } + }, + "title": "RelationshipDeleteResponse" + }, + "RelationshipReadRequestMetadata": { + "type": "object", + "properties": { + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" + } }, - "Rewrite": { - "type": "object", - "properties": { - "rewriteOperation": { - "$ref": "#/definitions/Rewrite.Operation", - "description": "The type of rewrite operation to be performed." + "description": "RelationshipReadRequestMetadata defines the structure of the metadata for a read request focused on relationships.\nIt includes the snap_token associated with a particular state of the database." + }, + "RelationshipReadResponse": { + "type": "object", + "properties": { + "tuples": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Tuple" }, - "children": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Child" - }, - "description": "A list of children that are operated upon by the rewrite operation." - } + "description": "tuples is a list of the relationships retrieved in the read operation, represented as entity-relation-entity triples." }, - "description": "The Rewrite message represents a specific rewrite operation.\nThis operation could be one of the following: union, intersection, or exclusion." + "continuous_token": { + "type": "string", + "description": "continuous_token is used in the case of paginated reads to retrieve the next page of results." + } }, - "Rewrite.Operation": { - "type": "string", - "enum": [ - "OPERATION_UNSPECIFIED", - "OPERATION_UNION", - "OPERATION_INTERSECTION", - "OPERATION_EXCLUSION" - ], - "default": "OPERATION_UNSPECIFIED", - "description": "Operation enum includes potential rewrite operations.\nOPERATION_UNION: Represents a union operation.\nOPERATION_INTERSECTION: Represents an intersection operation.\nOPERATION_EXCLUSION: Represents an exclusion operation.\n\n - OPERATION_UNSPECIFIED: Default, unspecified operation.\n - OPERATION_UNION: Represents a union operation.\n - OPERATION_INTERSECTION: Represents an intersection operation.\n - OPERATION_EXCLUSION: Represents an exclusion operation." + "description": "RelationshipReadResponse defines the structure of the response after reading relationships.\nIt includes the tuples representing the relationships and a continuous token for handling result pagination." + }, + "RelationshipWriteRequestMetadata": { + "type": "object", + "properties": { + "schema_version": { + "type": "string" + } }, - "RuleDefinition": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the rule, which follows a specific string pattern and has a maximum byte size." - }, - "arguments": { + "title": "RelationshipWriteRequestMetadata" + }, + "RelationshipWriteResponse": { + "type": "object", + "properties": { + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)" + } + }, + "title": "RelationshipWriteResponse" + }, + "Rewrite": { + "type": "object", + "properties": { + "rewriteOperation": { + "$ref": "#/definitions/Rewrite.Operation", + "description": "The type of rewrite operation to be performed." + }, + "children": { + "type": "array", + "items": { "type": "object", - "additionalProperties": { - "$ref": "#/definitions/AttributeType" - }, - "description": "Map of arguments for this rule. The key is the attribute name, and the value is the AttributeType." + "$ref": "#/definitions/Child" }, - "expression": { - "$ref": "#/definitions/CheckedExpr", - "description": "The expression for this rule in the form of a google.api.expr.v1alpha1.CheckedExpr." - } - }, - "description": "The RuleDefinition message provides detailed information about a specific rule." + "description": "A list of children that are operated upon by the rewrite operation." + } }, - "RunBundleBody": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the bundle to be executed." - }, - "arguments": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Additional key-value pairs for execution arguments." - } - }, - "description": "BundleRunRequest is used to request the execution of a bundle.\nIt includes tenant_id, the name of the bundle, and additional arguments for execution." + "description": "The Rewrite message represents a specific rewrite operation.\nThis operation could be one of the following: union, intersection, or exclusion." + }, + "Rewrite.Operation": { + "type": "string", + "enum": [ + "OPERATION_UNION", + "OPERATION_INTERSECTION", + "OPERATION_EXCLUSION" + ], + "description": "Operation enum includes potential rewrite operations.\nOPERATION_UNION: Represents a union operation.\nOPERATION_INTERSECTION: Represents an intersection operation.\nOPERATION_EXCLUSION: Represents an exclusion operation.\n\n - OPERATION_UNION: Represents a union operation.\n - OPERATION_INTERSECTION: Represents an intersection operation.\n - OPERATION_EXCLUSION: Represents an exclusion operation." + }, + "RuleDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the rule, which follows a specific string pattern and has a maximum byte size." + }, + "arguments": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AttributeType" + }, + "description": "Map of arguments for this rule. The key is the attribute name, and the value is the AttributeType." + }, + "expression": { + "$ref": "#/definitions/CheckedExpr", + "description": "The expression for this rule in the form of a google.api.expr.v1alpha1.CheckedExpr." + } }, - "Schema.ListBody": { - "type": "object", - "properties": { - "page_size": { - "type": "integer", - "format": "int64", - "description": "page_size is the number of schemas to be returned in the response.\nThe value should be between 1 and 100." + "description": "The RuleDefinition message provides detailed information about a specific rule." + }, + "RunBundleBody": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the bundle to be executed." + }, + "arguments": { + "type": "object", + "additionalProperties": { + "type": "string" }, - "continuous_token": { - "type": "string", - "description": "continuous_token is an optional parameter used for pagination.\nIt should be the value received in the previous response." - } - }, - "description": "SchemaListRequest is the request message for the List method in the Schema service.\nIt contains tenant_id for which the schemas are to be listed." + "description": "Additional key-value pairs for execution arguments." + } }, - "Schema.ReadBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/SchemaReadRequestMetadata", - "description": "metadata is the additional information needed for the Read request." - } - }, - "description": "SchemaReadRequest is the request message for the Read method in the Schema service.\nIt contains tenant_id and metadata about the schema to be read." + "description": "BundleRunRequest is used to request the execution of a bundle.\nIt includes tenant_id, the name of the bundle, and additional arguments for execution." + }, + "Schema.ListBody": { + "type": "object", + "properties": { + "page_size": { + "type": "integer", + "format": "int64", + "description": "page_size is the number of schemas to be returned in the response.\nThe value should be between 1 and 100." + }, + "continuous_token": { + "type": "string", + "description": "continuous_token is an optional parameter used for pagination.\nIt should be the value received in the previous response." + } }, - "Schema.WriteBody": { - "type": "object", - "properties": { - "schema": { - "type": "string", - "description": "schema is the string representation of the schema to be written." - } - }, - "description": "SchemaWriteRequest is the request message for the Write method in the Schema service.\nIt contains tenant_id and the schema to be written." + "description": "SchemaListRequest is the request message for the List method in the Schema service.\nIt contains tenant_id for which the schemas are to be listed." + }, + "Schema.ReadBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/SchemaReadRequestMetadata", + "description": "metadata is the additional information needed for the Read request." + } }, - "SchemaDefinition": { - "type": "object", - "properties": { - "entityDefinitions": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/EntityDefinition" - }, - "description": "Map of entity definitions. The key is the entity name, and the value is the corresponding EntityDefinition." + "description": "SchemaReadRequest is the request message for the Read method in the Schema service.\nIt contains tenant_id and metadata about the schema to be read." + }, + "Schema.WriteBody": { + "type": "object", + "properties": { + "schema": { + "type": "string", + "description": "schema is the string representation of the schema to be written." + } + }, + "description": "SchemaWriteRequest is the request message for the Write method in the Schema service.\nIt contains tenant_id and the schema to be written." + }, + "SchemaDefinition": { + "type": "object", + "properties": { + "entityDefinitions": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EntityDefinition" }, - "ruleDefinitions": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/RuleDefinition" - }, - "description": "Map of rule definitions. The key is the rule name, and the value is the corresponding RuleDefinition." + "description": "Map of entity definitions. The key is the entity name, and the value is the corresponding EntityDefinition." + }, + "ruleDefinitions": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/RuleDefinition" }, - "references": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/SchemaDefinition.Reference" - }, - "description": "Map of references to signify whether a string refers to an entity or a rule." - } + "description": "Map of rule definitions. The key is the rule name, and the value is the corresponding RuleDefinition." }, - "description": "The SchemaDefinition message provides definitions for entities and rules,\nand includes references to clarify whether a name refers to an entity or a rule." + "references": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/SchemaDefinition.Reference" + }, + "description": "Map of references to signify whether a string refers to an entity or a rule." + } }, - "SchemaDefinition.Reference": { - "type": "string", - "enum": [ - "REFERENCE_UNSPECIFIED", - "REFERENCE_ENTITY", - "REFERENCE_RULE" - ], - "default": "REFERENCE_UNSPECIFIED", - "description": "The Reference enum helps distinguish whether a name corresponds to an entity or a rule.\n\n - REFERENCE_UNSPECIFIED: Default, unspecified reference.\n - REFERENCE_ENTITY: Indicates that the name refers to an entity.\n - REFERENCE_RULE: Indicates that the name refers to a rule." + "description": "The SchemaDefinition message provides definitions for entities and rules,\nand includes references to clarify whether a name refers to an entity or a rule." + }, + "SchemaDefinition.Reference": { + "type": "string", + "enum": [ + "REFERENCE_ENTITY", + "REFERENCE_RULE" + ], + "description": "The Reference enum helps distinguish whether a name corresponds to an entity or a rule.\n\n - REFERENCE_ENTITY: Indicates that the name refers to an entity.\n - REFERENCE_RULE: Indicates that the name refers to a rule." + }, + "SchemaList": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "created_at": { + "type": "string" + } }, - "SchemaList": { - "type": "object", - "properties": { - "version": { - "type": "string" + "title": "SchemaList provides a list of schema versions with their corresponding creation timestamps" + }, + "SchemaListResponse": { + "type": "object", + "properties": { + "head": { + "type": "string", + "title": "head of the schemas is the latest version available for the tenant" + }, + "schemas": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/SchemaList" }, - "created_at": { - "type": "string" - } + "title": "list of schema versions with creation timestamps" }, - "title": "SchemaList provides a list of schema versions with their corresponding creation timestamps" + "continuous_token": { + "type": "string", + "description": "continuous_token is a string that can be used to paginate and retrieve the next set of results." + } }, - "SchemaListResponse": { - "type": "object", - "properties": { - "head": { - "type": "string", - "title": "head of the schemas is the latest version available for the tenant" - }, - "schemas": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/SchemaList" - }, - "title": "list of schema versions with creation timestamps" - }, - "continuous_token": { - "type": "string", - "description": "continuous_token is a string that can be used to paginate and retrieve the next set of results." - } - }, - "title": "SchemaListResponse is the response message for the List method in the Schema service.\nIt returns a paginated list of schemas" + "title": "SchemaListResponse is the response message for the List method in the Schema service.\nIt returns a paginated list of schemas" + }, + "SchemaPartialWriteRequestMetadata": { + "type": "object", + "properties": { + "schema_version": { + "type": "string", + "description": "schema_version is the string that identifies the version of the schema to be read." + } }, - "SchemaPartialWriteRequestMetadata": { - "type": "object", - "properties": { - "schema_version": { - "type": "string", - "description": "schema_version is the string that identifies the version of the schema to be read." - } - }, - "description": "SchemaPartialWriteRequestMetadata provides additional information for the Schema Partial Write request.\nIt contains schema_version to specify which version of the schema should be read." + "description": "SchemaPartialWriteRequestMetadata provides additional information for the Schema Partial Write request.\nIt contains schema_version to specify which version of the schema should be read." + }, + "SchemaPartialWriteResponse": { + "type": "object", + "properties": { + "schema_version": { + "type": "string", + "description": "schema_version is the string that identifies the version of the written schema." + } }, - "SchemaPartialWriteResponse": { - "type": "object", - "properties": { - "schema_version": { - "type": "string", - "description": "schema_version is the string that identifies the version of the written schema." - } - }, - "description": "SchemaPartialWriteResponse is the response message for the Parietal Write method in the Schema service.\nIt returns the requested schema." + "description": "SchemaPartialWriteResponse is the response message for the Parietal Write method in the Schema service.\nIt returns the requested schema." + }, + "SchemaReadRequestMetadata": { + "type": "object", + "properties": { + "schema_version": { + "type": "string", + "description": "schema_version is the string that identifies the version of the schema to be read." + } }, - "SchemaReadRequestMetadata": { - "type": "object", - "properties": { - "schema_version": { - "type": "string", - "description": "schema_version is the string that identifies the version of the schema to be read." - } - }, - "description": "SchemaReadRequestMetadata provides additional information for the Schema Read request.\nIt contains schema_version to specify which version of the schema should be read." + "description": "SchemaReadRequestMetadata provides additional information for the Schema Read request.\nIt contains schema_version to specify which version of the schema should be read." + }, + "SchemaReadResponse": { + "type": "object", + "properties": { + "schema": { + "$ref": "#/definitions/SchemaDefinition", + "description": "schema is the SchemaDefinition that represents the read schema." + } }, - "SchemaReadResponse": { - "type": "object", - "properties": { - "schema": { - "$ref": "#/definitions/SchemaDefinition", - "description": "schema is the SchemaDefinition that represents the read schema." - } - }, - "description": "SchemaReadResponse is the response message for the Read method in the Schema service.\nIt returns the requested schema." + "description": "SchemaReadResponse is the response message for the Read method in the Schema service.\nIt returns the requested schema." + }, + "SchemaWriteResponse": { + "type": "object", + "properties": { + "schema_version": { + "type": "string", + "description": "schema_version is the string that identifies the version of the written schema." + } }, - "SchemaWriteResponse": { - "type": "object", - "properties": { - "schema_version": { - "type": "string", - "description": "schema_version is the string that identifies the version of the written schema." - } - }, - "description": "SchemaWriteResponse is the response message for the Write method in the Schema service.\nIt returns the version of the written schema." + "description": "SchemaWriteResponse is the response message for the Write method in the Schema service.\nIt returns the version of the written schema." + }, + "Select": { + "type": "object", + "properties": { + "operand": { + "$ref": "#/definitions/Expr", + "description": "Required. The target of the selection expression.\n\nFor example, in the select expression `request.auth`, the `request`\nportion of the expression is the `operand`." + }, + "field": { + "type": "string", + "description": "Required. The name of the field to select.\n\nFor example, in the select expression `request.auth`, the `auth` portion\nof the expression would be the `field`." + }, + "testOnly": { + "type": "boolean", + "description": "Whether the select is to be interpreted as a field presence test.\n\nThis results from the macro `has(request.auth)`." + } }, - "Select": { - "type": "object", - "properties": { - "operand": { - "$ref": "#/definitions/Expr", - "description": "Required. The target of the selection expression.\n\nFor example, in the select expression `request.auth`, the `request`\nportion of the expression is the `operand`." - }, - "field": { - "type": "string", - "description": "Required. The name of the field to select.\n\nFor example, in the select expression `request.auth`, the `auth` portion\nof the expression would be the `field`." + "description": "A field selection expression. e.g. `request.auth`." + }, + "SourceInfo": { + "type": "object", + "properties": { + "syntaxVersion": { + "type": "string", + "description": "The syntax version of the source, e.g. `cel1`." + }, + "location": { + "type": "string", + "description": "The location name. All position information attached to an expression is\nrelative to this location.\n\nThe location could be a file, UI element, or similar. For example,\n`acme/app/AnvilPolicy.cel`." + }, + "lineOffsets": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" }, - "testOnly": { - "type": "boolean", - "description": "Whether the select is to be interpreted as a field presence test.\n\nThis results from the macro `has(request.auth)`." - } + "description": "Monotonically increasing list of code point offsets where newlines\n`\\n` appear.\n\nThe line number of a given position is the index `i` where for a given\n`id` the `line_offsets[i] \u003c id_positions[id] \u003c line_offsets[i+1]`. The\ncolumn may be derivd from `id_positions[id] - line_offsets[i]`." }, - "description": "A field selection expression. e.g. `request.auth`." - }, - "SourceInfo": { - "type": "object", - "properties": { - "syntaxVersion": { - "type": "string", - "description": "The syntax version of the source, e.g. `cel1`." - }, - "location": { - "type": "string", - "description": "The location name. All position information attached to an expression is\nrelative to this location.\n\nThe location could be a file, UI element, or similar. For example,\n`acme/app/AnvilPolicy.cel`." + "positions": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int32" }, - "lineOffsets": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "description": "Monotonically increasing list of code point offsets where newlines\n`\\n` appear.\n\nThe line number of a given position is the index `i` where for a given\n`id` the `line_offsets[i] \u003c id_positions[id] \u003c line_offsets[i+1]`. The\ncolumn may be derivd from `id_positions[id] - line_offsets[i]`." + "description": "A map from the parse node id (e.g. `Expr.id`) to the code point offset\nwithin the source." + }, + "macroCalls": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Expr" }, - "positions": { + "description": "A map from the parse node id where a macro replacement was made to the\ncall `Expr` that resulted in a macro expansion.\n\nFor example, `has(value.field)` is a function call that is replaced by a\n`test_only` field selection in the AST. Likewise, the call\n`list.exists(e, e \u003e 10)` translates to a comprehension expression. The key\nin the map corresponds to the expression id of the expanded macro, and the\nvalue is the call `Expr` that was replaced." + }, + "extensions": { + "type": "array", + "items": { "type": "object", - "additionalProperties": { - "type": "integer", - "format": "int32" - }, - "description": "A map from the parse node id (e.g. `Expr.id`) to the code point offset\nwithin the source." + "$ref": "#/definitions/Extension" }, - "macroCalls": { + "description": "A list of tags for extensions that were used while parsing or type checking\nthe source expression. For example, optimizations that require special\nruntime support may be specified.\n\nThese are used to check feature support between components in separate\nimplementations. This can be used to either skip redundant work or\nreport an error if the extension is unsupported." + } + }, + "description": "Source information collected at parse time." + }, + "Status": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Expr" - }, - "description": "A map from the parse node id where a macro replacement was made to the\ncall `Expr` that resulted in a macro expansion.\n\nFor example, `has(value.field)` is a function call that is replaced by a\n`test_only` field selection in the AST. Likewise, the call\n`list.exists(e, e \u003e 10)` translates to a comprehension expression. The key\nin the map corresponds to the expression id of the expanded macro, and the\nvalue is the call `Expr` that was replaced." - }, - "extensions": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Extension" - }, - "description": "A list of tags for extensions that were used while parsing or type checking\nthe source expression. For example, optimizations that require special\nruntime support may be specified.\n\nThese are used to check feature support between components in separate\nimplementations. This can be used to either skip redundant work or\nreport an error if the extension is unsupported." + "$ref": "#/definitions/Any" } - }, - "description": "Source information collected at parse time." - }, - "Status": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32" - }, - "message": { + } + } + }, + "StringArrayValue": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { "type": "string" }, - "details": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Any" - } - } + "description": "The array of strings." } }, - "StringArrayValue": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The array of strings." - } + "description": "Wrapper for an array of strings." + }, + "Subject": { + "type": "object", + "properties": { + "type": { + "type": "string" }, - "description": "Wrapper for an array of strings." - }, - "Subject": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "id": { - "type": "string" - }, - "relation": { - "type": "string" - } + "id": { + "type": "string" }, - "description": "Subject represents an entity subject with a type, an identifier, and a relation." + "relation": { + "type": "string" + } }, - "SubjectFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "title": "Type of the subject" - }, - "ids": { - "type": "array", - "items": { - "type": "string" - }, - "title": "List of subject IDs" - }, - "relation": { + "description": "Subject represents an entity subject with a type, an identifier, and a relation." + }, + "SubjectFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "Type of the subject" + }, + "ids": { + "type": "array", + "items": { "type": "string" - } - }, - "description": "SubjectFilter is used to filter subjects based on the type, ids and relation." - }, - "SubjectPermissionBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/PermissionSubjectPermissionRequestMetadata", - "description": "Metadata associated with this request, required." - }, - "entity": { - "$ref": "#/definitions/Entity", - "description": "Entity for which to check the permission, required." }, - "subject": { - "$ref": "#/definitions/Subject", - "description": "Subject for which to check the permission, required." - }, - "context": { - "$ref": "#/definitions/Context", - "description": "Context associated with this request." - } + "title": "List of subject IDs" }, - "description": "PermissionSubjectPermissionRequest is the request message for the SubjectPermission method in the Permission service." + "relation": { + "type": "string" + } }, - "Subjects": { - "type": "object", - "properties": { - "subjects": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Subject" - }, - "description": "A list of subjects." - } - }, - "description": "Subjects holds a repeated field of Subject type." + "description": "SubjectFilter is used to filter subjects based on the type, ids and relation." + }, + "SubjectPermissionBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/PermissionSubjectPermissionRequestMetadata", + "description": "Metadata associated with this request, required." + }, + "entity": { + "$ref": "#/definitions/Entity", + "description": "Entity for which to check the permission, required." + }, + "subject": { + "$ref": "#/definitions/Subject", + "description": "Subject for which to check the permission, required." + }, + "context": { + "$ref": "#/definitions/Context", + "description": "Context associated with this request." + } }, - "Tenant": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The ID of the tenant." - }, - "name": { - "type": "string", - "description": "The name of the tenant." + "description": "PermissionSubjectPermissionRequest is the request message for the SubjectPermission method in the Permission service." + }, + "Subjects": { + "type": "object", + "properties": { + "subjects": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Subject" }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The time at which the tenant was created." - } - }, - "description": "Tenant represents a tenant with an id, a name, and a timestamp indicating when it was created." + "description": "A list of subjects." + } }, - "TenantCreateRequest": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "id is a unique identifier for the tenant." - }, - "name": { - "type": "string", - "description": "name is the name of the tenant." - } - }, - "description": "TenantCreateRequest is the message used for the request to create a tenant." + "description": "Subjects holds a repeated field of Subject type." + }, + "Tenant": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the tenant." + }, + "name": { + "type": "string", + "description": "The name of the tenant." + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The time at which the tenant was created." + } }, - "TenantCreateResponse": { - "type": "object", - "properties": { - "tenant": { - "$ref": "#/definitions/Tenant", - "description": "tenant is the created tenant information." - } - }, - "description": "TenantCreateResponse is the message returned from the request to create a tenant." + "description": "Tenant represents a tenant with an id, a name, and a timestamp indicating when it was created." + }, + "TenantCreateRequest": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id is a unique identifier for the tenant." + }, + "name": { + "type": "string", + "description": "name is the name of the tenant." + } }, - "TenantDeleteResponse": { - "type": "object", - "properties": { - "tenant_id": { - "type": "string", - "description": "tenant_id is the tenant id that was deleted." - } - }, - "description": "TenantDeleteResponse is the message returned from the request to delete a tenant." + "description": "TenantCreateRequest is the message used for the request to create a tenant." + }, + "TenantCreateResponse": { + "type": "object", + "properties": { + "tenant": { + "$ref": "#/definitions/Tenant", + "description": "tenant is the created tenant information." + } }, - "TenantListRequest": { - "type": "object", - "properties": { - "page_size": { - "type": "integer", - "format": "int64", - "description": "page_size is the number of tenants to be returned in the response.\nThe value should be between 1 and 100." - }, - "continuous_token": { - "type": "string", - "description": "continuous_token is an optional parameter used for pagination.\nIt should be the value received in the previous response." - } - }, - "description": "TenantListRequest is the message used for the request to list all tenants." + "description": "TenantCreateResponse is the message returned from the request to create a tenant." + }, + "TenantDeleteResponse": { + "type": "object", + "properties": { + "tenant_id": { + "type": "string", + "description": "tenant_id is the tenant id that was deleted." + } }, - "TenantListResponse": { - "type": "object", - "properties": { - "tenants": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Tenant" - }, - "description": "tenants is a list of tenants." - }, - "continuous_token": { - "type": "string", - "description": "continuous_token is a string that can be used to paginate and retrieve the next set of results." - } - }, - "description": "TenantListResponse is the message returned from the request to list all tenants." + "description": "TenantDeleteResponse is the message returned from the request to delete a tenant." + }, + "TenantListRequest": { + "type": "object", + "properties": { + "page_size": { + "type": "integer", + "format": "int64", + "description": "page_size is the number of tenants to be returned in the response.\nThe value should be between 1 and 100." + }, + "continuous_token": { + "type": "string", + "description": "continuous_token is an optional parameter used for pagination.\nIt should be the value received in the previous response." + } }, - "Tuple": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity" - }, - "relation": { - "type": "string" + "description": "TenantListRequest is the message used for the request to list all tenants." + }, + "TenantListResponse": { + "type": "object", + "properties": { + "tenants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Tenant" }, - "subject": { - "$ref": "#/definitions/Subject" - } + "description": "tenants is a list of tenants." }, - "description": "Tuple is a structure that includes an entity, a relation, and a subject." + "continuous_token": { + "type": "string", + "description": "continuous_token is a string that can be used to paginate and retrieve the next set of results." + } }, - "TupleFilter": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/EntityFilter" - }, - "relation": { - "type": "string" - }, - "subject": { - "$ref": "#/definitions/SubjectFilter", - "title": "The subject filter" - } + "description": "TenantListResponse is the message returned from the request to list all tenants." + }, + "Tuple": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/Entity" }, - "description": "TupleFilter is used to filter tuples based on the entity, relation and the subject." - }, - "TupleSet": { - "type": "object", - "properties": { - "relation": { - "type": "string" - } + "relation": { + "type": "string" }, - "description": "TupleSet represents a set of tuples associated with a specific relation." + "subject": { + "$ref": "#/definitions/Subject" + } }, - "TupleToUserSet": { - "type": "object", - "properties": { - "tupleSet": { - "$ref": "#/definitions/TupleSet", - "title": "The tuple set" - }, - "computed": { - "$ref": "#/definitions/ComputedUserSet", - "title": "The computed user set" - } - }, - "description": "TupleToUserSet defines a mapping from tuple sets to computed user sets." + "description": "Tuple is a structure that includes an entity, a relation, and a subject." + }, + "TupleFilter": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/EntityFilter" + }, + "relation": { + "type": "string" + }, + "subject": { + "$ref": "#/definitions/SubjectFilter", + "title": "The subject filter" + } }, - "Values": { - "type": "object", - "properties": { - "values": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Any" - } - } + "description": "TupleFilter is used to filter tuples based on the entity, relation and the subject." + }, + "TupleSet": { + "type": "object", + "properties": { + "relation": { + "type": "string" } }, - "Version": { - "type": "object", - "properties": { - "major": { - "type": "string", - "format": "int64", - "description": "Major version changes indicate different required support level from\nthe required components." - }, - "minor": { - "type": "string", - "format": "int64", - "description": "Minor version changes must not change the observed behavior from\nexisting implementations, but may be provided informationally." - } - }, - "title": "Version" + "description": "TupleSet represents a set of tuples associated with a specific relation." + }, + "TupleToUserSet": { + "type": "object", + "properties": { + "tupleSet": { + "$ref": "#/definitions/TupleSet", + "title": "The tuple set" + }, + "computed": { + "$ref": "#/definitions/ComputedUserSet", + "title": "The computed user set" + } }, - "WatchBody": { - "type": "object", - "properties": { - "snap_token": { - "type": "string", - "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." + "description": "TupleToUserSet defines a mapping from tuple sets to computed user sets." + }, + "Values": { + "type": "object", + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Any" } - }, - "description": "WatchRequest is the request message for the Watch RPC. It contains the\ndetails needed to establish a watch stream." + } + } + }, + "Version": { + "type": "object", + "properties": { + "major": { + "type": "string", + "format": "int64", + "description": "Major version changes indicate different required support level from\nthe required components." + }, + "minor": { + "type": "string", + "format": "int64", + "description": "Minor version changes must not change the observed behavior from\nexisting implementations, but may be provided informationally." + } }, - "WatchResponse": { - "type": "object", - "properties": { - "changes": { - "$ref": "#/definitions/DataChanges", - "description": "Changes in the data." - } - }, - "description": "WatchResponse is the response message for the Watch RPC. It contains the\nchanges in the data that are being watched." + "title": "Version" + }, + "WatchBody": { + "type": "object", + "properties": { + "snap_token": { + "type": "string", + "description": "The snap token to avoid stale cache, see more details on [Snap Tokens](../../operations/snap-tokens)." + } }, - "WellKnownType": { - "type": "string", - "enum": [ - "WELL_KNOWN_TYPE_UNSPECIFIED", - "ANY", - "TIMESTAMP", - "DURATION" - ], - "default": "WELL_KNOWN_TYPE_UNSPECIFIED", - "description": "Well-known protobuf types treated with first-class support in CEL.\n\n - WELL_KNOWN_TYPE_UNSPECIFIED: Unspecified type.\n - ANY: Well-known protobuf.Any type.\n\nAny types are a polymorphic message type. During type-checking they are\ntreated like `DYN` types, but at runtime they are resolved to a specific\nmessage type specified at evaluation time.\n - TIMESTAMP: Well-known protobuf.Timestamp type, internally referenced as `timestamp`.\n - DURATION: Well-known protobuf.Duration type, internally referenced as `duration`." - }, - "WriteRelationshipsBody": { - "type": "object", - "properties": { - "metadata": { - "$ref": "#/definitions/RelationshipWriteRequestMetadata", - "description": "Metadata for the request. It's required." - }, - "tuples": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Tuple" - }, - "description": "List of tuples for the request. Must have between 1 and 100 items." - } - }, - "description": "Represents a request to write relationship data." + "description": "WatchRequest is the request message for the Watch RPC. It contains the\ndetails needed to establish a watch stream." + }, + "WatchResponse": { + "type": "object", + "properties": { + "changes": { + "$ref": "#/definitions/DataChanges", + "description": "Changes in the data." + } }, - "v1.Call": { - "type": "object", - "properties": { - "ruleName": { - "type": "string", - "title": "Name of the rule" + "description": "WatchResponse is the response message for the Watch RPC. It contains the\nchanges in the data that are being watched." + }, + "WellKnownType": { + "type": "string", + "enum": [ + "ANY", + "TIMESTAMP", + "DURATION" + ], + "description": "Well-known protobuf types treated with first-class support in CEL.\n\n - ANY: Well-known protobuf.Any type.\n\nAny types are a polymorphic message type. During type-checking they are\ntreated like `DYN` types, but at runtime they are resolved to a specific\nmessage type specified at evaluation time.\n - TIMESTAMP: Well-known protobuf.Timestamp type, internally referenced as `timestamp`.\n - DURATION: Well-known protobuf.Duration type, internally referenced as `duration`." + }, + "WriteRelationshipsBody": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/RelationshipWriteRequestMetadata", + "description": "Metadata for the request. It's required." + }, + "tuples": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Tuple" }, - "arguments": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Argument" - }, - "title": "Arguments passed to the rule" - } - }, - "description": "Call represents a call to a rule. It includes the name of the rule and the arguments passed to it." + "description": "List of tuples for the request. Must have between 1 and 100 items." + } }, - "v1.Expand": { - "type": "object", - "properties": { - "entity": { - "$ref": "#/definitions/Entity", - "description": "entity is the entity for which the hierarchical structure is defined." - }, - "permission": { - "type": "string", - "description": "permission is the permission applied to the entity." - }, - "arguments": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Argument" - }, - "description": "arguments are the additional information or context used to evaluate permissions." - }, - "expand": { - "$ref": "#/definitions/ExpandTreeNode", - "description": "expand contains another hierarchical structure." - }, - "leaf": { - "$ref": "#/definitions/ExpandLeaf", - "description": "leaf contains a set of subjects." - } - }, - "description": "Expand is used to define a hierarchical structure for permissions.\nIt has an entity, permission, and arguments. The node can be either another hierarchical structure or a set of subjects." - }, - "v1.Operation": { - "type": "object", - "properties": { - "relationships_write": { - "type": "array", - "items": { - "type": "string" - }, - "description": "'relationships_write' is a repeated string field for storing relationship keys\nthat are to be written or created." - }, - "relationships_delete": { - "type": "array", - "items": { - "type": "string" - }, - "description": "'relationships_delete' is a repeated string field for storing relationship keys\nthat are to be deleted or removed." - }, - "attributes_write": { - "type": "array", - "items": { - "type": "string" - }, - "description": "'attributes_write' is a repeated string field for storing attribute keys\nthat are to be written or created." - }, - "attributes_delete": { - "type": "array", - "items": { - "type": "string" - }, - "description": "'attributes_delete' is a repeated string field for storing attribute keys\nthat are to be deleted or removed." - } - }, - "description": "Operation is a message representing a series of operations that can be performed.\nIt includes fields for writing and deleting relationships and attributes." - }, - "v1alpha1.Reference": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The fully qualified name of the declaration." - }, - "overloadId": { - "type": "array", - "items": { - "type": "string" - }, - "description": "For references to functions, this is a list of `Overload.overload_id`\nvalues which match according to typing rules.\n\nIf the list has more than one element, overload resolution among the\npresented candidates must happen at runtime because of dynamic types. The\ntype checker attempts to narrow down this list as much as possible.\n\nEmpty if this is not a reference to a\n[Decl.FunctionDecl][google.api.expr.v1alpha1.Decl.FunctionDecl]." - }, - "value": { - "$ref": "#/definitions/Constant", - "description": "For references to constants, this may contain the value of the\nconstant if known at compile time." - } - }, - "description": "Describes a resolved reference to a declaration." - }, - "v1alpha1.Type": { - "type": "object", - "properties": { - "dyn": { + "description": "Represents a request to write relationship data." + }, + "v1.Call": { + "type": "object", + "properties": { + "ruleName": { + "type": "string", + "title": "Name of the rule" + }, + "arguments": { + "type": "array", + "items": { "type": "object", - "properties": {}, - "description": "Dynamic type." + "$ref": "#/definitions/Argument" }, - "null": { - "type": "string", - "description": "Null value." - }, - "primitive": { - "$ref": "#/definitions/PrimitiveType", - "description": "Primitive types: `true`, `1u`, `-2.0`, `'string'`, `b'bytes'`." - }, - "wrapper": { - "$ref": "#/definitions/PrimitiveType", - "description": "Wrapper of a primitive type, e.g. `google.protobuf.Int64Value`." - }, - "wellKnown": { - "$ref": "#/definitions/WellKnownType", - "description": "Well-known protobuf type such as `google.protobuf.Timestamp`." - }, - "listType": { - "$ref": "#/definitions/ListType", - "description": "Parameterized list with elements of `list_type`, e.g. `list\u003ctimestamp\u003e`." - }, - "mapType": { - "$ref": "#/definitions/MapType", - "description": "Parameterized map with typed keys and values." + "title": "Arguments passed to the rule" + } + }, + "description": "Call represents a call to a rule. It includes the name of the rule and the arguments passed to it." + }, + "v1.Expand": { + "type": "object", + "properties": { + "entity": { + "$ref": "#/definitions/Entity", + "description": "entity is the entity for which the hierarchical structure is defined." + }, + "permission": { + "type": "string", + "description": "permission is the permission applied to the entity." + }, + "arguments": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Argument" }, - "function": { - "$ref": "#/definitions/FunctionType", - "description": "Function type." + "description": "arguments are the additional information or context used to evaluate permissions." + }, + "expand": { + "$ref": "#/definitions/ExpandTreeNode", + "description": "expand contains another hierarchical structure." + }, + "leaf": { + "$ref": "#/definitions/ExpandLeaf", + "description": "leaf contains a set of subjects." + } + }, + "description": "Expand is used to define a hierarchical structure for permissions.\nIt has an entity, permission, and arguments. The node can be either another hierarchical structure or a set of subjects." + }, + "v1.Operation": { + "type": "object", + "properties": { + "relationships_write": { + "type": "array", + "items": { + "type": "string" }, - "messageType": { - "type": "string", - "description": "Protocol buffer message type.\n\nThe `message_type` string specifies the qualified message type name. For\nexample, `google.plus.Profile`." + "description": "'relationships_write' is a repeated string field for storing relationship keys\nthat are to be written or created." + }, + "relationships_delete": { + "type": "array", + "items": { + "type": "string" }, - "typeParam": { - "type": "string", - "description": "Type param type.\n\nThe `type_param` string specifies the type parameter name, e.g. `list\u003cE\u003e`\nwould be a `list_type` whose element type was a `type_param` type\nnamed `E`." + "description": "'relationships_delete' is a repeated string field for storing relationship keys\nthat are to be deleted or removed." + }, + "attributes_write": { + "type": "array", + "items": { + "type": "string" }, - "type": { - "$ref": "#/definitions/v1alpha1.Type", - "description": "Type type.\n\nThe `type` value specifies the target type. e.g. int is type with a\ntarget type of `Primitive.INT`." + "description": "'attributes_write' is a repeated string field for storing attribute keys\nthat are to be written or created." + }, + "attributes_delete": { + "type": "array", + "items": { + "type": "string" }, - "error": { - "type": "object", - "properties": {}, - "description": "Error type.\n\nDuring type-checking if an expression is an error, its type is propagated\nas the `ERROR` type. This permits the type-checker to discover other\nerrors present in the expression." + "description": "'attributes_delete' is a repeated string field for storing attribute keys\nthat are to be deleted or removed." + } + }, + "description": "Operation is a message representing a series of operations that can be performed.\nIt includes fields for writing and deleting relationships and attributes." + }, + "v1alpha1.Reference": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The fully qualified name of the declaration." + }, + "overloadId": { + "type": "array", + "items": { + "type": "string" }, - "abstractType": { - "$ref": "#/definitions/AbstractType", - "description": "Abstract, application defined type." - } + "description": "For references to functions, this is a list of `Overload.overload_id`\nvalues which match according to typing rules.\n\nIf the list has more than one element, overload resolution among the\npresented candidates must happen at runtime because of dynamic types. The\ntype checker attempts to narrow down this list as much as possible.\n\nEmpty if this is not a reference to a\n[Decl.FunctionDecl][google.api.expr.v1alpha1.Decl.FunctionDecl]." }, - "description": "Represents a CEL type." - } + "value": { + "$ref": "#/definitions/Constant", + "description": "For references to constants, this may contain the value of the\nconstant if known at compile time." + } + }, + "description": "Describes a resolved reference to a declaration." }, - "securityDefinitions": { - "ApiKeyAuth": { - "type": "apiKey", - "name": "Authorization", - "in": "header" - } + "v1alpha1.Type": { + "type": "object", + "properties": { + "dyn": { + "type": "object", + "properties": {}, + "description": "Dynamic type." + }, + "null": { + "type": "string", + "description": "Null value." + }, + "primitive": { + "$ref": "#/definitions/PrimitiveType", + "description": "Primitive types: `true`, `1u`, `-2.0`, `'string'`, `b'bytes'`." + }, + "wrapper": { + "$ref": "#/definitions/PrimitiveType", + "description": "Wrapper of a primitive type, e.g. `google.protobuf.Int64Value`." + }, + "wellKnown": { + "$ref": "#/definitions/WellKnownType", + "description": "Well-known protobuf type such as `google.protobuf.Timestamp`." + }, + "listType": { + "$ref": "#/definitions/ListType", + "description": "Parameterized list with elements of `list_type`, e.g. `list\u003ctimestamp\u003e`." + }, + "mapType": { + "$ref": "#/definitions/MapType", + "description": "Parameterized map with typed keys and values." + }, + "function": { + "$ref": "#/definitions/FunctionType", + "description": "Function type." + }, + "messageType": { + "type": "string", + "description": "Protocol buffer message type.\n\nThe `message_type` string specifies the qualified message type name. For\nexample, `google.plus.Profile`." + }, + "typeParam": { + "type": "string", + "description": "Type param type.\n\nThe `type_param` string specifies the type parameter name, e.g. `list\u003cE\u003e`\nwould be a `list_type` whose element type was a `type_param` type\nnamed `E`." + }, + "type": { + "$ref": "#/definitions/v1alpha1.Type", + "description": "Type type.\n\nThe `type` value specifies the target type. e.g. int is type with a\ntarget type of `Primitive.INT`." + }, + "error": { + "type": "object", + "properties": {}, + "description": "Error type.\n\nDuring type-checking if an expression is an error, its type is propagated\nas the `ERROR` type. This permits the type-checker to discover other\nerrors present in the expression." + }, + "abstractType": { + "$ref": "#/definitions/AbstractType", + "description": "Abstract, application defined type." + } + }, + "description": "Represents a CEL type." + } + }, + "securityDefinitions": { + "ApiKeyAuth": { + "type": "apiKey", + "name": "Authorization", + "in": "header" } } - \ No newline at end of file +} diff --git a/permify/__init__.py b/permify/__init__.py index 16a9d70..39d26b2 100644 --- a/permify/__init__.py +++ b/permify/__init__.py @@ -7,7 +7,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -15,7 +15,7 @@ """ # noqa: E501 -__version__ = "v1.6.0" +__version__ = "v1.6.1" # import apis into sdk package from permify.api.bundle_api import BundleApi @@ -95,7 +95,6 @@ from permify.models.lookup_entity_stream_body import LookupEntityStreamBody from permify.models.lookup_subject_body import LookupSubjectBody from permify.models.map_type import MapType -from permify.models.null_value import NullValue from permify.models.partial_write_body import PartialWriteBody from permify.models.partials import Partials from permify.models.permission_bulk_check_request_item import PermissionBulkCheckRequestItem diff --git a/permify/api/bundle_api.py b/permify/api/bundle_api.py index ceb393a..871077d 100644 --- a/permify/api/bundle_api.py +++ b/permify/api/bundle_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/api/data_api.py b/permify/api/data_api.py index cd973a6..d7d6499 100644 --- a/permify/api/data_api.py +++ b/permify/api/data_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/api/permission_api.py b/permify/api/permission_api.py index d6697fa..c842977 100644 --- a/permify/api/permission_api.py +++ b/permify/api/permission_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/api/schema_api.py b/permify/api/schema_api.py index e27baa3..3aa5bda 100644 --- a/permify/api/schema_api.py +++ b/permify/api/schema_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/api/tenancy_api.py b/permify/api/tenancy_api.py index 8b984f2..219025e 100644 --- a/permify/api/tenancy_api.py +++ b/permify/api/tenancy_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/api/watch_api.py b/permify/api/watch_api.py index ec6c52e..8b49134 100644 --- a/permify/api/watch_api.py +++ b/permify/api/watch_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/api_client.py b/permify/api_client.py index 4d5057c..dcf67c7 100644 --- a/permify/api_client.py +++ b/permify/api_client.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -87,7 +87,7 @@ def __init__( self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = 'OpenAPI-Generator/v1.6.0/python' + self.user_agent = 'OpenAPI-Generator/v1.6.1/python' self.client_side_validation = configuration.client_side_validation def __enter__(self): diff --git a/permify/configuration.py b/permify/configuration.py index 86833b9..606b948 100644 --- a/permify/configuration.py +++ b/permify/configuration.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -397,8 +397,8 @@ def to_debug_report(self): return "Python SDK Debug Report:\n"\ "OS: {env}\n"\ "Python Version: {pyversion}\n"\ - "Version of the API: v1.6.0\n"\ - "SDK Package Version: v1.6.0".\ + "Version of the API: v1.6.1\n"\ + "SDK Package Version: v1.6.1".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self): diff --git a/permify/exceptions.py b/permify/exceptions.py index d1b3427..9fa1229 100644 --- a/permify/exceptions.py +++ b/permify/exceptions.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/__init__.py b/permify/models/__init__.py index 087233f..126c8ac 100644 --- a/permify/models/__init__.py +++ b/permify/models/__init__.py @@ -6,7 +6,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -73,7 +73,6 @@ from permify.models.lookup_entity_stream_body import LookupEntityStreamBody from permify.models.lookup_subject_body import LookupSubjectBody from permify.models.map_type import MapType -from permify.models.null_value import NullValue from permify.models.partial_write_body import PartialWriteBody from permify.models.partials import Partials from permify.models.permission_bulk_check_request_item import PermissionBulkCheckRequestItem diff --git a/permify/models/abstract_type.py b/permify/models/abstract_type.py index 026359d..8d24368 100644 --- a/permify/models/abstract_type.py +++ b/permify/models/abstract_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/any.py b/permify/models/any.py index c5c82d7..5dc04cf 100644 --- a/permify/models/any.py +++ b/permify/models/any.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/argument.py b/permify/models/argument.py index 1dd9b5a..1e77dc2 100644 --- a/permify/models/argument.py +++ b/permify/models/argument.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/attribute.py b/permify/models/attribute.py index b1ceb00..78c5069 100644 --- a/permify/models/attribute.py +++ b/permify/models/attribute.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/attribute_definition.py b/permify/models/attribute_definition.py index 374c632..558100b 100644 --- a/permify/models/attribute_definition.py +++ b/permify/models/attribute_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/attribute_filter.py b/permify/models/attribute_filter.py index 2a7ec95..af1f7c2 100644 --- a/permify/models/attribute_filter.py +++ b/permify/models/attribute_filter.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/attribute_read_request_metadata.py b/permify/models/attribute_read_request_metadata.py index ea29818..1a2802f 100644 --- a/permify/models/attribute_read_request_metadata.py +++ b/permify/models/attribute_read_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/attribute_read_response.py b/permify/models/attribute_read_response.py index aa46fb8..fea4504 100644 --- a/permify/models/attribute_read_response.py +++ b/permify/models/attribute_read_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/attribute_type.py b/permify/models/attribute_type.py index 4cc0ffc..62deed5 100644 --- a/permify/models/attribute_type.py +++ b/permify/models/attribute_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,13 +29,12 @@ class AttributeType(str, Enum): """ - Enumerates the types of attribute. - ATTRIBUTE_TYPE_UNSPECIFIED: Not specified attribute type. This is the default value. - ATTRIBUTE_TYPE_BOOLEAN: A boolean attribute type. - ATTRIBUTE_TYPE_BOOLEAN_ARRAY: A boolean array attribute type. - ATTRIBUTE_TYPE_STRING: A string attribute type. - ATTRIBUTE_TYPE_STRING_ARRAY: A string array attribute type. - ATTRIBUTE_TYPE_INTEGER: An integer attribute type. - ATTRIBUTE_TYPE_INTEGER_ARRAY: An integer array attribute type. - ATTRIBUTE_TYPE_DOUBLE: A double attribute type. - ATTRIBUTE_TYPE_DOUBLE_ARRAY: A double array attribute type. + Enumerates the types of attribute. - ATTRIBUTE_TYPE_BOOLEAN: A boolean attribute type. - ATTRIBUTE_TYPE_BOOLEAN_ARRAY: A boolean array attribute type. - ATTRIBUTE_TYPE_STRING: A string attribute type. - ATTRIBUTE_TYPE_STRING_ARRAY: A string array attribute type. - ATTRIBUTE_TYPE_INTEGER: An integer attribute type. - ATTRIBUTE_TYPE_INTEGER_ARRAY: An integer array attribute type. - ATTRIBUTE_TYPE_DOUBLE: A double attribute type. - ATTRIBUTE_TYPE_DOUBLE_ARRAY: A double array attribute type. """ """ allowed enum values """ - ATTRIBUTE_TYPE_UNSPECIFIED = 'ATTRIBUTE_TYPE_UNSPECIFIED' ATTRIBUTE_TYPE_BOOLEAN = 'ATTRIBUTE_TYPE_BOOLEAN' ATTRIBUTE_TYPE_BOOLEAN_ARRAY = 'ATTRIBUTE_TYPE_BOOLEAN_ARRAY' ATTRIBUTE_TYPE_STRING = 'ATTRIBUTE_TYPE_STRING' diff --git a/permify/models/bulk_check_body.py b/permify/models/bulk_check_body.py index db21212..499e4ce 100644 --- a/permify/models/bulk_check_body.py +++ b/permify/models/bulk_check_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/bundle_delete_body.py b/permify/models/bundle_delete_body.py index 1121350..88ea7bf 100644 --- a/permify/models/bundle_delete_body.py +++ b/permify/models/bundle_delete_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/bundle_delete_response.py b/permify/models/bundle_delete_response.py index 06b17f3..0794927 100644 --- a/permify/models/bundle_delete_response.py +++ b/permify/models/bundle_delete_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/bundle_read_body.py b/permify/models/bundle_read_body.py index def3fe9..a7b5e5a 100644 --- a/permify/models/bundle_read_body.py +++ b/permify/models/bundle_read_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/bundle_read_response.py b/permify/models/bundle_read_response.py index a399ddb..f87d26c 100644 --- a/permify/models/bundle_read_response.py +++ b/permify/models/bundle_read_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/bundle_run_response.py b/permify/models/bundle_run_response.py index 65ea309..2aaa23f 100644 --- a/permify/models/bundle_run_response.py +++ b/permify/models/bundle_run_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/bundle_write_body.py b/permify/models/bundle_write_body.py index 85a8287..cc8e6ca 100644 --- a/permify/models/bundle_write_body.py +++ b/permify/models/bundle_write_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/bundle_write_response.py b/permify/models/bundle_write_response.py index f49aa6a..25da2cd 100644 --- a/permify/models/bundle_write_response.py +++ b/permify/models/bundle_write_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/check_body.py b/permify/models/check_body.py index 36943ab..8563df3 100644 --- a/permify/models/check_body.py +++ b/permify/models/check_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/check_result.py b/permify/models/check_result.py index 7f45a5a..eded0b6 100644 --- a/permify/models/check_result.py +++ b/permify/models/check_result.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,13 +29,12 @@ class CheckResult(str, Enum): """ - Enumerates results of a check operation. - CHECK_RESULT_UNSPECIFIED: Not specified check result. This is the default value. - CHECK_RESULT_ALLOWED: Represents a successful check (the check allowed the operation). - CHECK_RESULT_DENIED: Represents a failed check (the check denied the operation). + Enumerates results of a check operation. - CHECK_RESULT_ALLOWED: Represents a successful check (the check allowed the operation). - CHECK_RESULT_DENIED: Represents a failed check (the check denied the operation). """ """ allowed enum values """ - CHECK_RESULT_UNSPECIFIED = 'CHECK_RESULT_UNSPECIFIED' CHECK_RESULT_ALLOWED = 'CHECK_RESULT_ALLOWED' CHECK_RESULT_DENIED = 'CHECK_RESULT_DENIED' diff --git a/permify/models/checked_expr.py b/permify/models/checked_expr.py index cf4a881..7c7bc43 100644 --- a/permify/models/checked_expr.py +++ b/permify/models/checked_expr.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/child.py b/permify/models/child.py index 1d6cbdc..d15c6ef 100644 --- a/permify/models/child.py +++ b/permify/models/child.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/component.py b/permify/models/component.py index 9a524c5..f450059 100644 --- a/permify/models/component.py +++ b/permify/models/component.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,13 +29,12 @@ class Component(str, Enum): """ - CEL component specifier. - COMPONENT_UNSPECIFIED: Unspecified, default. - COMPONENT_PARSER: Parser. Converts a CEL string to an AST. - COMPONENT_TYPE_CHECKER: Type checker. Checks that references in an AST are defined and types agree. - COMPONENT_RUNTIME: Runtime. Evaluates a parsed and optionally checked CEL AST against a context. + CEL component specifier. - COMPONENT_PARSER: Parser. Converts a CEL string to an AST. - COMPONENT_TYPE_CHECKER: Type checker. Checks that references in an AST are defined and types agree. - COMPONENT_RUNTIME: Runtime. Evaluates a parsed and optionally checked CEL AST against a context. """ """ allowed enum values """ - COMPONENT_UNSPECIFIED = 'COMPONENT_UNSPECIFIED' COMPONENT_PARSER = 'COMPONENT_PARSER' COMPONENT_TYPE_CHECKER = 'COMPONENT_TYPE_CHECKER' COMPONENT_RUNTIME = 'COMPONENT_RUNTIME' diff --git a/permify/models/comprehension.py b/permify/models/comprehension.py index d166317..deb4a3e 100644 --- a/permify/models/comprehension.py +++ b/permify/models/comprehension.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/computed_attribute.py b/permify/models/computed_attribute.py index 29f1712..9abe74f 100644 --- a/permify/models/computed_attribute.py +++ b/permify/models/computed_attribute.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/computed_user_set.py b/permify/models/computed_user_set.py index 18c7c4a..603e83c 100644 --- a/permify/models/computed_user_set.py +++ b/permify/models/computed_user_set.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/constant.py b/permify/models/constant.py index 03b2848..dabbd57 100644 --- a/permify/models/constant.py +++ b/permify/models/constant.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/context.py b/permify/models/context.py index 8dc542f..17756cb 100644 --- a/permify/models/context.py +++ b/permify/models/context.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/create_list.py b/permify/models/create_list.py index 351f3b8..f3a6f9c 100644 --- a/permify/models/create_list.py +++ b/permify/models/create_list.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/create_struct.py b/permify/models/create_struct.py index 83b3a8f..7dc495f 100644 --- a/permify/models/create_struct.py +++ b/permify/models/create_struct.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/data_bundle.py b/permify/models/data_bundle.py index 8833182..1d7177a 100644 --- a/permify/models/data_bundle.py +++ b/permify/models/data_bundle.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/data_change.py b/permify/models/data_change.py index 98e2010..973cd31 100644 --- a/permify/models/data_change.py +++ b/permify/models/data_change.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/data_change_operation.py b/permify/models/data_change_operation.py index a189aa1..66609e5 100644 --- a/permify/models/data_change_operation.py +++ b/permify/models/data_change_operation.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,13 +29,12 @@ class DataChangeOperation(str, Enum): """ - - OPERATION_UNSPECIFIED: Default operation, not specified. - OPERATION_CREATE: Creation operation. - OPERATION_DELETE: Deletion operation. + - OPERATION_CREATE: Creation operation. - OPERATION_DELETE: Deletion operation. """ """ allowed enum values """ - OPERATION_UNSPECIFIED = 'OPERATION_UNSPECIFIED' OPERATION_CREATE = 'OPERATION_CREATE' OPERATION_DELETE = 'OPERATION_DELETE' diff --git a/permify/models/data_changes.py b/permify/models/data_changes.py index e204971..96f9735 100644 --- a/permify/models/data_changes.py +++ b/permify/models/data_changes.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/data_delete_body.py b/permify/models/data_delete_body.py index 560f8ab..2b3ef7b 100644 --- a/permify/models/data_delete_body.py +++ b/permify/models/data_delete_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/data_delete_response.py b/permify/models/data_delete_response.py index 2112a08..d2c5ccd 100644 --- a/permify/models/data_delete_response.py +++ b/permify/models/data_delete_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/data_write_body.py b/permify/models/data_write_body.py index d9ffd20..442d76f 100644 --- a/permify/models/data_write_body.py +++ b/permify/models/data_write_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/data_write_request_metadata.py b/permify/models/data_write_request_metadata.py index 3c9dea1..867fba3 100644 --- a/permify/models/data_write_request_metadata.py +++ b/permify/models/data_write_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/data_write_response.py b/permify/models/data_write_response.py index b12c68b..54e9d12 100644 --- a/permify/models/data_write_response.py +++ b/permify/models/data_write_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/delete_relationships_body.py b/permify/models/delete_relationships_body.py index 4046010..360f2ae 100644 --- a/permify/models/delete_relationships_body.py +++ b/permify/models/delete_relationships_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/entity.py b/permify/models/entity.py index ceff72b..dd6ca01 100644 --- a/permify/models/entity.py +++ b/permify/models/entity.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/entity_definition.py b/permify/models/entity_definition.py index 9f22e16..8ae3cd8 100644 --- a/permify/models/entity_definition.py +++ b/permify/models/entity_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/entity_definition_reference.py b/permify/models/entity_definition_reference.py index 1df92fb..1073d69 100644 --- a/permify/models/entity_definition_reference.py +++ b/permify/models/entity_definition_reference.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,13 +29,12 @@ class EntityDefinitionReference(str, Enum): """ - The Reference enum specifies whether a name pertains to a relation, permission, or attribute. - REFERENCE_UNSPECIFIED: Default, unspecified reference. - REFERENCE_RELATION: Indicates that the name refers to a relation. - REFERENCE_PERMISSION: Indicates that the name refers to a permission. - REFERENCE_ATTRIBUTE: Indicates that the name refers to an attribute. + The Reference enum specifies whether a name pertains to a relation, permission, or attribute. - REFERENCE_RELATION: Indicates that the name refers to a relation. - REFERENCE_PERMISSION: Indicates that the name refers to a permission. - REFERENCE_ATTRIBUTE: Indicates that the name refers to an attribute. """ """ allowed enum values """ - REFERENCE_UNSPECIFIED = 'REFERENCE_UNSPECIFIED' REFERENCE_RELATION = 'REFERENCE_RELATION' REFERENCE_PERMISSION = 'REFERENCE_PERMISSION' REFERENCE_ATTRIBUTE = 'REFERENCE_ATTRIBUTE' diff --git a/permify/models/entity_filter.py b/permify/models/entity_filter.py index dee8fa5..4b0519f 100644 --- a/permify/models/entity_filter.py +++ b/permify/models/entity_filter.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/entry.py b/permify/models/entry.py index 6869ac7..6d56997 100644 --- a/permify/models/entry.py +++ b/permify/models/entry.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/expand_leaf.py b/permify/models/expand_leaf.py index d920bfa..75df1b8 100644 --- a/permify/models/expand_leaf.py +++ b/permify/models/expand_leaf.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/expand_tree_node.py b/permify/models/expand_tree_node.py index 1992edb..ecb8ea3 100644 --- a/permify/models/expand_tree_node.py +++ b/permify/models/expand_tree_node.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/expand_tree_node_operation.py b/permify/models/expand_tree_node_operation.py index 09f5f19..8302a8f 100644 --- a/permify/models/expand_tree_node_operation.py +++ b/permify/models/expand_tree_node_operation.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -35,7 +35,6 @@ class ExpandTreeNodeOperation(str, Enum): """ allowed enum values """ - OPERATION_UNSPECIFIED = 'OPERATION_UNSPECIFIED' OPERATION_UNION = 'OPERATION_UNION' OPERATION_INTERSECTION = 'OPERATION_INTERSECTION' OPERATION_EXCLUSION = 'OPERATION_EXCLUSION' diff --git a/permify/models/expr.py b/permify/models/expr.py index 97c1eef..590f13c 100644 --- a/permify/models/expr.py +++ b/permify/models/expr.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/expr_call.py b/permify/models/expr_call.py index 892dfa8..b17bb12 100644 --- a/permify/models/expr_call.py +++ b/permify/models/expr_call.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/extension.py b/permify/models/extension.py index 75e4925..2f6c519 100644 --- a/permify/models/extension.py +++ b/permify/models/extension.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/function_type.py b/permify/models/function_type.py index 0bd157e..c382bbf 100644 --- a/permify/models/function_type.py +++ b/permify/models/function_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/ident.py b/permify/models/ident.py index 028e752..cf2c108 100644 --- a/permify/models/ident.py +++ b/permify/models/ident.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/leaf.py b/permify/models/leaf.py index 9e031c6..85b7c53 100644 --- a/permify/models/leaf.py +++ b/permify/models/leaf.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/list_type.py b/permify/models/list_type.py index 21c9e23..1d3bb0d 100644 --- a/permify/models/list_type.py +++ b/permify/models/list_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/lookup_entity_body.py b/permify/models/lookup_entity_body.py index 576eaa5..9fd9b42 100644 --- a/permify/models/lookup_entity_body.py +++ b/permify/models/lookup_entity_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/lookup_entity_stream_body.py b/permify/models/lookup_entity_stream_body.py index 329bfbc..ddb3434 100644 --- a/permify/models/lookup_entity_stream_body.py +++ b/permify/models/lookup_entity_stream_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/lookup_subject_body.py b/permify/models/lookup_subject_body.py index 4a325c8..48548b7 100644 --- a/permify/models/lookup_subject_body.py +++ b/permify/models/lookup_subject_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/map_type.py b/permify/models/map_type.py index 897f56a..3b7869c 100644 --- a/permify/models/map_type.py +++ b/permify/models/map_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/null_value.py b/permify/models/null_value.py deleted file mode 100644 index 53c24ac..0000000 --- a/permify/models/null_value.py +++ /dev/null @@ -1,45 +0,0 @@ -# coding: utf-8 - -""" - Permify API - - Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - - The version of the OpenAPI document: v1.6.0 - Contact: hello@permify.co - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -import pprint -import re # noqa: F401 -from enum import Enum - - - -try: - from typing import Self -except ImportError: - from typing_extensions import Self - - -class NullValue(str, Enum): - """ - `NullValue` is a singleton enumeration to represent the null value for the `Value` type union. The JSON representation for `NullValue` is JSON `null`. - NULL_VALUE: Null value. - """ - - """ - allowed enum values - """ - NULL_VALUE = 'NULL_VALUE' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of NullValue from a JSON string""" - return cls(json.loads(json_str)) - - diff --git a/permify/models/partial_write_body.py b/permify/models/partial_write_body.py index 553b2ec..c41cb0d 100644 --- a/permify/models/partial_write_body.py +++ b/permify/models/partial_write_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/partials.py b/permify/models/partials.py index af43e52..58e5c22 100644 --- a/permify/models/partials.py +++ b/permify/models/partials.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_bulk_check_request_item.py b/permify/models/permission_bulk_check_request_item.py index b26b849..5cd315c 100644 --- a/permify/models/permission_bulk_check_request_item.py +++ b/permify/models/permission_bulk_check_request_item.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_bulk_check_response.py b/permify/models/permission_bulk_check_response.py index 9380eaf..7e8489b 100644 --- a/permify/models/permission_bulk_check_response.py +++ b/permify/models/permission_bulk_check_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_check_request_metadata.py b/permify/models/permission_check_request_metadata.py index d7e97f0..1fb803b 100644 --- a/permify/models/permission_check_request_metadata.py +++ b/permify/models/permission_check_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_check_response.py b/permify/models/permission_check_response.py index c208cc0..25a43fc 100644 --- a/permify/models/permission_check_response.py +++ b/permify/models/permission_check_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_check_response_metadata.py b/permify/models/permission_check_response_metadata.py index dd66fc4..bfa97f1 100644 --- a/permify/models/permission_check_response_metadata.py +++ b/permify/models/permission_check_response_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_definition.py b/permify/models/permission_definition.py index a0c952d..f2848d4 100644 --- a/permify/models/permission_definition.py +++ b/permify/models/permission_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_expand_body.py b/permify/models/permission_expand_body.py index c94190c..d4ef7d2 100644 --- a/permify/models/permission_expand_body.py +++ b/permify/models/permission_expand_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_expand_request_metadata.py b/permify/models/permission_expand_request_metadata.py index 2a24f1e..a9b24a8 100644 --- a/permify/models/permission_expand_request_metadata.py +++ b/permify/models/permission_expand_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_expand_response.py b/permify/models/permission_expand_response.py index 5f5b6ff..7f7ee2d 100644 --- a/permify/models/permission_expand_response.py +++ b/permify/models/permission_expand_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_lookup_entity_request_metadata.py b/permify/models/permission_lookup_entity_request_metadata.py index 53c6827..e569ded 100644 --- a/permify/models/permission_lookup_entity_request_metadata.py +++ b/permify/models/permission_lookup_entity_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_lookup_entity_response.py b/permify/models/permission_lookup_entity_response.py index dab6efa..3fb7f5a 100644 --- a/permify/models/permission_lookup_entity_response.py +++ b/permify/models/permission_lookup_entity_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_lookup_entity_stream_response.py b/permify/models/permission_lookup_entity_stream_response.py index 02d920a..8d1399a 100644 --- a/permify/models/permission_lookup_entity_stream_response.py +++ b/permify/models/permission_lookup_entity_stream_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_lookup_subject_request_metadata.py b/permify/models/permission_lookup_subject_request_metadata.py index 79455ed..865beae 100644 --- a/permify/models/permission_lookup_subject_request_metadata.py +++ b/permify/models/permission_lookup_subject_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_lookup_subject_response.py b/permify/models/permission_lookup_subject_response.py index 688e9fc..abea2a2 100644 --- a/permify/models/permission_lookup_subject_response.py +++ b/permify/models/permission_lookup_subject_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_subject_permission_request_metadata.py b/permify/models/permission_subject_permission_request_metadata.py index 636fd32..aa7ce03 100644 --- a/permify/models/permission_subject_permission_request_metadata.py +++ b/permify/models/permission_subject_permission_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/permission_subject_permission_response.py b/permify/models/permission_subject_permission_response.py index ac62bb8..3a31c9c 100644 --- a/permify/models/permission_subject_permission_response.py +++ b/permify/models/permission_subject_permission_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/primitive_type.py b/permify/models/primitive_type.py index e6cbd98..4199daa 100644 --- a/permify/models/primitive_type.py +++ b/permify/models/primitive_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,13 +29,12 @@ class PrimitiveType(str, Enum): """ - CEL primitive types. - PRIMITIVE_TYPE_UNSPECIFIED: Unspecified type. - BOOL: Boolean type. - INT64: Int64 type. Proto-based integer values are widened to int64. - UINT64: Uint64 type. Proto-based unsigned integer values are widened to uint64. - DOUBLE: Double type. Proto-based float values are widened to double values. - STRING: String type. - BYTES: Bytes type. + CEL primitive types. - BOOL: Boolean type. - INT64: Int64 type. Proto-based integer values are widened to int64. - UINT64: Uint64 type. Proto-based unsigned integer values are widened to uint64. - DOUBLE: Double type. Proto-based float values are widened to double values. - STRING: String type. - BYTES: Bytes type. """ """ allowed enum values """ - PRIMITIVE_TYPE_UNSPECIFIED = 'PRIMITIVE_TYPE_UNSPECIFIED' BOOL = 'BOOL' INT64 = 'INT64' UINT64 = 'UINT64' diff --git a/permify/models/read_attributes_body.py b/permify/models/read_attributes_body.py index a55673d..07f2597 100644 --- a/permify/models/read_attributes_body.py +++ b/permify/models/read_attributes_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/read_relationships_body.py b/permify/models/read_relationships_body.py index 18fb9dc..85947a2 100644 --- a/permify/models/read_relationships_body.py +++ b/permify/models/read_relationships_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/relation_definition.py b/permify/models/relation_definition.py index e9286b2..af51c73 100644 --- a/permify/models/relation_definition.py +++ b/permify/models/relation_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/relation_reference.py b/permify/models/relation_reference.py index 98272a0..6e4edea 100644 --- a/permify/models/relation_reference.py +++ b/permify/models/relation_reference.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/relationship_delete_response.py b/permify/models/relationship_delete_response.py index 88a6e3d..d2a8ec1 100644 --- a/permify/models/relationship_delete_response.py +++ b/permify/models/relationship_delete_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/relationship_read_request_metadata.py b/permify/models/relationship_read_request_metadata.py index 994a412..7b2d1bf 100644 --- a/permify/models/relationship_read_request_metadata.py +++ b/permify/models/relationship_read_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/relationship_read_response.py b/permify/models/relationship_read_response.py index 3bec94d..d124fe3 100644 --- a/permify/models/relationship_read_response.py +++ b/permify/models/relationship_read_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/relationship_write_request_metadata.py b/permify/models/relationship_write_request_metadata.py index d58c8d5..3c7cf46 100644 --- a/permify/models/relationship_write_request_metadata.py +++ b/permify/models/relationship_write_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/relationship_write_response.py b/permify/models/relationship_write_response.py index d12a964..8efb8e8 100644 --- a/permify/models/relationship_write_response.py +++ b/permify/models/relationship_write_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/rewrite.py b/permify/models/rewrite.py index 2f3ea50..98a9a35 100644 --- a/permify/models/rewrite.py +++ b/permify/models/rewrite.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/rewrite_operation.py b/permify/models/rewrite_operation.py index 6532a8a..4749d9e 100644 --- a/permify/models/rewrite_operation.py +++ b/permify/models/rewrite_operation.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,13 +29,12 @@ class RewriteOperation(str, Enum): """ - Operation enum includes potential rewrite operations. OPERATION_UNION: Represents a union operation. OPERATION_INTERSECTION: Represents an intersection operation. OPERATION_EXCLUSION: Represents an exclusion operation. - OPERATION_UNSPECIFIED: Default, unspecified operation. - OPERATION_UNION: Represents a union operation. - OPERATION_INTERSECTION: Represents an intersection operation. - OPERATION_EXCLUSION: Represents an exclusion operation. + Operation enum includes potential rewrite operations. OPERATION_UNION: Represents a union operation. OPERATION_INTERSECTION: Represents an intersection operation. OPERATION_EXCLUSION: Represents an exclusion operation. - OPERATION_UNION: Represents a union operation. - OPERATION_INTERSECTION: Represents an intersection operation. - OPERATION_EXCLUSION: Represents an exclusion operation. """ """ allowed enum values """ - OPERATION_UNSPECIFIED = 'OPERATION_UNSPECIFIED' OPERATION_UNION = 'OPERATION_UNION' OPERATION_INTERSECTION = 'OPERATION_INTERSECTION' OPERATION_EXCLUSION = 'OPERATION_EXCLUSION' diff --git a/permify/models/rule_definition.py b/permify/models/rule_definition.py index 5ae690c..e4bf4e7 100644 --- a/permify/models/rule_definition.py +++ b/permify/models/rule_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/run_bundle_body.py b/permify/models/run_bundle_body.py index f9fb6fa..f17d1c1 100644 --- a/permify/models/run_bundle_body.py +++ b/permify/models/run_bundle_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_definition.py b/permify/models/schema_definition.py index fd1d4cc..843b507 100644 --- a/permify/models/schema_definition.py +++ b/permify/models/schema_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_definition_reference.py b/permify/models/schema_definition_reference.py index c3188ee..1b41c62 100644 --- a/permify/models/schema_definition_reference.py +++ b/permify/models/schema_definition_reference.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,13 +29,12 @@ class SchemaDefinitionReference(str, Enum): """ - The Reference enum helps distinguish whether a name corresponds to an entity or a rule. - REFERENCE_UNSPECIFIED: Default, unspecified reference. - REFERENCE_ENTITY: Indicates that the name refers to an entity. - REFERENCE_RULE: Indicates that the name refers to a rule. + The Reference enum helps distinguish whether a name corresponds to an entity or a rule. - REFERENCE_ENTITY: Indicates that the name refers to an entity. - REFERENCE_RULE: Indicates that the name refers to a rule. """ """ allowed enum values """ - REFERENCE_UNSPECIFIED = 'REFERENCE_UNSPECIFIED' REFERENCE_ENTITY = 'REFERENCE_ENTITY' REFERENCE_RULE = 'REFERENCE_RULE' diff --git a/permify/models/schema_list.py b/permify/models/schema_list.py index dc1f97b..bf72fe8 100644 --- a/permify/models/schema_list.py +++ b/permify/models/schema_list.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_list_body.py b/permify/models/schema_list_body.py index 50bc349..b53ad4f 100644 --- a/permify/models/schema_list_body.py +++ b/permify/models/schema_list_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_list_response.py b/permify/models/schema_list_response.py index a258e09..92213b2 100644 --- a/permify/models/schema_list_response.py +++ b/permify/models/schema_list_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_partial_write_request_metadata.py b/permify/models/schema_partial_write_request_metadata.py index c6335b5..5648977 100644 --- a/permify/models/schema_partial_write_request_metadata.py +++ b/permify/models/schema_partial_write_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_partial_write_response.py b/permify/models/schema_partial_write_response.py index c65cc22..f7fe8b5 100644 --- a/permify/models/schema_partial_write_response.py +++ b/permify/models/schema_partial_write_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_read_body.py b/permify/models/schema_read_body.py index ca81288..b751835 100644 --- a/permify/models/schema_read_body.py +++ b/permify/models/schema_read_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_read_request_metadata.py b/permify/models/schema_read_request_metadata.py index 61a00a4..b1a15e2 100644 --- a/permify/models/schema_read_request_metadata.py +++ b/permify/models/schema_read_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_read_response.py b/permify/models/schema_read_response.py index 815504b..f35fd4d 100644 --- a/permify/models/schema_read_response.py +++ b/permify/models/schema_read_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_write_body.py b/permify/models/schema_write_body.py index 58dc263..f66de97 100644 --- a/permify/models/schema_write_body.py +++ b/permify/models/schema_write_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/schema_write_response.py b/permify/models/schema_write_response.py index 9a12b33..661f1a1 100644 --- a/permify/models/schema_write_response.py +++ b/permify/models/schema_write_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/select.py b/permify/models/select.py index cb0eb3e..fe5e11b 100644 --- a/permify/models/select.py +++ b/permify/models/select.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/source_info.py b/permify/models/source_info.py index 13a5e59..0f59255 100644 --- a/permify/models/source_info.py +++ b/permify/models/source_info.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/status.py b/permify/models/status.py index 38fb6b2..14881f4 100644 --- a/permify/models/status.py +++ b/permify/models/status.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/stream_result_of_permission_lookup_entity_stream_response.py b/permify/models/stream_result_of_permission_lookup_entity_stream_response.py index ebd886d..31fa7a7 100644 --- a/permify/models/stream_result_of_permission_lookup_entity_stream_response.py +++ b/permify/models/stream_result_of_permission_lookup_entity_stream_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/stream_result_of_watch_response.py b/permify/models/stream_result_of_watch_response.py index a6535ef..1765f64 100644 --- a/permify/models/stream_result_of_watch_response.py +++ b/permify/models/stream_result_of_watch_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/string_array_value.py b/permify/models/string_array_value.py index 40e576c..b216ce1 100644 --- a/permify/models/string_array_value.py +++ b/permify/models/string_array_value.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/subject.py b/permify/models/subject.py index dd52dbc..b7cd93a 100644 --- a/permify/models/subject.py +++ b/permify/models/subject.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/subject_filter.py b/permify/models/subject_filter.py index 7b13be1..12491fb 100644 --- a/permify/models/subject_filter.py +++ b/permify/models/subject_filter.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/subject_permission_body.py b/permify/models/subject_permission_body.py index 7736bf3..dec023b 100644 --- a/permify/models/subject_permission_body.py +++ b/permify/models/subject_permission_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/subjects.py b/permify/models/subjects.py index b76936d..1f37289 100644 --- a/permify/models/subjects.py +++ b/permify/models/subjects.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/tenant.py b/permify/models/tenant.py index afd5bde..549ef4e 100644 --- a/permify/models/tenant.py +++ b/permify/models/tenant.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/tenant_create_request.py b/permify/models/tenant_create_request.py index 018a479..5326697 100644 --- a/permify/models/tenant_create_request.py +++ b/permify/models/tenant_create_request.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/tenant_create_response.py b/permify/models/tenant_create_response.py index 28585dd..fdf44fd 100644 --- a/permify/models/tenant_create_response.py +++ b/permify/models/tenant_create_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/tenant_delete_response.py b/permify/models/tenant_delete_response.py index b9444a9..c0d0c0e 100644 --- a/permify/models/tenant_delete_response.py +++ b/permify/models/tenant_delete_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/tenant_list_request.py b/permify/models/tenant_list_request.py index f0f7105..e22e39a 100644 --- a/permify/models/tenant_list_request.py +++ b/permify/models/tenant_list_request.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/tenant_list_response.py b/permify/models/tenant_list_response.py index e4b37ad..8634c1f 100644 --- a/permify/models/tenant_list_response.py +++ b/permify/models/tenant_list_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/tuple.py b/permify/models/tuple.py index a2655c8..62463c9 100644 --- a/permify/models/tuple.py +++ b/permify/models/tuple.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/tuple_filter.py b/permify/models/tuple_filter.py index dedd8a4..97fbc71 100644 --- a/permify/models/tuple_filter.py +++ b/permify/models/tuple_filter.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/tuple_set.py b/permify/models/tuple_set.py index b8f138f..53b32db 100644 --- a/permify/models/tuple_set.py +++ b/permify/models/tuple_set.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/tuple_to_user_set.py b/permify/models/tuple_to_user_set.py index ae469f3..7a6b41c 100644 --- a/permify/models/tuple_to_user_set.py +++ b/permify/models/tuple_to_user_set.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/v1_call.py b/permify/models/v1_call.py index 00c230b..1a2459c 100644 --- a/permify/models/v1_call.py +++ b/permify/models/v1_call.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/v1_expand.py b/permify/models/v1_expand.py index 561e8bd..40071fd 100644 --- a/permify/models/v1_expand.py +++ b/permify/models/v1_expand.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/v1_operation.py b/permify/models/v1_operation.py index 98e1a1d..b5bb4b2 100644 --- a/permify/models/v1_operation.py +++ b/permify/models/v1_operation.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/v1alpha1_reference.py b/permify/models/v1alpha1_reference.py index 0b5232a..3a4a171 100644 --- a/permify/models/v1alpha1_reference.py +++ b/permify/models/v1alpha1_reference.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/v1alpha1_type.py b/permify/models/v1alpha1_type.py index afb51b1..730ed1b 100644 --- a/permify/models/v1alpha1_type.py +++ b/permify/models/v1alpha1_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/values.py b/permify/models/values.py index e14987d..8e66cd3 100644 --- a/permify/models/values.py +++ b/permify/models/values.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/version.py b/permify/models/version.py index 51fbb4d..2f38698 100644 --- a/permify/models/version.py +++ b/permify/models/version.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/watch_body.py b/permify/models/watch_body.py index 6a9ab11..ff19bc2 100644 --- a/permify/models/watch_body.py +++ b/permify/models/watch_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/watch_response.py b/permify/models/watch_response.py index db25ec7..4f5fcb1 100644 --- a/permify/models/watch_response.py +++ b/permify/models/watch_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/models/well_known_type.py b/permify/models/well_known_type.py index 986c709..04d4f0d 100644 --- a/permify/models/well_known_type.py +++ b/permify/models/well_known_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,13 +29,12 @@ class WellKnownType(str, Enum): """ - Well-known protobuf types treated with first-class support in CEL. - WELL_KNOWN_TYPE_UNSPECIFIED: Unspecified type. - ANY: Well-known protobuf.Any type. Any types are a polymorphic message type. During type-checking they are treated like `DYN` types, but at runtime they are resolved to a specific message type specified at evaluation time. - TIMESTAMP: Well-known protobuf.Timestamp type, internally referenced as `timestamp`. - DURATION: Well-known protobuf.Duration type, internally referenced as `duration`. + Well-known protobuf types treated with first-class support in CEL. - ANY: Well-known protobuf.Any type. Any types are a polymorphic message type. During type-checking they are treated like `DYN` types, but at runtime they are resolved to a specific message type specified at evaluation time. - TIMESTAMP: Well-known protobuf.Timestamp type, internally referenced as `timestamp`. - DURATION: Well-known protobuf.Duration type, internally referenced as `duration`. """ """ allowed enum values """ - WELL_KNOWN_TYPE_UNSPECIFIED = 'WELL_KNOWN_TYPE_UNSPECIFIED' ANY = 'ANY' TIMESTAMP = 'TIMESTAMP' DURATION = 'DURATION' diff --git a/permify/models/write_relationships_body.py b/permify/models/write_relationships_body.py index c71a9ea..5e9b7ad 100644 --- a/permify/models/write_relationships_body.py +++ b/permify/models/write_relationships_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/permify/rest.py b/permify/rest.py index 13799bb..e7de374 100644 --- a/permify/rest.py +++ b/permify/rest.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/pyproject.toml b/pyproject.toml index f672391..d2952bb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "permify" -version = "1.6.0" +version = "1.6.1" description = "Permify API" authors = ["API Support "] license = "Apache-2.0 license" diff --git a/setup.py b/setup.py index 8ee6027..3e4f1ea 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,7 +22,7 @@ # prerequisite: setuptools # http://pypi.python.org/pypi/setuptools NAME = "permify" -VERSION = "v1.6.0" +VERSION = "v1.6.1" PYTHON_REQUIRES = ">=3.7" REQUIRES = [ "urllib3 >= 1.25.3, < 2.1.0", diff --git a/test/test_abstract_type.py b/test/test_abstract_type.py index c3ca832..0daec4c 100644 --- a/test/test_abstract_type.py +++ b/test/test_abstract_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -42,9 +42,9 @@ def make_instance(self, include_optional) -> AbstractType: permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), diff --git a/test/test_any.py b/test/test_any.py index 1f33328..6c8a9e0 100644 --- a/test/test_any.py +++ b/test/test_any.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_argument.py b/test/test_argument.py index cc2864f..93ec63a 100644 --- a/test/test_argument.py +++ b/test/test_argument.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_attribute.py b/test/test_attribute.py index e521bf7..8e2485b 100644 --- a/test/test_attribute.py +++ b/test/test_attribute.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_attribute_definition.py b/test/test_attribute_definition.py index 67d2fd3..13916df 100644 --- a/test/test_attribute_definition.py +++ b/test/test_attribute_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -38,7 +38,7 @@ def make_instance(self, include_optional) -> AttributeDefinition: if include_optional: return AttributeDefinition( name = '', - type = 'ATTRIBUTE_TYPE_UNSPECIFIED' + type = 'ATTRIBUTE_TYPE_BOOLEAN' ) else: return AttributeDefinition( diff --git a/test/test_attribute_filter.py b/test/test_attribute_filter.py index 6e9dcd3..e7b829c 100644 --- a/test/test_attribute_filter.py +++ b/test/test_attribute_filter.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_attribute_read_request_metadata.py b/test/test_attribute_read_request_metadata.py index 2ca5662..5b40b81 100644 --- a/test/test_attribute_read_request_metadata.py +++ b/test/test_attribute_read_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_attribute_read_response.py b/test/test_attribute_read_response.py index be2d266..6c946c3 100644 --- a/test/test_attribute_read_response.py +++ b/test/test_attribute_read_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_attribute_type.py b/test/test_attribute_type.py index 1a7b6d4..f6ef8e8 100644 --- a/test/test_attribute_type.py +++ b/test/test_attribute_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_bulk_check_body.py b/test/test_bulk_check_body.py index 240805a..1a2afe8 100644 --- a/test/test_bulk_check_body.py +++ b/test/test_bulk_check_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_bundle_api.py b/test/test_bundle_api.py index f2d5ab6..097f8e6 100644 --- a/test/test_bundle_api.py +++ b/test/test_bundle_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_bundle_delete_body.py b/test/test_bundle_delete_body.py index c94faa3..a657768 100644 --- a/test/test_bundle_delete_body.py +++ b/test/test_bundle_delete_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_bundle_delete_response.py b/test/test_bundle_delete_response.py index 2de6d18..c016b15 100644 --- a/test/test_bundle_delete_response.py +++ b/test/test_bundle_delete_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_bundle_read_body.py b/test/test_bundle_read_body.py index 1dbd2dc..e7d2ffe 100644 --- a/test/test_bundle_read_body.py +++ b/test/test_bundle_read_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_bundle_read_response.py b/test/test_bundle_read_response.py index 3f07e8e..48f1622 100644 --- a/test/test_bundle_read_response.py +++ b/test/test_bundle_read_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_bundle_run_response.py b/test/test_bundle_run_response.py index 7259caa..ab3e694 100644 --- a/test/test_bundle_run_response.py +++ b/test/test_bundle_run_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_bundle_write_body.py b/test/test_bundle_write_body.py index bf2d434..dfaaccb 100644 --- a/test/test_bundle_write_body.py +++ b/test/test_bundle_write_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_bundle_write_response.py b/test/test_bundle_write_response.py index 1ba8443..8d99025 100644 --- a/test/test_bundle_write_response.py +++ b/test/test_bundle_write_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_check_body.py b/test/test_check_body.py index 51b2868..ef43dfb 100644 --- a/test/test_check_body.py +++ b/test/test_check_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_check_result.py b/test/test_check_result.py index 1f9dc39..e054f9b 100644 --- a/test/test_check_result.py +++ b/test/test_check_result.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_checked_expr.py b/test/test_checked_expr.py index 813e54d..3c67176 100644 --- a/test/test_checked_expr.py +++ b/test/test_checked_expr.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -58,9 +58,9 @@ def make_instance(self, include_optional) -> CheckedExpr: 'key' : permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), @@ -166,7 +166,7 @@ def make_instance(self, include_optional) -> CheckedExpr: permify.models.extension.Extension( id = '', affected_components = [ - 'COMPONENT_UNSPECIFIED' + 'COMPONENT_PARSER' ], version = permify.models.version.Version( major = '', diff --git a/test/test_child.py b/test/test_child.py index 249faee..e0f918b 100644 --- a/test/test_child.py +++ b/test/test_child.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -53,7 +53,7 @@ def make_instance(self, include_optional) -> Child: permify.models.argument.Argument() ], ), ), rewrite = permify.models.rewrite.Rewrite( - rewrite_operation = 'OPERATION_UNSPECIFIED', + rewrite_operation = 'OPERATION_UNION', children = [ permify.models.child.Child( leaf = permify.models.leaf.Leaf( diff --git a/test/test_component.py b/test/test_component.py index ccab72f..504d2b1 100644 --- a/test/test_component.py +++ b/test/test_component.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_comprehension.py b/test/test_comprehension.py index 67f549a..f191f5a 100644 --- a/test/test_comprehension.py +++ b/test/test_comprehension.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_computed_attribute.py b/test/test_computed_attribute.py index 062a041..de21146 100644 --- a/test/test_computed_attribute.py +++ b/test/test_computed_attribute.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_computed_user_set.py b/test/test_computed_user_set.py index 333f588..e41f27b 100644 --- a/test/test_computed_user_set.py +++ b/test/test_computed_user_set.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_constant.py b/test/test_constant.py index 303908c..4580c49 100644 --- a/test/test_constant.py +++ b/test/test_constant.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_context.py b/test/test_context.py index 889fecb..3d0b221 100644 --- a/test/test_context.py +++ b/test/test_context.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_create_list.py b/test/test_create_list.py index 894a944..c03adf1 100644 --- a/test/test_create_list.py +++ b/test/test_create_list.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_create_struct.py b/test/test_create_struct.py index 807b74e..d1532ad 100644 --- a/test/test_create_struct.py +++ b/test/test_create_struct.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_data_api.py b/test/test_data_api.py index d610765..0c092b8 100644 --- a/test/test_data_api.py +++ b/test/test_data_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_data_bundle.py b/test/test_data_bundle.py index c1b2d5d..4464540 100644 --- a/test/test_data_bundle.py +++ b/test/test_data_bundle.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_data_change.py b/test/test_data_change.py index bea0961..986d431 100644 --- a/test/test_data_change.py +++ b/test/test_data_change.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -37,7 +37,7 @@ def make_instance(self, include_optional) -> DataChange: model = DataChange() if include_optional: return DataChange( - operation = 'OPERATION_UNSPECIFIED', + operation = 'OPERATION_CREATE', tuple = permify.models.tuple.Tuple( entity = permify.models.entity.Entity( type = '', diff --git a/test/test_data_change_operation.py b/test/test_data_change_operation.py index caf2b42..54dfae1 100644 --- a/test/test_data_change_operation.py +++ b/test/test_data_change_operation.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_data_changes.py b/test/test_data_changes.py index 36a5212..b9b8654 100644 --- a/test/test_data_changes.py +++ b/test/test_data_changes.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -40,7 +40,7 @@ def make_instance(self, include_optional) -> DataChanges: snap_token = '', data_changes = [ permify.models.data_change.DataChange( - operation = 'OPERATION_UNSPECIFIED', + operation = 'OPERATION_CREATE', tuple = permify.models.tuple.Tuple( entity = permify.models.entity.Entity( type = '', diff --git a/test/test_data_delete_body.py b/test/test_data_delete_body.py index 3507240..d05304f 100644 --- a/test/test_data_delete_body.py +++ b/test/test_data_delete_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_data_delete_response.py b/test/test_data_delete_response.py index 4a60756..dbe3dd1 100644 --- a/test/test_data_delete_response.py +++ b/test/test_data_delete_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_data_write_body.py b/test/test_data_write_body.py index 09d06b6..aa406d6 100644 --- a/test/test_data_write_body.py +++ b/test/test_data_write_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_data_write_request_metadata.py b/test/test_data_write_request_metadata.py index 5e24a5b..e61e94c 100644 --- a/test/test_data_write_request_metadata.py +++ b/test/test_data_write_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_data_write_response.py b/test/test_data_write_response.py index e661826..5862f96 100644 --- a/test/test_data_write_response.py +++ b/test/test_data_write_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_delete_relationships_body.py b/test/test_delete_relationships_body.py index dfd1b6d..b54d29e 100644 --- a/test/test_delete_relationships_body.py +++ b/test/test_delete_relationships_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_entity.py b/test/test_entity.py index 64d3514..2473b0b 100644 --- a/test/test_entity.py +++ b/test/test_entity.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_entity_definition.py b/test/test_entity_definition.py index 4d07870..88e1a41 100644 --- a/test/test_entity_definition.py +++ b/test/test_entity_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -67,7 +67,7 @@ def make_instance(self, include_optional) -> EntityDefinition: permify.models.argument.Argument() ], ), ), rewrite = permify.models.rewrite.Rewrite( - rewrite_operation = 'OPERATION_UNSPECIFIED', + rewrite_operation = 'OPERATION_UNION', children = [ permify.models.child.Child() ], ), ), ) @@ -75,10 +75,10 @@ def make_instance(self, include_optional) -> EntityDefinition: attributes = { 'key' : permify.models.attribute_definition.AttributeDefinition( name = '', - type = 'ATTRIBUTE_TYPE_UNSPECIFIED', ) + type = 'ATTRIBUTE_TYPE_BOOLEAN', ) }, references = { - 'key' : 'REFERENCE_UNSPECIFIED' + 'key' : 'REFERENCE_RELATION' } ) else: diff --git a/test/test_entity_definition_reference.py b/test/test_entity_definition_reference.py index 7f31e32..69cf0a6 100644 --- a/test/test_entity_definition_reference.py +++ b/test/test_entity_definition_reference.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_entity_filter.py b/test/test_entity_filter.py index 03508bc..82bdca5 100644 --- a/test/test_entity_filter.py +++ b/test/test_entity_filter.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_entry.py b/test/test_entry.py index 4b5f4c2..630dc36 100644 --- a/test/test_entry.py +++ b/test/test_entry.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_expand_leaf.py b/test/test_expand_leaf.py index 8be435a..47f72b1 100644 --- a/test/test_expand_leaf.py +++ b/test/test_expand_leaf.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_expand_tree_node.py b/test/test_expand_tree_node.py index 943b232..8f7418b 100644 --- a/test/test_expand_tree_node.py +++ b/test/test_expand_tree_node.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -37,7 +37,7 @@ def make_instance(self, include_optional) -> ExpandTreeNode: model = ExpandTreeNode() if include_optional: return ExpandTreeNode( - operation = 'OPERATION_UNSPECIFIED', + operation = 'OPERATION_UNION', children = [ permify.models.v1/expand.v1.Expand( entity = permify.models.entity.Entity( @@ -50,7 +50,7 @@ def make_instance(self, include_optional) -> ExpandTreeNode: name = '', ), ) ], expand = permify.models.expand_tree_node.ExpandTreeNode( - operation = 'OPERATION_UNSPECIFIED', + operation = 'OPERATION_UNION', children = [ permify.models.v1/expand.v1.Expand( permission = '', diff --git a/test/test_expand_tree_node_operation.py b/test/test_expand_tree_node_operation.py index a40ff06..077a9f5 100644 --- a/test/test_expand_tree_node_operation.py +++ b/test/test_expand_tree_node_operation.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_expr.py b/test/test_expr.py index a512307..79ce0f5 100644 --- a/test/test_expr.py +++ b/test/test_expr.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_expr_call.py b/test/test_expr_call.py index af117d6..5910241 100644 --- a/test/test_expr_call.py +++ b/test/test_expr_call.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_extension.py b/test/test_extension.py index 082691c..97ce1e4 100644 --- a/test/test_extension.py +++ b/test/test_extension.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -39,7 +39,7 @@ def make_instance(self, include_optional) -> Extension: return Extension( id = '', affected_components = [ - 'COMPONENT_UNSPECIFIED' + 'COMPONENT_PARSER' ], version = permify.models.version.Version( major = '', diff --git a/test/test_function_type.py b/test/test_function_type.py index 331c136..b8a2682 100644 --- a/test/test_function_type.py +++ b/test/test_function_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -40,9 +40,9 @@ def make_instance(self, include_optional) -> FunctionType: result_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), @@ -75,9 +75,9 @@ def make_instance(self, include_optional) -> FunctionType: permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), diff --git a/test/test_ident.py b/test/test_ident.py index f279d9e..096fe80 100644 --- a/test/test_ident.py +++ b/test/test_ident.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_leaf.py b/test/test_leaf.py index 73237af..fc8dc08 100644 --- a/test/test_leaf.py +++ b/test/test_leaf.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_list_type.py b/test/test_list_type.py index 280d9ae..ca6c61d 100644 --- a/test/test_list_type.py +++ b/test/test_list_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -40,9 +40,9 @@ def make_instance(self, include_optional) -> ListType: elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType(), map_type = permify.models.map_type.MapType( key_type = permify.models.v1alpha1/type.v1alpha1.Type( diff --git a/test/test_lookup_entity_body.py b/test/test_lookup_entity_body.py index 7e077bc..86ea0e7 100644 --- a/test/test_lookup_entity_body.py +++ b/test/test_lookup_entity_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_lookup_entity_stream_body.py b/test/test_lookup_entity_stream_body.py index db4aaea..e36025f 100644 --- a/test/test_lookup_entity_stream_body.py +++ b/test/test_lookup_entity_stream_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_lookup_subject_body.py b/test/test_lookup_subject_body.py index 72688e6..41dd98f 100644 --- a/test/test_lookup_subject_body.py +++ b/test/test_lookup_subject_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_map_type.py b/test/test_map_type.py index a122d01..0a330dd 100644 --- a/test/test_map_type.py +++ b/test/test_map_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -40,9 +40,9 @@ def make_instance(self, include_optional) -> MapType: key_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), @@ -74,9 +74,9 @@ def make_instance(self, include_optional) -> MapType: value_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), diff --git a/test/test_null_value.py b/test/test_null_value.py deleted file mode 100644 index c719e39..0000000 --- a/test/test_null_value.py +++ /dev/null @@ -1,35 +0,0 @@ -# coding: utf-8 - -""" - Permify API - - Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - - The version of the OpenAPI document: v1.6.0 - Contact: hello@permify.co - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import unittest -import datetime - -from permify.models.null_value import NullValue - -class TestNullValue(unittest.TestCase): - """NullValue unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def testNullValue(self): - """Test NullValue""" - # inst = NullValue() - -if __name__ == '__main__': - unittest.main() diff --git a/test/test_partial_write_body.py b/test/test_partial_write_body.py index c38cd96..07733c5 100644 --- a/test/test_partial_write_body.py +++ b/test/test_partial_write_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_partials.py b/test/test_partials.py index 23c17d1..0d2ee50 100644 --- a/test/test_partials.py +++ b/test/test_partials.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_api.py b/test/test_permission_api.py index 0efb883..b768d1a 100644 --- a/test/test_permission_api.py +++ b/test/test_permission_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_bulk_check_request_item.py b/test/test_permission_bulk_check_request_item.py index 7eed8ce..216a0bd 100644 --- a/test/test_permission_bulk_check_request_item.py +++ b/test/test_permission_bulk_check_request_item.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_bulk_check_response.py b/test/test_permission_bulk_check_response.py index 7b99f91..e5c74dd 100644 --- a/test/test_permission_bulk_check_response.py +++ b/test/test_permission_bulk_check_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -39,7 +39,7 @@ def make_instance(self, include_optional) -> PermissionBulkCheckResponse: return PermissionBulkCheckResponse( results = [ permify.models.permission_check_response.PermissionCheckResponse( - can = 'CHECK_RESULT_UNSPECIFIED', + can = 'CHECK_RESULT_ALLOWED', metadata = permify.models.permission_check_response_metadata.PermissionCheckResponseMetadata( check_count = 56, ), ) ] diff --git a/test/test_permission_check_request_metadata.py b/test/test_permission_check_request_metadata.py index 934a57d..e563b34 100644 --- a/test/test_permission_check_request_metadata.py +++ b/test/test_permission_check_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_check_response.py b/test/test_permission_check_response.py index 561e55a..23cb249 100644 --- a/test/test_permission_check_response.py +++ b/test/test_permission_check_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -37,7 +37,7 @@ def make_instance(self, include_optional) -> PermissionCheckResponse: model = PermissionCheckResponse() if include_optional: return PermissionCheckResponse( - can = 'CHECK_RESULT_UNSPECIFIED', + can = 'CHECK_RESULT_ALLOWED', metadata = permify.models.permission_check_response_metadata.PermissionCheckResponseMetadata( check_count = 56, ) ) diff --git a/test/test_permission_check_response_metadata.py b/test/test_permission_check_response_metadata.py index 4e89975..e61f636 100644 --- a/test/test_permission_check_response_metadata.py +++ b/test/test_permission_check_response_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_definition.py b/test/test_permission_definition.py index b8c55eb..7e0033c 100644 --- a/test/test_permission_definition.py +++ b/test/test_permission_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -55,7 +55,7 @@ def make_instance(self, include_optional) -> PermissionDefinition: permify.models.argument.Argument() ], ), ), rewrite = permify.models.rewrite.Rewrite( - rewrite_operation = 'OPERATION_UNSPECIFIED', + rewrite_operation = 'OPERATION_UNION', children = [ permify.models.child.Child() ], ), ) diff --git a/test/test_permission_expand_body.py b/test/test_permission_expand_body.py index ce8170b..8effe73 100644 --- a/test/test_permission_expand_body.py +++ b/test/test_permission_expand_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_expand_request_metadata.py b/test/test_permission_expand_request_metadata.py index 4e56aad..6401240 100644 --- a/test/test_permission_expand_request_metadata.py +++ b/test/test_permission_expand_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_expand_response.py b/test/test_permission_expand_response.py index 1108e81..8a19222 100644 --- a/test/test_permission_expand_response.py +++ b/test/test_permission_expand_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -48,7 +48,7 @@ def make_instance(self, include_optional) -> PermissionExpandResponse: name = '', ), ) ], expand = permify.models.expand_tree_node.ExpandTreeNode( - operation = 'OPERATION_UNSPECIFIED', + operation = 'OPERATION_UNION', children = [ permify.models.v1/expand.v1.Expand( permission = '', diff --git a/test/test_permission_lookup_entity_request_metadata.py b/test/test_permission_lookup_entity_request_metadata.py index 697d4ee..db28638 100644 --- a/test/test_permission_lookup_entity_request_metadata.py +++ b/test/test_permission_lookup_entity_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_lookup_entity_response.py b/test/test_permission_lookup_entity_response.py index 3c4cdc1..888515d 100644 --- a/test/test_permission_lookup_entity_response.py +++ b/test/test_permission_lookup_entity_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_lookup_entity_stream_response.py b/test/test_permission_lookup_entity_stream_response.py index 24c8fb6..96ad8d6 100644 --- a/test/test_permission_lookup_entity_stream_response.py +++ b/test/test_permission_lookup_entity_stream_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_lookup_subject_request_metadata.py b/test/test_permission_lookup_subject_request_metadata.py index 494a49d..7e60cb1 100644 --- a/test/test_permission_lookup_subject_request_metadata.py +++ b/test/test_permission_lookup_subject_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_lookup_subject_response.py b/test/test_permission_lookup_subject_response.py index 3dd60d7..c8960f3 100644 --- a/test/test_permission_lookup_subject_response.py +++ b/test/test_permission_lookup_subject_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_subject_permission_request_metadata.py b/test/test_permission_subject_permission_request_metadata.py index 6578e11..a273ba0 100644 --- a/test/test_permission_subject_permission_request_metadata.py +++ b/test/test_permission_subject_permission_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_permission_subject_permission_response.py b/test/test_permission_subject_permission_response.py index 183212f..dbae13e 100644 --- a/test/test_permission_subject_permission_response.py +++ b/test/test_permission_subject_permission_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -38,7 +38,7 @@ def make_instance(self, include_optional) -> PermissionSubjectPermissionResponse if include_optional: return PermissionSubjectPermissionResponse( results = { - 'key' : 'CHECK_RESULT_UNSPECIFIED' + 'key' : 'CHECK_RESULT_ALLOWED' } ) else: diff --git a/test/test_primitive_type.py b/test/test_primitive_type.py index b251d69..f1f5286 100644 --- a/test/test_primitive_type.py +++ b/test/test_primitive_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_read_attributes_body.py b/test/test_read_attributes_body.py index 3f0e238..9bc9b78 100644 --- a/test/test_read_attributes_body.py +++ b/test/test_read_attributes_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_read_relationships_body.py b/test/test_read_relationships_body.py index e48d767..185adf4 100644 --- a/test/test_read_relationships_body.py +++ b/test/test_read_relationships_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_relation_definition.py b/test/test_relation_definition.py index c614dec..1848cad 100644 --- a/test/test_relation_definition.py +++ b/test/test_relation_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_relation_reference.py b/test/test_relation_reference.py index 6e92ab7..07db22a 100644 --- a/test/test_relation_reference.py +++ b/test/test_relation_reference.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_relationship_delete_response.py b/test/test_relationship_delete_response.py index 526f2c4..5e83e4e 100644 --- a/test/test_relationship_delete_response.py +++ b/test/test_relationship_delete_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_relationship_read_request_metadata.py b/test/test_relationship_read_request_metadata.py index cf2e35d..8f14329 100644 --- a/test/test_relationship_read_request_metadata.py +++ b/test/test_relationship_read_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_relationship_read_response.py b/test/test_relationship_read_response.py index aa64671..af8deda 100644 --- a/test/test_relationship_read_response.py +++ b/test/test_relationship_read_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_relationship_write_request_metadata.py b/test/test_relationship_write_request_metadata.py index d0cb913..b177bd6 100644 --- a/test/test_relationship_write_request_metadata.py +++ b/test/test_relationship_write_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_relationship_write_response.py b/test/test_relationship_write_response.py index 358e519..0e0278f 100644 --- a/test/test_relationship_write_response.py +++ b/test/test_relationship_write_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_rewrite.py b/test/test_rewrite.py index 35205af..a455bb8 100644 --- a/test/test_rewrite.py +++ b/test/test_rewrite.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -37,7 +37,7 @@ def make_instance(self, include_optional) -> Rewrite: model = Rewrite() if include_optional: return Rewrite( - rewrite_operation = 'OPERATION_UNSPECIFIED', + rewrite_operation = 'OPERATION_UNION', children = [ permify.models.child.Child( leaf = permify.models.leaf.Leaf( @@ -56,7 +56,7 @@ def make_instance(self, include_optional) -> Rewrite: permify.models.argument.Argument() ], ), ), rewrite = permify.models.rewrite.Rewrite( - rewrite_operation = 'OPERATION_UNSPECIFIED', ), ) + rewrite_operation = 'OPERATION_UNION', ), ) ] ) else: diff --git a/test/test_rewrite_operation.py b/test/test_rewrite_operation.py index acba843..3274cd3 100644 --- a/test/test_rewrite_operation.py +++ b/test/test_rewrite_operation.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_rule_definition.py b/test/test_rule_definition.py index 8a9d123..be7b741 100644 --- a/test/test_rule_definition.py +++ b/test/test_rule_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -39,7 +39,7 @@ def make_instance(self, include_optional) -> RuleDefinition: return RuleDefinition( name = '', arguments = { - 'key' : 'ATTRIBUTE_TYPE_UNSPECIFIED' + 'key' : 'ATTRIBUTE_TYPE_BOOLEAN' }, expression = permify.models.checked_expr.CheckedExpr( reference_map = { @@ -63,9 +63,9 @@ def make_instance(self, include_optional) -> RuleDefinition: 'key' : permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), @@ -168,7 +168,7 @@ def make_instance(self, include_optional) -> RuleDefinition: permify.models.extension.Extension( id = '', affected_components = [ - 'COMPONENT_UNSPECIFIED' + 'COMPONENT_PARSER' ], version = permify.models.version.Version( major = '', diff --git a/test/test_run_bundle_body.py b/test/test_run_bundle_body.py index 0d1accb..ec705ad 100644 --- a/test/test_run_bundle_body.py +++ b/test/test_run_bundle_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_api.py b/test/test_schema_api.py index aa13cde..136b474 100644 --- a/test/test_schema_api.py +++ b/test/test_schema_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_definition.py b/test/test_schema_definition.py index 50a69e9..afb2323 100644 --- a/test/test_schema_definition.py +++ b/test/test_schema_definition.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -69,7 +69,7 @@ def make_instance(self, include_optional) -> SchemaDefinition: permify.models.argument.Argument() ], ), ), rewrite = permify.models.rewrite.Rewrite( - rewrite_operation = 'OPERATION_UNSPECIFIED', + rewrite_operation = 'OPERATION_UNION', children = [ permify.models.child.Child() ], ), ), ) @@ -77,17 +77,17 @@ def make_instance(self, include_optional) -> SchemaDefinition: attributes = { 'key' : permify.models.attribute_definition.AttributeDefinition( name = '', - type = 'ATTRIBUTE_TYPE_UNSPECIFIED', ) + type = 'ATTRIBUTE_TYPE_BOOLEAN', ) }, references = { - 'key' : 'REFERENCE_UNSPECIFIED' + 'key' : 'REFERENCE_RELATION' }, ) }, rule_definitions = { 'key' : permify.models.rule_definition.RuleDefinition( name = '', arguments = { - 'key' : 'ATTRIBUTE_TYPE_UNSPECIFIED' + 'key' : 'ATTRIBUTE_TYPE_BOOLEAN' }, expression = permify.models.checked_expr.CheckedExpr( reference_map = { @@ -111,9 +111,9 @@ def make_instance(self, include_optional) -> SchemaDefinition: 'key' : permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), @@ -216,7 +216,7 @@ def make_instance(self, include_optional) -> SchemaDefinition: permify.models.extension.Extension( id = '', affected_components = [ - 'COMPONENT_UNSPECIFIED' + 'COMPONENT_PARSER' ], version = permify.models.version.Version( major = '', @@ -226,7 +226,7 @@ def make_instance(self, include_optional) -> SchemaDefinition: expr = , ), ) }, references = { - 'key' : 'REFERENCE_UNSPECIFIED' + 'key' : 'REFERENCE_ENTITY' } ) else: diff --git a/test/test_schema_definition_reference.py b/test/test_schema_definition_reference.py index 1ca0bda..59edee0 100644 --- a/test/test_schema_definition_reference.py +++ b/test/test_schema_definition_reference.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_list.py b/test/test_schema_list.py index 4c0e7c3..c256f03 100644 --- a/test/test_schema_list.py +++ b/test/test_schema_list.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_list_body.py b/test/test_schema_list_body.py index 7ad5edc..981c8c0 100644 --- a/test/test_schema_list_body.py +++ b/test/test_schema_list_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_list_response.py b/test/test_schema_list_response.py index c3fbdb2..16fc8f8 100644 --- a/test/test_schema_list_response.py +++ b/test/test_schema_list_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_partial_write_request_metadata.py b/test/test_schema_partial_write_request_metadata.py index 771d4ad..97245d8 100644 --- a/test/test_schema_partial_write_request_metadata.py +++ b/test/test_schema_partial_write_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_partial_write_response.py b/test/test_schema_partial_write_response.py index af95ac1..ada72bf 100644 --- a/test/test_schema_partial_write_response.py +++ b/test/test_schema_partial_write_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_read_body.py b/test/test_schema_read_body.py index cdc6916..b9ae6da 100644 --- a/test/test_schema_read_body.py +++ b/test/test_schema_read_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_read_request_metadata.py b/test/test_schema_read_request_metadata.py index 3fbfdbe..94e6fee 100644 --- a/test/test_schema_read_request_metadata.py +++ b/test/test_schema_read_request_metadata.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_read_response.py b/test/test_schema_read_response.py index 6e7cc4a..e833064 100644 --- a/test/test_schema_read_response.py +++ b/test/test_schema_read_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -70,7 +70,7 @@ def make_instance(self, include_optional) -> SchemaReadResponse: permify.models.argument.Argument() ], ), ), rewrite = permify.models.rewrite.Rewrite( - rewrite_operation = 'OPERATION_UNSPECIFIED', + rewrite_operation = 'OPERATION_UNION', children = [ permify.models.child.Child() ], ), ), ) @@ -78,17 +78,17 @@ def make_instance(self, include_optional) -> SchemaReadResponse: attributes = { 'key' : permify.models.attribute_definition.AttributeDefinition( name = '', - type = 'ATTRIBUTE_TYPE_UNSPECIFIED', ) + type = 'ATTRIBUTE_TYPE_BOOLEAN', ) }, references = { - 'key' : 'REFERENCE_UNSPECIFIED' + 'key' : 'REFERENCE_RELATION' }, ) }, rule_definitions = { 'key' : permify.models.rule_definition.RuleDefinition( name = '', arguments = { - 'key' : 'ATTRIBUTE_TYPE_UNSPECIFIED' + 'key' : 'ATTRIBUTE_TYPE_BOOLEAN' }, expression = permify.models.checked_expr.CheckedExpr( reference_map = { @@ -112,9 +112,9 @@ def make_instance(self, include_optional) -> SchemaReadResponse: 'key' : permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), @@ -215,7 +215,7 @@ def make_instance(self, include_optional) -> SchemaReadResponse: permify.models.extension.Extension( id = '', affected_components = [ - 'COMPONENT_UNSPECIFIED' + 'COMPONENT_PARSER' ], version = permify.models.version.Version( major = '', @@ -225,7 +225,7 @@ def make_instance(self, include_optional) -> SchemaReadResponse: expr = , ), ) }, references = { - 'key' : 'REFERENCE_UNSPECIFIED' + 'key' : 'REFERENCE_ENTITY' }, ) ) else: diff --git a/test/test_schema_write_body.py b/test/test_schema_write_body.py index 9019ac5..7bbfef6 100644 --- a/test/test_schema_write_body.py +++ b/test/test_schema_write_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_schema_write_response.py b/test/test_schema_write_response.py index 85ad481..74200a0 100644 --- a/test/test_schema_write_response.py +++ b/test/test_schema_write_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_select.py b/test/test_select.py index debc4bc..0ee5d76 100644 --- a/test/test_select.py +++ b/test/test_select.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_source_info.py b/test/test_source_info.py index 8de1dfa..1218aeb 100644 --- a/test/test_source_info.py +++ b/test/test_source_info.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -111,7 +111,7 @@ def make_instance(self, include_optional) -> SourceInfo: permify.models.extension.Extension( id = '', affected_components = [ - 'COMPONENT_UNSPECIFIED' + 'COMPONENT_PARSER' ], version = permify.models.version.Version( major = '', diff --git a/test/test_status.py b/test/test_status.py index e47f6f7..d489c42 100644 --- a/test/test_status.py +++ b/test/test_status.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_stream_result_of_permission_lookup_entity_stream_response.py b/test/test_stream_result_of_permission_lookup_entity_stream_response.py index 7f0e768..fe24de3 100644 --- a/test/test_stream_result_of_permission_lookup_entity_stream_response.py +++ b/test/test_stream_result_of_permission_lookup_entity_stream_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_stream_result_of_watch_response.py b/test/test_stream_result_of_watch_response.py index 55c9f4c..245eb8f 100644 --- a/test/test_stream_result_of_watch_response.py +++ b/test/test_stream_result_of_watch_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -42,7 +42,7 @@ def make_instance(self, include_optional) -> StreamResultOfWatchResponse: snap_token = '', data_changes = [ permify.models.data_change.DataChange( - operation = 'OPERATION_UNSPECIFIED', + operation = 'OPERATION_CREATE', tuple = permify.models.tuple.Tuple( entity = permify.models.entity.Entity( type = '', diff --git a/test/test_string_array_value.py b/test/test_string_array_value.py index 1a731c9..da71bda 100644 --- a/test/test_string_array_value.py +++ b/test/test_string_array_value.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_subject.py b/test/test_subject.py index 41340c0..f18ec7b 100644 --- a/test/test_subject.py +++ b/test/test_subject.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_subject_filter.py b/test/test_subject_filter.py index f664e71..cad0183 100644 --- a/test/test_subject_filter.py +++ b/test/test_subject_filter.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_subject_permission_body.py b/test/test_subject_permission_body.py index 4f77c31..e1bd853 100644 --- a/test/test_subject_permission_body.py +++ b/test/test_subject_permission_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_subjects.py b/test/test_subjects.py index 8762e2d..cfb3a3e 100644 --- a/test/test_subjects.py +++ b/test/test_subjects.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tenancy_api.py b/test/test_tenancy_api.py index 3c0ee91..db7acc3 100644 --- a/test/test_tenancy_api.py +++ b/test/test_tenancy_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tenant.py b/test/test_tenant.py index 7492950..9347da4 100644 --- a/test/test_tenant.py +++ b/test/test_tenant.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tenant_create_request.py b/test/test_tenant_create_request.py index c259c16..619d1ca 100644 --- a/test/test_tenant_create_request.py +++ b/test/test_tenant_create_request.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tenant_create_response.py b/test/test_tenant_create_response.py index df859ab..a50008e 100644 --- a/test/test_tenant_create_response.py +++ b/test/test_tenant_create_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tenant_delete_response.py b/test/test_tenant_delete_response.py index 5d39c76..86e8e46 100644 --- a/test/test_tenant_delete_response.py +++ b/test/test_tenant_delete_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tenant_list_request.py b/test/test_tenant_list_request.py index 7827cbb..9a10341 100644 --- a/test/test_tenant_list_request.py +++ b/test/test_tenant_list_request.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tenant_list_response.py b/test/test_tenant_list_response.py index 42cf5f4..c276726 100644 --- a/test/test_tenant_list_response.py +++ b/test/test_tenant_list_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tuple.py b/test/test_tuple.py index 2755796..94150c1 100644 --- a/test/test_tuple.py +++ b/test/test_tuple.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tuple_filter.py b/test/test_tuple_filter.py index aa327d9..b7f6179 100644 --- a/test/test_tuple_filter.py +++ b/test/test_tuple_filter.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tuple_set.py b/test/test_tuple_set.py index c70e3cd..919dae5 100644 --- a/test/test_tuple_set.py +++ b/test/test_tuple_set.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_tuple_to_user_set.py b/test/test_tuple_to_user_set.py index 9feaa8f..5e1d0bc 100644 --- a/test/test_tuple_to_user_set.py +++ b/test/test_tuple_to_user_set.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_v1_call.py b/test/test_v1_call.py index bb22689..383d53c 100644 --- a/test/test_v1_call.py +++ b/test/test_v1_call.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_v1_expand.py b/test/test_v1_expand.py index e49755b..e17d797 100644 --- a/test/test_v1_expand.py +++ b/test/test_v1_expand.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -47,7 +47,7 @@ def make_instance(self, include_optional) -> V1Expand: name = '', ), ) ], expand = permify.models.expand_tree_node.ExpandTreeNode( - operation = 'OPERATION_UNSPECIFIED', + operation = 'OPERATION_UNION', children = [ permify.models.v1/expand.v1.Expand( entity = permify.models.entity.Entity( diff --git a/test/test_v1_operation.py b/test/test_v1_operation.py index 33ca14c..68d7079 100644 --- a/test/test_v1_operation.py +++ b/test/test_v1_operation.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_v1alpha1_reference.py b/test/test_v1alpha1_reference.py index 2e92d6d..1bcfa51 100644 --- a/test/test_v1alpha1_reference.py +++ b/test/test_v1alpha1_reference.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_v1alpha1_type.py b/test/test_v1alpha1_type.py index 93d6a4f..58277bf 100644 --- a/test/test_v1alpha1_type.py +++ b/test/test_v1alpha1_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -39,16 +39,16 @@ def make_instance(self, include_optional) -> V1alpha1Type: return V1alpha1Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', map_type = permify.models.map_type.MapType( key_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), @@ -79,9 +79,9 @@ def make_instance(self, include_optional) -> V1alpha1Type: key_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), @@ -112,9 +112,9 @@ def make_instance(self, include_optional) -> V1alpha1Type: result_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), @@ -146,9 +146,9 @@ def make_instance(self, include_optional) -> V1alpha1Type: type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), @@ -183,9 +183,9 @@ def make_instance(self, include_optional) -> V1alpha1Type: permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), null = '', - primitive = 'PRIMITIVE_TYPE_UNSPECIFIED', - wrapper = 'PRIMITIVE_TYPE_UNSPECIFIED', - well_known = 'WELL_KNOWN_TYPE_UNSPECIFIED', + primitive = 'BOOL', + wrapper = 'BOOL', + well_known = 'ANY', list_type = permify.models.list_type.ListType( elem_type = permify.models.v1alpha1/type.v1alpha1.Type( dyn = permify.models.dyn.dyn(), diff --git a/test/test_values.py b/test/test_values.py index 19240c3..ba505c2 100644 --- a/test/test_values.py +++ b/test/test_values.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_version.py b/test/test_version.py index a2ca9f7..2b8dcca 100644 --- a/test/test_version.py +++ b/test/test_version.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_watch_api.py b/test/test_watch_api.py index b5b8d28..73fdbbd 100644 --- a/test/test_watch_api.py +++ b/test/test_watch_api.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_watch_body.py b/test/test_watch_body.py index 710242d..7c97bc8 100644 --- a/test/test_watch_body.py +++ b/test/test_watch_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_watch_response.py b/test/test_watch_response.py index 5504218..13c4407 100644 --- a/test/test_watch_response.py +++ b/test/test_watch_response.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -41,7 +41,7 @@ def make_instance(self, include_optional) -> WatchResponse: snap_token = '', data_changes = [ permify.models.data_change.DataChange( - operation = 'OPERATION_UNSPECIFIED', + operation = 'OPERATION_CREATE', tuple = permify.models.tuple.Tuple( entity = permify.models.entity.Entity( type = '', diff --git a/test/test_well_known_type.py b/test/test_well_known_type.py index 9a839a1..3cd7003 100644 --- a/test/test_well_known_type.py +++ b/test/test_well_known_type.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/test/test_write_relationships_body.py b/test/test_write_relationships_body.py index d13baf2..f9641fe 100644 --- a/test/test_write_relationships_body.py +++ b/test/test_write_relationships_body.py @@ -5,7 +5,7 @@ Permify is an open source authorization service for creating fine-grained and scalable authorization systems. - The version of the OpenAPI document: v1.6.0 + The version of the OpenAPI document: v1.6.1 Contact: hello@permify.co Generated by OpenAPI Generator (https://openapi-generator.tech)