From 021bec078c7b00c07f4874b11c923d85ac011734 Mon Sep 17 00:00:00 2001 From: ucatbas Date: Thu, 22 Jan 2026 19:10:12 +0000 Subject: [PATCH] chore: update Python SDK from latest OpenAPI specification --- docs/AttributeType.md | 2 +- docs/CheckResult.md | 2 +- docs/Component.md | 2 +- docs/DataChangeOperation.md | 2 +- docs/EntityDefinitionReference.md | 2 +- docs/NullValue.md | 12 - docs/PrimitiveType.md | 2 +- docs/RewriteOperation.md | 2 +- docs/SchemaDefinitionReference.md | 2 +- docs/WellKnownType.md | 2 +- generator/openapi.json | 6959 ++++++++--------- permify/__init__.py | 5 +- permify/api/bundle_api.py | 2 +- permify/api/data_api.py | 2 +- permify/api/permission_api.py | 2 +- permify/api/schema_api.py | 2 +- permify/api/tenancy_api.py | 2 +- permify/api/watch_api.py | 2 +- permify/api_client.py | 4 +- permify/configuration.py | 6 +- permify/exceptions.py | 2 +- permify/models/__init__.py | 3 +- permify/models/abstract_type.py | 2 +- permify/models/any.py | 2 +- permify/models/argument.py | 2 +- permify/models/attribute.py | 2 +- permify/models/attribute_definition.py | 2 +- permify/models/attribute_filter.py | 2 +- .../models/attribute_read_request_metadata.py | 2 +- permify/models/attribute_read_response.py | 2 +- permify/models/attribute_type.py | 5 +- permify/models/bulk_check_body.py | 2 +- permify/models/bundle_delete_body.py | 2 +- permify/models/bundle_delete_response.py | 2 +- permify/models/bundle_read_body.py | 2 +- permify/models/bundle_read_response.py | 2 +- permify/models/bundle_run_response.py | 2 +- permify/models/bundle_write_body.py | 2 +- permify/models/bundle_write_response.py | 2 +- permify/models/check_body.py | 2 +- permify/models/check_result.py | 5 +- permify/models/checked_expr.py | 2 +- permify/models/child.py | 2 +- permify/models/component.py | 5 +- permify/models/comprehension.py | 2 +- permify/models/computed_attribute.py | 2 +- permify/models/computed_user_set.py | 2 +- permify/models/constant.py | 2 +- permify/models/context.py | 2 +- permify/models/create_list.py | 2 +- permify/models/create_struct.py | 2 +- permify/models/data_bundle.py | 2 +- permify/models/data_change.py | 2 +- permify/models/data_change_operation.py | 5 +- permify/models/data_changes.py | 2 +- permify/models/data_delete_body.py | 2 +- permify/models/data_delete_response.py | 2 +- permify/models/data_write_body.py | 2 +- permify/models/data_write_request_metadata.py | 2 +- permify/models/data_write_response.py | 2 +- permify/models/delete_relationships_body.py | 2 +- permify/models/entity.py | 2 +- permify/models/entity_definition.py | 2 +- permify/models/entity_definition_reference.py | 5 +- permify/models/entity_filter.py | 2 +- permify/models/entry.py | 2 +- permify/models/expand_leaf.py | 2 +- permify/models/expand_tree_node.py | 2 +- permify/models/expand_tree_node_operation.py | 3 +- permify/models/expr.py | 2 +- permify/models/expr_call.py | 2 +- permify/models/extension.py | 2 +- permify/models/function_type.py | 2 +- permify/models/ident.py | 2 +- permify/models/leaf.py | 2 +- permify/models/list_type.py | 2 +- permify/models/lookup_entity_body.py | 2 +- permify/models/lookup_entity_stream_body.py | 2 +- permify/models/lookup_subject_body.py | 2 +- permify/models/map_type.py | 2 +- permify/models/null_value.py | 45 - permify/models/partial_write_body.py | 2 +- permify/models/partials.py | 2 +- .../permission_bulk_check_request_item.py | 2 +- .../models/permission_bulk_check_response.py | 2 +- .../permission_check_request_metadata.py | 2 +- permify/models/permission_check_response.py | 2 +- .../permission_check_response_metadata.py | 2 +- permify/models/permission_definition.py | 2 +- permify/models/permission_expand_body.py | 2 +- .../permission_expand_request_metadata.py | 2 +- permify/models/permission_expand_response.py | 2 +- ...rmission_lookup_entity_request_metadata.py | 2 +- .../permission_lookup_entity_response.py | 2 +- ...ermission_lookup_entity_stream_response.py | 2 +- ...mission_lookup_subject_request_metadata.py | 2 +- .../permission_lookup_subject_response.py | 2 +- ...ion_subject_permission_request_metadata.py | 2 +- .../permission_subject_permission_response.py | 2 +- permify/models/primitive_type.py | 5 +- permify/models/read_attributes_body.py | 2 +- permify/models/read_relationships_body.py | 2 +- permify/models/relation_definition.py | 2 +- permify/models/relation_reference.py | 2 +- .../models/relationship_delete_response.py | 2 +- .../relationship_read_request_metadata.py | 2 +- permify/models/relationship_read_response.py | 2 +- .../relationship_write_request_metadata.py | 2 +- permify/models/relationship_write_response.py | 2 +- permify/models/rewrite.py | 2 +- permify/models/rewrite_operation.py | 5 +- permify/models/rule_definition.py | 2 +- permify/models/run_bundle_body.py | 2 +- permify/models/schema_definition.py | 2 +- permify/models/schema_definition_reference.py | 5 +- permify/models/schema_list.py | 2 +- permify/models/schema_list_body.py | 2 +- permify/models/schema_list_response.py | 2 +- .../schema_partial_write_request_metadata.py | 2 +- .../models/schema_partial_write_response.py | 2 +- permify/models/schema_read_body.py | 2 +- .../models/schema_read_request_metadata.py | 2 +- permify/models/schema_read_response.py | 2 +- permify/models/schema_write_body.py | 2 +- permify/models/schema_write_response.py | 2 +- permify/models/select.py | 2 +- permify/models/source_info.py | 2 +- permify/models/status.py | 2 +- ...ermission_lookup_entity_stream_response.py | 2 +- .../models/stream_result_of_watch_response.py | 2 +- permify/models/string_array_value.py | 2 +- permify/models/subject.py | 2 +- permify/models/subject_filter.py | 2 +- permify/models/subject_permission_body.py | 2 +- permify/models/subjects.py | 2 +- permify/models/tenant.py | 2 +- permify/models/tenant_create_request.py | 2 +- permify/models/tenant_create_response.py | 2 +- permify/models/tenant_delete_response.py | 2 +- permify/models/tenant_list_request.py | 2 +- permify/models/tenant_list_response.py | 2 +- permify/models/tuple.py | 2 +- permify/models/tuple_filter.py | 2 +- permify/models/tuple_set.py | 2 +- permify/models/tuple_to_user_set.py | 2 +- permify/models/v1_call.py | 2 +- permify/models/v1_expand.py | 2 +- permify/models/v1_operation.py | 2 +- permify/models/v1alpha1_reference.py | 2 +- permify/models/v1alpha1_type.py | 2 +- permify/models/values.py | 2 +- permify/models/version.py | 2 +- permify/models/watch_body.py | 2 +- permify/models/watch_response.py | 2 +- permify/models/well_known_type.py | 5 +- permify/models/write_relationships_body.py | 2 +- permify/rest.py | 2 +- pyproject.toml | 2 +- setup.py | 4 +- test/test_abstract_type.py | 8 +- test/test_any.py | 2 +- test/test_argument.py | 2 +- test/test_attribute.py | 2 +- test/test_attribute_definition.py | 4 +- test/test_attribute_filter.py | 2 +- test/test_attribute_read_request_metadata.py | 2 +- test/test_attribute_read_response.py | 2 +- test/test_attribute_type.py | 2 +- test/test_bulk_check_body.py | 2 +- test/test_bundle_api.py | 2 +- test/test_bundle_delete_body.py | 2 +- test/test_bundle_delete_response.py | 2 +- test/test_bundle_read_body.py | 2 +- test/test_bundle_read_response.py | 2 +- test/test_bundle_run_response.py | 2 +- test/test_bundle_write_body.py | 2 +- test/test_bundle_write_response.py | 2 +- test/test_check_body.py | 2 +- test/test_check_result.py | 2 +- test/test_checked_expr.py | 10 +- test/test_child.py | 4 +- test/test_component.py | 2 +- test/test_comprehension.py | 2 +- test/test_computed_attribute.py | 2 +- test/test_computed_user_set.py | 2 +- test/test_constant.py | 2 +- test/test_context.py | 2 +- test/test_create_list.py | 2 +- test/test_create_struct.py | 2 +- test/test_data_api.py | 2 +- test/test_data_bundle.py | 2 +- test/test_data_change.py | 4 +- test/test_data_change_operation.py | 2 +- test/test_data_changes.py | 4 +- test/test_data_delete_body.py | 2 +- test/test_data_delete_response.py | 2 +- test/test_data_write_body.py | 2 +- test/test_data_write_request_metadata.py | 2 +- test/test_data_write_response.py | 2 +- test/test_delete_relationships_body.py | 2 +- test/test_entity.py | 2 +- test/test_entity_definition.py | 8 +- test/test_entity_definition_reference.py | 2 +- test/test_entity_filter.py | 2 +- test/test_entry.py | 2 +- test/test_expand_leaf.py | 2 +- test/test_expand_tree_node.py | 6 +- test/test_expand_tree_node_operation.py | 2 +- test/test_expr.py | 2 +- test/test_expr_call.py | 2 +- test/test_extension.py | 4 +- test/test_function_type.py | 14 +- test/test_ident.py | 2 +- test/test_leaf.py | 2 +- test/test_list_type.py | 8 +- test/test_lookup_entity_body.py | 2 +- test/test_lookup_entity_stream_body.py | 2 +- test/test_lookup_subject_body.py | 2 +- test/test_map_type.py | 14 +- test/test_null_value.py | 35 - test/test_partial_write_body.py | 2 +- test/test_partials.py | 2 +- test/test_permission_api.py | 2 +- ...test_permission_bulk_check_request_item.py | 2 +- test/test_permission_bulk_check_response.py | 4 +- .../test_permission_check_request_metadata.py | 2 +- test/test_permission_check_response.py | 4 +- ...test_permission_check_response_metadata.py | 2 +- test/test_permission_definition.py | 4 +- test/test_permission_expand_body.py | 2 +- ...test_permission_expand_request_metadata.py | 2 +- test/test_permission_expand_response.py | 4 +- ...rmission_lookup_entity_request_metadata.py | 2 +- .../test_permission_lookup_entity_response.py | 2 +- ...ermission_lookup_entity_stream_response.py | 2 +- ...mission_lookup_subject_request_metadata.py | 2 +- ...test_permission_lookup_subject_response.py | 2 +- ...ion_subject_permission_request_metadata.py | 2 +- ..._permission_subject_permission_response.py | 4 +- test/test_primitive_type.py | 2 +- test/test_read_attributes_body.py | 2 +- test/test_read_relationships_body.py | 2 +- test/test_relation_definition.py | 2 +- test/test_relation_reference.py | 2 +- test/test_relationship_delete_response.py | 2 +- ...test_relationship_read_request_metadata.py | 2 +- test/test_relationship_read_response.py | 2 +- ...est_relationship_write_request_metadata.py | 2 +- test/test_relationship_write_response.py | 2 +- test/test_rewrite.py | 6 +- test/test_rewrite_operation.py | 2 +- test/test_rule_definition.py | 12 +- test/test_run_bundle_body.py | 2 +- test/test_schema_api.py | 2 +- test/test_schema_definition.py | 20 +- test/test_schema_definition_reference.py | 2 +- test/test_schema_list.py | 2 +- test/test_schema_list_body.py | 2 +- test/test_schema_list_response.py | 2 +- ...t_schema_partial_write_request_metadata.py | 2 +- test/test_schema_partial_write_response.py | 2 +- test/test_schema_read_body.py | 2 +- test/test_schema_read_request_metadata.py | 2 +- test/test_schema_read_response.py | 20 +- test/test_schema_write_body.py | 2 +- test/test_schema_write_response.py | 2 +- test/test_select.py | 2 +- test/test_source_info.py | 4 +- test/test_status.py | 2 +- ...ermission_lookup_entity_stream_response.py | 2 +- test/test_stream_result_of_watch_response.py | 4 +- test/test_string_array_value.py | 2 +- test/test_subject.py | 2 +- test/test_subject_filter.py | 2 +- test/test_subject_permission_body.py | 2 +- test/test_subjects.py | 2 +- test/test_tenancy_api.py | 2 +- test/test_tenant.py | 2 +- test/test_tenant_create_request.py | 2 +- test/test_tenant_create_response.py | 2 +- test/test_tenant_delete_response.py | 2 +- test/test_tenant_list_request.py | 2 +- test/test_tenant_list_response.py | 2 +- test/test_tuple.py | 2 +- test/test_tuple_filter.py | 2 +- test/test_tuple_set.py | 2 +- test/test_tuple_to_user_set.py | 2 +- test/test_v1_call.py | 2 +- test/test_v1_expand.py | 4 +- test/test_v1_operation.py | 2 +- test/test_v1alpha1_reference.py | 2 +- test/test_v1alpha1_type.py | 38 +- test/test_values.py | 2 +- test/test_version.py | 2 +- test/test_watch_api.py | 2 +- test/test_watch_body.py | 2 +- test/test_watch_response.py | 4 +- test/test_well_known_type.py | 2 +- test/test_write_relationships_body.py | 2 +- 299 files changed, 3860 insertions(+), 3989 deletions(-) delete mode 100644 docs/NullValue.md delete mode 100644 permify/models/null_value.py delete mode 100644 test/test_null_value.py diff --git a/docs/AttributeType.md b/docs/AttributeType.md index 2927d2e9..72ad213c 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 e9c6a725..240db724 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 fa2bd5be..6aafd21e 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 27db140b..16ada559 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 321bce45..1751c56c 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 1a6d92b1..00000000 --- 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 d0ac8498..84b71932 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 ddd25ba2..90eac960 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 e5388dc3..4f6792f3 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 58ef58c7..f569e418 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 42f6a9c8..07f9ce87 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 16a9d706..39d26b29 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 ceb393ae..871077df 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 cd973a68..d7d6499c 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 d6697fae..c842977a 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 e27baa37..3aa5bdaa 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 8b984f2b..219025ed 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 ec6c52eb..8b491340 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 4d5057c3..dcf67c7f 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 86833b9c..606b9482 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 d1b34276..9fa12291 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 087233f0..126c8acd 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 026359d0..8d243681 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 c5c82d7f..5dc04cf4 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 1dd9b5aa..1e77dc2d 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 b1ceb00b..78c50698 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 374c6329..558100bb 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 2a7ec958..af1f7c23 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 ea298187..1a2802fd 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 aa46fb8a..fea4504b 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 4cc0ffc7..62deed5f 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 db212127..499e4ce9 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 11213501..88ea7bf9 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 06b17f3d..0794927e 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 def3fe9b..a7b5e5a4 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 a399ddbf..f87d26c7 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 65ea3096..2aaa23fd 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 85a8287a..cc8e6ca0 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 f49aa6a1..25da2cdc 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 36943abd..8563df37 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 7f45a5a4..eded0b60 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 cf4a881d..7c7bc433 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 1d6cbdc6..d15c6ef3 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 9a524c5e..f4500596 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 d166317b..deb4a3eb 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 29f17126..9abe74f2 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 18c7c4ae..603e83cd 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 03b28484..dabbd57d 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 8dc542f3..17756cb5 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 351f3b87..f3a6f9c8 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 83b3a8f2..7dc495f2 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 88331825..1d7177ab 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 98e20101..973cd314 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 a189aa1d..66609e57 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 e2049713..96f9735e 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 560f8ab8..2b3ef7b5 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 2112a086..d2c5ccdd 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 d9ffd20d..442d76f6 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 3c9dea14..867fba35 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 b12c68bb..54e9d12c 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 40460106..360f2aec 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 ceff72b2..dd6ca01c 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 9f22e162..8ae3cd81 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 1df92fb7..1073d690 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 dee8fa56..4b0519f2 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 6869ac72..6d56997c 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 d920bfa8..75df1b8d 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 1992edb7..ecb8ea3c 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 09f5f194..8302a8fa 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 97c1eefd..590f13c3 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 892dfa8f..b17bb12a 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 75e49252..2f6c5197 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 0bd157e9..c382bbfc 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 028e7523..cf2c1088 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 9e031c6b..85b7c533 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 21c9e238..1d3bb0d4 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 576eaa5c..9fd9b42b 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 329bfbc1..ddb3434c 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 4a325c82..48548b75 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 897f56aa..3b7869c5 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 53c24acc..00000000 --- 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 553b2ec9..c41cb0dc 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 af43e527..58e5c227 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 b26b8495..5cd315cf 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 9380eaf6..7e8489b0 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 d7e97f0c..1fb803b8 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 c208cc06..25a43fc7 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 dd66fc45..bfa97f14 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 a0c952d8..f2848d4d 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 c94190cd..d4ef7d26 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 2a24f1e0..a9b24a86 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 5f5b6ffd..7f7ee2d8 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 53c68275..e569ded4 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 dab6efa1..3fb7f5ac 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 02d920a9..8d1399a4 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 79455ede..865beae6 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 688e9fc0..abea2a2f 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 636fd325..aa7ce032 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 ac62bb82..3a31c9c9 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 e6cbd985..4199daa4 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 a55673df..07f25974 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 18fb9dc7..85947a28 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 e9286b22..af51c738 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 98272a06..6e4edea9 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 88a6e3df..d2a8ec11 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 994a412c..7b2d1bfe 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 3bec94d5..d124fe34 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 d58c8d58..3c7cf46c 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 d12a9640..8efb8e85 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 2f3ea504..98a9a355 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 6532a8a2..4749d9e1 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 5ae690c0..e4bf4e78 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 f9fb6fa5..f17d1c1f 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 fd1d4cc4..843b507c 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 c3188eea..1b41c62c 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 dc1f97b7..bf72fe82 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 50bc3498..b53ad4fe 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 a258e090..92213b21 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 c6335b55..5648977b 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 c65cc22c..f7fe8b5e 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 ca812880..b7518359 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 61a00a4b..b1a15e2d 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 815504b2..f35fd4d2 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 58dc2635..f66de970 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 9a12b33f..661f1a14 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 cb0eb3eb..fe5e11b7 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 13a5e59e..0f592553 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 38fb6b28..14881f47 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 ebd886d1..31fa7a7f 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 a6535efc..1765f640 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 40e576cd..b216ce15 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 dd52dbc2..b7cd93a4 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 7b13be12..12491fb8 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 7736bf3c..dec023bb 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 b76936d8..1f37289b 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 afd5bde7..549ef4e4 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 018a479b..53266979 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 28585dd2..fdf44fdc 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 b9444a9a..c0d0c0e1 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 f0f7105b..e22e39a8 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 e4b37add..8634c1f8 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 a2655c85..62463c9e 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 dedd8a47..97fbc718 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 b8f138f9..53b32db7 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 ae469f34..7a6b41c6 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 00c230bc..1a2459c2 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 561e8bde..40071fd0 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 98e1a1da..b5bb4b20 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 0b5232a3..3a4a1713 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 afb51b11..730ed1b2 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 e14987dd..8e66cd31 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 51fbb4d3..2f386988 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 6a9ab112..ff19bc2f 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 db25ec70..4f5fcb17 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 986c7096..04d4f0de 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 c71a9eaf..5e9b7ad4 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 13799bbd..e7de374b 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 f6723910..d2952bbf 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 8ee6027e..3e4f1ea9 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 c3ca832c..0daec4ce 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 1f33328a..6c8a9e0a 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 cc2864f7..93ec63ae 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 e521bf73..8e2485b0 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 67d2fd30..13916dfc 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 6e9dcd3e..e7b829c8 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 2ca56623..5b40b815 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 be2d266b..6c946c35 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 1a7b6d4d..f6ef8e87 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 240805a2..1a2afe80 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 f2d5ab6b..097f8e61 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 c94faa31..a6577686 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 2de6d189..c016b15c 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 1dbd2dc3..e7d2ffed 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 3f07e8ec..48f16225 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 7259caa9..ab3e694f 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 bf2d4347..dfaaccba 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 1ba84430..8d990259 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 51b28686..ef43dfbd 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 1f9dc393..e054f9be 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 813e54d7..3c671769 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 249faee9..e0f918bf 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 ccab72f2..504d2b10 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 67f549ad..f191f5ab 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 062a0410..de211464 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 333f5880..e41f27b5 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 303908c1..4580c490 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 889fecb1..3d0b2213 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 894a9444..c03adf10 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 807b74ec..d1532ad1 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 d6107652..0c092b86 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 c1b2d5d2..44645403 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 bea09613..986d431a 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 caf2b42e..54dfae1d 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 36a5212a..b9b86540 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 35072404..d05304f3 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 4a607564..dbe3dd1e 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 09d06b67..aa406d68 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 5e24a5b4..e61e94c3 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 e6618268..5862f964 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 dfd1b6d1..b54d29e5 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 64d35141..2473b0be 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 4d078704..88e1a412 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 7f31e324..69cf0a68 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 03508bc2..82bdca51 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 4b5f4c28..630dc36a 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 8be435a5..47f72b17 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 943b2320..8f7418bc 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 a40ff064..077a9f50 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 a5123072..79ce0f5d 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 af117d69..59102413 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 082691c3..97ce1e43 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 331c1367..b8a2682e 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 f279d9ee..096fe802 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 73237aff..fc8dc083 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 280d9aee..ca6c61d2 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 7e077bc9..86ea0e7a 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 db4aaea2..e36025fa 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 72688e64..41dd98f3 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 a122d015..0a330ddd 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 c719e39d..00000000 --- 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 c38cd965..07733c5d 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 23c17d1c..0d2ee502 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 0efb883e..b768d1ab 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 7eed8ce4..216a0bdd 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 7b99f91b..e5c74dd6 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 934a57d9..e563b346 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 561e55a6..23cb2497 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 4e899750..e61f6366 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 b8c55eb0..7e0033ca 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 ce8170bd..8effe735 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 4e56aadb..64012409 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 1108e811..8a19222f 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 697d4ee4..db286382 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 3c4cdc16..888515d3 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 24c8fb62..96ad8d65 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 494a49d8..7e60cb1a 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 3dd60d76..c8960f31 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 6578e11f..a273ba04 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 183212f9..dbae13e7 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 b251d694..f1f52865 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 3f0e238a..9bc9b786 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 e48d767c..185adf42 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 c614dec8..1848cad4 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 6e92ab7f..07db22a9 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 526f2c40..5e83e4ee 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 cf2e35d6..8f143290 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 aa646716..af8dedad 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 d0cb913b..b177bd63 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 358e5191..0e0278ff 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 35205af0..a455bb87 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 acba8430..3274cd35 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 8a9d1233..be7b741d 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 0d1accba..ec705ade 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 aa13cdef..136b4746 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 50a69e9f..afb23230 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 1ca0bda6..59edee0a 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 4c0e7c33..c256f03a 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 7ad5edc3..981c8c0b 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 c3fbdb27..16fc8f80 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 771d4ad7..97245d8e 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 af95ac17..ada72bfd 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 cdc6916d..b9ae6da1 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 3fbfdbe0..94e6feeb 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 6e7cc4a1..e8330643 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 9019ac58..7bbfef61 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 85ad481f..74200a00 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 debc4bc5..0ee5d760 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 8de1dfa6..1218aeb8 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 e47f6f74..d489c429 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 7f0e7683..fe24de32 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 55c9f4ca..245eb8fe 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 1a731c9c..da71bda9 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 41340c05..f18ec7bb 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 f664e71f..cad01832 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 4f77c31a..e1bd853c 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 8762e2d2..cfb3a3e5 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 3c0ee91a..db7acc33 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 74929502..9347da49 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 c259c167..619d1ca9 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 df859ab6..a50008e8 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 5d39c760..86e8e463 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 7827cbb5..9a103410 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 42cf5f49..c2767264 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 27557969..94150c10 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 aa327d91..b7f61798 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 c70e3cd7..919dae50 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 9feaa8fd..5e1d0bc8 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 bb226898..383d53c3 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 e49755bc..e17d797a 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 33ca14c2..68d70796 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 2e92d6dd..1bcfa512 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 93d6a4fd..58277bf6 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 19240c30..ba505c20 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 a2ca9f7f..2b8dcca4 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 b5b8d28e..73fdbbd1 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 710242d0..7c97bc82 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 5504218f..13c44076 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 9a839a1c..3cd70035 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 d13baf2c..f9641fee 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)