From 9c373f73dfabc9a609b4539e71459f6213a0b031 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 3 Jun 2026 07:50:20 -0400 Subject: [PATCH 1/5] feat: default to "service/v0.14.0" --- otdf-python-proto/scripts/generate_connect_proto.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/otdf-python-proto/scripts/generate_connect_proto.py b/otdf-python-proto/scripts/generate_connect_proto.py index 024594b0..931ae4b9 100644 --- a/otdf-python-proto/scripts/generate_connect_proto.py +++ b/otdf-python-proto/scripts/generate_connect_proto.py @@ -48,7 +48,7 @@ def check_dependencies() -> bool: def copy_opentdf_proto_files(proto_gen_dir: Path, git_tag: str | None = None) -> bool: """Clone OpenTDF platform repository and copy all proto files.""" - GIT_TAG = git_tag or "service/v0.12.0" + GIT_TAG = git_tag or "service/v0.14.0" REPO_URL = "https://github.com/opentdf/platform.git" temp_repo_dir = proto_gen_dir / "temp_platform_repo" From eb3df90b98af0c6039734a9e11b80a2458ad29aa Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 3 Jun 2026 08:06:54 -0400 Subject: [PATCH 2/5] update .proto files --- .../proto-files/policy/actions/actions.proto | 48 ++++++++++++ .../policy/attributes/attributes.proto | 17 +++++ .../key_access_server_registry.proto | 17 +++++ .../policy/namespaces/namespaces.proto | 60 ++++----------- .../proto-files/policy/objects.proto | 27 ++++--- .../policy/obligations/obligations.proto | 34 ++++++++- .../registered_resources.proto | 52 ++++++++++++- .../proto-files/policy/selectors.proto | 13 ++++ .../subjectmapping/subject_mapping.proto | 74 +++++++++++++++++++ 9 files changed, 283 insertions(+), 59 deletions(-) diff --git a/otdf-python-proto/proto-files/policy/actions/actions.proto b/otdf-python-proto/proto-files/policy/actions/actions.proto index 8dc5e427..7065e2d5 100644 --- a/otdf-python-proto/proto-files/policy/actions/actions.proto +++ b/otdf-python-proto/proto-files/policy/actions/actions.proto @@ -12,6 +12,8 @@ import "policy/selectors.proto"; */ message GetActionRequest { + option (buf.validate.message).oneof = { fields: ["namespace_id", "namespace_fqn"], required: false }; + // Required oneof identifier { option (buf.validate.oneof).required = true; @@ -25,6 +27,22 @@ message GetActionRequest { } ]; } + + // Optional namespace ID to scope name-based lookup. + // If omitted for name-based lookup, action search is limited to legacy (namespace_id = NULL) actions. + string namespace_id = 3 [ + (buf.validate.field).ignore = IGNORE_IF_ZERO_VALUE, + (buf.validate.field).string.uuid = true + ]; + // Optional namespace FQN to scope name-based lookup. + // If omitted for name-based lookup, action search is limited to legacy (namespace_id = NULL) actions. + string namespace_fqn = 4 [ + (buf.validate.field).ignore = IGNORE_IF_ZERO_VALUE, + (buf.validate.field).string = { + min_len : 1 + uri : true + } + ]; } message GetActionResponse { policy.Action action = 1; @@ -34,6 +52,21 @@ message GetActionResponse { } message ListActionsRequest { + // Optional + option (buf.validate.message).oneof = { fields: ["namespace_id", "namespace_fqn"], required: false }; + + // ID of the namespace to scope results. If omitted, returns actions across namespaces. + string namespace_id = 1 [ + (buf.validate.field).string.uuid = true + ]; + // FQN of the namespace to scope results. If omitted, returns actions across namespaces. + string namespace_fqn = 2 [ + (buf.validate.field).string = { + min_len : 1 + uri : true + } + ]; + // Optional policy.PageRequest pagination = 10; } @@ -47,6 +80,9 @@ message ListActionsResponse { // Create a new Custom action name with optional metadata. // Creation of Standard actions is not supported. message CreateActionRequest { + // Optional + option (buf.validate.message).oneof = { fields: ["namespace_id", "namespace_fqn"], required: false }; + // Required string name = 1 [ (buf.validate.field).required = true, @@ -58,6 +94,18 @@ message CreateActionRequest { } ]; + // Optional namespace ID for the custom action. + // If omitted, create targets legacy (namespace_id = NULL) behavior unless enforced by server config. + string namespace_id = 2 [(buf.validate.field).string.uuid = true]; + // Optional namespace FQN for the custom action. + // If omitted, create targets legacy (namespace_id = NULL) behavior unless enforced by server config. + string namespace_fqn = 3 [ + (buf.validate.field).string = { + min_len : 1 + uri : true + } + ]; + // Optional common.MetadataMutable metadata = 100; } diff --git a/otdf-python-proto/proto-files/policy/attributes/attributes.proto b/otdf-python-proto/proto-files/policy/attributes/attributes.proto index 9779643d..d20e13c9 100644 --- a/otdf-python-proto/proto-files/policy/attributes/attributes.proto +++ b/otdf-python-proto/proto-files/policy/attributes/attributes.proto @@ -63,6 +63,18 @@ message ValueKey { Attribute Service Definitions */ +enum SortAttributesType { + SORT_ATTRIBUTES_TYPE_UNSPECIFIED = 0; + SORT_ATTRIBUTES_TYPE_NAME = 1; + SORT_ATTRIBUTES_TYPE_CREATED_AT = 2; + SORT_ATTRIBUTES_TYPE_UPDATED_AT = 3; +} + +message AttributesSort { + SortAttributesType field = 1; + policy.SortDirection direction = 2; +} + message ListAttributesRequest { // Optional // ACTIVE by default when not specified @@ -73,6 +85,8 @@ message ListAttributesRequest { // Optional policy.PageRequest pagination = 10; + // Optional - CONSTRAINT: max 1 item + repeated AttributesSort sort = 11 [(buf.validate.field).repeated.max_items = 1]; } message ListAttributesResponse { repeated policy.Attribute attributes = 1; @@ -412,7 +426,10 @@ service AttributesService { rpc ListAttributes(ListAttributesRequest) returns (ListAttributesResponse) { option idempotency_level = NO_SIDE_EFFECTS; } + // Deprecated + // Use GetAttribute rpc ListAttributeValues(ListAttributeValuesRequest) returns (ListAttributeValuesResponse) { + option deprecated = true; option idempotency_level = NO_SIDE_EFFECTS; } diff --git a/otdf-python-proto/proto-files/policy/kasregistry/key_access_server_registry.proto b/otdf-python-proto/proto-files/policy/kasregistry/key_access_server_registry.proto index f7c4bdf7..29f6eda3 100644 --- a/otdf-python-proto/proto-files/policy/kasregistry/key_access_server_registry.proto +++ b/otdf-python-proto/proto-files/policy/kasregistry/key_access_server_registry.proto @@ -43,9 +43,26 @@ message GetKeyAccessServerResponse { KeyAccessServer key_access_server = 1; } +enum SortKeyAccessServersType { + SORT_KEY_ACCESS_SERVERS_TYPE_UNSPECIFIED = 0; + SORT_KEY_ACCESS_SERVERS_TYPE_NAME = 1; + SORT_KEY_ACCESS_SERVERS_TYPE_URI = 2; + SORT_KEY_ACCESS_SERVERS_TYPE_CREATED_AT = 3; + SORT_KEY_ACCESS_SERVERS_TYPE_UPDATED_AT = 4; +} + +message KeyAccessServersSort { + SortKeyAccessServersType field = 1; + policy.SortDirection direction = 2; +} + message ListKeyAccessServersRequest { // Optional policy.PageRequest pagination = 10; + // Optional - CONSTRAINT: max 1 item + // Default ordering when omitted or when the first entry's field is UNSPECIFIED: + // created_at DESC, then id ASC (tie-breaker). + repeated KeyAccessServersSort sort = 11 [(buf.validate.field).repeated.max_items = 1]; } message ListKeyAccessServersResponse { repeated KeyAccessServer key_access_servers = 1; diff --git a/otdf-python-proto/proto-files/policy/namespaces/namespaces.proto b/otdf-python-proto/proto-files/policy/namespaces/namespaces.proto index 163af22f..547604d4 100644 --- a/otdf-python-proto/proto-files/policy/namespaces/namespaces.proto +++ b/otdf-python-proto/proto-files/policy/namespaces/namespaces.proto @@ -78,6 +78,19 @@ message GetNamespaceResponse { policy.Namespace namespace = 1; } +enum SortNamespacesType { + SORT_NAMESPACES_TYPE_UNSPECIFIED = 0; + SORT_NAMESPACES_TYPE_NAME = 1; + SORT_NAMESPACES_TYPE_FQN = 2; + SORT_NAMESPACES_TYPE_CREATED_AT = 3; + SORT_NAMESPACES_TYPE_UPDATED_AT = 4; +} + +message NamespacesSort { + SortNamespacesType field = 1; + policy.SortDirection direction = 2; +} + message ListNamespacesRequest { // Optional // ACTIVE by default when not specified @@ -85,6 +98,9 @@ message ListNamespacesRequest { // Optional policy.PageRequest pagination = 10; + + // Optional + repeated NamespacesSort sort = 11 [(buf.validate.field).repeated.max_items = 1]; } message ListNamespacesResponse { repeated policy.Namespace namespaces = 1; @@ -172,46 +188,6 @@ message RemovePublicKeyFromNamespaceResponse { NamespaceKey namespace_key = 1; } -/* - Certificates -*/ - -// Maps a namespace to a certificate (similar to NamespaceKey pattern) -message NamespaceCertificate { - // Required - namespace identifier (id or fqn) - common.IdFqnIdentifier namespace = 1 [(buf.validate.field).required = true]; - // Required (The id from the Certificate object) - string certificate_id = 2 [ - (buf.validate.field).string.uuid = true, - (buf.validate.field).required = true - ]; -} - -message AssignCertificateToNamespaceRequest { - // Required - namespace identifier (id or fqn) - common.IdFqnIdentifier namespace = 1 [(buf.validate.field).required = true]; - // Required - PEM format certificate - string pem = 2 [(buf.validate.field).required = true]; - // Optional - common.MetadataMutable metadata = 100; -} - -message AssignCertificateToNamespaceResponse { - // The mapping of the namespace to the certificate. - NamespaceCertificate namespace_certificate = 1; - policy.Certificate certificate = 2; // Return the full certificate object for convenience -} - -message RemoveCertificateFromNamespaceRequest { - // The namespace and certificate to unassign. - NamespaceCertificate namespace_certificate = 1 [(buf.validate.field).required = true]; -} - -message RemoveCertificateFromNamespaceResponse { - // The unassigned namespace and certificate. - NamespaceCertificate namespace_certificate = 1; -} - service NamespaceService { rpc GetNamespace(GetNamespaceRequest) returns (GetNamespaceResponse) { option idempotency_level = NO_SIDE_EFFECTS; @@ -243,8 +219,4 @@ service NamespaceService { *---------------------------------------*/ rpc AssignPublicKeyToNamespace(AssignPublicKeyToNamespaceRequest) returns (AssignPublicKeyToNamespaceResponse) {} rpc RemovePublicKeyFromNamespace(RemovePublicKeyFromNamespaceRequest) returns (RemovePublicKeyFromNamespaceResponse) {} - - // Namespace <> Certificate RPCs - rpc AssignCertificateToNamespace(AssignCertificateToNamespaceRequest) returns (AssignCertificateToNamespaceResponse) {} - rpc RemoveCertificateFromNamespace(RemoveCertificateFromNamespaceRequest) returns (RemoveCertificateFromNamespaceResponse) {} } diff --git a/otdf-python-proto/proto-files/policy/objects.proto b/otdf-python-proto/proto-files/policy/objects.proto index 30bd2813..a54bc251 100644 --- a/otdf-python-proto/proto-files/policy/objects.proto +++ b/otdf-python-proto/proto-files/policy/objects.proto @@ -48,18 +48,6 @@ message Namespace { // Keys for the namespace repeated SimpleKasKey kas_keys = 7; - - // Root certificates for chain of trust - repeated Certificate root_certs = 8; -} - -message Certificate { - // generated uuid in database - string id = 1; - // PEM format certificate - string pem = 2; - // Optional metadata. - common.Metadata metadata = 3; } message Attribute { @@ -164,6 +152,9 @@ message Action { string name = 4; + // Namespace context for this action + Namespace namespace = 5; + common.Metadata metadata = 100; } @@ -205,6 +196,11 @@ message SubjectMapping { // The actions permitted by subjects in this mapping repeated Action actions = 4; + // the namespace containing this subject mapping + // possible this is empty. If so that means + // the Subject Mapping has not been migrated to a namespace. + Namespace namespace = 5; + common.Metadata metadata = 100; } @@ -256,6 +252,11 @@ message SubjectSet { message SubjectConditionSet { string id = 1; + // the namespace containing this subject condition set + // possible this is empty in the case a subject condition set + // has not been migrated to a namespace. + Namespace namespace = 2; + repeated SubjectSet subject_sets = 3 [(buf.validate.field).repeated.min_items = 1]; common.Metadata metadata = 100; @@ -452,6 +453,8 @@ message RegisteredResource { repeated RegisteredResourceValue values = 3; + Namespace namespace = 4; + // Common metadata common.Metadata metadata = 100; } diff --git a/otdf-python-proto/proto-files/policy/obligations/obligations.proto b/otdf-python-proto/proto-files/policy/obligations/obligations.proto index a2812b3d..c0e5b80e 100644 --- a/otdf-python-proto/proto-files/policy/obligations/obligations.proto +++ b/otdf-python-proto/proto-files/policy/obligations/obligations.proto @@ -12,6 +12,20 @@ import "buf/validate/validate.proto"; /// // Definitions + +enum SortObligationsType { + SORT_OBLIGATIONS_TYPE_UNSPECIFIED = 0; + SORT_OBLIGATIONS_TYPE_NAME = 1; + SORT_OBLIGATIONS_TYPE_FQN = 2; + SORT_OBLIGATIONS_TYPE_CREATED_AT = 3; + SORT_OBLIGATIONS_TYPE_UPDATED_AT = 4; +} + +message ObligationsSort { + SortObligationsType field = 1; + policy.SortDirection direction = 2; +} + message GetObligationRequest { option (buf.validate.message).oneof = { fields: ["id", "fqn"], required: true }; string id = 1 [(buf.validate.field).string.uuid = true]; @@ -150,6 +164,11 @@ message ListObligationsRequest { // Optional policy.PageRequest pagination = 10; + + // Optional - CONSTRAINT: max 1 item + // Default ordering when omitted or when the first entry's field is UNSPECIFIED: + // created_at DESC, then id ASC (tie-breaker). + repeated ObligationsSort sort = 11 [(buf.validate.field).repeated.max_items = 1]; } message ListObligationsResponse { @@ -272,6 +291,15 @@ message DeleteObligationValueResponse { } // Triggers +message GetObligationTriggerRequest { + // Required + string id = 1 [(buf.validate.field).string.uuid = true]; +} + +message GetObligationTriggerResponse { + policy.ObligationTrigger trigger = 1; +} + message AddObligationTriggerRequest { // Required common.IdFqnIdentifier obligation_value = 1 [(buf.validate.field).required = true]; @@ -393,6 +421,10 @@ service Service { /*--------------------------------------* * Trigger RPCs *--------------------------------------*/ + + rpc GetObligationTrigger(GetObligationTriggerRequest) returns (GetObligationTriggerResponse) { + option idempotency_level = NO_SIDE_EFFECTS; + } rpc AddObligationTrigger(AddObligationTriggerRequest) returns (AddObligationTriggerResponse) {} @@ -409,4 +441,4 @@ service Service { // rpc AddObligationFulfiller(AddObligationFulfillerRequest) returns (AddObligationFulfillerResponse) {} // rpc RemoveObligationFulfiller(RemoveObligationFulfillerRequest) returns (RemoveObligationFulfillerResponse) {} -} \ No newline at end of file +} diff --git a/otdf-python-proto/proto-files/policy/registeredresources/registered_resources.proto b/otdf-python-proto/proto-files/policy/registeredresources/registered_resources.proto index c6940197..024b7c03 100644 --- a/otdf-python-proto/proto-files/policy/registeredresources/registered_resources.proto +++ b/otdf-python-proto/proto-files/policy/registeredresources/registered_resources.proto @@ -24,7 +24,7 @@ message CreateRegisteredResourceRequest { } ]; - // Optional + // Optional // Registered Resource Values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character. // The stored value will be normalized to lower case. repeated string values = 2 [ @@ -32,7 +32,7 @@ message CreateRegisteredResourceRequest { min_items: 0, unique: true, items: { - string: + string: { max_len: 253, pattern: "^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$" @@ -41,6 +41,16 @@ message CreateRegisteredResourceRequest { } ]; + // Optional (yet to be enforced) + option (buf.validate.message).oneof = { fields: ["namespace_id", "namespace_fqn"], required: false }; + string namespace_id = 3 [(buf.validate.field).string.uuid = true]; + string namespace_fqn = 4 [ + (buf.validate.field).string = { + min_len : 1 + uri : true + } + ]; + // Optional // Common metadata common.MetadataMutable metadata = 100; @@ -67,14 +77,52 @@ message GetRegisteredResourceRequest { } ]; } + + // Optional - namespace context for name-based lookups (since names are not globally unique for namespaced RRs) + option (buf.validate.message).oneof = { fields: ["namespace_id", "namespace_fqn"], required: false }; + string namespace_fqn = 3 [ + (buf.validate.field).string = { + min_len : 1 + uri : true + } + ]; + string namespace_id = 4 [(buf.validate.field).string.uuid = true]; } message GetRegisteredResourceResponse { policy.RegisteredResource resource = 1; } +enum SortRegisteredResourcesType { + SORT_REGISTERED_RESOURCES_TYPE_UNSPECIFIED = 0; + SORT_REGISTERED_RESOURCES_TYPE_NAME = 1; + SORT_REGISTERED_RESOURCES_TYPE_CREATED_AT = 2; + SORT_REGISTERED_RESOURCES_TYPE_UPDATED_AT = 3; +} + +message RegisteredResourcesSort { + SortRegisteredResourcesType field = 1; + policy.SortDirection direction = 2; +} + message ListRegisteredResourcesRequest { + // Optional + // Namespace ID or FQN + option (buf.validate.message).oneof = { fields: ["namespace_id", "namespace_fqn"], required: false }; + string namespace_id = 1 [(buf.validate.field).string.uuid = true]; + string namespace_fqn = 2 [ + (buf.validate.field).string = { + min_len : 1 + uri : true + } + ]; + // Optional policy.PageRequest pagination = 10; + + // Optional - CONSTRAINT: max 1 item + // Default ordering when omitted or when the first entry's field is UNSPECIFIED: + // created_at DESC. + repeated RegisteredResourcesSort sort = 11 [(buf.validate.field).repeated.max_items = 1]; } message ListRegisteredResourcesResponse { repeated policy.RegisteredResource resources = 1; diff --git a/otdf-python-proto/proto-files/policy/selectors.proto b/otdf-python-proto/proto-files/policy/selectors.proto index 704ac970..6a54732b 100644 --- a/otdf-python-proto/proto-files/policy/selectors.proto +++ b/otdf-python-proto/proto-files/policy/selectors.proto @@ -52,6 +52,19 @@ message AttributeValueSelector { AttributeSelector with_attribute = 10; } +// Sorting direction shared across list APIs. +// Notes: +// - When a sort field is provided, UNSPECIFIED is treated as ASC. +// - When the 'sort' field is omitted or the chosen sort 'field' is UNSPECIFIED, +// the endpoint's request message defines the default ordering; see the +// specific List* request docs. +enum SortDirection { + // Treated as ASC when a sort field is provided. + SORT_DIRECTION_UNSPECIFIED = 0; // defaults to ASC + SORT_DIRECTION_ASC = 1; + SORT_DIRECTION_DESC = 2; +} + message PageRequest { // Optional // Set to configured default limit if not provided diff --git a/otdf-python-proto/proto-files/policy/subjectmapping/subject_mapping.proto b/otdf-python-proto/proto-files/policy/subjectmapping/subject_mapping.proto index f725cc27..7157e27b 100644 --- a/otdf-python-proto/proto-files/policy/subjectmapping/subject_mapping.proto +++ b/otdf-python-proto/proto-files/policy/subjectmapping/subject_mapping.proto @@ -29,9 +29,34 @@ message GetSubjectMappingResponse { policy.SubjectMapping subject_mapping = 1; } +enum SortSubjectMappingsType { + SORT_SUBJECT_MAPPINGS_TYPE_UNSPECIFIED = 0; + SORT_SUBJECT_MAPPINGS_TYPE_CREATED_AT = 1; + SORT_SUBJECT_MAPPINGS_TYPE_UPDATED_AT = 2; +} + +message SubjectMappingsSort { + SortSubjectMappingsType field = 1; + policy.SortDirection direction = 2; +} + message ListSubjectMappingsRequest { + // Optional + // Namespace ID or FQN + option (buf.validate.message).oneof = { fields: ["namespace_id", "namespace_fqn"], required: false }; + string namespace_id = 1 [(buf.validate.field).string.uuid = true]; + string namespace_fqn = 2 [ + (buf.validate.field).string = { + min_len: 1 + uri: true + } + ]; + // Optional policy.PageRequest pagination = 10; + + // Optional - CONSTRAINT: max 1 item + repeated SubjectMappingsSort sort = 11 [(buf.validate.field).repeated.max_items = 1]; } message ListSubjectMappingsResponse { repeated policy.SubjectMapping subject_mappings = 1; @@ -40,6 +65,9 @@ message ListSubjectMappingsResponse { } message CreateSubjectMappingRequest { + // Optional + option (buf.validate.message).oneof = { fields: ["namespace_id", "namespace_fqn"], required: false }; + // Required // Attribute Value to be mapped to string attribute_value_id = 1 [(buf.validate.field).string.uuid = true]; @@ -64,6 +92,16 @@ message CreateSubjectMappingRequest { // Create new SubjectConditionSet (NOTE: ignored if existing_subject_condition_set_id is provided) SubjectConditionSetCreate new_subject_condition_set = 4; + // Optional + // Namespace ID or FQN for the subject mapping + string namespace_id = 5 [(buf.validate.field).string.uuid = true]; + string namespace_fqn = 6 [ + (buf.validate.field).string = { + min_len: 1 + uri: true + } + ]; + // Optional common.MetadataMutable metadata = 100; } @@ -122,9 +160,35 @@ message GetSubjectConditionSetResponse { repeated policy.SubjectMapping associated_subject_mappings = 2; } +enum SortSubjectConditionSetsType { + SORT_SUBJECT_CONDITION_SETS_TYPE_UNSPECIFIED = 0; + SORT_SUBJECT_CONDITION_SETS_TYPE_CREATED_AT = 1; + SORT_SUBJECT_CONDITION_SETS_TYPE_UPDATED_AT = 2; +} + +message SubjectConditionSetsSort { + SortSubjectConditionSetsType field = 1; + policy.SortDirection direction = 2; +} + message ListSubjectConditionSetsRequest { + // Optional + // Namespace ID or FQN + option (buf.validate.message).oneof = { fields: ["namespace_id", "namespace_fqn"], required: false }; + string namespace_id = 1 [(buf.validate.field).string.uuid = true]; + string namespace_fqn = 2 [ + (buf.validate.field).string = { + min_len: 1 + uri: true + } + ]; + // Optional policy.PageRequest pagination = 10; + // Optional - CONSTRAINT: max 1 item + // Default ordering when omitted or when the first entry's field is UNSPECIFIED: + // created_at DESC, then id ASC (tie-breaker). + repeated SubjectConditionSetsSort sort = 11 [(buf.validate.field).repeated.max_items = 1]; } message ListSubjectConditionSetsResponse { repeated policy.SubjectConditionSet subject_condition_sets = 1; @@ -141,7 +205,17 @@ message SubjectConditionSetCreate { common.MetadataMutable metadata = 100; } message CreateSubjectConditionSetRequest { + // Optional + option (buf.validate.message).oneof = { fields: ["namespace_id", "namespace_fqn"], required: false }; + SubjectConditionSetCreate subject_condition_set = 1 [(buf.validate.field).required = true]; + string namespace_id = 2 [(buf.validate.field).string.uuid = true]; + string namespace_fqn = 3 [ + (buf.validate.field).string = { + min_len: 1 + uri: true + } + ]; } message CreateSubjectConditionSetResponse { SubjectConditionSet subject_condition_set = 1; From 47ea42ab7609b9432caa35b161affb3c40ba4937 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 3 Jun 2026 08:07:43 -0400 Subject: [PATCH 3/5] fix: preserve __init__.py file content --- .../scripts/generate_connect_proto.py | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/otdf-python-proto/scripts/generate_connect_proto.py b/otdf-python-proto/scripts/generate_connect_proto.py index 931ae4b9..a22ba99f 100644 --- a/otdf-python-proto/scripts/generate_connect_proto.py +++ b/otdf-python-proto/scripts/generate_connect_proto.py @@ -198,11 +198,16 @@ def run_buf_generate(proto_gen_dir: Path) -> bool: return False -def create_init_files(generated_dir: Path) -> None: - """Create __init__.py files in generated directories.""" +def create_init_files(generated_dir: Path, preserved: dict[Path, str]) -> None: + """Restore preserved __init__.py files; touch new ones for any new directories.""" for dirpath in [generated_dir, *generated_dir.rglob("*")]: - if dirpath.is_dir(): - (dirpath / "__init__.py").touch() + if not dirpath.is_dir(): + continue + init = dirpath / "__init__.py" + if init in preserved: + init.write_text(preserved[init]) + else: + init.touch() def _fix_ignore_if_default_value(proto_files_dir): @@ -290,12 +295,19 @@ def main(): # Fix IGNORE_IF_DEFAULT_VALUE in proto files _fix_ignore_if_default_value(proto_files_dir) + # Preserve hand-crafted __init__.py files before buf overwrites them + preserved_inits: dict[Path, str] = {} + for init_file in generated_dir.rglob("__init__.py"): + content = init_file.read_text() + if content.strip(): + preserved_inits[init_file] = content + # Generate protobuf and Connect RPC files using buf if not run_buf_generate(proto_gen_dir): return 1 - # Create __init__.py files - create_init_files(generated_dir) + # Restore preserved __init__.py files (buf generate clobbers them with empty files) + create_init_files(generated_dir, preserved_inits) print("\n✓ Connect RPC client generation complete!") print(f" Generated files are in: {generated_dir}") From 724dee8800e912c0344f4c4f2e511cbcdd3dd970 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 3 Jun 2026 08:09:01 -0400 Subject: [PATCH 4/5] feat: add updated bindings --- .../policy/attributes/attributes_pb2_grpc.py | 4 +- .../policy/namespaces/namespaces_pb2_grpc.py | 87 ------- .../obligations/obligations_pb2_grpc.py | 45 +++- .../policy/actions/actions_pb2.py | 62 +++-- .../policy/actions/actions_pb2.pyi | 24 +- .../policy/attributes/attributes_pb2.py | 174 +++++++------- .../policy/attributes/attributes_pb2.pyi | 26 ++- .../key_access_server_registry_pb2.py | 216 +++++++++--------- .../key_access_server_registry_pb2.pyi | 28 ++- .../policy/namespaces/namespaces_connect.py | 130 ----------- .../policy/namespaces/namespaces_pb2.py | 96 ++++---- .../policy/namespaces/namespaces_pb2.pyi | 66 +++--- .../otdf_python_proto/policy/objects_pb2.py | 122 +++++----- .../otdf_python_proto/policy/objects_pb2.pyi | 40 ++-- .../policy/obligations/obligations_connect.py | 69 ++++++ .../policy/obligations/obligations_pb2.py | 144 ++++++------ .../policy/obligations/obligations_pb2.pyi | 40 +++- .../registered_resources_pb2.py | 124 ++++++---- .../registered_resources_pb2.pyi | 46 +++- .../otdf_python_proto/policy/selectors_pb2.py | 4 +- .../policy/selectors_pb2.pyi | 10 + .../subjectmapping/subject_mapping_pb2.py | 126 ++++++---- .../subjectmapping/subject_mapping_pb2.pyi | 71 +++++- 23 files changed, 958 insertions(+), 796 deletions(-) diff --git a/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/attributes/attributes_pb2_grpc.py b/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/attributes/attributes_pb2_grpc.py index c7208553..62b54860 100644 --- a/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/attributes/attributes_pb2_grpc.py +++ b/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/attributes/attributes_pb2_grpc.py @@ -130,7 +130,9 @@ def ListAttributes(self, request, context): raise NotImplementedError('Method not implemented!') def ListAttributeValues(self, request, context): - """Missing associated documentation comment in .proto file.""" + """Deprecated + Use GetAttribute + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') diff --git a/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/namespaces/namespaces_pb2_grpc.py b/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/namespaces/namespaces_pb2_grpc.py index f2a0684d..f6765497 100644 --- a/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/namespaces/namespaces_pb2_grpc.py +++ b/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/namespaces/namespaces_pb2_grpc.py @@ -59,16 +59,6 @@ def __init__(self, channel): request_serializer=policy_dot_namespaces_dot_namespaces__pb2.RemovePublicKeyFromNamespaceRequest.SerializeToString, response_deserializer=policy_dot_namespaces_dot_namespaces__pb2.RemovePublicKeyFromNamespaceResponse.FromString, _registered_method=True) - self.AssignCertificateToNamespace = channel.unary_unary( - '/policy.namespaces.NamespaceService/AssignCertificateToNamespace', - request_serializer=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest.SerializeToString, - response_deserializer=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse.FromString, - _registered_method=True) - self.RemoveCertificateFromNamespace = channel.unary_unary( - '/policy.namespaces.NamespaceService/RemoveCertificateFromNamespace', - request_serializer=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest.SerializeToString, - response_deserializer=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse.FromString, - _registered_method=True) class NamespaceServiceServicer(object): @@ -137,19 +127,6 @@ def RemovePublicKeyFromNamespace(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def AssignCertificateToNamespace(self, request, context): - """Namespace <> Certificate RPCs - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def RemoveCertificateFromNamespace(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def add_NamespaceServiceServicer_to_server(servicer, server): rpc_method_handlers = { @@ -198,16 +175,6 @@ def add_NamespaceServiceServicer_to_server(servicer, server): request_deserializer=policy_dot_namespaces_dot_namespaces__pb2.RemovePublicKeyFromNamespaceRequest.FromString, response_serializer=policy_dot_namespaces_dot_namespaces__pb2.RemovePublicKeyFromNamespaceResponse.SerializeToString, ), - 'AssignCertificateToNamespace': grpc.unary_unary_rpc_method_handler( - servicer.AssignCertificateToNamespace, - request_deserializer=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest.FromString, - response_serializer=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse.SerializeToString, - ), - 'RemoveCertificateFromNamespace': grpc.unary_unary_rpc_method_handler( - servicer.RemoveCertificateFromNamespace, - request_deserializer=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest.FromString, - response_serializer=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse.SerializeToString, - ), } generic_handler = grpc.method_handlers_generic_handler( 'policy.namespaces.NamespaceService', rpc_method_handlers) @@ -461,57 +428,3 @@ def RemovePublicKeyFromNamespace(request, timeout, metadata, _registered_method=True) - - @staticmethod - def AssignCertificateToNamespace(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/policy.namespaces.NamespaceService/AssignCertificateToNamespace', - policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest.SerializeToString, - policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def RemoveCertificateFromNamespace(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/policy.namespaces.NamespaceService/RemoveCertificateFromNamespace', - policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest.SerializeToString, - policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) diff --git a/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/obligations/obligations_pb2_grpc.py b/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/obligations/obligations_pb2_grpc.py index 957d7aef..1e3d96dc 100644 --- a/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/obligations/obligations_pb2_grpc.py +++ b/otdf-python-proto/src/otdf_python_proto/legacy_grpc/policy/obligations/obligations_pb2_grpc.py @@ -94,6 +94,11 @@ def __init__(self, channel): request_serializer=policy_dot_obligations_dot_obligations__pb2.DeleteObligationValueRequest.SerializeToString, response_deserializer=policy_dot_obligations_dot_obligations__pb2.DeleteObligationValueResponse.FromString, _registered_method=True) + self.GetObligationTrigger = channel.unary_unary( + '/policy.obligations.Service/GetObligationTrigger', + request_serializer=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest.SerializeToString, + response_deserializer=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse.FromString, + _registered_method=True) self.AddObligationTrigger = channel.unary_unary( '/policy.obligations.Service/AddObligationTrigger', request_serializer=policy_dot_obligations_dot_obligations__pb2.AddObligationTriggerRequest.SerializeToString, @@ -213,7 +218,7 @@ def DeleteObligationValue(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def AddObligationTrigger(self, request, context): + def GetObligationTrigger(self, request, context): """--------------------------------------* Trigger RPCs -------------------------------------- @@ -223,6 +228,12 @@ def AddObligationTrigger(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def AddObligationTrigger(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def RemoveObligationTrigger(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -293,6 +304,11 @@ def add_ServiceServicer_to_server(servicer, server): request_deserializer=policy_dot_obligations_dot_obligations__pb2.DeleteObligationValueRequest.FromString, response_serializer=policy_dot_obligations_dot_obligations__pb2.DeleteObligationValueResponse.SerializeToString, ), + 'GetObligationTrigger': grpc.unary_unary_rpc_method_handler( + servicer.GetObligationTrigger, + request_deserializer=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest.FromString, + response_serializer=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse.SerializeToString, + ), 'AddObligationTrigger': grpc.unary_unary_rpc_method_handler( servicer.AddObligationTrigger, request_deserializer=policy_dot_obligations_dot_obligations__pb2.AddObligationTriggerRequest.FromString, @@ -641,6 +657,33 @@ def DeleteObligationValue(request, metadata, _registered_method=True) + @staticmethod + def GetObligationTrigger(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/policy.obligations.Service/GetObligationTrigger', + policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest.SerializeToString, + policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def AddObligationTrigger(request, target, diff --git a/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.py b/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.py index dd5a166b..b981b158 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.py @@ -28,7 +28,7 @@ from policy import selectors_pb2 as policy_dot_selectors__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cpolicy/actions/actions.proto\x12\x0epolicy.actions\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"\xeb\x02\n\x10GetActionRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\xa5\x02\n\x04name\x18\x02 \x01(\tB\x8e\x02\xbaH\x8a\x02r\x03\x18\xfd\x01\xba\x01\x81\x02\n\x12\x61\x63tion_name_format\x12\xad\x01\x41\x63tion name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')H\x00R\x04nameB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"~\n\x11GetActionResponse\x12&\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\x12\x41\n\x10subject_mappings\x18\x02 \x03(\x0b\x32\x16.policy.SubjectMappingR\x0fsubjectMappings\"I\n\x12ListActionsRequest\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\"\xbd\x01\n\x13ListActionsResponse\x12\x39\n\x10\x61\x63tions_standard\x18\x01 \x03(\x0b\x32\x0e.policy.ActionR\x0f\x61\x63tionsStandard\x12\x35\n\x0e\x61\x63tions_custom\x18\x02 \x03(\x0b\x32\x0e.policy.ActionR\ractionsCustom\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\xf3\x02\n\x13\x43reateActionRequest\x12\xa6\x02\n\x04name\x18\x01 \x01(\tB\x91\x02\xbaH\x8d\x02r\x03\x18\xfd\x01\xba\x01\x81\x02\n\x12\x61\x63tion_name_format\x12\xad\x01\x41\x63tion name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\">\n\x14\x43reateActionResponse\x12&\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\"\xf3\x03\n\x13UpdateActionRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xb6\x02\n\x04name\x18\x02 \x01(\tB\xa1\x02\xbaH\x9d\x02r\x03\x18\xfd\x01\xba\x01\x94\x02\n\x12\x61\x63tion_name_format\x12\xad\x01\x41\x63tion name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.\x1aNsize(this) == 0 || this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\">\n\x14UpdateActionResponse\x12&\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\"/\n\x13\x44\x65leteActionRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\">\n\x14\x44\x65leteActionResponse\x12&\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion2\xd4\x03\n\rActionService\x12R\n\tGetAction\x12 .policy.actions.GetActionRequest\x1a!.policy.actions.GetActionResponse\"\x00\x12X\n\x0bListActions\x12\".policy.actions.ListActionsRequest\x1a#.policy.actions.ListActionsResponse\"\x00\x12[\n\x0c\x43reateAction\x12#.policy.actions.CreateActionRequest\x1a$.policy.actions.CreateActionResponse\"\x00\x12[\n\x0cUpdateAction\x12#.policy.actions.UpdateActionRequest\x1a$.policy.actions.UpdateActionResponse\"\x00\x12[\n\x0c\x44\x65leteAction\x12#.policy.actions.DeleteActionRequest\x1a$.policy.actions.DeleteActionResponse\"\x00\x42{\n\x12\x63om.policy.actionsB\x0c\x41\x63tionsProtoP\x01\xa2\x02\x03PAX\xaa\x02\x0ePolicy.Actions\xca\x02\x0ePolicy\\Actions\xe2\x02\x1aPolicy\\Actions\\GPBMetadata\xea\x02\x0fPolicy::Actionsb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cpolicy/actions/actions.proto\x12\x0epolicy.actions\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"\xf5\x03\n\x10GetActionRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\xa5\x02\n\x04name\x18\x02 \x01(\tB\x8e\x02\xbaH\x8a\x02r\x03\x18\xfd\x01\xba\x01\x81\x02\n\x12\x61\x63tion_name_format\x12\xad\x01\x41\x63tion name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')H\x00R\x04name\x12.\n\x0cnamespace_id\x18\x03 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x0bnamespaceId\x12\x32\n\rnamespace_fqn\x18\x04 \x01(\tB\r\xbaH\nr\x05\x10\x01\x88\x01\x01\xd8\x01\x01R\x0cnamespaceFqn:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\x42\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"~\n\x11GetActionResponse\x12&\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\x12\x41\n\x10subject_mappings\x18\x02 \x03(\x0b\x32\x16.policy.SubjectMappingR\x0fsubjectMappings\"\xcd\x01\n\x12ListActionsRequest\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"\xbd\x01\n\x13ListActionsResponse\x12\x39\n\x10\x61\x63tions_standard\x18\x01 \x03(\x0b\x32\x0e.policy.ActionR\x0f\x61\x63tionsStandard\x12\x35\n\x0e\x61\x63tions_custom\x18\x02 \x03(\x0b\x32\x0e.policy.ActionR\ractionsCustom\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\xf7\x03\n\x13\x43reateActionRequest\x12\xa6\x02\n\x04name\x18\x01 \x01(\tB\x91\x02\xbaH\x8d\x02r\x03\x18\xfd\x01\xba\x01\x81\x02\n\x12\x61\x63tion_name_format\x12\xad\x01\x41\x63tion name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x04name\x12+\n\x0cnamespace_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\">\n\x14\x43reateActionResponse\x12&\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\"\xf3\x03\n\x13UpdateActionRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xb6\x02\n\x04name\x18\x02 \x01(\tB\xa1\x02\xbaH\x9d\x02r\x03\x18\xfd\x01\xba\x01\x94\x02\n\x12\x61\x63tion_name_format\x12\xad\x01\x41\x63tion name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.\x1aNsize(this) == 0 || this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\">\n\x14UpdateActionResponse\x12&\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\"/\n\x13\x44\x65leteActionRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\">\n\x14\x44\x65leteActionResponse\x12&\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion2\xd4\x03\n\rActionService\x12R\n\tGetAction\x12 .policy.actions.GetActionRequest\x1a!.policy.actions.GetActionResponse\"\x00\x12X\n\x0bListActions\x12\".policy.actions.ListActionsRequest\x1a#.policy.actions.ListActionsResponse\"\x00\x12[\n\x0c\x43reateAction\x12#.policy.actions.CreateActionRequest\x1a$.policy.actions.CreateActionResponse\"\x00\x12[\n\x0cUpdateAction\x12#.policy.actions.UpdateActionRequest\x1a$.policy.actions.UpdateActionResponse\"\x00\x12[\n\x0c\x44\x65leteAction\x12#.policy.actions.DeleteActionRequest\x1a$.policy.actions.DeleteActionResponse\"\x00\x42{\n\x12\x63om.policy.actionsB\x0c\x41\x63tionsProtoP\x01\xa2\x02\x03PAX\xaa\x02\x0ePolicy.Actions\xca\x02\x0ePolicy\\Actions\xe2\x02\x1aPolicy\\Actions\\GPBMetadata\xea\x02\x0fPolicy::Actionsb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -42,8 +42,26 @@ _globals['_GETACTIONREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_GETACTIONREQUEST'].fields_by_name['name']._loaded_options = None _globals['_GETACTIONREQUEST'].fields_by_name['name']._serialized_options = b'\272H\212\002r\003\030\375\001\272\001\201\002\n\022action_name_format\022\255\001Action name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.\032;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')' + _globals['_GETACTIONREQUEST'].fields_by_name['namespace_id']._loaded_options = None + _globals['_GETACTIONREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\010r\003\260\001\001\330\001\001' + _globals['_GETACTIONREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None + _globals['_GETACTIONREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\nr\005\020\001\210\001\001\330\001\001' + _globals['_GETACTIONREQUEST']._loaded_options = None + _globals['_GETACTIONREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' + _globals['_LISTACTIONSREQUEST'].fields_by_name['namespace_id']._loaded_options = None + _globals['_LISTACTIONSREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_LISTACTIONSREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None + _globals['_LISTACTIONSREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' + _globals['_LISTACTIONSREQUEST']._loaded_options = None + _globals['_LISTACTIONSREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' _globals['_CREATEACTIONREQUEST'].fields_by_name['name']._loaded_options = None _globals['_CREATEACTIONREQUEST'].fields_by_name['name']._serialized_options = b'\272H\215\002r\003\030\375\001\272\001\201\002\n\022action_name_format\022\255\001Action name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.\032;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\310\001\001' + _globals['_CREATEACTIONREQUEST'].fields_by_name['namespace_id']._loaded_options = None + _globals['_CREATEACTIONREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_CREATEACTIONREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None + _globals['_CREATEACTIONREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' + _globals['_CREATEACTIONREQUEST']._loaded_options = None + _globals['_CREATEACTIONREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' _globals['_UPDATEACTIONREQUEST'].fields_by_name['id']._loaded_options = None _globals['_UPDATEACTIONREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_UPDATEACTIONREQUEST'].fields_by_name['name']._loaded_options = None @@ -51,25 +69,25 @@ _globals['_DELETEACTIONREQUEST'].fields_by_name['id']._loaded_options = None _globals['_DELETEACTIONREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_GETACTIONREQUEST']._serialized_start=145 - _globals['_GETACTIONREQUEST']._serialized_end=508 - _globals['_GETACTIONRESPONSE']._serialized_start=510 - _globals['_GETACTIONRESPONSE']._serialized_end=636 - _globals['_LISTACTIONSREQUEST']._serialized_start=638 - _globals['_LISTACTIONSREQUEST']._serialized_end=711 - _globals['_LISTACTIONSRESPONSE']._serialized_start=714 - _globals['_LISTACTIONSRESPONSE']._serialized_end=903 - _globals['_CREATEACTIONREQUEST']._serialized_start=906 - _globals['_CREATEACTIONREQUEST']._serialized_end=1277 - _globals['_CREATEACTIONRESPONSE']._serialized_start=1279 - _globals['_CREATEACTIONRESPONSE']._serialized_end=1341 - _globals['_UPDATEACTIONREQUEST']._serialized_start=1344 - _globals['_UPDATEACTIONREQUEST']._serialized_end=1843 - _globals['_UPDATEACTIONRESPONSE']._serialized_start=1845 - _globals['_UPDATEACTIONRESPONSE']._serialized_end=1907 - _globals['_DELETEACTIONREQUEST']._serialized_start=1909 - _globals['_DELETEACTIONREQUEST']._serialized_end=1956 - _globals['_DELETEACTIONRESPONSE']._serialized_start=1958 - _globals['_DELETEACTIONRESPONSE']._serialized_end=2020 - _globals['_ACTIONSERVICE']._serialized_start=2023 - _globals['_ACTIONSERVICE']._serialized_end=2491 + _globals['_GETACTIONREQUEST']._serialized_end=646 + _globals['_GETACTIONRESPONSE']._serialized_start=648 + _globals['_GETACTIONRESPONSE']._serialized_end=774 + _globals['_LISTACTIONSREQUEST']._serialized_start=777 + _globals['_LISTACTIONSREQUEST']._serialized_end=982 + _globals['_LISTACTIONSRESPONSE']._serialized_start=985 + _globals['_LISTACTIONSRESPONSE']._serialized_end=1174 + _globals['_CREATEACTIONREQUEST']._serialized_start=1177 + _globals['_CREATEACTIONREQUEST']._serialized_end=1680 + _globals['_CREATEACTIONRESPONSE']._serialized_start=1682 + _globals['_CREATEACTIONRESPONSE']._serialized_end=1744 + _globals['_UPDATEACTIONREQUEST']._serialized_start=1747 + _globals['_UPDATEACTIONREQUEST']._serialized_end=2246 + _globals['_UPDATEACTIONRESPONSE']._serialized_start=2248 + _globals['_UPDATEACTIONRESPONSE']._serialized_end=2310 + _globals['_DELETEACTIONREQUEST']._serialized_start=2312 + _globals['_DELETEACTIONREQUEST']._serialized_end=2359 + _globals['_DELETEACTIONRESPONSE']._serialized_start=2361 + _globals['_DELETEACTIONRESPONSE']._serialized_end=2423 + _globals['_ACTIONSERVICE']._serialized_start=2426 + _globals['_ACTIONSERVICE']._serialized_end=2894 # @@protoc_insertion_point(module_scope) diff --git a/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.pyi b/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.pyi index 28f4342a..3e3f7c24 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.pyi +++ b/otdf-python-proto/src/otdf_python_proto/policy/actions/actions_pb2.pyi @@ -11,12 +11,16 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor class GetActionRequest(_message.Message): - __slots__ = ("id", "name") + __slots__ = ("id", "name", "namespace_id", "namespace_fqn") ID_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] id: str name: str - def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... + namespace_id: str + namespace_fqn: str + def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ...) -> None: ... class GetActionResponse(_message.Message): __slots__ = ("action", "subject_mappings") @@ -27,10 +31,14 @@ class GetActionResponse(_message.Message): def __init__(self, action: _Optional[_Union[_objects_pb2.Action, _Mapping]] = ..., subject_mappings: _Optional[_Iterable[_Union[_objects_pb2.SubjectMapping, _Mapping]]] = ...) -> None: ... class ListActionsRequest(_message.Message): - __slots__ = ("pagination",) + __slots__ = ("namespace_id", "namespace_fqn", "pagination") + NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] PAGINATION_FIELD_NUMBER: _ClassVar[int] + namespace_id: str + namespace_fqn: str pagination: _selectors_pb2.PageRequest - def __init__(self, pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ...) -> None: ... + def __init__(self, namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ..., pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ...) -> None: ... class ListActionsResponse(_message.Message): __slots__ = ("actions_standard", "actions_custom", "pagination") @@ -43,12 +51,16 @@ class ListActionsResponse(_message.Message): def __init__(self, actions_standard: _Optional[_Iterable[_Union[_objects_pb2.Action, _Mapping]]] = ..., actions_custom: _Optional[_Iterable[_Union[_objects_pb2.Action, _Mapping]]] = ..., pagination: _Optional[_Union[_selectors_pb2.PageResponse, _Mapping]] = ...) -> None: ... class CreateActionRequest(_message.Message): - __slots__ = ("name", "metadata") + __slots__ = ("name", "namespace_id", "namespace_fqn", "metadata") NAME_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] name: str + namespace_id: str + namespace_fqn: str metadata: _common_pb2.MetadataMutable - def __init__(self, name: _Optional[str] = ..., metadata: _Optional[_Union[_common_pb2.MetadataMutable, _Mapping]] = ...) -> None: ... + def __init__(self, name: _Optional[str] = ..., namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ..., metadata: _Optional[_Union[_common_pb2.MetadataMutable, _Mapping]] = ...) -> None: ... class CreateActionResponse(_message.Message): __slots__ = ("action",) diff --git a/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.py b/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.py index 2db58b34..fe6cf551 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.py @@ -30,7 +30,7 @@ from policy import selectors_pb2 as policy_dot_selectors__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"policy/attributes/attributes.proto\x12\x11policy.attributes\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"\x86\x01\n\x18\x41ttributeKeyAccessServer\x12+\n\x0c\x61ttribute_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0b\x61ttributeId\x12\x39\n\x14key_access_server_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x11keyAccessServerId:\x02\x18\x01\"z\n\x14ValueKeyAccessServer\x12#\n\x08value_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07valueId\x12\x39\n\x14key_access_server_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x11keyAccessServerId:\x02\x18\x01\"b\n\x0c\x41ttributeKey\x12.\n\x0c\x61ttribute_id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xc8\x01\x01R\x0b\x61ttributeId\x12\"\n\x06key_id\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xc8\x01\x01R\x05keyId\"V\n\x08ValueKey\x12&\n\x08value_id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xc8\x01\x01R\x07valueId\x12\"\n\x06key_id\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xc8\x01\x01R\x05keyId\"\x99\x01\n\x15ListAttributesRequest\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x17.common.ActiveStateEnumR\x05state\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\"\x81\x01\n\x16ListAttributesResponse\x12\x31\n\nattributes\x18\x01 \x03(\x0b\x32\x11.policy.AttributeR\nattributes\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\xbe\x03\n\x13GetAttributeRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\x18\x01\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x02id\x12-\n\x0c\x61ttribute_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x0b\x61ttributeId\x12\x1e\n\x03\x66qn\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03\x66qn:\xaa\x02\xbaH\xa6\x02\x1a\xa2\x01\n\x10\x65xclusive_fields\x12PEither use deprecated \'id\' field or one of \'attribute_id\' or \'fqn\', but not both\x1a\n\x04rule\x18\x03 \x01(\x0e\x32\x1d.policy.AttributeRuleTypeEnumB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x01R\x04rule\x12V\n\x06values\x18\x04 \x03(\tB>\xbaH;\x92\x01\x38\x08\x00\x18\x01\"2r0\x18\xfd\x01\x32+^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$R\x06values\x12\x43\n\x0f\x61llow_traversal\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x0e\x61llowTraversal\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"J\n\x17\x43reateAttributeResponse\x12/\n\tattribute\x18\x01 \x01(\x0b\x32\x11.policy.AttributeR\tattribute\"\xbd\x01\n\x16UpdateAttributeRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"J\n\x17UpdateAttributeResponse\x12/\n\tattribute\x18\x01 \x01(\x0b\x32\x11.policy.AttributeR\tattribute\"6\n\x1a\x44\x65\x61\x63tivateAttributeRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"N\n\x1b\x44\x65\x61\x63tivateAttributeResponse\x12/\n\tattribute\x18\x01 \x01(\x0b\x32\x11.policy.AttributeR\tattribute\"\xab\x03\n\x18GetAttributeValueRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\x18\x01\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x02id\x12%\n\x08value_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x07valueId\x12\x1e\n\x03\x66qn\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03\x66qn:\x9a\x02\xbaH\x96\x02\x1a\x9a\x01\n\x10\x65xclusive_fields\x12LEither use deprecated \'id\' field or one of \'value_id\' or \'fqn\', but not both\x1a\x38!(has(this.id) && (has(this.value_id) || has(this.fqn)))\x1aw\n\x0frequired_fields\x12/Either id or one of value_id or fqn must be set\x1a\x33has(this.id) || has(this.value_id) || has(this.fqn)B\x0c\n\nidentifier\"@\n\x19GetAttributeValueResponse\x12#\n\x05value\x18\x01 \x01(\x0b\x32\r.policy.ValueR\x05value\"\xad\x01\n\x1aListAttributeValuesRequest\x12+\n\x0c\x61ttribute_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0b\x61ttributeId\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x17.common.ActiveStateEnumR\x05state\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\"z\n\x1bListAttributeValuesResponse\x12%\n\x06values\x18\x01 \x03(\x0b\x32\r.policy.ValueR\x06values\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\xc5\x03\n\x1b\x43reateAttributeValueRequest\x12+\n\x0c\x61ttribute_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0b\x61ttributeId\x12\xb4\x02\n\x05value\x18\x02 \x01(\tB\x9d\x02\xbaH\x99\x02r\x03\x18\xfd\x01\xba\x01\x8d\x02\n\x16\x61ttribute_value_format\x12\xb5\x01\x41ttribute value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored attribute value will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x05value\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadataJ\x04\x08\x03\x10\x04R\x07members\"C\n\x1c\x43reateAttributeValueResponse\x12#\n\x05value\x18\x01 \x01(\x0b\x32\r.policy.ValueR\x05value\"\xd1\x01\n\x1bUpdateAttributeValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehaviorJ\x04\x08\x04\x10\x05R\x07members\"C\n\x1cUpdateAttributeValueResponse\x12#\n\x05value\x18\x01 \x01(\x0b\x32\r.policy.ValueR\x05value\";\n\x1f\x44\x65\x61\x63tivateAttributeValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"G\n DeactivateAttributeValueResponse\x12#\n\x05value\x18\x01 \x01(\x0b\x32\r.policy.ValueR\x05value\"T\n\x1fGetAttributeValuesByFqnsRequest\x12\x1f\n\x04\x66qns\x18\x01 \x03(\tB\x0b\xbaH\x08\x92\x01\x05\x08\x01\x10\xfa\x01R\x04\x66qnsJ\x04\x08\x02\x10\x03R\nwith_value\"\x9b\x03\n GetAttributeValuesByFqnsResponse\x12}\n\x14\x66qn_attribute_values\x18\x01 \x03(\x0b\x32K.policy.attributes.GetAttributeValuesByFqnsResponse.FqnAttributeValuesEntryR\x12\x66qnAttributeValues\x1ai\n\x11\x41ttributeAndValue\x12/\n\tattribute\x18\x01 \x01(\x0b\x32\x11.policy.AttributeR\tattribute\x12#\n\x05value\x18\x02 \x01(\x0b\x32\r.policy.ValueR\x05value\x1a\x8c\x01\n\x17\x46qnAttributeValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12[\n\x05value\x18\x02 \x01(\x0b\x32\x45.policy.attributes.GetAttributeValuesByFqnsResponse.AttributeAndValueR\x05value:\x02\x38\x01\"\x99\x01\n\'AssignKeyAccessServerToAttributeRequest\x12j\n\x1b\x61ttribute_key_access_server\x18\x01 \x01(\x0b\x32+.policy.attributes.AttributeKeyAccessServerR\x18\x61ttributeKeyAccessServer:\x02\x18\x01\"\x9a\x01\n(AssignKeyAccessServerToAttributeResponse\x12j\n\x1b\x61ttribute_key_access_server\x18\x01 \x01(\x0b\x32+.policy.attributes.AttributeKeyAccessServerR\x18\x61ttributeKeyAccessServer:\x02\x18\x01\"\x9b\x01\n)RemoveKeyAccessServerFromAttributeRequest\x12j\n\x1b\x61ttribute_key_access_server\x18\x01 \x01(\x0b\x32+.policy.attributes.AttributeKeyAccessServerR\x18\x61ttributeKeyAccessServer:\x02\x18\x01\"\x9c\x01\n*RemoveKeyAccessServerFromAttributeResponse\x12j\n\x1b\x61ttribute_key_access_server\x18\x01 \x01(\x0b\x32+.policy.attributes.AttributeKeyAccessServerR\x18\x61ttributeKeyAccessServer:\x02\x18\x01\"\x89\x01\n#AssignKeyAccessServerToValueRequest\x12^\n\x17value_key_access_server\x18\x01 \x01(\x0b\x32\'.policy.attributes.ValueKeyAccessServerR\x14valueKeyAccessServer:\x02\x18\x01\"\x8a\x01\n$AssignKeyAccessServerToValueResponse\x12^\n\x17value_key_access_server\x18\x01 \x01(\x0b\x32\'.policy.attributes.ValueKeyAccessServerR\x14valueKeyAccessServer:\x02\x18\x01\"\x8b\x01\n%RemoveKeyAccessServerFromValueRequest\x12^\n\x17value_key_access_server\x18\x01 \x01(\x0b\x32\'.policy.attributes.ValueKeyAccessServerR\x14valueKeyAccessServer:\x02\x18\x01\"\x8c\x01\n&RemoveKeyAccessServerFromValueResponse\x12^\n\x17value_key_access_server\x18\x01 \x01(\x0b\x32\'.policy.attributes.ValueKeyAccessServerR\x14valueKeyAccessServer:\x02\x18\x01\"q\n!AssignPublicKeyToAttributeRequest\x12L\n\rattribute_key\x18\x01 \x01(\x0b\x32\x1f.policy.attributes.AttributeKeyB\x06\xbaH\x03\xc8\x01\x01R\x0c\x61ttributeKey\"j\n\"AssignPublicKeyToAttributeResponse\x12\x44\n\rattribute_key\x18\x01 \x01(\x0b\x32\x1f.policy.attributes.AttributeKeyR\x0c\x61ttributeKey\"s\n#RemovePublicKeyFromAttributeRequest\x12L\n\rattribute_key\x18\x01 \x01(\x0b\x32\x1f.policy.attributes.AttributeKeyB\x06\xbaH\x03\xc8\x01\x01R\x0c\x61ttributeKey\"l\n$RemovePublicKeyFromAttributeResponse\x12\x44\n\rattribute_key\x18\x01 \x01(\x0b\x32\x1f.policy.attributes.AttributeKeyR\x0c\x61ttributeKey\"a\n\x1d\x41ssignPublicKeyToValueRequest\x12@\n\tvalue_key\x18\x01 \x01(\x0b\x32\x1b.policy.attributes.ValueKeyB\x06\xbaH\x03\xc8\x01\x01R\x08valueKey\"Z\n\x1e\x41ssignPublicKeyToValueResponse\x12\x38\n\tvalue_key\x18\x01 \x01(\x0b\x32\x1b.policy.attributes.ValueKeyR\x08valueKey\"c\n\x1fRemovePublicKeyFromValueRequest\x12@\n\tvalue_key\x18\x01 \x01(\x0b\x32\x1b.policy.attributes.ValueKeyB\x06\xbaH\x03\xc8\x01\x01R\x08valueKey\"\\\n RemovePublicKeyFromValueResponse\x12\x38\n\tvalue_key\x18\x01 \x01(\x0b\x32\x1b.policy.attributes.ValueKeyR\x08valueKey2\xf2\x13\n\x11\x41ttributesService\x12j\n\x0eListAttributes\x12(.policy.attributes.ListAttributesRequest\x1a).policy.attributes.ListAttributesResponse\"\x03\x90\x02\x01\x12y\n\x13ListAttributeValues\x12-.policy.attributes.ListAttributeValuesRequest\x1a..policy.attributes.ListAttributeValuesResponse\"\x03\x90\x02\x01\x12\x64\n\x0cGetAttribute\x12&.policy.attributes.GetAttributeRequest\x1a\'.policy.attributes.GetAttributeResponse\"\x03\x90\x02\x01\x12\xa1\x01\n\x18GetAttributeValuesByFqns\x12\x32.policy.attributes.GetAttributeValuesByFqnsRequest\x1a\x33.policy.attributes.GetAttributeValuesByFqnsResponse\"\x1c\x90\x02\x01\x82\xd3\xe4\x93\x02\x13\x12\x11/attributes/*/fqn\x12j\n\x0f\x43reateAttribute\x12).policy.attributes.CreateAttributeRequest\x1a*.policy.attributes.CreateAttributeResponse\"\x00\x12j\n\x0fUpdateAttribute\x12).policy.attributes.UpdateAttributeRequest\x1a*.policy.attributes.UpdateAttributeResponse\"\x00\x12v\n\x13\x44\x65\x61\x63tivateAttribute\x12-.policy.attributes.DeactivateAttributeRequest\x1a..policy.attributes.DeactivateAttributeResponse\"\x00\x12s\n\x11GetAttributeValue\x12+.policy.attributes.GetAttributeValueRequest\x1a,.policy.attributes.GetAttributeValueResponse\"\x03\x90\x02\x01\x12y\n\x14\x43reateAttributeValue\x12..policy.attributes.CreateAttributeValueRequest\x1a/.policy.attributes.CreateAttributeValueResponse\"\x00\x12y\n\x14UpdateAttributeValue\x12..policy.attributes.UpdateAttributeValueRequest\x1a/.policy.attributes.UpdateAttributeValueResponse\"\x00\x12\x85\x01\n\x18\x44\x65\x61\x63tivateAttributeValue\x12\x32.policy.attributes.DeactivateAttributeValueRequest\x1a\x33.policy.attributes.DeactivateAttributeValueResponse\"\x00\x12\xa0\x01\n AssignKeyAccessServerToAttribute\x12:.policy.attributes.AssignKeyAccessServerToAttributeRequest\x1a;.policy.attributes.AssignKeyAccessServerToAttributeResponse\"\x03\x88\x02\x01\x12\xa6\x01\n\"RemoveKeyAccessServerFromAttribute\x12<.policy.attributes.RemoveKeyAccessServerFromAttributeRequest\x1a=.policy.attributes.RemoveKeyAccessServerFromAttributeResponse\"\x03\x88\x02\x01\x12\x94\x01\n\x1c\x41ssignKeyAccessServerToValue\x12\x36.policy.attributes.AssignKeyAccessServerToValueRequest\x1a\x37.policy.attributes.AssignKeyAccessServerToValueResponse\"\x03\x88\x02\x01\x12\x9a\x01\n\x1eRemoveKeyAccessServerFromValue\x12\x38.policy.attributes.RemoveKeyAccessServerFromValueRequest\x1a\x39.policy.attributes.RemoveKeyAccessServerFromValueResponse\"\x03\x88\x02\x01\x12\x8b\x01\n\x1a\x41ssignPublicKeyToAttribute\x12\x34.policy.attributes.AssignPublicKeyToAttributeRequest\x1a\x35.policy.attributes.AssignPublicKeyToAttributeResponse\"\x00\x12\x91\x01\n\x1cRemovePublicKeyFromAttribute\x12\x36.policy.attributes.RemovePublicKeyFromAttributeRequest\x1a\x37.policy.attributes.RemovePublicKeyFromAttributeResponse\"\x00\x12\x7f\n\x16\x41ssignPublicKeyToValue\x12\x30.policy.attributes.AssignPublicKeyToValueRequest\x1a\x31.policy.attributes.AssignPublicKeyToValueResponse\"\x00\x12\x85\x01\n\x18RemovePublicKeyFromValue\x12\x32.policy.attributes.RemovePublicKeyFromValueRequest\x1a\x33.policy.attributes.RemovePublicKeyFromValueResponse\"\x00\x42\x8d\x01\n\x15\x63om.policy.attributesB\x0f\x41ttributesProtoP\x01\xa2\x02\x03PAX\xaa\x02\x11Policy.Attributes\xca\x02\x11Policy\\Attributes\xe2\x02\x1dPolicy\\Attributes\\GPBMetadata\xea\x02\x12Policy::Attributesb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"policy/attributes/attributes.proto\x12\x11policy.attributes\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"\x86\x01\n\x18\x41ttributeKeyAccessServer\x12+\n\x0c\x61ttribute_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0b\x61ttributeId\x12\x39\n\x14key_access_server_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x11keyAccessServerId:\x02\x18\x01\"z\n\x14ValueKeyAccessServer\x12#\n\x08value_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07valueId\x12\x39\n\x14key_access_server_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x11keyAccessServerId:\x02\x18\x01\"b\n\x0c\x41ttributeKey\x12.\n\x0c\x61ttribute_id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xc8\x01\x01R\x0b\x61ttributeId\x12\"\n\x06key_id\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xc8\x01\x01R\x05keyId\"V\n\x08ValueKey\x12&\n\x08value_id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xc8\x01\x01R\x07valueId\x12\"\n\x06key_id\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xc8\x01\x01R\x05keyId\"\x82\x01\n\x0e\x41ttributesSort\x12;\n\x05\x66ield\x18\x01 \x01(\x0e\x32%.policy.attributes.SortAttributesTypeR\x05\x66ield\x12\x33\n\tdirection\x18\x02 \x01(\x0e\x32\x15.policy.SortDirectionR\tdirection\"\xda\x01\n\x15ListAttributesRequest\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x17.common.ActiveStateEnumR\x05state\x12\x1c\n\tnamespace\x18\x02 \x01(\tR\tnamespace\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\x12?\n\x04sort\x18\x0b \x03(\x0b\x32!.policy.attributes.AttributesSortB\x08\xbaH\x05\x92\x01\x02\x10\x01R\x04sort\"\x81\x01\n\x16ListAttributesResponse\x12\x31\n\nattributes\x18\x01 \x03(\x0b\x32\x11.policy.AttributeR\nattributes\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\xbe\x03\n\x13GetAttributeRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\x18\x01\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x02id\x12-\n\x0c\x61ttribute_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x0b\x61ttributeId\x12\x1e\n\x03\x66qn\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03\x66qn:\xaa\x02\xbaH\xa6\x02\x1a\xa2\x01\n\x10\x65xclusive_fields\x12PEither use deprecated \'id\' field or one of \'attribute_id\' or \'fqn\', but not both\x1a\n\x04rule\x18\x03 \x01(\x0e\x32\x1d.policy.AttributeRuleTypeEnumB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x01R\x04rule\x12V\n\x06values\x18\x04 \x03(\tB>\xbaH;\x92\x01\x38\x08\x00\x18\x01\"2r0\x18\xfd\x01\x32+^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$R\x06values\x12\x43\n\x0f\x61llow_traversal\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x0e\x61llowTraversal\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"J\n\x17\x43reateAttributeResponse\x12/\n\tattribute\x18\x01 \x01(\x0b\x32\x11.policy.AttributeR\tattribute\"\xbd\x01\n\x16UpdateAttributeRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"J\n\x17UpdateAttributeResponse\x12/\n\tattribute\x18\x01 \x01(\x0b\x32\x11.policy.AttributeR\tattribute\"6\n\x1a\x44\x65\x61\x63tivateAttributeRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"N\n\x1b\x44\x65\x61\x63tivateAttributeResponse\x12/\n\tattribute\x18\x01 \x01(\x0b\x32\x11.policy.AttributeR\tattribute\"\xab\x03\n\x18GetAttributeValueRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\x18\x01\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x02id\x12%\n\x08value_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x07valueId\x12\x1e\n\x03\x66qn\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03\x66qn:\x9a\x02\xbaH\x96\x02\x1a\x9a\x01\n\x10\x65xclusive_fields\x12LEither use deprecated \'id\' field or one of \'value_id\' or \'fqn\', but not both\x1a\x38!(has(this.id) && (has(this.value_id) || has(this.fqn)))\x1aw\n\x0frequired_fields\x12/Either id or one of value_id or fqn must be set\x1a\x33has(this.id) || has(this.value_id) || has(this.fqn)B\x0c\n\nidentifier\"@\n\x19GetAttributeValueResponse\x12#\n\x05value\x18\x01 \x01(\x0b\x32\r.policy.ValueR\x05value\"\xad\x01\n\x1aListAttributeValuesRequest\x12+\n\x0c\x61ttribute_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0b\x61ttributeId\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x17.common.ActiveStateEnumR\x05state\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\"z\n\x1bListAttributeValuesResponse\x12%\n\x06values\x18\x01 \x03(\x0b\x32\r.policy.ValueR\x06values\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\xc5\x03\n\x1b\x43reateAttributeValueRequest\x12+\n\x0c\x61ttribute_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0b\x61ttributeId\x12\xb4\x02\n\x05value\x18\x02 \x01(\tB\x9d\x02\xbaH\x99\x02r\x03\x18\xfd\x01\xba\x01\x8d\x02\n\x16\x61ttribute_value_format\x12\xb5\x01\x41ttribute value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored attribute value will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x05value\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadataJ\x04\x08\x03\x10\x04R\x07members\"C\n\x1c\x43reateAttributeValueResponse\x12#\n\x05value\x18\x01 \x01(\x0b\x32\r.policy.ValueR\x05value\"\xd1\x01\n\x1bUpdateAttributeValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehaviorJ\x04\x08\x04\x10\x05R\x07members\"C\n\x1cUpdateAttributeValueResponse\x12#\n\x05value\x18\x01 \x01(\x0b\x32\r.policy.ValueR\x05value\";\n\x1f\x44\x65\x61\x63tivateAttributeValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"G\n DeactivateAttributeValueResponse\x12#\n\x05value\x18\x01 \x01(\x0b\x32\r.policy.ValueR\x05value\"T\n\x1fGetAttributeValuesByFqnsRequest\x12\x1f\n\x04\x66qns\x18\x01 \x03(\tB\x0b\xbaH\x08\x92\x01\x05\x08\x01\x10\xfa\x01R\x04\x66qnsJ\x04\x08\x02\x10\x03R\nwith_value\"\x9b\x03\n GetAttributeValuesByFqnsResponse\x12}\n\x14\x66qn_attribute_values\x18\x01 \x03(\x0b\x32K.policy.attributes.GetAttributeValuesByFqnsResponse.FqnAttributeValuesEntryR\x12\x66qnAttributeValues\x1ai\n\x11\x41ttributeAndValue\x12/\n\tattribute\x18\x01 \x01(\x0b\x32\x11.policy.AttributeR\tattribute\x12#\n\x05value\x18\x02 \x01(\x0b\x32\r.policy.ValueR\x05value\x1a\x8c\x01\n\x17\x46qnAttributeValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12[\n\x05value\x18\x02 \x01(\x0b\x32\x45.policy.attributes.GetAttributeValuesByFqnsResponse.AttributeAndValueR\x05value:\x02\x38\x01\"\x99\x01\n\'AssignKeyAccessServerToAttributeRequest\x12j\n\x1b\x61ttribute_key_access_server\x18\x01 \x01(\x0b\x32+.policy.attributes.AttributeKeyAccessServerR\x18\x61ttributeKeyAccessServer:\x02\x18\x01\"\x9a\x01\n(AssignKeyAccessServerToAttributeResponse\x12j\n\x1b\x61ttribute_key_access_server\x18\x01 \x01(\x0b\x32+.policy.attributes.AttributeKeyAccessServerR\x18\x61ttributeKeyAccessServer:\x02\x18\x01\"\x9b\x01\n)RemoveKeyAccessServerFromAttributeRequest\x12j\n\x1b\x61ttribute_key_access_server\x18\x01 \x01(\x0b\x32+.policy.attributes.AttributeKeyAccessServerR\x18\x61ttributeKeyAccessServer:\x02\x18\x01\"\x9c\x01\n*RemoveKeyAccessServerFromAttributeResponse\x12j\n\x1b\x61ttribute_key_access_server\x18\x01 \x01(\x0b\x32+.policy.attributes.AttributeKeyAccessServerR\x18\x61ttributeKeyAccessServer:\x02\x18\x01\"\x89\x01\n#AssignKeyAccessServerToValueRequest\x12^\n\x17value_key_access_server\x18\x01 \x01(\x0b\x32\'.policy.attributes.ValueKeyAccessServerR\x14valueKeyAccessServer:\x02\x18\x01\"\x8a\x01\n$AssignKeyAccessServerToValueResponse\x12^\n\x17value_key_access_server\x18\x01 \x01(\x0b\x32\'.policy.attributes.ValueKeyAccessServerR\x14valueKeyAccessServer:\x02\x18\x01\"\x8b\x01\n%RemoveKeyAccessServerFromValueRequest\x12^\n\x17value_key_access_server\x18\x01 \x01(\x0b\x32\'.policy.attributes.ValueKeyAccessServerR\x14valueKeyAccessServer:\x02\x18\x01\"\x8c\x01\n&RemoveKeyAccessServerFromValueResponse\x12^\n\x17value_key_access_server\x18\x01 \x01(\x0b\x32\'.policy.attributes.ValueKeyAccessServerR\x14valueKeyAccessServer:\x02\x18\x01\"q\n!AssignPublicKeyToAttributeRequest\x12L\n\rattribute_key\x18\x01 \x01(\x0b\x32\x1f.policy.attributes.AttributeKeyB\x06\xbaH\x03\xc8\x01\x01R\x0c\x61ttributeKey\"j\n\"AssignPublicKeyToAttributeResponse\x12\x44\n\rattribute_key\x18\x01 \x01(\x0b\x32\x1f.policy.attributes.AttributeKeyR\x0c\x61ttributeKey\"s\n#RemovePublicKeyFromAttributeRequest\x12L\n\rattribute_key\x18\x01 \x01(\x0b\x32\x1f.policy.attributes.AttributeKeyB\x06\xbaH\x03\xc8\x01\x01R\x0c\x61ttributeKey\"l\n$RemovePublicKeyFromAttributeResponse\x12\x44\n\rattribute_key\x18\x01 \x01(\x0b\x32\x1f.policy.attributes.AttributeKeyR\x0c\x61ttributeKey\"a\n\x1d\x41ssignPublicKeyToValueRequest\x12@\n\tvalue_key\x18\x01 \x01(\x0b\x32\x1b.policy.attributes.ValueKeyB\x06\xbaH\x03\xc8\x01\x01R\x08valueKey\"Z\n\x1e\x41ssignPublicKeyToValueResponse\x12\x38\n\tvalue_key\x18\x01 \x01(\x0b\x32\x1b.policy.attributes.ValueKeyR\x08valueKey\"c\n\x1fRemovePublicKeyFromValueRequest\x12@\n\tvalue_key\x18\x01 \x01(\x0b\x32\x1b.policy.attributes.ValueKeyB\x06\xbaH\x03\xc8\x01\x01R\x08valueKey\"\\\n RemovePublicKeyFromValueResponse\x12\x38\n\tvalue_key\x18\x01 \x01(\x0b\x32\x1b.policy.attributes.ValueKeyR\x08valueKey*\xa3\x01\n\x12SortAttributesType\x12$\n SORT_ATTRIBUTES_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19SORT_ATTRIBUTES_TYPE_NAME\x10\x01\x12#\n\x1fSORT_ATTRIBUTES_TYPE_CREATED_AT\x10\x02\x12#\n\x1fSORT_ATTRIBUTES_TYPE_UPDATED_AT\x10\x03\x32\xf5\x13\n\x11\x41ttributesService\x12j\n\x0eListAttributes\x12(.policy.attributes.ListAttributesRequest\x1a).policy.attributes.ListAttributesResponse\"\x03\x90\x02\x01\x12|\n\x13ListAttributeValues\x12-.policy.attributes.ListAttributeValuesRequest\x1a..policy.attributes.ListAttributeValuesResponse\"\x06\x88\x02\x01\x90\x02\x01\x12\x64\n\x0cGetAttribute\x12&.policy.attributes.GetAttributeRequest\x1a\'.policy.attributes.GetAttributeResponse\"\x03\x90\x02\x01\x12\xa1\x01\n\x18GetAttributeValuesByFqns\x12\x32.policy.attributes.GetAttributeValuesByFqnsRequest\x1a\x33.policy.attributes.GetAttributeValuesByFqnsResponse\"\x1c\x90\x02\x01\x82\xd3\xe4\x93\x02\x13\x12\x11/attributes/*/fqn\x12j\n\x0f\x43reateAttribute\x12).policy.attributes.CreateAttributeRequest\x1a*.policy.attributes.CreateAttributeResponse\"\x00\x12j\n\x0fUpdateAttribute\x12).policy.attributes.UpdateAttributeRequest\x1a*.policy.attributes.UpdateAttributeResponse\"\x00\x12v\n\x13\x44\x65\x61\x63tivateAttribute\x12-.policy.attributes.DeactivateAttributeRequest\x1a..policy.attributes.DeactivateAttributeResponse\"\x00\x12s\n\x11GetAttributeValue\x12+.policy.attributes.GetAttributeValueRequest\x1a,.policy.attributes.GetAttributeValueResponse\"\x03\x90\x02\x01\x12y\n\x14\x43reateAttributeValue\x12..policy.attributes.CreateAttributeValueRequest\x1a/.policy.attributes.CreateAttributeValueResponse\"\x00\x12y\n\x14UpdateAttributeValue\x12..policy.attributes.UpdateAttributeValueRequest\x1a/.policy.attributes.UpdateAttributeValueResponse\"\x00\x12\x85\x01\n\x18\x44\x65\x61\x63tivateAttributeValue\x12\x32.policy.attributes.DeactivateAttributeValueRequest\x1a\x33.policy.attributes.DeactivateAttributeValueResponse\"\x00\x12\xa0\x01\n AssignKeyAccessServerToAttribute\x12:.policy.attributes.AssignKeyAccessServerToAttributeRequest\x1a;.policy.attributes.AssignKeyAccessServerToAttributeResponse\"\x03\x88\x02\x01\x12\xa6\x01\n\"RemoveKeyAccessServerFromAttribute\x12<.policy.attributes.RemoveKeyAccessServerFromAttributeRequest\x1a=.policy.attributes.RemoveKeyAccessServerFromAttributeResponse\"\x03\x88\x02\x01\x12\x94\x01\n\x1c\x41ssignKeyAccessServerToValue\x12\x36.policy.attributes.AssignKeyAccessServerToValueRequest\x1a\x37.policy.attributes.AssignKeyAccessServerToValueResponse\"\x03\x88\x02\x01\x12\x9a\x01\n\x1eRemoveKeyAccessServerFromValue\x12\x38.policy.attributes.RemoveKeyAccessServerFromValueRequest\x1a\x39.policy.attributes.RemoveKeyAccessServerFromValueResponse\"\x03\x88\x02\x01\x12\x8b\x01\n\x1a\x41ssignPublicKeyToAttribute\x12\x34.policy.attributes.AssignPublicKeyToAttributeRequest\x1a\x35.policy.attributes.AssignPublicKeyToAttributeResponse\"\x00\x12\x91\x01\n\x1cRemovePublicKeyFromAttribute\x12\x36.policy.attributes.RemovePublicKeyFromAttributeRequest\x1a\x37.policy.attributes.RemovePublicKeyFromAttributeResponse\"\x00\x12\x7f\n\x16\x41ssignPublicKeyToValue\x12\x30.policy.attributes.AssignPublicKeyToValueRequest\x1a\x31.policy.attributes.AssignPublicKeyToValueResponse\"\x00\x12\x85\x01\n\x18RemovePublicKeyFromValue\x12\x32.policy.attributes.RemovePublicKeyFromValueRequest\x1a\x33.policy.attributes.RemovePublicKeyFromValueResponse\"\x00\x42\x8d\x01\n\x15\x63om.policy.attributesB\x0f\x41ttributesProtoP\x01\xa2\x02\x03PAX\xaa\x02\x11Policy.Attributes\xca\x02\x11Policy\\Attributes\xe2\x02\x1dPolicy\\Attributes\\GPBMetadata\xea\x02\x12Policy::Attributesb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -58,6 +58,8 @@ _globals['_VALUEKEY'].fields_by_name['value_id']._serialized_options = b'\272H\010r\003\260\001\001\310\001\001' _globals['_VALUEKEY'].fields_by_name['key_id']._loaded_options = None _globals['_VALUEKEY'].fields_by_name['key_id']._serialized_options = b'\272H\010r\003\260\001\001\310\001\001' + _globals['_LISTATTRIBUTESREQUEST'].fields_by_name['sort']._loaded_options = None + _globals['_LISTATTRIBUTESREQUEST'].fields_by_name['sort']._serialized_options = b'\272H\005\222\001\002\020\001' _globals['_GETATTRIBUTEREQUEST'].fields_by_name['id']._loaded_options = None _globals['_GETATTRIBUTEREQUEST'].fields_by_name['id']._serialized_options = b'\030\001\272H\010r\003\260\001\001\330\001\001' _globals['_GETATTRIBUTEREQUEST'].fields_by_name['attribute_id']._loaded_options = None @@ -127,7 +129,7 @@ _globals['_ATTRIBUTESSERVICE'].methods_by_name['ListAttributes']._loaded_options = None _globals['_ATTRIBUTESSERVICE'].methods_by_name['ListAttributes']._serialized_options = b'\220\002\001' _globals['_ATTRIBUTESSERVICE'].methods_by_name['ListAttributeValues']._loaded_options = None - _globals['_ATTRIBUTESSERVICE'].methods_by_name['ListAttributeValues']._serialized_options = b'\220\002\001' + _globals['_ATTRIBUTESSERVICE'].methods_by_name['ListAttributeValues']._serialized_options = b'\210\002\001\220\002\001' _globals['_ATTRIBUTESSERVICE'].methods_by_name['GetAttribute']._loaded_options = None _globals['_ATTRIBUTESSERVICE'].methods_by_name['GetAttribute']._serialized_options = b'\220\002\001' _globals['_ATTRIBUTESSERVICE'].methods_by_name['GetAttributeValuesByFqns']._loaded_options = None @@ -142,6 +144,8 @@ _globals['_ATTRIBUTESSERVICE'].methods_by_name['AssignKeyAccessServerToValue']._serialized_options = b'\210\002\001' _globals['_ATTRIBUTESSERVICE'].methods_by_name['RemoveKeyAccessServerFromValue']._loaded_options = None _globals['_ATTRIBUTESSERVICE'].methods_by_name['RemoveKeyAccessServerFromValue']._serialized_options = b'\210\002\001' + _globals['_SORTATTRIBUTESTYPE']._serialized_start=7073 + _globals['_SORTATTRIBUTESTYPE']._serialized_end=7236 _globals['_ATTRIBUTEKEYACCESSSERVER']._serialized_start=216 _globals['_ATTRIBUTEKEYACCESSSERVER']._serialized_end=350 _globals['_VALUEKEYACCESSSERVER']._serialized_start=352 @@ -150,86 +154,88 @@ _globals['_ATTRIBUTEKEY']._serialized_end=574 _globals['_VALUEKEY']._serialized_start=576 _globals['_VALUEKEY']._serialized_end=662 - _globals['_LISTATTRIBUTESREQUEST']._serialized_start=665 - _globals['_LISTATTRIBUTESREQUEST']._serialized_end=818 - _globals['_LISTATTRIBUTESRESPONSE']._serialized_start=821 - _globals['_LISTATTRIBUTESRESPONSE']._serialized_end=950 - _globals['_GETATTRIBUTEREQUEST']._serialized_start=953 - _globals['_GETATTRIBUTEREQUEST']._serialized_end=1399 - _globals['_GETATTRIBUTERESPONSE']._serialized_start=1401 - _globals['_GETATTRIBUTERESPONSE']._serialized_end=1472 - _globals['_CREATEATTRIBUTEREQUEST']._serialized_start=1475 - _globals['_CREATEATTRIBUTEREQUEST']._serialized_end=2124 - _globals['_CREATEATTRIBUTERESPONSE']._serialized_start=2126 - _globals['_CREATEATTRIBUTERESPONSE']._serialized_end=2200 - _globals['_UPDATEATTRIBUTEREQUEST']._serialized_start=2203 - _globals['_UPDATEATTRIBUTEREQUEST']._serialized_end=2392 - _globals['_UPDATEATTRIBUTERESPONSE']._serialized_start=2394 - _globals['_UPDATEATTRIBUTERESPONSE']._serialized_end=2468 - _globals['_DEACTIVATEATTRIBUTEREQUEST']._serialized_start=2470 - _globals['_DEACTIVATEATTRIBUTEREQUEST']._serialized_end=2524 - _globals['_DEACTIVATEATTRIBUTERESPONSE']._serialized_start=2526 - _globals['_DEACTIVATEATTRIBUTERESPONSE']._serialized_end=2604 - _globals['_GETATTRIBUTEVALUEREQUEST']._serialized_start=2607 - _globals['_GETATTRIBUTEVALUEREQUEST']._serialized_end=3034 - _globals['_GETATTRIBUTEVALUERESPONSE']._serialized_start=3036 - _globals['_GETATTRIBUTEVALUERESPONSE']._serialized_end=3100 - _globals['_LISTATTRIBUTEVALUESREQUEST']._serialized_start=3103 - _globals['_LISTATTRIBUTEVALUESREQUEST']._serialized_end=3276 - _globals['_LISTATTRIBUTEVALUESRESPONSE']._serialized_start=3278 - _globals['_LISTATTRIBUTEVALUESRESPONSE']._serialized_end=3400 - _globals['_CREATEATTRIBUTEVALUEREQUEST']._serialized_start=3403 - _globals['_CREATEATTRIBUTEVALUEREQUEST']._serialized_end=3856 - _globals['_CREATEATTRIBUTEVALUERESPONSE']._serialized_start=3858 - _globals['_CREATEATTRIBUTEVALUERESPONSE']._serialized_end=3925 - _globals['_UPDATEATTRIBUTEVALUEREQUEST']._serialized_start=3928 - _globals['_UPDATEATTRIBUTEVALUEREQUEST']._serialized_end=4137 - _globals['_UPDATEATTRIBUTEVALUERESPONSE']._serialized_start=4139 - _globals['_UPDATEATTRIBUTEVALUERESPONSE']._serialized_end=4206 - _globals['_DEACTIVATEATTRIBUTEVALUEREQUEST']._serialized_start=4208 - _globals['_DEACTIVATEATTRIBUTEVALUEREQUEST']._serialized_end=4267 - _globals['_DEACTIVATEATTRIBUTEVALUERESPONSE']._serialized_start=4269 - _globals['_DEACTIVATEATTRIBUTEVALUERESPONSE']._serialized_end=4340 - _globals['_GETATTRIBUTEVALUESBYFQNSREQUEST']._serialized_start=4342 - _globals['_GETATTRIBUTEVALUESBYFQNSREQUEST']._serialized_end=4426 - _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE']._serialized_start=4429 - _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE']._serialized_end=4840 - _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE_ATTRIBUTEANDVALUE']._serialized_start=4592 - _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE_ATTRIBUTEANDVALUE']._serialized_end=4697 - _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE_FQNATTRIBUTEVALUESENTRY']._serialized_start=4700 - _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE_FQNATTRIBUTEVALUESENTRY']._serialized_end=4840 - _globals['_ASSIGNKEYACCESSSERVERTOATTRIBUTEREQUEST']._serialized_start=4843 - _globals['_ASSIGNKEYACCESSSERVERTOATTRIBUTEREQUEST']._serialized_end=4996 - _globals['_ASSIGNKEYACCESSSERVERTOATTRIBUTERESPONSE']._serialized_start=4999 - _globals['_ASSIGNKEYACCESSSERVERTOATTRIBUTERESPONSE']._serialized_end=5153 - _globals['_REMOVEKEYACCESSSERVERFROMATTRIBUTEREQUEST']._serialized_start=5156 - _globals['_REMOVEKEYACCESSSERVERFROMATTRIBUTEREQUEST']._serialized_end=5311 - _globals['_REMOVEKEYACCESSSERVERFROMATTRIBUTERESPONSE']._serialized_start=5314 - _globals['_REMOVEKEYACCESSSERVERFROMATTRIBUTERESPONSE']._serialized_end=5470 - _globals['_ASSIGNKEYACCESSSERVERTOVALUEREQUEST']._serialized_start=5473 - _globals['_ASSIGNKEYACCESSSERVERTOVALUEREQUEST']._serialized_end=5610 - _globals['_ASSIGNKEYACCESSSERVERTOVALUERESPONSE']._serialized_start=5613 - _globals['_ASSIGNKEYACCESSSERVERTOVALUERESPONSE']._serialized_end=5751 - _globals['_REMOVEKEYACCESSSERVERFROMVALUEREQUEST']._serialized_start=5754 - _globals['_REMOVEKEYACCESSSERVERFROMVALUEREQUEST']._serialized_end=5893 - _globals['_REMOVEKEYACCESSSERVERFROMVALUERESPONSE']._serialized_start=5896 - _globals['_REMOVEKEYACCESSSERVERFROMVALUERESPONSE']._serialized_end=6036 - _globals['_ASSIGNPUBLICKEYTOATTRIBUTEREQUEST']._serialized_start=6038 - _globals['_ASSIGNPUBLICKEYTOATTRIBUTEREQUEST']._serialized_end=6151 - _globals['_ASSIGNPUBLICKEYTOATTRIBUTERESPONSE']._serialized_start=6153 - _globals['_ASSIGNPUBLICKEYTOATTRIBUTERESPONSE']._serialized_end=6259 - _globals['_REMOVEPUBLICKEYFROMATTRIBUTEREQUEST']._serialized_start=6261 - _globals['_REMOVEPUBLICKEYFROMATTRIBUTEREQUEST']._serialized_end=6376 - _globals['_REMOVEPUBLICKEYFROMATTRIBUTERESPONSE']._serialized_start=6378 - _globals['_REMOVEPUBLICKEYFROMATTRIBUTERESPONSE']._serialized_end=6486 - _globals['_ASSIGNPUBLICKEYTOVALUEREQUEST']._serialized_start=6488 - _globals['_ASSIGNPUBLICKEYTOVALUEREQUEST']._serialized_end=6585 - _globals['_ASSIGNPUBLICKEYTOVALUERESPONSE']._serialized_start=6587 - _globals['_ASSIGNPUBLICKEYTOVALUERESPONSE']._serialized_end=6677 - _globals['_REMOVEPUBLICKEYFROMVALUEREQUEST']._serialized_start=6679 - _globals['_REMOVEPUBLICKEYFROMVALUEREQUEST']._serialized_end=6778 - _globals['_REMOVEPUBLICKEYFROMVALUERESPONSE']._serialized_start=6780 - _globals['_REMOVEPUBLICKEYFROMVALUERESPONSE']._serialized_end=6872 - _globals['_ATTRIBUTESSERVICE']._serialized_start=6875 - _globals['_ATTRIBUTESSERVICE']._serialized_end=9421 + _globals['_ATTRIBUTESSORT']._serialized_start=665 + _globals['_ATTRIBUTESSORT']._serialized_end=795 + _globals['_LISTATTRIBUTESREQUEST']._serialized_start=798 + _globals['_LISTATTRIBUTESREQUEST']._serialized_end=1016 + _globals['_LISTATTRIBUTESRESPONSE']._serialized_start=1019 + _globals['_LISTATTRIBUTESRESPONSE']._serialized_end=1148 + _globals['_GETATTRIBUTEREQUEST']._serialized_start=1151 + _globals['_GETATTRIBUTEREQUEST']._serialized_end=1597 + _globals['_GETATTRIBUTERESPONSE']._serialized_start=1599 + _globals['_GETATTRIBUTERESPONSE']._serialized_end=1670 + _globals['_CREATEATTRIBUTEREQUEST']._serialized_start=1673 + _globals['_CREATEATTRIBUTEREQUEST']._serialized_end=2322 + _globals['_CREATEATTRIBUTERESPONSE']._serialized_start=2324 + _globals['_CREATEATTRIBUTERESPONSE']._serialized_end=2398 + _globals['_UPDATEATTRIBUTEREQUEST']._serialized_start=2401 + _globals['_UPDATEATTRIBUTEREQUEST']._serialized_end=2590 + _globals['_UPDATEATTRIBUTERESPONSE']._serialized_start=2592 + _globals['_UPDATEATTRIBUTERESPONSE']._serialized_end=2666 + _globals['_DEACTIVATEATTRIBUTEREQUEST']._serialized_start=2668 + _globals['_DEACTIVATEATTRIBUTEREQUEST']._serialized_end=2722 + _globals['_DEACTIVATEATTRIBUTERESPONSE']._serialized_start=2724 + _globals['_DEACTIVATEATTRIBUTERESPONSE']._serialized_end=2802 + _globals['_GETATTRIBUTEVALUEREQUEST']._serialized_start=2805 + _globals['_GETATTRIBUTEVALUEREQUEST']._serialized_end=3232 + _globals['_GETATTRIBUTEVALUERESPONSE']._serialized_start=3234 + _globals['_GETATTRIBUTEVALUERESPONSE']._serialized_end=3298 + _globals['_LISTATTRIBUTEVALUESREQUEST']._serialized_start=3301 + _globals['_LISTATTRIBUTEVALUESREQUEST']._serialized_end=3474 + _globals['_LISTATTRIBUTEVALUESRESPONSE']._serialized_start=3476 + _globals['_LISTATTRIBUTEVALUESRESPONSE']._serialized_end=3598 + _globals['_CREATEATTRIBUTEVALUEREQUEST']._serialized_start=3601 + _globals['_CREATEATTRIBUTEVALUEREQUEST']._serialized_end=4054 + _globals['_CREATEATTRIBUTEVALUERESPONSE']._serialized_start=4056 + _globals['_CREATEATTRIBUTEVALUERESPONSE']._serialized_end=4123 + _globals['_UPDATEATTRIBUTEVALUEREQUEST']._serialized_start=4126 + _globals['_UPDATEATTRIBUTEVALUEREQUEST']._serialized_end=4335 + _globals['_UPDATEATTRIBUTEVALUERESPONSE']._serialized_start=4337 + _globals['_UPDATEATTRIBUTEVALUERESPONSE']._serialized_end=4404 + _globals['_DEACTIVATEATTRIBUTEVALUEREQUEST']._serialized_start=4406 + _globals['_DEACTIVATEATTRIBUTEVALUEREQUEST']._serialized_end=4465 + _globals['_DEACTIVATEATTRIBUTEVALUERESPONSE']._serialized_start=4467 + _globals['_DEACTIVATEATTRIBUTEVALUERESPONSE']._serialized_end=4538 + _globals['_GETATTRIBUTEVALUESBYFQNSREQUEST']._serialized_start=4540 + _globals['_GETATTRIBUTEVALUESBYFQNSREQUEST']._serialized_end=4624 + _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE']._serialized_start=4627 + _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE']._serialized_end=5038 + _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE_ATTRIBUTEANDVALUE']._serialized_start=4790 + _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE_ATTRIBUTEANDVALUE']._serialized_end=4895 + _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE_FQNATTRIBUTEVALUESENTRY']._serialized_start=4898 + _globals['_GETATTRIBUTEVALUESBYFQNSRESPONSE_FQNATTRIBUTEVALUESENTRY']._serialized_end=5038 + _globals['_ASSIGNKEYACCESSSERVERTOATTRIBUTEREQUEST']._serialized_start=5041 + _globals['_ASSIGNKEYACCESSSERVERTOATTRIBUTEREQUEST']._serialized_end=5194 + _globals['_ASSIGNKEYACCESSSERVERTOATTRIBUTERESPONSE']._serialized_start=5197 + _globals['_ASSIGNKEYACCESSSERVERTOATTRIBUTERESPONSE']._serialized_end=5351 + _globals['_REMOVEKEYACCESSSERVERFROMATTRIBUTEREQUEST']._serialized_start=5354 + _globals['_REMOVEKEYACCESSSERVERFROMATTRIBUTEREQUEST']._serialized_end=5509 + _globals['_REMOVEKEYACCESSSERVERFROMATTRIBUTERESPONSE']._serialized_start=5512 + _globals['_REMOVEKEYACCESSSERVERFROMATTRIBUTERESPONSE']._serialized_end=5668 + _globals['_ASSIGNKEYACCESSSERVERTOVALUEREQUEST']._serialized_start=5671 + _globals['_ASSIGNKEYACCESSSERVERTOVALUEREQUEST']._serialized_end=5808 + _globals['_ASSIGNKEYACCESSSERVERTOVALUERESPONSE']._serialized_start=5811 + _globals['_ASSIGNKEYACCESSSERVERTOVALUERESPONSE']._serialized_end=5949 + _globals['_REMOVEKEYACCESSSERVERFROMVALUEREQUEST']._serialized_start=5952 + _globals['_REMOVEKEYACCESSSERVERFROMVALUEREQUEST']._serialized_end=6091 + _globals['_REMOVEKEYACCESSSERVERFROMVALUERESPONSE']._serialized_start=6094 + _globals['_REMOVEKEYACCESSSERVERFROMVALUERESPONSE']._serialized_end=6234 + _globals['_ASSIGNPUBLICKEYTOATTRIBUTEREQUEST']._serialized_start=6236 + _globals['_ASSIGNPUBLICKEYTOATTRIBUTEREQUEST']._serialized_end=6349 + _globals['_ASSIGNPUBLICKEYTOATTRIBUTERESPONSE']._serialized_start=6351 + _globals['_ASSIGNPUBLICKEYTOATTRIBUTERESPONSE']._serialized_end=6457 + _globals['_REMOVEPUBLICKEYFROMATTRIBUTEREQUEST']._serialized_start=6459 + _globals['_REMOVEPUBLICKEYFROMATTRIBUTEREQUEST']._serialized_end=6574 + _globals['_REMOVEPUBLICKEYFROMATTRIBUTERESPONSE']._serialized_start=6576 + _globals['_REMOVEPUBLICKEYFROMATTRIBUTERESPONSE']._serialized_end=6684 + _globals['_ASSIGNPUBLICKEYTOVALUEREQUEST']._serialized_start=6686 + _globals['_ASSIGNPUBLICKEYTOVALUEREQUEST']._serialized_end=6783 + _globals['_ASSIGNPUBLICKEYTOVALUERESPONSE']._serialized_start=6785 + _globals['_ASSIGNPUBLICKEYTOVALUERESPONSE']._serialized_end=6875 + _globals['_REMOVEPUBLICKEYFROMVALUEREQUEST']._serialized_start=6877 + _globals['_REMOVEPUBLICKEYFROMVALUEREQUEST']._serialized_end=6976 + _globals['_REMOVEPUBLICKEYFROMVALUERESPONSE']._serialized_start=6978 + _globals['_REMOVEPUBLICKEYFROMVALUERESPONSE']._serialized_end=7070 + _globals['_ATTRIBUTESSERVICE']._serialized_start=7239 + _globals['_ATTRIBUTESSERVICE']._serialized_end=9788 # @@protoc_insertion_point(module_scope) diff --git a/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.pyi b/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.pyi index 23a01234..0bd67672 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.pyi +++ b/otdf-python-proto/src/otdf_python_proto/policy/attributes/attributes_pb2.pyi @@ -5,6 +5,7 @@ from google.protobuf import wrappers_pb2 as _wrappers_pb2 from policy import objects_pb2 as _objects_pb2 from policy import selectors_pb2 as _selectors_pb2 from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from collections.abc import Iterable as _Iterable, Mapping as _Mapping @@ -12,6 +13,17 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class SortAttributesType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SORT_ATTRIBUTES_TYPE_UNSPECIFIED: _ClassVar[SortAttributesType] + SORT_ATTRIBUTES_TYPE_NAME: _ClassVar[SortAttributesType] + SORT_ATTRIBUTES_TYPE_CREATED_AT: _ClassVar[SortAttributesType] + SORT_ATTRIBUTES_TYPE_UPDATED_AT: _ClassVar[SortAttributesType] +SORT_ATTRIBUTES_TYPE_UNSPECIFIED: SortAttributesType +SORT_ATTRIBUTES_TYPE_NAME: SortAttributesType +SORT_ATTRIBUTES_TYPE_CREATED_AT: SortAttributesType +SORT_ATTRIBUTES_TYPE_UPDATED_AT: SortAttributesType + class AttributeKeyAccessServer(_message.Message): __slots__ = ("attribute_id", "key_access_server_id") ATTRIBUTE_ID_FIELD_NUMBER: _ClassVar[int] @@ -44,15 +56,25 @@ class ValueKey(_message.Message): key_id: str def __init__(self, value_id: _Optional[str] = ..., key_id: _Optional[str] = ...) -> None: ... +class AttributesSort(_message.Message): + __slots__ = ("field", "direction") + FIELD_FIELD_NUMBER: _ClassVar[int] + DIRECTION_FIELD_NUMBER: _ClassVar[int] + field: SortAttributesType + direction: _selectors_pb2.SortDirection + def __init__(self, field: _Optional[_Union[SortAttributesType, str]] = ..., direction: _Optional[_Union[_selectors_pb2.SortDirection, str]] = ...) -> None: ... + class ListAttributesRequest(_message.Message): - __slots__ = ("state", "namespace", "pagination") + __slots__ = ("state", "namespace", "pagination", "sort") STATE_FIELD_NUMBER: _ClassVar[int] NAMESPACE_FIELD_NUMBER: _ClassVar[int] PAGINATION_FIELD_NUMBER: _ClassVar[int] + SORT_FIELD_NUMBER: _ClassVar[int] state: _common_pb2.ActiveStateEnum namespace: str pagination: _selectors_pb2.PageRequest - def __init__(self, state: _Optional[_Union[_common_pb2.ActiveStateEnum, str]] = ..., namespace: _Optional[str] = ..., pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ...) -> None: ... + sort: _containers.RepeatedCompositeFieldContainer[AttributesSort] + def __init__(self, state: _Optional[_Union[_common_pb2.ActiveStateEnum, str]] = ..., namespace: _Optional[str] = ..., pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ..., sort: _Optional[_Iterable[_Union[AttributesSort, _Mapping]]] = ...) -> None: ... class ListAttributesResponse(_message.Message): __slots__ = ("attributes", "pagination") diff --git a/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py b/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py index 82db3cc2..61b6e0de 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.py @@ -29,7 +29,7 @@ from policy import selectors_pb2 as policy_dot_selectors__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3policy/kasregistry/key_access_server_registry.proto\x12\x12policy.kasregistry\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"\xe4\x03\n\x19GetKeyAccessServerRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\x18\x01\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x02id\x12!\n\x06kas_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x05kasId\x12\x1d\n\x04name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x04name\x12\x1e\n\x03uri\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03uri:\xb7\x02\xbaH\xb3\x02\x1a\xa8\x01\n\x10\x65xclusive_fields\x12JEither use deprecated \'id\' field or one of \'kas_id\' or \'uri\', but not both\x1aH!(has(this.id) && (has(this.kas_id) || has(this.uri) || has(this.name)))\x1a\x85\x01\n\x0frequired_fields\x12-Either id or one of kas_id or uri must be set\x1a\x43has(this.id) || has(this.kas_id) || has(this.uri) || has(this.name)B\x0c\n\nidentifier\"a\n\x1aGetKeyAccessServerResponse\x12\x43\n\x11key_access_server\x18\x01 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x0fkeyAccessServer\"R\n\x1bListKeyAccessServersRequest\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\"\x9b\x01\n\x1cListKeyAccessServersResponse\x12\x45\n\x12key_access_servers\x18\x01 \x03(\x0b\x32\x17.policy.KeyAccessServerR\x10keyAccessServers\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\x95\x06\n\x1c\x43reateKeyAccessServerRequest\x12\x87\x02\n\x03uri\x18\x01 \x01(\tB\xf4\x01\xbaH\xf0\x01\xba\x01\xec\x01\n\nuri_format\x12\xcf\x01URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\x1a\x0cthis.isUri()R\x03uri\x12\x30\n\npublic_key\x18\x02 \x01(\x0b\x32\x11.policy.PublicKeyR\tpublicKey\x12@\n\x0bsource_type\x18\x03 \x01(\x0e\x32\x12.policy.SourceTypeB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x00R\nsourceType\x12\xc1\x02\n\x04name\x18\x14 \x01(\tB\xac\x02\xbaH\xa8\x02r\x03\x18\xfd\x01\xba\x01\x9c\x02\n\x0fkas_name_format\x12\xb3\x01Registered KAS name must be an alphanumeric string, allowing hyphens, and underscores but not as the first or last character. The stored KAS name will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"d\n\x1d\x43reateKeyAccessServerResponse\x12\x43\n\x11key_access_server\x18\x01 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x0fkeyAccessServer\"\xa5\x07\n\x1cUpdateKeyAccessServerRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xac\x02\n\x03uri\x18\x02 \x01(\tB\x99\x02\xbaH\x95\x02\xba\x01\x91\x02\n\x13optional_uri_format\x12\xd8\x01Optional URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\x1a\x1fsize(this) == 0 || this.isUri()R\x03uri\x12\x30\n\npublic_key\x18\x03 \x01(\x0b\x32\x11.policy.PublicKeyR\tpublicKey\x12@\n\x0bsource_type\x18\x04 \x01(\x0e\x32\x12.policy.SourceTypeB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x00R\nsourceType\x12\xbc\x02\n\x04name\x18\x14 \x01(\tB\xa7\x02\xbaH\xa3\x02r\x03\x18\xfd\x01\xba\x01\x97\x02\n\x0fkas_name_format\x12\xb3\x01Registered KAS name must be an alphanumeric string, allowing hyphens, and underscores but not as the first or last character. The stored KAS name will be normalized to lower case.\x1aNsize(this) == 0 || this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x00R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"d\n\x1dUpdateKeyAccessServerResponse\x12\x43\n\x11key_access_server\x18\x01 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x0fkeyAccessServer\"8\n\x1c\x44\x65leteKeyAccessServerRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"d\n\x1d\x44\x65leteKeyAccessServerResponse\x12\x43\n\x11key_access_server\x18\x01 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x0fkeyAccessServer\"7\n\x13GrantedPolicyObject\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03\x66qn\x18\x02 \x01(\tR\x03\x66qn\"\xd0\x02\n\x15KeyAccessServerGrants\x12\x43\n\x11key_access_server\x18\x01 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x0fkeyAccessServer\x12R\n\x10namespace_grants\x18\x02 \x03(\x0b\x32\'.policy.kasregistry.GrantedPolicyObjectR\x0fnamespaceGrants\x12R\n\x10\x61ttribute_grants\x18\x03 \x03(\x0b\x32\'.policy.kasregistry.GrantedPolicyObjectR\x0f\x61ttributeGrants\x12J\n\x0cvalue_grants\x18\x04 \x03(\x0b\x32\'.policy.kasregistry.GrantedPolicyObjectR\x0bvalueGrants\"\x9e\x01\n\x16\x43reatePublicKeyRequest\x12\x1f\n\x06kas_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x05kasId\x12.\n\x03key\x18\x02 \x01(\x0b\x32\x14.policy.KasPublicKeyB\x06\xbaH\x03\xc8\x01\x01R\x03key\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"8\n\x17\x43reatePublicKeyResponse\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\"?\n\x13GetPublicKeyRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02idB\x0c\n\nidentifier\"5\n\x14GetPublicKeyResponse\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\"\xca\x01\n\x15ListPublicKeysRequest\x12!\n\x06kas_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x05kasId\x12$\n\x08kas_name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x07kasName\x12%\n\x07kas_uri\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x06kasUri\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npaginationB\x0c\n\nkas_filter\"o\n\x16ListPublicKeysResponse\x12\x1f\n\x04keys\x18\x01 \x03(\x0b\x32\x0b.policy.KeyR\x04keys\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\x81\x02\n\x1bListPublicKeyMappingRequest\x12!\n\x06kas_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x05kasId\x12$\n\x08kas_name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x07kasName\x12%\n\x07kas_uri\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x06kasUri\x12/\n\rpublic_key_id\x18\x04 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x0bpublicKeyId\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npaginationB\x0c\n\nkas_filter\"\xf6\x05\n\x1cListPublicKeyMappingResponse\x12q\n\x13public_key_mappings\x18\x01 \x03(\x0b\x32\x41.policy.kasregistry.ListPublicKeyMappingResponse.PublicKeyMappingR\x11publicKeyMappings\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\x1a\xba\x01\n\x10PublicKeyMapping\x12\x15\n\x06kas_id\x18\x02 \x01(\tR\x05kasId\x12\x19\n\x08kas_name\x18\x03 \x01(\tR\x07kasName\x12\x17\n\x07kas_uri\x18\x04 \x01(\tR\x06kasUri\x12[\n\x0bpublic_keys\x18\x05 \x03(\x0b\x32:.policy.kasregistry.ListPublicKeyMappingResponse.PublicKeyR\npublicKeys\x1a\xbe\x02\n\tPublicKey\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\x12T\n\x06values\x18\x06 \x03(\x0b\x32<.policy.kasregistry.ListPublicKeyMappingResponse.AssociationR\x06values\x12^\n\x0b\x64\x65\x66initions\x18\x07 \x03(\x0b\x32<.policy.kasregistry.ListPublicKeyMappingResponse.AssociationR\x0b\x64\x65\x66initions\x12\\\n\nnamespaces\x18\x08 \x03(\x0b\x32<.policy.kasregistry.ListPublicKeyMappingResponse.AssociationR\nnamespaces\x1a/\n\x0b\x41ssociation\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03\x66qn\x18\x02 \x01(\tR\x03\x66qn\"\xbd\x01\n\x16UpdatePublicKeyRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"8\n\x17UpdatePublicKeyResponse\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\"6\n\x1a\x44\x65\x61\x63tivatePublicKeyRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"<\n\x1b\x44\x65\x61\x63tivatePublicKeyResponse\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\"4\n\x18\x41\x63tivatePublicKeyRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\":\n\x19\x41\x63tivatePublicKeyResponse\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\"\xa5\x07\n ListKeyAccessServerGrantsRequest\x12\xcb\x01\n\x06kas_id\x18\x01 \x01(\tB\xb3\x01\xbaH\xaf\x01\xba\x01\xab\x01\n\x14optional_uuid_format\x12#Optional field must be a valid UUID\x1ansize(this) == 0 || this.matches(\'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\')R\x05kasId\x12\xb3\x02\n\x07kas_uri\x18\x02 \x01(\tB\x99\x02\xbaH\x95\x02\xba\x01\x91\x02\n\x13optional_uri_format\x12\xd8\x01Optional URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\x1a\x1fsize(this) == 0 || this.isUri()R\x06kasUri\x12\xc3\x02\n\x08kas_name\x18\x03 \x01(\tB\xa7\x02\xbaH\xa3\x02r\x03\x18\xfd\x01\xba\x01\x97\x02\n\x0fkas_name_format\x12\xb3\x01Registered KAS name must be an alphanumeric string, allowing hyphens, and underscores but not as the first or last character. The stored KAS name will be normalized to lower case.\x1aNsize(this) == 0 || this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x00R\x07kasName\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination:\x02\x18\x01\"\xa4\x01\n!ListKeyAccessServerGrantsResponse\x12\x45\n\x06grants\x18\x01 \x03(\x0b\x32).policy.kasregistry.KeyAccessServerGrantsB\x02\x18\x01R\x06grants\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination:\x02\x18\x01\"\xcc\x0c\n\x10\x43reateKeyRequest\x12\x1f\n\x06kas_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x05kasId\x12\x1e\n\x06key_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05keyId\x12\xa4\x01\n\rkey_algorithm\x18\x03 \x01(\x0e\x32\x11.policy.AlgorithmBl\xbaHi\xba\x01\x66\n\x15key_algorithm_defined\x12\x34The key_algorithm must be one of the defined values.\x1a\x17this in [1, 2, 3, 4, 5]R\x0ckeyAlgorithm\x12\x93\x01\n\x08key_mode\x18\x04 \x01(\x0e\x32\x0f.policy.KeyModeBg\xbaHd\xba\x01\x61\n\x10key_mode_defined\x12\x35The key_mode must be one of the defined values (1-4).\x1a\x16this >= 1 && this <= 4R\x07keyMode\x12\x42\n\x0epublic_key_ctx\x18\x05 \x01(\x0b\x32\x14.policy.PublicKeyCtxB\x06\xbaH\x03\xc8\x01\x01R\x0cpublicKeyCtx\x12=\n\x0fprivate_key_ctx\x18\x06 \x01(\x0b\x32\x15.policy.PrivateKeyCtxR\rprivateKeyCtx\x12,\n\x12provider_config_id\x18\x07 \x01(\tR\x10providerConfigId\x12\x16\n\x06legacy\x18\x08 \x01(\x08R\x06legacy\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:\xbb\x07\xbaH\xb7\x07\x1a\x97\x03\n#private_key_ctx_optionally_required\x12\xbc\x01The wrapped_key is required if key_mode is KEY_MODE_CONFIG_ROOT_KEY or KEY_MODE_PROVIDER_ROOT_KEY. The wrapped_key must be empty if key_mode is KEY_MODE_REMOTE or KEY_MODE_PUBLIC_KEY_ONLY.\x1a\xb0\x01((this.key_mode == 1 || this.key_mode == 2) && this.private_key_ctx.wrapped_key != \'\') || ((this.key_mode == 3 || this.key_mode == 4) && this.private_key_ctx.wrapped_key == \'\')\x1a\xf4\x02\n&provider_config_id_optionally_required\x12\xa8\x01Provider config id is required if key_mode is KEY_MODE_PROVIDER_ROOT_KEY or KEY_MODE_REMOTE. It must be empty for KEY_MODE_CONFIG_ROOT_KEY and KEY_MODE_PUBLIC_KEY_ONLY.\x1a\x9e\x01((this.key_mode == 1 || this.key_mode == 4) && this.provider_config_id == \'\') || ((this.key_mode == 2 || this.key_mode == 3) && this.provider_config_id != \'\')\x1a\xa3\x01\n#private_key_ctx_for_public_key_only\x12Hprivate_key_ctx must not be set if key_mode is KEY_MODE_PUBLIC_KEY_ONLY.\x1a\x32!(this.key_mode == 4 && has(this.private_key_ctx))\"<\n\x11\x43reateKeyResponse\x12\'\n\x07kas_key\x18\x01 \x01(\x0b\x32\x0e.policy.KasKeyR\x06kasKey\"z\n\rGetKeyRequest\x12\x1a\n\x02id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\x38\n\x03key\x18\x03 \x01(\x0b\x32$.policy.kasregistry.KasKeyIdentifierH\x00R\x03keyB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"9\n\x0eGetKeyResponse\x12\'\n\x07kas_key\x18\x01 \x01(\x0b\x32\x0e.policy.KasKeyR\x06kasKey\"\x96\x03\n\x0fListKeysRequest\x12\xa7\x01\n\rkey_algorithm\x18\x01 \x01(\x0e\x32\x11.policy.AlgorithmBo\xbaHl\xba\x01i\n\x15key_algorithm_defined\x12\x34The key_algorithm must be one of the defined values.\x1a\x1athis in [0, 1, 2, 3, 4, 5]R\x0ckeyAlgorithm\x12!\n\x06kas_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x05kasId\x12$\n\x08kas_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x07kasName\x12%\n\x07kas_uri\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x06kasUri\x12\x1b\n\x06legacy\x18\x08 \x01(\x08H\x01R\x06legacy\x88\x01\x01\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npaginationB\x0c\n\nkas_filterB\t\n\x07_legacy\"s\n\x10ListKeysResponse\x12)\n\x08kas_keys\x18\x01 \x03(\x0b\x32\x0e.policy.KasKeyR\x07kasKeys\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\x86\x03\n\x10UpdateKeyRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior:\xcc\x01\xbaH\xc8\x01\x1a\xc5\x01\n\x18metadata_update_behavior\x12RMetadata update behavior must be either APPEND or REPLACE, when updating metadata.\x1aU((!has(this.metadata)) || (has(this.metadata) && this.metadata_update_behavior != 0))\"<\n\x11UpdateKeyResponse\x12\'\n\x07kas_key\x18\x01 \x01(\x0b\x32\x0e.policy.KasKeyR\x06kasKey\"\xa4\x01\n\x10KasKeyIdentifier\x12!\n\x06kas_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x05kasId\x12\x1d\n\x04name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x04name\x12\x1e\n\x03uri\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03uri\x12\x19\n\x03kid\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x03kidB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"\xe5\x0e\n\x10RotateKeyRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\x38\n\x03key\x18\x02 \x01(\x0b\x32$.policy.kasregistry.KasKeyIdentifierH\x00R\x03key\x12\x44\n\x07new_key\x18\x03 \x01(\x0b\x32+.policy.kasregistry.RotateKeyRequest.NewKeyR\x06newKey\x1a\xcf\x04\n\x06NewKey\x12\x1e\n\x06key_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05keyId\x12\x9d\x01\n\talgorithm\x18\x02 \x01(\x0e\x32\x11.policy.AlgorithmBl\xbaHi\xba\x01\x66\n\x15key_algorithm_defined\x12\x34The key_algorithm must be one of the defined values.\x1a\x17this in [1, 2, 3, 4, 5]R\talgorithm\x12\x9e\x01\n\x08key_mode\x18\x03 \x01(\x0e\x32\x0f.policy.KeyModeBr\xbaHo\x82\x01\x02\x10\x01\xba\x01g\n\x14new_key_mode_defined\x12\x39The new key_mode must be one of the defined values (1-4).\x1a\x14this in [1, 2, 3, 4]R\x07keyMode\x12\x42\n\x0epublic_key_ctx\x18\x04 \x01(\x0b\x32\x14.policy.PublicKeyCtxB\x06\xbaH\x03\xc8\x01\x01R\x0cpublicKeyCtx\x12=\n\x0fprivate_key_ctx\x18\x05 \x01(\x0b\x32\x15.policy.PrivateKeyCtxR\rprivateKeyCtx\x12,\n\x12provider_config_id\x18\x06 \x01(\tR\x10providerConfigId\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:\xcd\x08\xbaH\xc9\x08\x1a\xd8\x03\n#private_key_ctx_optionally_required\x12\xcd\x01\x46or the new key, the wrapped_key is required if key_mode is KEY_MODE_CONFIG_ROOT_KEY or KEY_MODE_PROVIDER_ROOT_KEY. The wrapped_key must be empty if key_mode is KEY_MODE_REMOTE or KEY_MODE_PUBLIC_KEY_ONLY.\x1a\xe0\x01((this.new_key.key_mode == 1 || this.new_key.key_mode == 2) && this.new_key.private_key_ctx.wrapped_key != \'\') || ((this.new_key.key_mode == 3 || this.new_key.key_mode == 4) && this.new_key.private_key_ctx.wrapped_key == \'\')\x1a\xb5\x03\n&provider_config_id_optionally_required\x12\xb9\x01\x46or the new key, provider config id is required if key_mode is KEY_MODE_PROVIDER_ROOT_KEY or KEY_MODE_REMOTE. It must be empty for KEY_MODE_CONFIG_ROOT_KEY and KEY_MODE_PUBLIC_KEY_ONLY.\x1a\xce\x01((this.new_key.key_mode == 1 || this.new_key.key_mode == 4) && this.new_key.provider_config_id == \'\') || ((this.new_key.key_mode == 2 || this.new_key.key_mode == 3) && this.new_key.provider_config_id != \'\')\x1a\xb3\x01\n#private_key_ctx_for_public_key_only\x12Hprivate_key_ctx must not be set if key_mode is KEY_MODE_PUBLIC_KEY_ONLY.\x1a\x42!(this.new_key.key_mode == 4 && has(this.new_key.private_key_ctx))B\x13\n\nactive_key\x12\x05\xbaH\x02\x08\x01\"2\n\x0e\x43hangeMappings\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03\x66qn\x18\x02 \x01(\tR\x03\x66qn\"\xe3\x02\n\x10RotatedResources\x12\x36\n\x0frotated_out_key\x18\x01 \x01(\x0b\x32\x0e.policy.KasKeyR\rrotatedOutKey\x12\x66\n\x1d\x61ttribute_definition_mappings\x18\x02 \x03(\x0b\x32\".policy.kasregistry.ChangeMappingsR\x1b\x61ttributeDefinitionMappings\x12\\\n\x18\x61ttribute_value_mappings\x18\x03 \x03(\x0b\x32\".policy.kasregistry.ChangeMappingsR\x16\x61ttributeValueMappings\x12Q\n\x12namespace_mappings\x18\x04 \x03(\x0b\x32\".policy.kasregistry.ChangeMappingsR\x11namespaceMappings\"\x8f\x01\n\x11RotateKeyResponse\x12\'\n\x07kas_key\x18\x01 \x01(\x0b\x32\x0e.policy.KasKeyR\x06kasKey\x12Q\n\x11rotated_resources\x18\x02 \x01(\x0b\x32$.policy.kasregistry.RotatedResourcesR\x10rotatedResources\"~\n\x11SetBaseKeyRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\x38\n\x03key\x18\x02 \x01(\x0b\x32$.policy.kasregistry.KasKeyIdentifierH\x00R\x03keyB\x13\n\nactive_key\x12\x05\xbaH\x02\x08\x01\"\x13\n\x11GetBaseKeyRequest\"E\n\x12GetBaseKeyResponse\x12/\n\x08\x62\x61se_key\x18\x01 \x01(\x0b\x32\x14.policy.SimpleKasKeyR\x07\x62\x61seKey\"\x8e\x01\n\x12SetBaseKeyResponse\x12\x36\n\x0cnew_base_key\x18\x01 \x01(\x0b\x32\x14.policy.SimpleKasKeyR\nnewBaseKey\x12@\n\x11previous_base_key\x18\x02 \x01(\x0b\x32\x14.policy.SimpleKasKeyR\x0fpreviousBaseKey\"6\n\x12MappedPolicyObject\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03\x66qn\x18\x02 \x01(\tR\x03\x66qn\"\xb4\x02\n\nKeyMapping\x12\x10\n\x03kid\x18\x01 \x01(\tR\x03kid\x12\x17\n\x07kas_uri\x18\x02 \x01(\tR\x06kasUri\x12U\n\x12namespace_mappings\x18\x03 \x03(\x0b\x32&.policy.kasregistry.MappedPolicyObjectR\x11namespaceMappings\x12U\n\x12\x61ttribute_mappings\x18\x04 \x03(\x0b\x32&.policy.kasregistry.MappedPolicyObjectR\x11\x61ttributeMappings\x12M\n\x0evalue_mappings\x18\x05 \x03(\x0b\x32&.policy.kasregistry.MappedPolicyObjectR\rvalueMappings\"\xb8\x01\n\x16ListKeyMappingsRequest\x12\x1a\n\x02id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\x38\n\x03key\x18\x03 \x01(\x0b\x32$.policy.kasregistry.KasKeyIdentifierH\x00R\x03key\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npaginationB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x00\"\x92\x01\n\x17ListKeyMappingsResponse\x12\x41\n\x0ckey_mappings\x18\x01 \x03(\x0b\x32\x1e.policy.kasregistry.KeyMappingR\x0bkeyMappings\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination2\xb5\x0c\n\x1eKeyAccessServerRegistryService\x12\x99\x01\n\x14ListKeyAccessServers\x12/.policy.kasregistry.ListKeyAccessServersRequest\x1a\x30.policy.kasregistry.ListKeyAccessServersResponse\"\x1e\x90\x02\x01\x82\xd3\xe4\x93\x02\x15\x12\x13/key-access-servers\x12x\n\x12GetKeyAccessServer\x12-.policy.kasregistry.GetKeyAccessServerRequest\x1a..policy.kasregistry.GetKeyAccessServerResponse\"\x03\x90\x02\x01\x12~\n\x15\x43reateKeyAccessServer\x12\x30.policy.kasregistry.CreateKeyAccessServerRequest\x1a\x31.policy.kasregistry.CreateKeyAccessServerResponse\"\x00\x12~\n\x15UpdateKeyAccessServer\x12\x30.policy.kasregistry.UpdateKeyAccessServerRequest\x1a\x31.policy.kasregistry.UpdateKeyAccessServerResponse\"\x00\x12~\n\x15\x44\x65leteKeyAccessServer\x12\x30.policy.kasregistry.DeleteKeyAccessServerRequest\x1a\x31.policy.kasregistry.DeleteKeyAccessServerResponse\"\x00\x12\x90\x01\n\x19ListKeyAccessServerGrants\x12\x34.policy.kasregistry.ListKeyAccessServerGrantsRequest\x1a\x35.policy.kasregistry.ListKeyAccessServerGrantsResponse\"\x06\x88\x02\x01\x90\x02\x01\x12Z\n\tCreateKey\x12$.policy.kasregistry.CreateKeyRequest\x1a%.policy.kasregistry.CreateKeyResponse\"\x00\x12Q\n\x06GetKey\x12!.policy.kasregistry.GetKeyRequest\x1a\".policy.kasregistry.GetKeyResponse\"\x00\x12W\n\x08ListKeys\x12#.policy.kasregistry.ListKeysRequest\x1a$.policy.kasregistry.ListKeysResponse\"\x00\x12Z\n\tUpdateKey\x12$.policy.kasregistry.UpdateKeyRequest\x1a%.policy.kasregistry.UpdateKeyResponse\"\x00\x12Z\n\tRotateKey\x12$.policy.kasregistry.RotateKeyRequest\x1a%.policy.kasregistry.RotateKeyResponse\"\x00\x12]\n\nSetBaseKey\x12%.policy.kasregistry.SetBaseKeyRequest\x1a&.policy.kasregistry.SetBaseKeyResponse\"\x00\x12]\n\nGetBaseKey\x12%.policy.kasregistry.GetBaseKeyRequest\x1a&.policy.kasregistry.GetBaseKeyResponse\"\x00\x12l\n\x0fListKeyMappings\x12*.policy.kasregistry.ListKeyMappingsRequest\x1a+.policy.kasregistry.ListKeyMappingsResponse\"\x00\x42\x9f\x01\n\x16\x63om.policy.kasregistryB\x1cKeyAccessServerRegistryProtoP\x01\xa2\x02\x03PKX\xaa\x02\x12Policy.Kasregistry\xca\x02\x12Policy\\Kasregistry\xe2\x02\x1ePolicy\\Kasregistry\\GPBMetadata\xea\x02\x13Policy::Kasregistryb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3policy/kasregistry/key_access_server_registry.proto\x12\x12policy.kasregistry\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"\xe4\x03\n\x19GetKeyAccessServerRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\x18\x01\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x02id\x12!\n\x06kas_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x05kasId\x12\x1d\n\x04name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x04name\x12\x1e\n\x03uri\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03uri:\xb7\x02\xbaH\xb3\x02\x1a\xa8\x01\n\x10\x65xclusive_fields\x12JEither use deprecated \'id\' field or one of \'kas_id\' or \'uri\', but not both\x1aH!(has(this.id) && (has(this.kas_id) || has(this.uri) || has(this.name)))\x1a\x85\x01\n\x0frequired_fields\x12-Either id or one of kas_id or uri must be set\x1a\x43has(this.id) || has(this.kas_id) || has(this.uri) || has(this.name)B\x0c\n\nidentifier\"a\n\x1aGetKeyAccessServerResponse\x12\x43\n\x11key_access_server\x18\x01 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x0fkeyAccessServer\"\x8f\x01\n\x14KeyAccessServersSort\x12\x42\n\x05\x66ield\x18\x01 \x01(\x0e\x32,.policy.kasregistry.SortKeyAccessServersTypeR\x05\x66ield\x12\x33\n\tdirection\x18\x02 \x01(\x0e\x32\x15.policy.SortDirectionR\tdirection\"\x9a\x01\n\x1bListKeyAccessServersRequest\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\x12\x46\n\x04sort\x18\x0b \x03(\x0b\x32(.policy.kasregistry.KeyAccessServersSortB\x08\xbaH\x05\x92\x01\x02\x10\x01R\x04sort\"\x9b\x01\n\x1cListKeyAccessServersResponse\x12\x45\n\x12key_access_servers\x18\x01 \x03(\x0b\x32\x17.policy.KeyAccessServerR\x10keyAccessServers\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\x95\x06\n\x1c\x43reateKeyAccessServerRequest\x12\x87\x02\n\x03uri\x18\x01 \x01(\tB\xf4\x01\xbaH\xf0\x01\xba\x01\xec\x01\n\nuri_format\x12\xcf\x01URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\x1a\x0cthis.isUri()R\x03uri\x12\x30\n\npublic_key\x18\x02 \x01(\x0b\x32\x11.policy.PublicKeyR\tpublicKey\x12@\n\x0bsource_type\x18\x03 \x01(\x0e\x32\x12.policy.SourceTypeB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x00R\nsourceType\x12\xc1\x02\n\x04name\x18\x14 \x01(\tB\xac\x02\xbaH\xa8\x02r\x03\x18\xfd\x01\xba\x01\x9c\x02\n\x0fkas_name_format\x12\xb3\x01Registered KAS name must be an alphanumeric string, allowing hyphens, and underscores but not as the first or last character. The stored KAS name will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"d\n\x1d\x43reateKeyAccessServerResponse\x12\x43\n\x11key_access_server\x18\x01 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x0fkeyAccessServer\"\xa5\x07\n\x1cUpdateKeyAccessServerRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xac\x02\n\x03uri\x18\x02 \x01(\tB\x99\x02\xbaH\x95\x02\xba\x01\x91\x02\n\x13optional_uri_format\x12\xd8\x01Optional URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\x1a\x1fsize(this) == 0 || this.isUri()R\x03uri\x12\x30\n\npublic_key\x18\x03 \x01(\x0b\x32\x11.policy.PublicKeyR\tpublicKey\x12@\n\x0bsource_type\x18\x04 \x01(\x0e\x32\x12.policy.SourceTypeB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x00R\nsourceType\x12\xbc\x02\n\x04name\x18\x14 \x01(\tB\xa7\x02\xbaH\xa3\x02r\x03\x18\xfd\x01\xba\x01\x97\x02\n\x0fkas_name_format\x12\xb3\x01Registered KAS name must be an alphanumeric string, allowing hyphens, and underscores but not as the first or last character. The stored KAS name will be normalized to lower case.\x1aNsize(this) == 0 || this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x00R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"d\n\x1dUpdateKeyAccessServerResponse\x12\x43\n\x11key_access_server\x18\x01 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x0fkeyAccessServer\"8\n\x1c\x44\x65leteKeyAccessServerRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"d\n\x1d\x44\x65leteKeyAccessServerResponse\x12\x43\n\x11key_access_server\x18\x01 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x0fkeyAccessServer\"7\n\x13GrantedPolicyObject\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03\x66qn\x18\x02 \x01(\tR\x03\x66qn\"\xd0\x02\n\x15KeyAccessServerGrants\x12\x43\n\x11key_access_server\x18\x01 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x0fkeyAccessServer\x12R\n\x10namespace_grants\x18\x02 \x03(\x0b\x32\'.policy.kasregistry.GrantedPolicyObjectR\x0fnamespaceGrants\x12R\n\x10\x61ttribute_grants\x18\x03 \x03(\x0b\x32\'.policy.kasregistry.GrantedPolicyObjectR\x0f\x61ttributeGrants\x12J\n\x0cvalue_grants\x18\x04 \x03(\x0b\x32\'.policy.kasregistry.GrantedPolicyObjectR\x0bvalueGrants\"\x9e\x01\n\x16\x43reatePublicKeyRequest\x12\x1f\n\x06kas_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x05kasId\x12.\n\x03key\x18\x02 \x01(\x0b\x32\x14.policy.KasPublicKeyB\x06\xbaH\x03\xc8\x01\x01R\x03key\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"8\n\x17\x43reatePublicKeyResponse\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\"?\n\x13GetPublicKeyRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02idB\x0c\n\nidentifier\"5\n\x14GetPublicKeyResponse\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\"\xca\x01\n\x15ListPublicKeysRequest\x12!\n\x06kas_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x05kasId\x12$\n\x08kas_name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x07kasName\x12%\n\x07kas_uri\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x06kasUri\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npaginationB\x0c\n\nkas_filter\"o\n\x16ListPublicKeysResponse\x12\x1f\n\x04keys\x18\x01 \x03(\x0b\x32\x0b.policy.KeyR\x04keys\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\x81\x02\n\x1bListPublicKeyMappingRequest\x12!\n\x06kas_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x05kasId\x12$\n\x08kas_name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x07kasName\x12%\n\x07kas_uri\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x06kasUri\x12/\n\rpublic_key_id\x18\x04 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x0bpublicKeyId\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npaginationB\x0c\n\nkas_filter\"\xf6\x05\n\x1cListPublicKeyMappingResponse\x12q\n\x13public_key_mappings\x18\x01 \x03(\x0b\x32\x41.policy.kasregistry.ListPublicKeyMappingResponse.PublicKeyMappingR\x11publicKeyMappings\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\x1a\xba\x01\n\x10PublicKeyMapping\x12\x15\n\x06kas_id\x18\x02 \x01(\tR\x05kasId\x12\x19\n\x08kas_name\x18\x03 \x01(\tR\x07kasName\x12\x17\n\x07kas_uri\x18\x04 \x01(\tR\x06kasUri\x12[\n\x0bpublic_keys\x18\x05 \x03(\x0b\x32:.policy.kasregistry.ListPublicKeyMappingResponse.PublicKeyR\npublicKeys\x1a\xbe\x02\n\tPublicKey\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\x12T\n\x06values\x18\x06 \x03(\x0b\x32<.policy.kasregistry.ListPublicKeyMappingResponse.AssociationR\x06values\x12^\n\x0b\x64\x65\x66initions\x18\x07 \x03(\x0b\x32<.policy.kasregistry.ListPublicKeyMappingResponse.AssociationR\x0b\x64\x65\x66initions\x12\\\n\nnamespaces\x18\x08 \x03(\x0b\x32<.policy.kasregistry.ListPublicKeyMappingResponse.AssociationR\nnamespaces\x1a/\n\x0b\x41ssociation\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03\x66qn\x18\x02 \x01(\tR\x03\x66qn\"\xbd\x01\n\x16UpdatePublicKeyRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"8\n\x17UpdatePublicKeyResponse\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\"6\n\x1a\x44\x65\x61\x63tivatePublicKeyRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"<\n\x1b\x44\x65\x61\x63tivatePublicKeyResponse\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\"4\n\x18\x41\x63tivatePublicKeyRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\":\n\x19\x41\x63tivatePublicKeyResponse\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.policy.KeyR\x03key\"\xa5\x07\n ListKeyAccessServerGrantsRequest\x12\xcb\x01\n\x06kas_id\x18\x01 \x01(\tB\xb3\x01\xbaH\xaf\x01\xba\x01\xab\x01\n\x14optional_uuid_format\x12#Optional field must be a valid UUID\x1ansize(this) == 0 || this.matches(\'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\')R\x05kasId\x12\xb3\x02\n\x07kas_uri\x18\x02 \x01(\tB\x99\x02\xbaH\x95\x02\xba\x01\x91\x02\n\x13optional_uri_format\x12\xd8\x01Optional URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\x1a\x1fsize(this) == 0 || this.isUri()R\x06kasUri\x12\xc3\x02\n\x08kas_name\x18\x03 \x01(\tB\xa7\x02\xbaH\xa3\x02r\x03\x18\xfd\x01\xba\x01\x97\x02\n\x0fkas_name_format\x12\xb3\x01Registered KAS name must be an alphanumeric string, allowing hyphens, and underscores but not as the first or last character. The stored KAS name will be normalized to lower case.\x1aNsize(this) == 0 || this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x00R\x07kasName\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination:\x02\x18\x01\"\xa4\x01\n!ListKeyAccessServerGrantsResponse\x12\x45\n\x06grants\x18\x01 \x03(\x0b\x32).policy.kasregistry.KeyAccessServerGrantsB\x02\x18\x01R\x06grants\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination:\x02\x18\x01\"\xcc\x0c\n\x10\x43reateKeyRequest\x12\x1f\n\x06kas_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x05kasId\x12\x1e\n\x06key_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05keyId\x12\xa4\x01\n\rkey_algorithm\x18\x03 \x01(\x0e\x32\x11.policy.AlgorithmBl\xbaHi\xba\x01\x66\n\x15key_algorithm_defined\x12\x34The key_algorithm must be one of the defined values.\x1a\x17this in [1, 2, 3, 4, 5]R\x0ckeyAlgorithm\x12\x93\x01\n\x08key_mode\x18\x04 \x01(\x0e\x32\x0f.policy.KeyModeBg\xbaHd\xba\x01\x61\n\x10key_mode_defined\x12\x35The key_mode must be one of the defined values (1-4).\x1a\x16this >= 1 && this <= 4R\x07keyMode\x12\x42\n\x0epublic_key_ctx\x18\x05 \x01(\x0b\x32\x14.policy.PublicKeyCtxB\x06\xbaH\x03\xc8\x01\x01R\x0cpublicKeyCtx\x12=\n\x0fprivate_key_ctx\x18\x06 \x01(\x0b\x32\x15.policy.PrivateKeyCtxR\rprivateKeyCtx\x12,\n\x12provider_config_id\x18\x07 \x01(\tR\x10providerConfigId\x12\x16\n\x06legacy\x18\x08 \x01(\x08R\x06legacy\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:\xbb\x07\xbaH\xb7\x07\x1a\x97\x03\n#private_key_ctx_optionally_required\x12\xbc\x01The wrapped_key is required if key_mode is KEY_MODE_CONFIG_ROOT_KEY or KEY_MODE_PROVIDER_ROOT_KEY. The wrapped_key must be empty if key_mode is KEY_MODE_REMOTE or KEY_MODE_PUBLIC_KEY_ONLY.\x1a\xb0\x01((this.key_mode == 1 || this.key_mode == 2) && this.private_key_ctx.wrapped_key != \'\') || ((this.key_mode == 3 || this.key_mode == 4) && this.private_key_ctx.wrapped_key == \'\')\x1a\xf4\x02\n&provider_config_id_optionally_required\x12\xa8\x01Provider config id is required if key_mode is KEY_MODE_PROVIDER_ROOT_KEY or KEY_MODE_REMOTE. It must be empty for KEY_MODE_CONFIG_ROOT_KEY and KEY_MODE_PUBLIC_KEY_ONLY.\x1a\x9e\x01((this.key_mode == 1 || this.key_mode == 4) && this.provider_config_id == \'\') || ((this.key_mode == 2 || this.key_mode == 3) && this.provider_config_id != \'\')\x1a\xa3\x01\n#private_key_ctx_for_public_key_only\x12Hprivate_key_ctx must not be set if key_mode is KEY_MODE_PUBLIC_KEY_ONLY.\x1a\x32!(this.key_mode == 4 && has(this.private_key_ctx))\"<\n\x11\x43reateKeyResponse\x12\'\n\x07kas_key\x18\x01 \x01(\x0b\x32\x0e.policy.KasKeyR\x06kasKey\"z\n\rGetKeyRequest\x12\x1a\n\x02id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\x38\n\x03key\x18\x03 \x01(\x0b\x32$.policy.kasregistry.KasKeyIdentifierH\x00R\x03keyB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"9\n\x0eGetKeyResponse\x12\'\n\x07kas_key\x18\x01 \x01(\x0b\x32\x0e.policy.KasKeyR\x06kasKey\"\x96\x03\n\x0fListKeysRequest\x12\xa7\x01\n\rkey_algorithm\x18\x01 \x01(\x0e\x32\x11.policy.AlgorithmBo\xbaHl\xba\x01i\n\x15key_algorithm_defined\x12\x34The key_algorithm must be one of the defined values.\x1a\x1athis in [0, 1, 2, 3, 4, 5]R\x0ckeyAlgorithm\x12!\n\x06kas_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x05kasId\x12$\n\x08kas_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x07kasName\x12%\n\x07kas_uri\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x06kasUri\x12\x1b\n\x06legacy\x18\x08 \x01(\x08H\x01R\x06legacy\x88\x01\x01\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npaginationB\x0c\n\nkas_filterB\t\n\x07_legacy\"s\n\x10ListKeysResponse\x12)\n\x08kas_keys\x18\x01 \x03(\x0b\x32\x0e.policy.KasKeyR\x07kasKeys\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\x86\x03\n\x10UpdateKeyRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior:\xcc\x01\xbaH\xc8\x01\x1a\xc5\x01\n\x18metadata_update_behavior\x12RMetadata update behavior must be either APPEND or REPLACE, when updating metadata.\x1aU((!has(this.metadata)) || (has(this.metadata) && this.metadata_update_behavior != 0))\"<\n\x11UpdateKeyResponse\x12\'\n\x07kas_key\x18\x01 \x01(\x0b\x32\x0e.policy.KasKeyR\x06kasKey\"\xa4\x01\n\x10KasKeyIdentifier\x12!\n\x06kas_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x05kasId\x12\x1d\n\x04name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x04name\x12\x1e\n\x03uri\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03uri\x12\x19\n\x03kid\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x03kidB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"\xe5\x0e\n\x10RotateKeyRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\x38\n\x03key\x18\x02 \x01(\x0b\x32$.policy.kasregistry.KasKeyIdentifierH\x00R\x03key\x12\x44\n\x07new_key\x18\x03 \x01(\x0b\x32+.policy.kasregistry.RotateKeyRequest.NewKeyR\x06newKey\x1a\xcf\x04\n\x06NewKey\x12\x1e\n\x06key_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05keyId\x12\x9d\x01\n\talgorithm\x18\x02 \x01(\x0e\x32\x11.policy.AlgorithmBl\xbaHi\xba\x01\x66\n\x15key_algorithm_defined\x12\x34The key_algorithm must be one of the defined values.\x1a\x17this in [1, 2, 3, 4, 5]R\talgorithm\x12\x9e\x01\n\x08key_mode\x18\x03 \x01(\x0e\x32\x0f.policy.KeyModeBr\xbaHo\x82\x01\x02\x10\x01\xba\x01g\n\x14new_key_mode_defined\x12\x39The new key_mode must be one of the defined values (1-4).\x1a\x14this in [1, 2, 3, 4]R\x07keyMode\x12\x42\n\x0epublic_key_ctx\x18\x04 \x01(\x0b\x32\x14.policy.PublicKeyCtxB\x06\xbaH\x03\xc8\x01\x01R\x0cpublicKeyCtx\x12=\n\x0fprivate_key_ctx\x18\x05 \x01(\x0b\x32\x15.policy.PrivateKeyCtxR\rprivateKeyCtx\x12,\n\x12provider_config_id\x18\x06 \x01(\tR\x10providerConfigId\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:\xcd\x08\xbaH\xc9\x08\x1a\xd8\x03\n#private_key_ctx_optionally_required\x12\xcd\x01\x46or the new key, the wrapped_key is required if key_mode is KEY_MODE_CONFIG_ROOT_KEY or KEY_MODE_PROVIDER_ROOT_KEY. The wrapped_key must be empty if key_mode is KEY_MODE_REMOTE or KEY_MODE_PUBLIC_KEY_ONLY.\x1a\xe0\x01((this.new_key.key_mode == 1 || this.new_key.key_mode == 2) && this.new_key.private_key_ctx.wrapped_key != \'\') || ((this.new_key.key_mode == 3 || this.new_key.key_mode == 4) && this.new_key.private_key_ctx.wrapped_key == \'\')\x1a\xb5\x03\n&provider_config_id_optionally_required\x12\xb9\x01\x46or the new key, provider config id is required if key_mode is KEY_MODE_PROVIDER_ROOT_KEY or KEY_MODE_REMOTE. It must be empty for KEY_MODE_CONFIG_ROOT_KEY and KEY_MODE_PUBLIC_KEY_ONLY.\x1a\xce\x01((this.new_key.key_mode == 1 || this.new_key.key_mode == 4) && this.new_key.provider_config_id == \'\') || ((this.new_key.key_mode == 2 || this.new_key.key_mode == 3) && this.new_key.provider_config_id != \'\')\x1a\xb3\x01\n#private_key_ctx_for_public_key_only\x12Hprivate_key_ctx must not be set if key_mode is KEY_MODE_PUBLIC_KEY_ONLY.\x1a\x42!(this.new_key.key_mode == 4 && has(this.new_key.private_key_ctx))B\x13\n\nactive_key\x12\x05\xbaH\x02\x08\x01\"2\n\x0e\x43hangeMappings\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03\x66qn\x18\x02 \x01(\tR\x03\x66qn\"\xe3\x02\n\x10RotatedResources\x12\x36\n\x0frotated_out_key\x18\x01 \x01(\x0b\x32\x0e.policy.KasKeyR\rrotatedOutKey\x12\x66\n\x1d\x61ttribute_definition_mappings\x18\x02 \x03(\x0b\x32\".policy.kasregistry.ChangeMappingsR\x1b\x61ttributeDefinitionMappings\x12\\\n\x18\x61ttribute_value_mappings\x18\x03 \x03(\x0b\x32\".policy.kasregistry.ChangeMappingsR\x16\x61ttributeValueMappings\x12Q\n\x12namespace_mappings\x18\x04 \x03(\x0b\x32\".policy.kasregistry.ChangeMappingsR\x11namespaceMappings\"\x8f\x01\n\x11RotateKeyResponse\x12\'\n\x07kas_key\x18\x01 \x01(\x0b\x32\x0e.policy.KasKeyR\x06kasKey\x12Q\n\x11rotated_resources\x18\x02 \x01(\x0b\x32$.policy.kasregistry.RotatedResourcesR\x10rotatedResources\"~\n\x11SetBaseKeyRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\x38\n\x03key\x18\x02 \x01(\x0b\x32$.policy.kasregistry.KasKeyIdentifierH\x00R\x03keyB\x13\n\nactive_key\x12\x05\xbaH\x02\x08\x01\"\x13\n\x11GetBaseKeyRequest\"E\n\x12GetBaseKeyResponse\x12/\n\x08\x62\x61se_key\x18\x01 \x01(\x0b\x32\x14.policy.SimpleKasKeyR\x07\x62\x61seKey\"\x8e\x01\n\x12SetBaseKeyResponse\x12\x36\n\x0cnew_base_key\x18\x01 \x01(\x0b\x32\x14.policy.SimpleKasKeyR\nnewBaseKey\x12@\n\x11previous_base_key\x18\x02 \x01(\x0b\x32\x14.policy.SimpleKasKeyR\x0fpreviousBaseKey\"6\n\x12MappedPolicyObject\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03\x66qn\x18\x02 \x01(\tR\x03\x66qn\"\xb4\x02\n\nKeyMapping\x12\x10\n\x03kid\x18\x01 \x01(\tR\x03kid\x12\x17\n\x07kas_uri\x18\x02 \x01(\tR\x06kasUri\x12U\n\x12namespace_mappings\x18\x03 \x03(\x0b\x32&.policy.kasregistry.MappedPolicyObjectR\x11namespaceMappings\x12U\n\x12\x61ttribute_mappings\x18\x04 \x03(\x0b\x32&.policy.kasregistry.MappedPolicyObjectR\x11\x61ttributeMappings\x12M\n\x0evalue_mappings\x18\x05 \x03(\x0b\x32&.policy.kasregistry.MappedPolicyObjectR\rvalueMappings\"\xb8\x01\n\x16ListKeyMappingsRequest\x12\x1a\n\x02id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\x38\n\x03key\x18\x03 \x01(\x0b\x32$.policy.kasregistry.KasKeyIdentifierH\x00R\x03key\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npaginationB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x00\"\x92\x01\n\x17ListKeyMappingsResponse\x12\x41\n\x0ckey_mappings\x18\x01 \x03(\x0b\x32\x1e.policy.kasregistry.KeyMappingR\x0bkeyMappings\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination*\xef\x01\n\x18SortKeyAccessServersType\x12,\n(SORT_KEY_ACCESS_SERVERS_TYPE_UNSPECIFIED\x10\x00\x12%\n!SORT_KEY_ACCESS_SERVERS_TYPE_NAME\x10\x01\x12$\n SORT_KEY_ACCESS_SERVERS_TYPE_URI\x10\x02\x12+\n\'SORT_KEY_ACCESS_SERVERS_TYPE_CREATED_AT\x10\x03\x12+\n\'SORT_KEY_ACCESS_SERVERS_TYPE_UPDATED_AT\x10\x04\x32\xb5\x0c\n\x1eKeyAccessServerRegistryService\x12\x99\x01\n\x14ListKeyAccessServers\x12/.policy.kasregistry.ListKeyAccessServersRequest\x1a\x30.policy.kasregistry.ListKeyAccessServersResponse\"\x1e\x90\x02\x01\x82\xd3\xe4\x93\x02\x15\x12\x13/key-access-servers\x12x\n\x12GetKeyAccessServer\x12-.policy.kasregistry.GetKeyAccessServerRequest\x1a..policy.kasregistry.GetKeyAccessServerResponse\"\x03\x90\x02\x01\x12~\n\x15\x43reateKeyAccessServer\x12\x30.policy.kasregistry.CreateKeyAccessServerRequest\x1a\x31.policy.kasregistry.CreateKeyAccessServerResponse\"\x00\x12~\n\x15UpdateKeyAccessServer\x12\x30.policy.kasregistry.UpdateKeyAccessServerRequest\x1a\x31.policy.kasregistry.UpdateKeyAccessServerResponse\"\x00\x12~\n\x15\x44\x65leteKeyAccessServer\x12\x30.policy.kasregistry.DeleteKeyAccessServerRequest\x1a\x31.policy.kasregistry.DeleteKeyAccessServerResponse\"\x00\x12\x90\x01\n\x19ListKeyAccessServerGrants\x12\x34.policy.kasregistry.ListKeyAccessServerGrantsRequest\x1a\x35.policy.kasregistry.ListKeyAccessServerGrantsResponse\"\x06\x88\x02\x01\x90\x02\x01\x12Z\n\tCreateKey\x12$.policy.kasregistry.CreateKeyRequest\x1a%.policy.kasregistry.CreateKeyResponse\"\x00\x12Q\n\x06GetKey\x12!.policy.kasregistry.GetKeyRequest\x1a\".policy.kasregistry.GetKeyResponse\"\x00\x12W\n\x08ListKeys\x12#.policy.kasregistry.ListKeysRequest\x1a$.policy.kasregistry.ListKeysResponse\"\x00\x12Z\n\tUpdateKey\x12$.policy.kasregistry.UpdateKeyRequest\x1a%.policy.kasregistry.UpdateKeyResponse\"\x00\x12Z\n\tRotateKey\x12$.policy.kasregistry.RotateKeyRequest\x1a%.policy.kasregistry.RotateKeyResponse\"\x00\x12]\n\nSetBaseKey\x12%.policy.kasregistry.SetBaseKeyRequest\x1a&.policy.kasregistry.SetBaseKeyResponse\"\x00\x12]\n\nGetBaseKey\x12%.policy.kasregistry.GetBaseKeyRequest\x1a&.policy.kasregistry.GetBaseKeyResponse\"\x00\x12l\n\x0fListKeyMappings\x12*.policy.kasregistry.ListKeyMappingsRequest\x1a+.policy.kasregistry.ListKeyMappingsResponse\"\x00\x42\x9f\x01\n\x16\x63om.policy.kasregistryB\x1cKeyAccessServerRegistryProtoP\x01\xa2\x02\x03PKX\xaa\x02\x12Policy.Kasregistry\xca\x02\x12Policy\\Kasregistry\xe2\x02\x1ePolicy\\Kasregistry\\GPBMetadata\xea\x02\x13Policy::Kasregistryb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -47,6 +47,8 @@ _globals['_GETKEYACCESSSERVERREQUEST'].fields_by_name['uri']._serialized_options = b'\272H\007r\005\020\001\210\001\001' _globals['_GETKEYACCESSSERVERREQUEST']._loaded_options = None _globals['_GETKEYACCESSSERVERREQUEST']._serialized_options = b'\272H\263\002\032\250\001\n\020exclusive_fields\022JEither use deprecated \'id\' field or one of \'kas_id\' or \'uri\', but not both\032H!(has(this.id) && (has(this.kas_id) || has(this.uri) || has(this.name)))\032\205\001\n\017required_fields\022-Either id or one of kas_id or uri must be set\032Chas(this.id) || has(this.kas_id) || has(this.uri) || has(this.name)' + _globals['_LISTKEYACCESSSERVERSREQUEST'].fields_by_name['sort']._loaded_options = None + _globals['_LISTKEYACCESSSERVERSREQUEST'].fields_by_name['sort']._serialized_options = b'\272H\005\222\001\002\020\001' _globals['_CREATEKEYACCESSSERVERREQUEST'].fields_by_name['uri']._loaded_options = None _globals['_CREATEKEYACCESSSERVERREQUEST'].fields_by_name['uri']._serialized_options = b'\272H\360\001\272\001\354\001\n\nuri_format\022\317\001URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\032\014this.isUri()' _globals['_CREATEKEYACCESSSERVERREQUEST'].fields_by_name['source_type']._loaded_options = None @@ -167,112 +169,116 @@ _globals['_KEYACCESSSERVERREGISTRYSERVICE'].methods_by_name['GetKeyAccessServer']._serialized_options = b'\220\002\001' _globals['_KEYACCESSSERVERREGISTRYSERVICE'].methods_by_name['ListKeyAccessServerGrants']._loaded_options = None _globals['_KEYACCESSSERVERREGISTRYSERVICE'].methods_by_name['ListKeyAccessServerGrants']._serialized_options = b'\210\002\001\220\002\001' + _globals['_SORTKEYACCESSSERVERSTYPE']._serialized_start=13528 + _globals['_SORTKEYACCESSSERVERSTYPE']._serialized_end=13767 _globals['_GETKEYACCESSSERVERREQUEST']._serialized_start=202 _globals['_GETKEYACCESSSERVERREQUEST']._serialized_end=686 _globals['_GETKEYACCESSSERVERRESPONSE']._serialized_start=688 _globals['_GETKEYACCESSSERVERRESPONSE']._serialized_end=785 - _globals['_LISTKEYACCESSSERVERSREQUEST']._serialized_start=787 - _globals['_LISTKEYACCESSSERVERSREQUEST']._serialized_end=869 - _globals['_LISTKEYACCESSSERVERSRESPONSE']._serialized_start=872 - _globals['_LISTKEYACCESSSERVERSRESPONSE']._serialized_end=1027 - _globals['_CREATEKEYACCESSSERVERREQUEST']._serialized_start=1030 - _globals['_CREATEKEYACCESSSERVERREQUEST']._serialized_end=1819 - _globals['_CREATEKEYACCESSSERVERRESPONSE']._serialized_start=1821 - _globals['_CREATEKEYACCESSSERVERRESPONSE']._serialized_end=1921 - _globals['_UPDATEKEYACCESSSERVERREQUEST']._serialized_start=1924 - _globals['_UPDATEKEYACCESSSERVERREQUEST']._serialized_end=2857 - _globals['_UPDATEKEYACCESSSERVERRESPONSE']._serialized_start=2859 - _globals['_UPDATEKEYACCESSSERVERRESPONSE']._serialized_end=2959 - _globals['_DELETEKEYACCESSSERVERREQUEST']._serialized_start=2961 - _globals['_DELETEKEYACCESSSERVERREQUEST']._serialized_end=3017 - _globals['_DELETEKEYACCESSSERVERRESPONSE']._serialized_start=3019 - _globals['_DELETEKEYACCESSSERVERRESPONSE']._serialized_end=3119 - _globals['_GRANTEDPOLICYOBJECT']._serialized_start=3121 - _globals['_GRANTEDPOLICYOBJECT']._serialized_end=3176 - _globals['_KEYACCESSSERVERGRANTS']._serialized_start=3179 - _globals['_KEYACCESSSERVERGRANTS']._serialized_end=3515 - _globals['_CREATEPUBLICKEYREQUEST']._serialized_start=3518 - _globals['_CREATEPUBLICKEYREQUEST']._serialized_end=3676 - _globals['_CREATEPUBLICKEYRESPONSE']._serialized_start=3678 - _globals['_CREATEPUBLICKEYRESPONSE']._serialized_end=3734 - _globals['_GETPUBLICKEYREQUEST']._serialized_start=3736 - _globals['_GETPUBLICKEYREQUEST']._serialized_end=3799 - _globals['_GETPUBLICKEYRESPONSE']._serialized_start=3801 - _globals['_GETPUBLICKEYRESPONSE']._serialized_end=3854 - _globals['_LISTPUBLICKEYSREQUEST']._serialized_start=3857 - _globals['_LISTPUBLICKEYSREQUEST']._serialized_end=4059 - _globals['_LISTPUBLICKEYSRESPONSE']._serialized_start=4061 - _globals['_LISTPUBLICKEYSRESPONSE']._serialized_end=4172 - _globals['_LISTPUBLICKEYMAPPINGREQUEST']._serialized_start=4175 - _globals['_LISTPUBLICKEYMAPPINGREQUEST']._serialized_end=4432 - _globals['_LISTPUBLICKEYMAPPINGRESPONSE']._serialized_start=4435 - _globals['_LISTPUBLICKEYMAPPINGRESPONSE']._serialized_end=5193 - _globals['_LISTPUBLICKEYMAPPINGRESPONSE_PUBLICKEYMAPPING']._serialized_start=4637 - _globals['_LISTPUBLICKEYMAPPINGRESPONSE_PUBLICKEYMAPPING']._serialized_end=4823 - _globals['_LISTPUBLICKEYMAPPINGRESPONSE_PUBLICKEY']._serialized_start=4826 - _globals['_LISTPUBLICKEYMAPPINGRESPONSE_PUBLICKEY']._serialized_end=5144 - _globals['_LISTPUBLICKEYMAPPINGRESPONSE_ASSOCIATION']._serialized_start=5146 - _globals['_LISTPUBLICKEYMAPPINGRESPONSE_ASSOCIATION']._serialized_end=5193 - _globals['_UPDATEPUBLICKEYREQUEST']._serialized_start=5196 - _globals['_UPDATEPUBLICKEYREQUEST']._serialized_end=5385 - _globals['_UPDATEPUBLICKEYRESPONSE']._serialized_start=5387 - _globals['_UPDATEPUBLICKEYRESPONSE']._serialized_end=5443 - _globals['_DEACTIVATEPUBLICKEYREQUEST']._serialized_start=5445 - _globals['_DEACTIVATEPUBLICKEYREQUEST']._serialized_end=5499 - _globals['_DEACTIVATEPUBLICKEYRESPONSE']._serialized_start=5501 - _globals['_DEACTIVATEPUBLICKEYRESPONSE']._serialized_end=5561 - _globals['_ACTIVATEPUBLICKEYREQUEST']._serialized_start=5563 - _globals['_ACTIVATEPUBLICKEYREQUEST']._serialized_end=5615 - _globals['_ACTIVATEPUBLICKEYRESPONSE']._serialized_start=5617 - _globals['_ACTIVATEPUBLICKEYRESPONSE']._serialized_end=5675 - _globals['_LISTKEYACCESSSERVERGRANTSREQUEST']._serialized_start=5678 - _globals['_LISTKEYACCESSSERVERGRANTSREQUEST']._serialized_end=6611 - _globals['_LISTKEYACCESSSERVERGRANTSRESPONSE']._serialized_start=6614 - _globals['_LISTKEYACCESSSERVERGRANTSRESPONSE']._serialized_end=6778 - _globals['_CREATEKEYREQUEST']._serialized_start=6781 - _globals['_CREATEKEYREQUEST']._serialized_end=8393 - _globals['_CREATEKEYRESPONSE']._serialized_start=8395 - _globals['_CREATEKEYRESPONSE']._serialized_end=8455 - _globals['_GETKEYREQUEST']._serialized_start=8457 - _globals['_GETKEYREQUEST']._serialized_end=8579 - _globals['_GETKEYRESPONSE']._serialized_start=8581 - _globals['_GETKEYRESPONSE']._serialized_end=8638 - _globals['_LISTKEYSREQUEST']._serialized_start=8641 - _globals['_LISTKEYSREQUEST']._serialized_end=9047 - _globals['_LISTKEYSRESPONSE']._serialized_start=9049 - _globals['_LISTKEYSRESPONSE']._serialized_end=9164 - _globals['_UPDATEKEYREQUEST']._serialized_start=9167 - _globals['_UPDATEKEYREQUEST']._serialized_end=9557 - _globals['_UPDATEKEYRESPONSE']._serialized_start=9559 - _globals['_UPDATEKEYRESPONSE']._serialized_end=9619 - _globals['_KASKEYIDENTIFIER']._serialized_start=9622 - _globals['_KASKEYIDENTIFIER']._serialized_end=9786 - _globals['_ROTATEKEYREQUEST']._serialized_start=9789 - _globals['_ROTATEKEYREQUEST']._serialized_end=11682 - _globals['_ROTATEKEYREQUEST_NEWKEY']._serialized_start=9966 - _globals['_ROTATEKEYREQUEST_NEWKEY']._serialized_end=10557 - _globals['_CHANGEMAPPINGS']._serialized_start=11684 - _globals['_CHANGEMAPPINGS']._serialized_end=11734 - _globals['_ROTATEDRESOURCES']._serialized_start=11737 - _globals['_ROTATEDRESOURCES']._serialized_end=12092 - _globals['_ROTATEKEYRESPONSE']._serialized_start=12095 - _globals['_ROTATEKEYRESPONSE']._serialized_end=12238 - _globals['_SETBASEKEYREQUEST']._serialized_start=12240 - _globals['_SETBASEKEYREQUEST']._serialized_end=12366 - _globals['_GETBASEKEYREQUEST']._serialized_start=12368 - _globals['_GETBASEKEYREQUEST']._serialized_end=12387 - _globals['_GETBASEKEYRESPONSE']._serialized_start=12389 - _globals['_GETBASEKEYRESPONSE']._serialized_end=12458 - _globals['_SETBASEKEYRESPONSE']._serialized_start=12461 - _globals['_SETBASEKEYRESPONSE']._serialized_end=12603 - _globals['_MAPPEDPOLICYOBJECT']._serialized_start=12605 - _globals['_MAPPEDPOLICYOBJECT']._serialized_end=12659 - _globals['_KEYMAPPING']._serialized_start=12662 - _globals['_KEYMAPPING']._serialized_end=12970 - _globals['_LISTKEYMAPPINGSREQUEST']._serialized_start=12973 - _globals['_LISTKEYMAPPINGSREQUEST']._serialized_end=13157 - _globals['_LISTKEYMAPPINGSRESPONSE']._serialized_start=13160 - _globals['_LISTKEYMAPPINGSRESPONSE']._serialized_end=13306 - _globals['_KEYACCESSSERVERREGISTRYSERVICE']._serialized_start=13309 - _globals['_KEYACCESSSERVERREGISTRYSERVICE']._serialized_end=14898 + _globals['_KEYACCESSSERVERSSORT']._serialized_start=788 + _globals['_KEYACCESSSERVERSSORT']._serialized_end=931 + _globals['_LISTKEYACCESSSERVERSREQUEST']._serialized_start=934 + _globals['_LISTKEYACCESSSERVERSREQUEST']._serialized_end=1088 + _globals['_LISTKEYACCESSSERVERSRESPONSE']._serialized_start=1091 + _globals['_LISTKEYACCESSSERVERSRESPONSE']._serialized_end=1246 + _globals['_CREATEKEYACCESSSERVERREQUEST']._serialized_start=1249 + _globals['_CREATEKEYACCESSSERVERREQUEST']._serialized_end=2038 + _globals['_CREATEKEYACCESSSERVERRESPONSE']._serialized_start=2040 + _globals['_CREATEKEYACCESSSERVERRESPONSE']._serialized_end=2140 + _globals['_UPDATEKEYACCESSSERVERREQUEST']._serialized_start=2143 + _globals['_UPDATEKEYACCESSSERVERREQUEST']._serialized_end=3076 + _globals['_UPDATEKEYACCESSSERVERRESPONSE']._serialized_start=3078 + _globals['_UPDATEKEYACCESSSERVERRESPONSE']._serialized_end=3178 + _globals['_DELETEKEYACCESSSERVERREQUEST']._serialized_start=3180 + _globals['_DELETEKEYACCESSSERVERREQUEST']._serialized_end=3236 + _globals['_DELETEKEYACCESSSERVERRESPONSE']._serialized_start=3238 + _globals['_DELETEKEYACCESSSERVERRESPONSE']._serialized_end=3338 + _globals['_GRANTEDPOLICYOBJECT']._serialized_start=3340 + _globals['_GRANTEDPOLICYOBJECT']._serialized_end=3395 + _globals['_KEYACCESSSERVERGRANTS']._serialized_start=3398 + _globals['_KEYACCESSSERVERGRANTS']._serialized_end=3734 + _globals['_CREATEPUBLICKEYREQUEST']._serialized_start=3737 + _globals['_CREATEPUBLICKEYREQUEST']._serialized_end=3895 + _globals['_CREATEPUBLICKEYRESPONSE']._serialized_start=3897 + _globals['_CREATEPUBLICKEYRESPONSE']._serialized_end=3953 + _globals['_GETPUBLICKEYREQUEST']._serialized_start=3955 + _globals['_GETPUBLICKEYREQUEST']._serialized_end=4018 + _globals['_GETPUBLICKEYRESPONSE']._serialized_start=4020 + _globals['_GETPUBLICKEYRESPONSE']._serialized_end=4073 + _globals['_LISTPUBLICKEYSREQUEST']._serialized_start=4076 + _globals['_LISTPUBLICKEYSREQUEST']._serialized_end=4278 + _globals['_LISTPUBLICKEYSRESPONSE']._serialized_start=4280 + _globals['_LISTPUBLICKEYSRESPONSE']._serialized_end=4391 + _globals['_LISTPUBLICKEYMAPPINGREQUEST']._serialized_start=4394 + _globals['_LISTPUBLICKEYMAPPINGREQUEST']._serialized_end=4651 + _globals['_LISTPUBLICKEYMAPPINGRESPONSE']._serialized_start=4654 + _globals['_LISTPUBLICKEYMAPPINGRESPONSE']._serialized_end=5412 + _globals['_LISTPUBLICKEYMAPPINGRESPONSE_PUBLICKEYMAPPING']._serialized_start=4856 + _globals['_LISTPUBLICKEYMAPPINGRESPONSE_PUBLICKEYMAPPING']._serialized_end=5042 + _globals['_LISTPUBLICKEYMAPPINGRESPONSE_PUBLICKEY']._serialized_start=5045 + _globals['_LISTPUBLICKEYMAPPINGRESPONSE_PUBLICKEY']._serialized_end=5363 + _globals['_LISTPUBLICKEYMAPPINGRESPONSE_ASSOCIATION']._serialized_start=5365 + _globals['_LISTPUBLICKEYMAPPINGRESPONSE_ASSOCIATION']._serialized_end=5412 + _globals['_UPDATEPUBLICKEYREQUEST']._serialized_start=5415 + _globals['_UPDATEPUBLICKEYREQUEST']._serialized_end=5604 + _globals['_UPDATEPUBLICKEYRESPONSE']._serialized_start=5606 + _globals['_UPDATEPUBLICKEYRESPONSE']._serialized_end=5662 + _globals['_DEACTIVATEPUBLICKEYREQUEST']._serialized_start=5664 + _globals['_DEACTIVATEPUBLICKEYREQUEST']._serialized_end=5718 + _globals['_DEACTIVATEPUBLICKEYRESPONSE']._serialized_start=5720 + _globals['_DEACTIVATEPUBLICKEYRESPONSE']._serialized_end=5780 + _globals['_ACTIVATEPUBLICKEYREQUEST']._serialized_start=5782 + _globals['_ACTIVATEPUBLICKEYREQUEST']._serialized_end=5834 + _globals['_ACTIVATEPUBLICKEYRESPONSE']._serialized_start=5836 + _globals['_ACTIVATEPUBLICKEYRESPONSE']._serialized_end=5894 + _globals['_LISTKEYACCESSSERVERGRANTSREQUEST']._serialized_start=5897 + _globals['_LISTKEYACCESSSERVERGRANTSREQUEST']._serialized_end=6830 + _globals['_LISTKEYACCESSSERVERGRANTSRESPONSE']._serialized_start=6833 + _globals['_LISTKEYACCESSSERVERGRANTSRESPONSE']._serialized_end=6997 + _globals['_CREATEKEYREQUEST']._serialized_start=7000 + _globals['_CREATEKEYREQUEST']._serialized_end=8612 + _globals['_CREATEKEYRESPONSE']._serialized_start=8614 + _globals['_CREATEKEYRESPONSE']._serialized_end=8674 + _globals['_GETKEYREQUEST']._serialized_start=8676 + _globals['_GETKEYREQUEST']._serialized_end=8798 + _globals['_GETKEYRESPONSE']._serialized_start=8800 + _globals['_GETKEYRESPONSE']._serialized_end=8857 + _globals['_LISTKEYSREQUEST']._serialized_start=8860 + _globals['_LISTKEYSREQUEST']._serialized_end=9266 + _globals['_LISTKEYSRESPONSE']._serialized_start=9268 + _globals['_LISTKEYSRESPONSE']._serialized_end=9383 + _globals['_UPDATEKEYREQUEST']._serialized_start=9386 + _globals['_UPDATEKEYREQUEST']._serialized_end=9776 + _globals['_UPDATEKEYRESPONSE']._serialized_start=9778 + _globals['_UPDATEKEYRESPONSE']._serialized_end=9838 + _globals['_KASKEYIDENTIFIER']._serialized_start=9841 + _globals['_KASKEYIDENTIFIER']._serialized_end=10005 + _globals['_ROTATEKEYREQUEST']._serialized_start=10008 + _globals['_ROTATEKEYREQUEST']._serialized_end=11901 + _globals['_ROTATEKEYREQUEST_NEWKEY']._serialized_start=10185 + _globals['_ROTATEKEYREQUEST_NEWKEY']._serialized_end=10776 + _globals['_CHANGEMAPPINGS']._serialized_start=11903 + _globals['_CHANGEMAPPINGS']._serialized_end=11953 + _globals['_ROTATEDRESOURCES']._serialized_start=11956 + _globals['_ROTATEDRESOURCES']._serialized_end=12311 + _globals['_ROTATEKEYRESPONSE']._serialized_start=12314 + _globals['_ROTATEKEYRESPONSE']._serialized_end=12457 + _globals['_SETBASEKEYREQUEST']._serialized_start=12459 + _globals['_SETBASEKEYREQUEST']._serialized_end=12585 + _globals['_GETBASEKEYREQUEST']._serialized_start=12587 + _globals['_GETBASEKEYREQUEST']._serialized_end=12606 + _globals['_GETBASEKEYRESPONSE']._serialized_start=12608 + _globals['_GETBASEKEYRESPONSE']._serialized_end=12677 + _globals['_SETBASEKEYRESPONSE']._serialized_start=12680 + _globals['_SETBASEKEYRESPONSE']._serialized_end=12822 + _globals['_MAPPEDPOLICYOBJECT']._serialized_start=12824 + _globals['_MAPPEDPOLICYOBJECT']._serialized_end=12878 + _globals['_KEYMAPPING']._serialized_start=12881 + _globals['_KEYMAPPING']._serialized_end=13189 + _globals['_LISTKEYMAPPINGSREQUEST']._serialized_start=13192 + _globals['_LISTKEYMAPPINGSREQUEST']._serialized_end=13376 + _globals['_LISTKEYMAPPINGSRESPONSE']._serialized_start=13379 + _globals['_LISTKEYMAPPINGSRESPONSE']._serialized_end=13525 + _globals['_KEYACCESSSERVERREGISTRYSERVICE']._serialized_start=13770 + _globals['_KEYACCESSSERVERREGISTRYSERVICE']._serialized_end=15359 # @@protoc_insertion_point(module_scope) diff --git a/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi b/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi index 88a415d8..2cb186f6 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi +++ b/otdf-python-proto/src/otdf_python_proto/policy/kasregistry/key_access_server_registry_pb2.pyi @@ -4,6 +4,7 @@ from google.api import annotations_pb2 as _annotations_pb2 from policy import objects_pb2 as _objects_pb2 from policy import selectors_pb2 as _selectors_pb2 from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from collections.abc import Iterable as _Iterable, Mapping as _Mapping @@ -11,6 +12,19 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class SortKeyAccessServersType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SORT_KEY_ACCESS_SERVERS_TYPE_UNSPECIFIED: _ClassVar[SortKeyAccessServersType] + SORT_KEY_ACCESS_SERVERS_TYPE_NAME: _ClassVar[SortKeyAccessServersType] + SORT_KEY_ACCESS_SERVERS_TYPE_URI: _ClassVar[SortKeyAccessServersType] + SORT_KEY_ACCESS_SERVERS_TYPE_CREATED_AT: _ClassVar[SortKeyAccessServersType] + SORT_KEY_ACCESS_SERVERS_TYPE_UPDATED_AT: _ClassVar[SortKeyAccessServersType] +SORT_KEY_ACCESS_SERVERS_TYPE_UNSPECIFIED: SortKeyAccessServersType +SORT_KEY_ACCESS_SERVERS_TYPE_NAME: SortKeyAccessServersType +SORT_KEY_ACCESS_SERVERS_TYPE_URI: SortKeyAccessServersType +SORT_KEY_ACCESS_SERVERS_TYPE_CREATED_AT: SortKeyAccessServersType +SORT_KEY_ACCESS_SERVERS_TYPE_UPDATED_AT: SortKeyAccessServersType + class GetKeyAccessServerRequest(_message.Message): __slots__ = ("id", "kas_id", "name", "uri") ID_FIELD_NUMBER: _ClassVar[int] @@ -29,11 +43,21 @@ class GetKeyAccessServerResponse(_message.Message): key_access_server: _objects_pb2.KeyAccessServer def __init__(self, key_access_server: _Optional[_Union[_objects_pb2.KeyAccessServer, _Mapping]] = ...) -> None: ... +class KeyAccessServersSort(_message.Message): + __slots__ = ("field", "direction") + FIELD_FIELD_NUMBER: _ClassVar[int] + DIRECTION_FIELD_NUMBER: _ClassVar[int] + field: SortKeyAccessServersType + direction: _selectors_pb2.SortDirection + def __init__(self, field: _Optional[_Union[SortKeyAccessServersType, str]] = ..., direction: _Optional[_Union[_selectors_pb2.SortDirection, str]] = ...) -> None: ... + class ListKeyAccessServersRequest(_message.Message): - __slots__ = ("pagination",) + __slots__ = ("pagination", "sort") PAGINATION_FIELD_NUMBER: _ClassVar[int] + SORT_FIELD_NUMBER: _ClassVar[int] pagination: _selectors_pb2.PageRequest - def __init__(self, pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ...) -> None: ... + sort: _containers.RepeatedCompositeFieldContainer[KeyAccessServersSort] + def __init__(self, pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ..., sort: _Optional[_Iterable[_Union[KeyAccessServersSort, _Mapping]]] = ...) -> None: ... class ListKeyAccessServersResponse(_message.Message): __slots__ = ("key_access_servers", "pagination") diff --git a/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_connect.py b/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_connect.py index 7b410aaa..d923619b 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_connect.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_connect.py @@ -43,12 +43,6 @@ async def assign_public_key_to_namespace(self, request: policy_dot_namespaces_do async def remove_public_key_from_namespace(self, request: policy_dot_namespaces_dot_namespaces__pb2.RemovePublicKeyFromNamespaceRequest, ctx: RequestContext) -> policy_dot_namespaces_dot_namespaces__pb2.RemovePublicKeyFromNamespaceResponse: raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - async def assign_certificate_to_namespace(self, request: policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest, ctx: RequestContext) -> policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - - async def remove_certificate_from_namespace(self, request: policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest, ctx: RequestContext) -> policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - class NamespaceServiceASGIApplication(ConnectASGIApplication[NamespaceService]): def __init__(self, service: NamespaceService | AsyncGenerator[NamespaceService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None: @@ -145,26 +139,6 @@ def __init__(self, service: NamespaceService | AsyncGenerator[NamespaceService], ), function=svc.remove_public_key_from_namespace, ), - "/policy.namespaces.NamespaceService/AssignCertificateToNamespace": Endpoint.unary( - method=MethodInfo( - name="AssignCertificateToNamespace", - service_name="policy.namespaces.NamespaceService", - input=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest, - output=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.assign_certificate_to_namespace, - ), - "/policy.namespaces.NamespaceService/RemoveCertificateFromNamespace": Endpoint.unary( - method=MethodInfo( - name="RemoveCertificateFromNamespace", - service_name="policy.namespaces.NamespaceService", - input=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest, - output=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.remove_certificate_from_namespace, - ), }, interceptors=interceptors, read_max_bytes=read_max_bytes, @@ -361,46 +335,6 @@ async def remove_public_key_from_namespace( timeout_ms=timeout_ms, ) - async def assign_certificate_to_namespace( - self, - request: policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="AssignCertificateToNamespace", - service_name="policy.namespaces.NamespaceService", - input=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest, - output=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - async def remove_certificate_from_namespace( - self, - request: policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="RemoveCertificateFromNamespace", - service_name="policy.namespaces.NamespaceService", - input=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest, - output=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - class NamespaceServiceSync(Protocol): def get_namespace(self, request: policy_dot_namespaces_dot_namespaces__pb2.GetNamespaceRequest, ctx: RequestContext) -> policy_dot_namespaces_dot_namespaces__pb2.GetNamespaceResponse: @@ -421,10 +355,6 @@ def assign_public_key_to_namespace(self, request: policy_dot_namespaces_dot_name raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") def remove_public_key_from_namespace(self, request: policy_dot_namespaces_dot_namespaces__pb2.RemovePublicKeyFromNamespaceRequest, ctx: RequestContext) -> policy_dot_namespaces_dot_namespaces__pb2.RemovePublicKeyFromNamespaceResponse: raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def assign_certificate_to_namespace(self, request: policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest, ctx: RequestContext) -> policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def remove_certificate_from_namespace(self, request: policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest, ctx: RequestContext) -> policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") class NamespaceServiceWSGIApplication(ConnectWSGIApplication): @@ -521,26 +451,6 @@ def __init__(self, service: NamespaceServiceSync, interceptors: Iterable[Interce ), function=service.remove_public_key_from_namespace, ), - "/policy.namespaces.NamespaceService/AssignCertificateToNamespace": EndpointSync.unary( - method=MethodInfo( - name="AssignCertificateToNamespace", - service_name="policy.namespaces.NamespaceService", - input=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest, - output=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.assign_certificate_to_namespace, - ), - "/policy.namespaces.NamespaceService/RemoveCertificateFromNamespace": EndpointSync.unary( - method=MethodInfo( - name="RemoveCertificateFromNamespace", - service_name="policy.namespaces.NamespaceService", - input=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest, - output=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.remove_certificate_from_namespace, - ), }, interceptors=interceptors, read_max_bytes=read_max_bytes, @@ -736,43 +646,3 @@ def remove_public_key_from_namespace( headers=headers, timeout_ms=timeout_ms, ) - - def assign_certificate_to_namespace( - self, - request: policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="AssignCertificateToNamespace", - service_name="policy.namespaces.NamespaceService", - input=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceRequest, - output=policy_dot_namespaces_dot_namespaces__pb2.AssignCertificateToNamespaceResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - - def remove_certificate_from_namespace( - self, - request: policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="RemoveCertificateFromNamespace", - service_name="policy.namespaces.NamespaceService", - input=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceRequest, - output=policy_dot_namespaces_dot_namespaces__pb2.RemoveCertificateFromNamespaceResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) diff --git a/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2.py b/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2.py index 8c23e7fe..ee40ed23 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/namespaces/namespaces_pb2.py @@ -28,7 +28,7 @@ from policy import selectors_pb2 as policy_dot_selectors__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"policy/namespaces/namespaces.proto\x12\x11policy.namespaces\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"\x86\x01\n\x18NamespaceKeyAccessServer\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12\x39\n\x14key_access_server_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x11keyAccessServerId:\x02\x18\x01\"b\n\x0cNamespaceKey\x12.\n\x0cnamespace_id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xc8\x01\x01R\x0bnamespaceId\x12\"\n\x06key_id\x18\x02 \x01(\tB\x0b\xbaH\x08r\x03\xb0\x01\x01\xc8\x01\x01R\x05keyId\"\xbe\x03\n\x13GetNamespaceRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\x18\x01\xbaH\x08r\x03\xb0\x01\x01\xd8\x01\x01R\x02id\x12-\n\x0cnamespace_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x0bnamespaceId\x12\x1e\n\x03\x66qn\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03\x66qn:\xaa\x02\xbaH\xa6\x02\x1a\xa2\x01\n\x10\x65xclusive_fields\x12PEither use deprecated \'id\' field or one of \'namespace_id\' or \'fqn\', but not both\x1a None: ... +class NamespacesSort(_message.Message): + __slots__ = ("field", "direction") + FIELD_FIELD_NUMBER: _ClassVar[int] + DIRECTION_FIELD_NUMBER: _ClassVar[int] + field: SortNamespacesType + direction: _selectors_pb2.SortDirection + def __init__(self, field: _Optional[_Union[SortNamespacesType, str]] = ..., direction: _Optional[_Union[_selectors_pb2.SortDirection, str]] = ...) -> None: ... + class ListNamespacesRequest(_message.Message): - __slots__ = ("state", "pagination") + __slots__ = ("state", "pagination", "sort") STATE_FIELD_NUMBER: _ClassVar[int] PAGINATION_FIELD_NUMBER: _ClassVar[int] + SORT_FIELD_NUMBER: _ClassVar[int] state: _common_pb2.ActiveStateEnum pagination: _selectors_pb2.PageRequest - def __init__(self, state: _Optional[_Union[_common_pb2.ActiveStateEnum, str]] = ..., pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ...) -> None: ... + sort: _containers.RepeatedCompositeFieldContainer[NamespacesSort] + def __init__(self, state: _Optional[_Union[_common_pb2.ActiveStateEnum, str]] = ..., pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ..., sort: _Optional[_Iterable[_Union[NamespacesSort, _Mapping]]] = ...) -> None: ... class ListNamespacesResponse(_message.Message): __slots__ = ("namespaces", "pagination") @@ -145,41 +169,3 @@ class RemovePublicKeyFromNamespaceResponse(_message.Message): NAMESPACE_KEY_FIELD_NUMBER: _ClassVar[int] namespace_key: NamespaceKey def __init__(self, namespace_key: _Optional[_Union[NamespaceKey, _Mapping]] = ...) -> None: ... - -class NamespaceCertificate(_message.Message): - __slots__ = ("namespace", "certificate_id") - NAMESPACE_FIELD_NUMBER: _ClassVar[int] - CERTIFICATE_ID_FIELD_NUMBER: _ClassVar[int] - namespace: _common_pb2.IdFqnIdentifier - certificate_id: str - def __init__(self, namespace: _Optional[_Union[_common_pb2.IdFqnIdentifier, _Mapping]] = ..., certificate_id: _Optional[str] = ...) -> None: ... - -class AssignCertificateToNamespaceRequest(_message.Message): - __slots__ = ("namespace", "pem", "metadata") - NAMESPACE_FIELD_NUMBER: _ClassVar[int] - PEM_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - namespace: _common_pb2.IdFqnIdentifier - pem: str - metadata: _common_pb2.MetadataMutable - def __init__(self, namespace: _Optional[_Union[_common_pb2.IdFqnIdentifier, _Mapping]] = ..., pem: _Optional[str] = ..., metadata: _Optional[_Union[_common_pb2.MetadataMutable, _Mapping]] = ...) -> None: ... - -class AssignCertificateToNamespaceResponse(_message.Message): - __slots__ = ("namespace_certificate", "certificate") - NAMESPACE_CERTIFICATE_FIELD_NUMBER: _ClassVar[int] - CERTIFICATE_FIELD_NUMBER: _ClassVar[int] - namespace_certificate: NamespaceCertificate - certificate: _objects_pb2.Certificate - def __init__(self, namespace_certificate: _Optional[_Union[NamespaceCertificate, _Mapping]] = ..., certificate: _Optional[_Union[_objects_pb2.Certificate, _Mapping]] = ...) -> None: ... - -class RemoveCertificateFromNamespaceRequest(_message.Message): - __slots__ = ("namespace_certificate",) - NAMESPACE_CERTIFICATE_FIELD_NUMBER: _ClassVar[int] - namespace_certificate: NamespaceCertificate - def __init__(self, namespace_certificate: _Optional[_Union[NamespaceCertificate, _Mapping]] = ...) -> None: ... - -class RemoveCertificateFromNamespaceResponse(_message.Message): - __slots__ = ("namespace_certificate",) - NAMESPACE_CERTIFICATE_FIELD_NUMBER: _ClassVar[int] - namespace_certificate: NamespaceCertificate - def __init__(self, namespace_certificate: _Optional[_Union[NamespaceCertificate, _Mapping]] = ...) -> None: ... diff --git a/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.py b/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.py index a4af58db..5ea8f3ac 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.py @@ -27,7 +27,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14policy/objects.proto\x12\x06policy\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x1egoogle/protobuf/wrappers.proto\"i\n\x12SimpleKasPublicKey\x12/\n\talgorithm\x18\x01 \x01(\x0e\x32\x11.policy.AlgorithmR\talgorithm\x12\x10\n\x03kid\x18\x02 \x01(\tR\x03kid\x12\x10\n\x03pem\x18\x03 \x01(\tR\x03pem\"y\n\x0cSimpleKasKey\x12\x17\n\x07kas_uri\x18\x01 \x01(\tR\x06kasUri\x12\x39\n\npublic_key\x18\x02 \x01(\x0b\x32\x1a.policy.SimpleKasPublicKeyR\tpublicKey\x12\x15\n\x06kas_id\x18\x03 \x01(\tR\x05kasId\"\xa0\x01\n\x11KeyProviderConfig\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1f\n\x0b\x63onfig_json\x18\x03 \x01(\x0cR\nconfigJson\x12\x18\n\x07manager\x18\x04 \x01(\tR\x07manager\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xb9\x02\n\tNamespace\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x10\n\x03\x66qn\x18\x03 \x01(\tR\x03\x66qn\x12\x32\n\x06\x61\x63tive\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x06\x61\x63tive\x12,\n\x08metadata\x18\x05 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\x12/\n\x06grants\x18\x06 \x03(\x0b\x32\x17.policy.KeyAccessServerR\x06grants\x12/\n\x08kas_keys\x18\x07 \x03(\x0b\x32\x14.policy.SimpleKasKeyR\x07kasKeys\x12\x32\n\nroot_certs\x18\x08 \x03(\x0b\x32\x13.policy.CertificateR\trootCerts\"]\n\x0b\x43\x65rtificate\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03pem\x18\x02 \x01(\tR\x03pem\x12,\n\x08metadata\x18\x03 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xe2\x03\n\tAttribute\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12/\n\tnamespace\x18\x02 \x01(\x0b\x32\x11.policy.NamespaceR\tnamespace\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12>\n\x04rule\x18\x04 \x01(\x0e\x32\x1d.policy.AttributeRuleTypeEnumB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x01R\x04rule\x12%\n\x06values\x18\x05 \x03(\x0b\x32\r.policy.ValueR\x06values\x12/\n\x06grants\x18\x06 \x03(\x0b\x32\x17.policy.KeyAccessServerR\x06grants\x12\x10\n\x03\x66qn\x18\x07 \x01(\tR\x03\x66qn\x12\x32\n\x06\x61\x63tive\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x06\x61\x63tive\x12/\n\x08kas_keys\x18\t \x03(\x0b\x32\x14.policy.SimpleKasKeyR\x07kasKeys\x12\x43\n\x0f\x61llow_traversal\x18\n \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x0e\x61llowTraversal\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\x82\x04\n\x05Value\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12/\n\tattribute\x18\x02 \x01(\x0b\x32\x11.policy.AttributeR\tattribute\x12\x14\n\x05value\x18\x03 \x01(\tR\x05value\x12/\n\x06grants\x18\x05 \x03(\x0b\x32\x17.policy.KeyAccessServerR\x06grants\x12\x10\n\x03\x66qn\x18\x06 \x01(\tR\x03\x66qn\x12\x32\n\x06\x61\x63tive\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x06\x61\x63tive\x12\x41\n\x10subject_mappings\x18\x08 \x03(\x0b\x32\x16.policy.SubjectMappingR\x0fsubjectMappings\x12/\n\x08kas_keys\x18\t \x03(\x0b\x32\x14.policy.SimpleKasKeyR\x07kasKeys\x12\x44\n\x11resource_mappings\x18\n \x03(\x0b\x32\x17.policy.ResourceMappingR\x10resourceMappings\x12\x34\n\x0bobligations\x18\x0b \x03(\x0b\x32\x12.policy.ObligationR\x0bobligations\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadataJ\x04\x08\x04\x10\x05R\x07members\"\xa8\x02\n\x06\x41\x63tion\x12\x0e\n\x02id\x18\x03 \x01(\tR\x02id\x12;\n\x08standard\x18\x01 \x01(\x0e\x32\x1d.policy.Action.StandardActionH\x00R\x08standard\x12\x18\n\x06\x63ustom\x18\x02 \x01(\tH\x00R\x06\x63ustom\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"l\n\x0eStandardAction\x12\x1f\n\x1bSTANDARD_ACTION_UNSPECIFIED\x10\x00\x12\x1b\n\x17STANDARD_ACTION_DECRYPT\x10\x01\x12\x1c\n\x18STANDARD_ACTION_TRANSMIT\x10\x02\x42\x07\n\x05value\"\x81\x02\n\x0eSubjectMapping\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x36\n\x0f\x61ttribute_value\x18\x02 \x01(\x0b\x32\r.policy.ValueR\x0e\x61ttributeValue\x12O\n\x15subject_condition_set\x18\x03 \x01(\x0b\x32\x1b.policy.SubjectConditionSetR\x13subjectConditionSet\x12(\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\x0e.policy.ActionR\x07\x61\x63tions\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xe9\x01\n\tCondition\x12M\n\x1fsubject_external_selector_value\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x1csubjectExternalSelectorValue\x12K\n\x08operator\x18\x02 \x01(\x0e\x32\".policy.SubjectMappingOperatorEnumB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x01R\x08operator\x12@\n\x17subject_external_values\x18\x03 \x03(\tB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x15subjectExternalValues\"\xa7\x01\n\x0e\x43onditionGroup\x12;\n\nconditions\x18\x01 \x03(\x0b\x32\x11.policy.ConditionB\x08\xbaH\x05\x92\x01\x02\x08\x01R\nconditions\x12X\n\x10\x62oolean_operator\x18\x02 \x01(\x0e\x32 .policy.ConditionBooleanTypeEnumB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x01R\x0f\x62ooleanOperator\"Y\n\nSubjectSet\x12K\n\x10\x63ondition_groups\x18\x01 \x03(\x0b\x32\x16.policy.ConditionGroupB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x0f\x63onditionGroups\"\x94\x01\n\x13SubjectConditionSet\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12?\n\x0csubject_sets\x18\x03 \x03(\x0b\x32\x12.policy.SubjectSetB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x0bsubjectSets\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"|\n\x0fSubjectProperty\x12\x42\n\x17\x65xternal_selector_value\x18\x01 \x01(\tB\n\xbaH\x07r\x02\x10\x01\xc8\x01\x01R\x15\x65xternalSelectorValue\x12%\n\x0e\x65xternal_value\x18\x02 \x01(\tR\rexternalValue\"\x9b\x01\n\x14ResourceMappingGroup\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12)\n\x0cnamespace_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bnamespaceId\x12\x1a\n\x04name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04name\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xd9\x01\n\x0fResourceMapping\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12,\n\x08metadata\x18\x02 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\x12>\n\x0f\x61ttribute_value\x18\x03 \x01(\x0b\x32\r.policy.ValueB\x06\xbaH\x03\xc8\x01\x01R\x0e\x61ttributeValue\x12\x14\n\x05terms\x18\x04 \x03(\tR\x05terms\x12\x32\n\x05group\x18\x05 \x01(\x0b\x32\x1c.policy.ResourceMappingGroupR\x05group\"\x85\x05\n\x0fKeyAccessServer\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x87\x03\n\x03uri\x18\x02 \x01(\tB\xf4\x02\xbaH\xf0\x02\xba\x01\xec\x02\n\nuri_format\x12\xcf\x01URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\x1a\x8b\x01this.matches(\'^https?://[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?(\\\\.[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$\')R\x03uri\x12\x30\n\npublic_key\x18\x03 \x01(\x0b\x32\x11.policy.PublicKeyR\tpublicKey\x12\x33\n\x0bsource_type\x18\x04 \x01(\x0e\x32\x12.policy.SourceTypeR\nsourceType\x12/\n\x08kas_keys\x18\x05 \x03(\x0b\x32\x14.policy.SimpleKasKeyR\x07kasKeys\x12\x12\n\x04name\x18\x14 \x01(\tR\x04name\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\x97\x02\n\x03Key\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x37\n\tis_active\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x08isActive\x12\x39\n\nwas_mapped\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\twasMapped\x12\x33\n\npublic_key\x18\x04 \x01(\x0b\x32\x14.policy.KasPublicKeyR\tpublicKey\x12)\n\x03kas\x18\x05 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x03kas\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\x84\x01\n\x0cKasPublicKey\x12\x1c\n\x03pem\x18\x01 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x18\x80@R\x03pem\x12\x1b\n\x03kid\x18\x02 \x01(\tB\t\xbaH\x06r\x04\x10\x01\x18 R\x03kid\x12\x39\n\x03\x61lg\x18\x03 \x01(\x0e\x32\x1b.policy.KasPublicKeyAlgEnumB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x03\x61lg\";\n\x0fKasPublicKeySet\x12(\n\x04keys\x18\x01 \x03(\x0b\x32\x14.policy.KasPublicKeyR\x04keys\"\xe0\x03\n\tPublicKey\x12\x84\x03\n\x06remote\x18\x01 \x01(\tB\xe9\x02\xbaH\xe5\x02\xba\x01\xe1\x02\n\nuri_format\x12\xcf\x01URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\x1a\x80\x01this.matches(\'^https://[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?(\\\\.[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$\')H\x00R\x06remote\x12\x31\n\x06\x63\x61\x63hed\x18\x03 \x01(\x0b\x32\x17.policy.KasPublicKeySetH\x00R\x06\x63\x61\x63hedB\x0c\n\npublic_keyJ\x04\x08\x02\x10\x03R\x05local\"\x9f\x01\n\x12RegisteredResource\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x37\n\x06values\x18\x03 \x03(\x0b\x32\x1f.policy.RegisteredResourceValueR\x06values\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xca\x03\n\x17RegisteredResourceValue\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\x12\x36\n\x08resource\x18\x03 \x01(\x0b\x32\x1a.policy.RegisteredResourceR\x08resource\x12l\n\x17\x61\x63tion_attribute_values\x18\x04 \x03(\x0b\x32\x34.policy.RegisteredResourceValue.ActionAttributeValueR\x15\x61\x63tionAttributeValues\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\x1a\xb4\x01\n\x14\x41\x63tionAttributeValue\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12&\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\x12\x36\n\x0f\x61ttribute_value\x18\x03 \x01(\x0b\x32\r.policy.ValueR\x0e\x61ttributeValue\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\">\n\x16PolicyEnforcementPoint\x12$\n\tclient_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08\x63lientId\"J\n\x0eRequestContext\x12\x38\n\x03pep\x18\x01 \x01(\x0b\x32\x1e.policy.PolicyEnforcementPointB\x06\xbaH\x03\xc8\x01\x01R\x03pep\"\xd2\x01\n\nObligation\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12/\n\tnamespace\x18\x02 \x01(\x0b\x32\x11.policy.NamespaceR\tnamespace\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12/\n\x06values\x18\x04 \x03(\x0b\x32\x17.policy.ObligationValueR\x06values\x12\x10\n\x03\x66qn\x18\x05 \x01(\tR\x03\x66qn\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xe2\x01\n\x0fObligationValue\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x32\n\nobligation\x18\x02 \x01(\x0b\x32\x12.policy.ObligationR\nobligation\x12\x14\n\x05value\x18\x03 \x01(\tR\x05value\x12\x35\n\x08triggers\x18\x04 \x03(\x0b\x32\x19.policy.ObligationTriggerR\x08triggers\x12\x10\n\x03\x66qn\x18\x05 \x01(\tR\x03\x66qn\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xa7\x02\n\x11ObligationTrigger\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x42\n\x10obligation_value\x18\x02 \x01(\x0b\x32\x17.policy.ObligationValueR\x0fobligationValue\x12&\n\x06\x61\x63tion\x18\x03 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\x12\x36\n\x0f\x61ttribute_value\x18\x04 \x01(\x0b\x32\r.policy.ValueR\x0e\x61ttributeValue\x12\x30\n\x07\x63ontext\x18\x05 \x03(\x0b\x32\x16.policy.RequestContextR\x07\x63ontext\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"a\n\x06KasKey\x12\x15\n\x06kas_id\x18\x01 \x01(\tR\x05kasId\x12\'\n\x03key\x18\x02 \x01(\x0b\x32\x15.policy.AsymmetricKeyR\x03key\x12\x17\n\x07kas_uri\x18\x03 \x01(\tR\x06kasUri\")\n\x0cPublicKeyCtx\x12\x19\n\x03pem\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x03pem\"P\n\rPrivateKeyCtx\x12\x1e\n\x06key_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05keyId\x12\x1f\n\x0bwrapped_key\x18\x02 \x01(\tR\nwrappedKey\"\xd1\x03\n\rAsymmetricKey\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x15\n\x06key_id\x18\x02 \x01(\tR\x05keyId\x12\x36\n\rkey_algorithm\x18\x03 \x01(\x0e\x32\x11.policy.AlgorithmR\x0ckeyAlgorithm\x12\x30\n\nkey_status\x18\x04 \x01(\x0e\x32\x11.policy.KeyStatusR\tkeyStatus\x12*\n\x08key_mode\x18\x05 \x01(\x0e\x32\x0f.policy.KeyModeR\x07keyMode\x12:\n\x0epublic_key_ctx\x18\x06 \x01(\x0b\x32\x14.policy.PublicKeyCtxR\x0cpublicKeyCtx\x12=\n\x0fprivate_key_ctx\x18\x07 \x01(\x0b\x32\x15.policy.PrivateKeyCtxR\rprivateKeyCtx\x12\x42\n\x0fprovider_config\x18\x08 \x01(\x0b\x32\x19.policy.KeyProviderConfigR\x0eproviderConfig\x12\x16\n\x06legacy\x18\t \x01(\x08R\x06legacy\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\x9e\x02\n\x0cSymmetricKey\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x15\n\x06key_id\x18\x02 \x01(\tR\x05keyId\x12\x30\n\nkey_status\x18\x03 \x01(\x0e\x32\x11.policy.KeyStatusR\tkeyStatus\x12*\n\x08key_mode\x18\x04 \x01(\x0e\x32\x0f.policy.KeyModeR\x07keyMode\x12\x17\n\x07key_ctx\x18\x05 \x01(\x0cR\x06keyCtx\x12\x42\n\x0fprovider_config\x18\x06 \x01(\x0b\x32\x19.policy.KeyProviderConfigR\x0eproviderConfig\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata*\xb3\x01\n\x15\x41ttributeRuleTypeEnum\x12(\n$ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED\x10\x00\x12#\n\x1f\x41TTRIBUTE_RULE_TYPE_ENUM_ALL_OF\x10\x01\x12#\n\x1f\x41TTRIBUTE_RULE_TYPE_ENUM_ANY_OF\x10\x02\x12&\n\"ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY\x10\x03*\xca\x01\n\x1aSubjectMappingOperatorEnum\x12-\n)SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED\x10\x00\x12$\n SUBJECT_MAPPING_OPERATOR_ENUM_IN\x10\x01\x12(\n$SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN\x10\x02\x12-\n)SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS\x10\x03*\x90\x01\n\x18\x43onditionBooleanTypeEnum\x12+\n\'CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED\x10\x00\x12#\n\x1f\x43ONDITION_BOOLEAN_TYPE_ENUM_AND\x10\x01\x12\"\n\x1e\x43ONDITION_BOOLEAN_TYPE_ENUM_OR\x10\x02*]\n\nSourceType\x12\x1b\n\x17SOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14SOURCE_TYPE_INTERNAL\x10\x01\x12\x18\n\x14SOURCE_TYPE_EXTERNAL\x10\x02*\x88\x02\n\x13KasPublicKeyAlgEnum\x12\'\n#KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED\x10\x00\x12$\n KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048\x10\x01\x12$\n KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096\x10\x02\x12(\n$KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1\x10\x05\x12(\n$KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1\x10\x06\x12(\n$KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1\x10\x07*\x9b\x01\n\tAlgorithm\x12\x19\n\x15\x41LGORITHM_UNSPECIFIED\x10\x00\x12\x16\n\x12\x41LGORITHM_RSA_2048\x10\x01\x12\x16\n\x12\x41LGORITHM_RSA_4096\x10\x02\x12\x15\n\x11\x41LGORITHM_EC_P256\x10\x03\x12\x15\n\x11\x41LGORITHM_EC_P384\x10\x04\x12\x15\n\x11\x41LGORITHM_EC_P521\x10\x05*V\n\tKeyStatus\x12\x1a\n\x16KEY_STATUS_UNSPECIFIED\x10\x00\x12\x15\n\x11KEY_STATUS_ACTIVE\x10\x01\x12\x16\n\x12KEY_STATUS_ROTATED\x10\x02*\x94\x01\n\x07KeyMode\x12\x18\n\x14KEY_MODE_UNSPECIFIED\x10\x00\x12\x1c\n\x18KEY_MODE_CONFIG_ROOT_KEY\x10\x01\x12\x1e\n\x1aKEY_MODE_PROVIDER_ROOT_KEY\x10\x02\x12\x13\n\x0fKEY_MODE_REMOTE\x10\x03\x12\x1c\n\x18KEY_MODE_PUBLIC_KEY_ONLY\x10\x04\x42R\n\ncom.policyB\x0cObjectsProtoP\x01\xa2\x02\x03PXX\xaa\x02\x06Policy\xca\x02\x06Policy\xe2\x02\x12Policy\\GPBMetadata\xea\x02\x06Policyb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14policy/objects.proto\x12\x06policy\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x1egoogle/protobuf/wrappers.proto\"i\n\x12SimpleKasPublicKey\x12/\n\talgorithm\x18\x01 \x01(\x0e\x32\x11.policy.AlgorithmR\talgorithm\x12\x10\n\x03kid\x18\x02 \x01(\tR\x03kid\x12\x10\n\x03pem\x18\x03 \x01(\tR\x03pem\"y\n\x0cSimpleKasKey\x12\x17\n\x07kas_uri\x18\x01 \x01(\tR\x06kasUri\x12\x39\n\npublic_key\x18\x02 \x01(\x0b\x32\x1a.policy.SimpleKasPublicKeyR\tpublicKey\x12\x15\n\x06kas_id\x18\x03 \x01(\tR\x05kasId\"\xa0\x01\n\x11KeyProviderConfig\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1f\n\x0b\x63onfig_json\x18\x03 \x01(\x0cR\nconfigJson\x12\x18\n\x07manager\x18\x04 \x01(\tR\x07manager\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\x85\x02\n\tNamespace\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x10\n\x03\x66qn\x18\x03 \x01(\tR\x03\x66qn\x12\x32\n\x06\x61\x63tive\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x06\x61\x63tive\x12,\n\x08metadata\x18\x05 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\x12/\n\x06grants\x18\x06 \x03(\x0b\x32\x17.policy.KeyAccessServerR\x06grants\x12/\n\x08kas_keys\x18\x07 \x03(\x0b\x32\x14.policy.SimpleKasKeyR\x07kasKeys\"\xe2\x03\n\tAttribute\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12/\n\tnamespace\x18\x02 \x01(\x0b\x32\x11.policy.NamespaceR\tnamespace\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12>\n\x04rule\x18\x04 \x01(\x0e\x32\x1d.policy.AttributeRuleTypeEnumB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x01R\x04rule\x12%\n\x06values\x18\x05 \x03(\x0b\x32\r.policy.ValueR\x06values\x12/\n\x06grants\x18\x06 \x03(\x0b\x32\x17.policy.KeyAccessServerR\x06grants\x12\x10\n\x03\x66qn\x18\x07 \x01(\tR\x03\x66qn\x12\x32\n\x06\x61\x63tive\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x06\x61\x63tive\x12/\n\x08kas_keys\x18\t \x03(\x0b\x32\x14.policy.SimpleKasKeyR\x07kasKeys\x12\x43\n\x0f\x61llow_traversal\x18\n \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x0e\x61llowTraversal\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\x82\x04\n\x05Value\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12/\n\tattribute\x18\x02 \x01(\x0b\x32\x11.policy.AttributeR\tattribute\x12\x14\n\x05value\x18\x03 \x01(\tR\x05value\x12/\n\x06grants\x18\x05 \x03(\x0b\x32\x17.policy.KeyAccessServerR\x06grants\x12\x10\n\x03\x66qn\x18\x06 \x01(\tR\x03\x66qn\x12\x32\n\x06\x61\x63tive\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x06\x61\x63tive\x12\x41\n\x10subject_mappings\x18\x08 \x03(\x0b\x32\x16.policy.SubjectMappingR\x0fsubjectMappings\x12/\n\x08kas_keys\x18\t \x03(\x0b\x32\x14.policy.SimpleKasKeyR\x07kasKeys\x12\x44\n\x11resource_mappings\x18\n \x03(\x0b\x32\x17.policy.ResourceMappingR\x10resourceMappings\x12\x34\n\x0bobligations\x18\x0b \x03(\x0b\x32\x12.policy.ObligationR\x0bobligations\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadataJ\x04\x08\x04\x10\x05R\x07members\"\xd9\x02\n\x06\x41\x63tion\x12\x0e\n\x02id\x18\x03 \x01(\tR\x02id\x12;\n\x08standard\x18\x01 \x01(\x0e\x32\x1d.policy.Action.StandardActionH\x00R\x08standard\x12\x18\n\x06\x63ustom\x18\x02 \x01(\tH\x00R\x06\x63ustom\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12/\n\tnamespace\x18\x05 \x01(\x0b\x32\x11.policy.NamespaceR\tnamespace\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"l\n\x0eStandardAction\x12\x1f\n\x1bSTANDARD_ACTION_UNSPECIFIED\x10\x00\x12\x1b\n\x17STANDARD_ACTION_DECRYPT\x10\x01\x12\x1c\n\x18STANDARD_ACTION_TRANSMIT\x10\x02\x42\x07\n\x05value\"\xb2\x02\n\x0eSubjectMapping\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x36\n\x0f\x61ttribute_value\x18\x02 \x01(\x0b\x32\r.policy.ValueR\x0e\x61ttributeValue\x12O\n\x15subject_condition_set\x18\x03 \x01(\x0b\x32\x1b.policy.SubjectConditionSetR\x13subjectConditionSet\x12(\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\x0e.policy.ActionR\x07\x61\x63tions\x12/\n\tnamespace\x18\x05 \x01(\x0b\x32\x11.policy.NamespaceR\tnamespace\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xe9\x01\n\tCondition\x12M\n\x1fsubject_external_selector_value\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x1csubjectExternalSelectorValue\x12K\n\x08operator\x18\x02 \x01(\x0e\x32\".policy.SubjectMappingOperatorEnumB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x01R\x08operator\x12@\n\x17subject_external_values\x18\x03 \x03(\tB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x15subjectExternalValues\"\xa7\x01\n\x0e\x43onditionGroup\x12;\n\nconditions\x18\x01 \x03(\x0b\x32\x11.policy.ConditionB\x08\xbaH\x05\x92\x01\x02\x08\x01R\nconditions\x12X\n\x10\x62oolean_operator\x18\x02 \x01(\x0e\x32 .policy.ConditionBooleanTypeEnumB\x0b\xbaH\x08\x82\x01\x02\x10\x01\xc8\x01\x01R\x0f\x62ooleanOperator\"Y\n\nSubjectSet\x12K\n\x10\x63ondition_groups\x18\x01 \x03(\x0b\x32\x16.policy.ConditionGroupB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x0f\x63onditionGroups\"\xc5\x01\n\x13SubjectConditionSet\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12/\n\tnamespace\x18\x02 \x01(\x0b\x32\x11.policy.NamespaceR\tnamespace\x12?\n\x0csubject_sets\x18\x03 \x03(\x0b\x32\x12.policy.SubjectSetB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x0bsubjectSets\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"|\n\x0fSubjectProperty\x12\x42\n\x17\x65xternal_selector_value\x18\x01 \x01(\tB\n\xbaH\x07r\x02\x10\x01\xc8\x01\x01R\x15\x65xternalSelectorValue\x12%\n\x0e\x65xternal_value\x18\x02 \x01(\tR\rexternalValue\"\x9b\x01\n\x14ResourceMappingGroup\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12)\n\x0cnamespace_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bnamespaceId\x12\x1a\n\x04name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04name\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xd9\x01\n\x0fResourceMapping\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12,\n\x08metadata\x18\x02 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\x12>\n\x0f\x61ttribute_value\x18\x03 \x01(\x0b\x32\r.policy.ValueB\x06\xbaH\x03\xc8\x01\x01R\x0e\x61ttributeValue\x12\x14\n\x05terms\x18\x04 \x03(\tR\x05terms\x12\x32\n\x05group\x18\x05 \x01(\x0b\x32\x1c.policy.ResourceMappingGroupR\x05group\"\x85\x05\n\x0fKeyAccessServer\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x87\x03\n\x03uri\x18\x02 \x01(\tB\xf4\x02\xbaH\xf0\x02\xba\x01\xec\x02\n\nuri_format\x12\xcf\x01URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\x1a\x8b\x01this.matches(\'^https?://[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?(\\\\.[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$\')R\x03uri\x12\x30\n\npublic_key\x18\x03 \x01(\x0b\x32\x11.policy.PublicKeyR\tpublicKey\x12\x33\n\x0bsource_type\x18\x04 \x01(\x0e\x32\x12.policy.SourceTypeR\nsourceType\x12/\n\x08kas_keys\x18\x05 \x03(\x0b\x32\x14.policy.SimpleKasKeyR\x07kasKeys\x12\x12\n\x04name\x18\x14 \x01(\tR\x04name\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\x97\x02\n\x03Key\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x37\n\tis_active\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\x08isActive\x12\x39\n\nwas_mapped\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValueR\twasMapped\x12\x33\n\npublic_key\x18\x04 \x01(\x0b\x32\x14.policy.KasPublicKeyR\tpublicKey\x12)\n\x03kas\x18\x05 \x01(\x0b\x32\x17.policy.KeyAccessServerR\x03kas\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\x84\x01\n\x0cKasPublicKey\x12\x1c\n\x03pem\x18\x01 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x18\x80@R\x03pem\x12\x1b\n\x03kid\x18\x02 \x01(\tB\t\xbaH\x06r\x04\x10\x01\x18 R\x03kid\x12\x39\n\x03\x61lg\x18\x03 \x01(\x0e\x32\x1b.policy.KasPublicKeyAlgEnumB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00R\x03\x61lg\";\n\x0fKasPublicKeySet\x12(\n\x04keys\x18\x01 \x03(\x0b\x32\x14.policy.KasPublicKeyR\x04keys\"\xe0\x03\n\tPublicKey\x12\x84\x03\n\x06remote\x18\x01 \x01(\tB\xe9\x02\xbaH\xe5\x02\xba\x01\xe1\x02\n\nuri_format\x12\xcf\x01URI must be a valid URL (e.g., \'https://demo.com/\') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.\x1a\x80\x01this.matches(\'^https://[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?(\\\\.[a-zA-Z0-9]([a-zA-Z0-9\\\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$\')H\x00R\x06remote\x12\x31\n\x06\x63\x61\x63hed\x18\x03 \x01(\x0b\x32\x17.policy.KasPublicKeySetH\x00R\x06\x63\x61\x63hedB\x0c\n\npublic_keyJ\x04\x08\x02\x10\x03R\x05local\"\xd0\x01\n\x12RegisteredResource\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x37\n\x06values\x18\x03 \x03(\x0b\x32\x1f.policy.RegisteredResourceValueR\x06values\x12/\n\tnamespace\x18\x04 \x01(\x0b\x32\x11.policy.NamespaceR\tnamespace\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xca\x03\n\x17RegisteredResourceValue\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value\x12\x36\n\x08resource\x18\x03 \x01(\x0b\x32\x1a.policy.RegisteredResourceR\x08resource\x12l\n\x17\x61\x63tion_attribute_values\x18\x04 \x03(\x0b\x32\x34.policy.RegisteredResourceValue.ActionAttributeValueR\x15\x61\x63tionAttributeValues\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\x1a\xb4\x01\n\x14\x41\x63tionAttributeValue\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12&\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\x12\x36\n\x0f\x61ttribute_value\x18\x03 \x01(\x0b\x32\r.policy.ValueR\x0e\x61ttributeValue\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\">\n\x16PolicyEnforcementPoint\x12$\n\tclient_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08\x63lientId\"J\n\x0eRequestContext\x12\x38\n\x03pep\x18\x01 \x01(\x0b\x32\x1e.policy.PolicyEnforcementPointB\x06\xbaH\x03\xc8\x01\x01R\x03pep\"\xd2\x01\n\nObligation\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12/\n\tnamespace\x18\x02 \x01(\x0b\x32\x11.policy.NamespaceR\tnamespace\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12/\n\x06values\x18\x04 \x03(\x0b\x32\x17.policy.ObligationValueR\x06values\x12\x10\n\x03\x66qn\x18\x05 \x01(\tR\x03\x66qn\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xe2\x01\n\x0fObligationValue\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x32\n\nobligation\x18\x02 \x01(\x0b\x32\x12.policy.ObligationR\nobligation\x12\x14\n\x05value\x18\x03 \x01(\tR\x05value\x12\x35\n\x08triggers\x18\x04 \x03(\x0b\x32\x19.policy.ObligationTriggerR\x08triggers\x12\x10\n\x03\x66qn\x18\x05 \x01(\tR\x03\x66qn\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\xa7\x02\n\x11ObligationTrigger\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x42\n\x10obligation_value\x18\x02 \x01(\x0b\x32\x17.policy.ObligationValueR\x0fobligationValue\x12&\n\x06\x61\x63tion\x18\x03 \x01(\x0b\x32\x0e.policy.ActionR\x06\x61\x63tion\x12\x36\n\x0f\x61ttribute_value\x18\x04 \x01(\x0b\x32\r.policy.ValueR\x0e\x61ttributeValue\x12\x30\n\x07\x63ontext\x18\x05 \x03(\x0b\x32\x16.policy.RequestContextR\x07\x63ontext\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"a\n\x06KasKey\x12\x15\n\x06kas_id\x18\x01 \x01(\tR\x05kasId\x12\'\n\x03key\x18\x02 \x01(\x0b\x32\x15.policy.AsymmetricKeyR\x03key\x12\x17\n\x07kas_uri\x18\x03 \x01(\tR\x06kasUri\")\n\x0cPublicKeyCtx\x12\x19\n\x03pem\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x03pem\"P\n\rPrivateKeyCtx\x12\x1e\n\x06key_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05keyId\x12\x1f\n\x0bwrapped_key\x18\x02 \x01(\tR\nwrappedKey\"\xd1\x03\n\rAsymmetricKey\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x15\n\x06key_id\x18\x02 \x01(\tR\x05keyId\x12\x36\n\rkey_algorithm\x18\x03 \x01(\x0e\x32\x11.policy.AlgorithmR\x0ckeyAlgorithm\x12\x30\n\nkey_status\x18\x04 \x01(\x0e\x32\x11.policy.KeyStatusR\tkeyStatus\x12*\n\x08key_mode\x18\x05 \x01(\x0e\x32\x0f.policy.KeyModeR\x07keyMode\x12:\n\x0epublic_key_ctx\x18\x06 \x01(\x0b\x32\x14.policy.PublicKeyCtxR\x0cpublicKeyCtx\x12=\n\x0fprivate_key_ctx\x18\x07 \x01(\x0b\x32\x15.policy.PrivateKeyCtxR\rprivateKeyCtx\x12\x42\n\x0fprovider_config\x18\x08 \x01(\x0b\x32\x19.policy.KeyProviderConfigR\x0eproviderConfig\x12\x16\n\x06legacy\x18\t \x01(\x08R\x06legacy\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata\"\x9e\x02\n\x0cSymmetricKey\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x15\n\x06key_id\x18\x02 \x01(\tR\x05keyId\x12\x30\n\nkey_status\x18\x03 \x01(\x0e\x32\x11.policy.KeyStatusR\tkeyStatus\x12*\n\x08key_mode\x18\x04 \x01(\x0e\x32\x0f.policy.KeyModeR\x07keyMode\x12\x17\n\x07key_ctx\x18\x05 \x01(\x0cR\x06keyCtx\x12\x42\n\x0fprovider_config\x18\x06 \x01(\x0b\x32\x19.policy.KeyProviderConfigR\x0eproviderConfig\x12,\n\x08metadata\x18\x64 \x01(\x0b\x32\x10.common.MetadataR\x08metadata*\xb3\x01\n\x15\x41ttributeRuleTypeEnum\x12(\n$ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED\x10\x00\x12#\n\x1f\x41TTRIBUTE_RULE_TYPE_ENUM_ALL_OF\x10\x01\x12#\n\x1f\x41TTRIBUTE_RULE_TYPE_ENUM_ANY_OF\x10\x02\x12&\n\"ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY\x10\x03*\xca\x01\n\x1aSubjectMappingOperatorEnum\x12-\n)SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED\x10\x00\x12$\n SUBJECT_MAPPING_OPERATOR_ENUM_IN\x10\x01\x12(\n$SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN\x10\x02\x12-\n)SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS\x10\x03*\x90\x01\n\x18\x43onditionBooleanTypeEnum\x12+\n\'CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED\x10\x00\x12#\n\x1f\x43ONDITION_BOOLEAN_TYPE_ENUM_AND\x10\x01\x12\"\n\x1e\x43ONDITION_BOOLEAN_TYPE_ENUM_OR\x10\x02*]\n\nSourceType\x12\x1b\n\x17SOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14SOURCE_TYPE_INTERNAL\x10\x01\x12\x18\n\x14SOURCE_TYPE_EXTERNAL\x10\x02*\x88\x02\n\x13KasPublicKeyAlgEnum\x12\'\n#KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED\x10\x00\x12$\n KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048\x10\x01\x12$\n KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096\x10\x02\x12(\n$KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1\x10\x05\x12(\n$KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1\x10\x06\x12(\n$KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1\x10\x07*\x9b\x01\n\tAlgorithm\x12\x19\n\x15\x41LGORITHM_UNSPECIFIED\x10\x00\x12\x16\n\x12\x41LGORITHM_RSA_2048\x10\x01\x12\x16\n\x12\x41LGORITHM_RSA_4096\x10\x02\x12\x15\n\x11\x41LGORITHM_EC_P256\x10\x03\x12\x15\n\x11\x41LGORITHM_EC_P384\x10\x04\x12\x15\n\x11\x41LGORITHM_EC_P521\x10\x05*V\n\tKeyStatus\x12\x1a\n\x16KEY_STATUS_UNSPECIFIED\x10\x00\x12\x15\n\x11KEY_STATUS_ACTIVE\x10\x01\x12\x16\n\x12KEY_STATUS_ROTATED\x10\x02*\x94\x01\n\x07KeyMode\x12\x18\n\x14KEY_MODE_UNSPECIFIED\x10\x00\x12\x1c\n\x18KEY_MODE_CONFIG_ROOT_KEY\x10\x01\x12\x1e\n\x1aKEY_MODE_PROVIDER_ROOT_KEY\x10\x02\x12\x13\n\x0fKEY_MODE_REMOTE\x10\x03\x12\x1c\n\x18KEY_MODE_PUBLIC_KEY_ONLY\x10\x04\x42R\n\ncom.policyB\x0cObjectsProtoP\x01\xa2\x02\x03PXX\xaa\x02\x06Policy\xca\x02\x06Policy\xe2\x02\x12Policy\\GPBMetadata\xea\x02\x06Policyb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -77,22 +77,22 @@ _globals['_PUBLICKEYCTX'].fields_by_name['pem']._serialized_options = b'\272H\004r\002\020\001' _globals['_PRIVATEKEYCTX'].fields_by_name['key_id']._loaded_options = None _globals['_PRIVATEKEYCTX'].fields_by_name['key_id']._serialized_options = b'\272H\004r\002\020\001' - _globals['_ATTRIBUTERULETYPEENUM']._serialized_start=7725 - _globals['_ATTRIBUTERULETYPEENUM']._serialized_end=7904 - _globals['_SUBJECTMAPPINGOPERATORENUM']._serialized_start=7907 - _globals['_SUBJECTMAPPINGOPERATORENUM']._serialized_end=8109 - _globals['_CONDITIONBOOLEANTYPEENUM']._serialized_start=8112 - _globals['_CONDITIONBOOLEANTYPEENUM']._serialized_end=8256 - _globals['_SOURCETYPE']._serialized_start=8258 - _globals['_SOURCETYPE']._serialized_end=8351 - _globals['_KASPUBLICKEYALGENUM']._serialized_start=8354 - _globals['_KASPUBLICKEYALGENUM']._serialized_end=8618 - _globals['_ALGORITHM']._serialized_start=8621 - _globals['_ALGORITHM']._serialized_end=8776 - _globals['_KEYSTATUS']._serialized_start=8778 - _globals['_KEYSTATUS']._serialized_end=8864 - _globals['_KEYMODE']._serialized_start=8867 - _globals['_KEYMODE']._serialized_end=9015 + _globals['_ATTRIBUTERULETYPEENUM']._serialized_start=7774 + _globals['_ATTRIBUTERULETYPEENUM']._serialized_end=7953 + _globals['_SUBJECTMAPPINGOPERATORENUM']._serialized_start=7956 + _globals['_SUBJECTMAPPINGOPERATORENUM']._serialized_end=8158 + _globals['_CONDITIONBOOLEANTYPEENUM']._serialized_start=8161 + _globals['_CONDITIONBOOLEANTYPEENUM']._serialized_end=8305 + _globals['_SOURCETYPE']._serialized_start=8307 + _globals['_SOURCETYPE']._serialized_end=8400 + _globals['_KASPUBLICKEYALGENUM']._serialized_start=8403 + _globals['_KASPUBLICKEYALGENUM']._serialized_end=8667 + _globals['_ALGORITHM']._serialized_start=8670 + _globals['_ALGORITHM']._serialized_end=8825 + _globals['_KEYSTATUS']._serialized_start=8827 + _globals['_KEYSTATUS']._serialized_end=8913 + _globals['_KEYMODE']._serialized_start=8916 + _globals['_KEYMODE']._serialized_end=9064 _globals['_SIMPLEKASPUBLICKEY']._serialized_start=114 _globals['_SIMPLEKASPUBLICKEY']._serialized_end=219 _globals['_SIMPLEKASKEY']._serialized_start=221 @@ -100,26 +100,24 @@ _globals['_KEYPROVIDERCONFIG']._serialized_start=345 _globals['_KEYPROVIDERCONFIG']._serialized_end=505 _globals['_NAMESPACE']._serialized_start=508 - _globals['_NAMESPACE']._serialized_end=821 - _globals['_CERTIFICATE']._serialized_start=823 - _globals['_CERTIFICATE']._serialized_end=916 - _globals['_ATTRIBUTE']._serialized_start=919 - _globals['_ATTRIBUTE']._serialized_end=1401 - _globals['_VALUE']._serialized_start=1404 - _globals['_VALUE']._serialized_end=1918 - _globals['_ACTION']._serialized_start=1921 - _globals['_ACTION']._serialized_end=2217 - _globals['_ACTION_STANDARDACTION']._serialized_start=2100 - _globals['_ACTION_STANDARDACTION']._serialized_end=2208 - _globals['_SUBJECTMAPPING']._serialized_start=2220 - _globals['_SUBJECTMAPPING']._serialized_end=2477 - _globals['_CONDITION']._serialized_start=2480 - _globals['_CONDITION']._serialized_end=2713 - _globals['_CONDITIONGROUP']._serialized_start=2716 - _globals['_CONDITIONGROUP']._serialized_end=2883 - _globals['_SUBJECTSET']._serialized_start=2885 - _globals['_SUBJECTSET']._serialized_end=2974 - _globals['_SUBJECTCONDITIONSET']._serialized_start=2977 + _globals['_NAMESPACE']._serialized_end=769 + _globals['_ATTRIBUTE']._serialized_start=772 + _globals['_ATTRIBUTE']._serialized_end=1254 + _globals['_VALUE']._serialized_start=1257 + _globals['_VALUE']._serialized_end=1771 + _globals['_ACTION']._serialized_start=1774 + _globals['_ACTION']._serialized_end=2119 + _globals['_ACTION_STANDARDACTION']._serialized_start=2002 + _globals['_ACTION_STANDARDACTION']._serialized_end=2110 + _globals['_SUBJECTMAPPING']._serialized_start=2122 + _globals['_SUBJECTMAPPING']._serialized_end=2428 + _globals['_CONDITION']._serialized_start=2431 + _globals['_CONDITION']._serialized_end=2664 + _globals['_CONDITIONGROUP']._serialized_start=2667 + _globals['_CONDITIONGROUP']._serialized_end=2834 + _globals['_SUBJECTSET']._serialized_start=2836 + _globals['_SUBJECTSET']._serialized_end=2925 + _globals['_SUBJECTCONDITIONSET']._serialized_start=2928 _globals['_SUBJECTCONDITIONSET']._serialized_end=3125 _globals['_SUBJECTPROPERTY']._serialized_start=3127 _globals['_SUBJECTPROPERTY']._serialized_end=3251 @@ -138,29 +136,29 @@ _globals['_PUBLICKEY']._serialized_start=4758 _globals['_PUBLICKEY']._serialized_end=5238 _globals['_REGISTEREDRESOURCE']._serialized_start=5241 - _globals['_REGISTEREDRESOURCE']._serialized_end=5400 - _globals['_REGISTEREDRESOURCEVALUE']._serialized_start=5403 - _globals['_REGISTEREDRESOURCEVALUE']._serialized_end=5861 - _globals['_REGISTEREDRESOURCEVALUE_ACTIONATTRIBUTEVALUE']._serialized_start=5681 - _globals['_REGISTEREDRESOURCEVALUE_ACTIONATTRIBUTEVALUE']._serialized_end=5861 - _globals['_POLICYENFORCEMENTPOINT']._serialized_start=5863 - _globals['_POLICYENFORCEMENTPOINT']._serialized_end=5925 - _globals['_REQUESTCONTEXT']._serialized_start=5927 - _globals['_REQUESTCONTEXT']._serialized_end=6001 - _globals['_OBLIGATION']._serialized_start=6004 - _globals['_OBLIGATION']._serialized_end=6214 - _globals['_OBLIGATIONVALUE']._serialized_start=6217 - _globals['_OBLIGATIONVALUE']._serialized_end=6443 - _globals['_OBLIGATIONTRIGGER']._serialized_start=6446 - _globals['_OBLIGATIONTRIGGER']._serialized_end=6741 - _globals['_KASKEY']._serialized_start=6743 - _globals['_KASKEY']._serialized_end=6840 - _globals['_PUBLICKEYCTX']._serialized_start=6842 - _globals['_PUBLICKEYCTX']._serialized_end=6883 - _globals['_PRIVATEKEYCTX']._serialized_start=6885 - _globals['_PRIVATEKEYCTX']._serialized_end=6965 - _globals['_ASYMMETRICKEY']._serialized_start=6968 - _globals['_ASYMMETRICKEY']._serialized_end=7433 - _globals['_SYMMETRICKEY']._serialized_start=7436 - _globals['_SYMMETRICKEY']._serialized_end=7722 + _globals['_REGISTEREDRESOURCE']._serialized_end=5449 + _globals['_REGISTEREDRESOURCEVALUE']._serialized_start=5452 + _globals['_REGISTEREDRESOURCEVALUE']._serialized_end=5910 + _globals['_REGISTEREDRESOURCEVALUE_ACTIONATTRIBUTEVALUE']._serialized_start=5730 + _globals['_REGISTEREDRESOURCEVALUE_ACTIONATTRIBUTEVALUE']._serialized_end=5910 + _globals['_POLICYENFORCEMENTPOINT']._serialized_start=5912 + _globals['_POLICYENFORCEMENTPOINT']._serialized_end=5974 + _globals['_REQUESTCONTEXT']._serialized_start=5976 + _globals['_REQUESTCONTEXT']._serialized_end=6050 + _globals['_OBLIGATION']._serialized_start=6053 + _globals['_OBLIGATION']._serialized_end=6263 + _globals['_OBLIGATIONVALUE']._serialized_start=6266 + _globals['_OBLIGATIONVALUE']._serialized_end=6492 + _globals['_OBLIGATIONTRIGGER']._serialized_start=6495 + _globals['_OBLIGATIONTRIGGER']._serialized_end=6790 + _globals['_KASKEY']._serialized_start=6792 + _globals['_KASKEY']._serialized_end=6889 + _globals['_PUBLICKEYCTX']._serialized_start=6891 + _globals['_PUBLICKEYCTX']._serialized_end=6932 + _globals['_PRIVATEKEYCTX']._serialized_start=6934 + _globals['_PRIVATEKEYCTX']._serialized_end=7014 + _globals['_ASYMMETRICKEY']._serialized_start=7017 + _globals['_ASYMMETRICKEY']._serialized_end=7482 + _globals['_SYMMETRICKEY']._serialized_start=7485 + _globals['_SYMMETRICKEY']._serialized_end=7771 # @@protoc_insertion_point(module_scope) diff --git a/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.pyi b/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.pyi index e61efa30..e07aa110 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.pyi +++ b/otdf-python-proto/src/otdf_python_proto/policy/objects_pb2.pyi @@ -137,7 +137,7 @@ class KeyProviderConfig(_message.Message): def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., config_json: _Optional[bytes] = ..., manager: _Optional[str] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... class Namespace(_message.Message): - __slots__ = ("id", "name", "fqn", "active", "metadata", "grants", "kas_keys", "root_certs") + __slots__ = ("id", "name", "fqn", "active", "metadata", "grants", "kas_keys") ID_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] FQN_FIELD_NUMBER: _ClassVar[int] @@ -145,7 +145,6 @@ class Namespace(_message.Message): METADATA_FIELD_NUMBER: _ClassVar[int] GRANTS_FIELD_NUMBER: _ClassVar[int] KAS_KEYS_FIELD_NUMBER: _ClassVar[int] - ROOT_CERTS_FIELD_NUMBER: _ClassVar[int] id: str name: str fqn: str @@ -153,18 +152,7 @@ class Namespace(_message.Message): metadata: _common_pb2.Metadata grants: _containers.RepeatedCompositeFieldContainer[KeyAccessServer] kas_keys: _containers.RepeatedCompositeFieldContainer[SimpleKasKey] - root_certs: _containers.RepeatedCompositeFieldContainer[Certificate] - def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., fqn: _Optional[str] = ..., active: _Optional[_Union[_wrappers_pb2.BoolValue, _Mapping]] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ..., grants: _Optional[_Iterable[_Union[KeyAccessServer, _Mapping]]] = ..., kas_keys: _Optional[_Iterable[_Union[SimpleKasKey, _Mapping]]] = ..., root_certs: _Optional[_Iterable[_Union[Certificate, _Mapping]]] = ...) -> None: ... - -class Certificate(_message.Message): - __slots__ = ("id", "pem", "metadata") - ID_FIELD_NUMBER: _ClassVar[int] - PEM_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - id: str - pem: str - metadata: _common_pb2.Metadata - def __init__(self, id: _Optional[str] = ..., pem: _Optional[str] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... + def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., fqn: _Optional[str] = ..., active: _Optional[_Union[_wrappers_pb2.BoolValue, _Mapping]] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ..., grants: _Optional[_Iterable[_Union[KeyAccessServer, _Mapping]]] = ..., kas_keys: _Optional[_Iterable[_Union[SimpleKasKey, _Mapping]]] = ...) -> None: ... class Attribute(_message.Message): __slots__ = ("id", "namespace", "name", "rule", "values", "grants", "fqn", "active", "kas_keys", "allow_traversal", "metadata") @@ -219,7 +207,7 @@ class Value(_message.Message): def __init__(self, id: _Optional[str] = ..., attribute: _Optional[_Union[Attribute, _Mapping]] = ..., value: _Optional[str] = ..., grants: _Optional[_Iterable[_Union[KeyAccessServer, _Mapping]]] = ..., fqn: _Optional[str] = ..., active: _Optional[_Union[_wrappers_pb2.BoolValue, _Mapping]] = ..., subject_mappings: _Optional[_Iterable[_Union[SubjectMapping, _Mapping]]] = ..., kas_keys: _Optional[_Iterable[_Union[SimpleKasKey, _Mapping]]] = ..., resource_mappings: _Optional[_Iterable[_Union[ResourceMapping, _Mapping]]] = ..., obligations: _Optional[_Iterable[_Union[Obligation, _Mapping]]] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... class Action(_message.Message): - __slots__ = ("id", "standard", "custom", "name", "metadata") + __slots__ = ("id", "standard", "custom", "name", "namespace", "metadata") class StandardAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () STANDARD_ACTION_UNSPECIFIED: _ClassVar[Action.StandardAction] @@ -232,27 +220,31 @@ class Action(_message.Message): STANDARD_FIELD_NUMBER: _ClassVar[int] CUSTOM_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] id: str standard: Action.StandardAction custom: str name: str + namespace: Namespace metadata: _common_pb2.Metadata - def __init__(self, id: _Optional[str] = ..., standard: _Optional[_Union[Action.StandardAction, str]] = ..., custom: _Optional[str] = ..., name: _Optional[str] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... + def __init__(self, id: _Optional[str] = ..., standard: _Optional[_Union[Action.StandardAction, str]] = ..., custom: _Optional[str] = ..., name: _Optional[str] = ..., namespace: _Optional[_Union[Namespace, _Mapping]] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... class SubjectMapping(_message.Message): - __slots__ = ("id", "attribute_value", "subject_condition_set", "actions", "metadata") + __slots__ = ("id", "attribute_value", "subject_condition_set", "actions", "namespace", "metadata") ID_FIELD_NUMBER: _ClassVar[int] ATTRIBUTE_VALUE_FIELD_NUMBER: _ClassVar[int] SUBJECT_CONDITION_SET_FIELD_NUMBER: _ClassVar[int] ACTIONS_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] id: str attribute_value: Value subject_condition_set: SubjectConditionSet actions: _containers.RepeatedCompositeFieldContainer[Action] + namespace: Namespace metadata: _common_pb2.Metadata - def __init__(self, id: _Optional[str] = ..., attribute_value: _Optional[_Union[Value, _Mapping]] = ..., subject_condition_set: _Optional[_Union[SubjectConditionSet, _Mapping]] = ..., actions: _Optional[_Iterable[_Union[Action, _Mapping]]] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... + def __init__(self, id: _Optional[str] = ..., attribute_value: _Optional[_Union[Value, _Mapping]] = ..., subject_condition_set: _Optional[_Union[SubjectConditionSet, _Mapping]] = ..., actions: _Optional[_Iterable[_Union[Action, _Mapping]]] = ..., namespace: _Optional[_Union[Namespace, _Mapping]] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... class Condition(_message.Message): __slots__ = ("subject_external_selector_value", "operator", "subject_external_values") @@ -279,14 +271,16 @@ class SubjectSet(_message.Message): def __init__(self, condition_groups: _Optional[_Iterable[_Union[ConditionGroup, _Mapping]]] = ...) -> None: ... class SubjectConditionSet(_message.Message): - __slots__ = ("id", "subject_sets", "metadata") + __slots__ = ("id", "namespace", "subject_sets", "metadata") ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FIELD_NUMBER: _ClassVar[int] SUBJECT_SETS_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] id: str + namespace: Namespace subject_sets: _containers.RepeatedCompositeFieldContainer[SubjectSet] metadata: _common_pb2.Metadata - def __init__(self, id: _Optional[str] = ..., subject_sets: _Optional[_Iterable[_Union[SubjectSet, _Mapping]]] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... + def __init__(self, id: _Optional[str] = ..., namespace: _Optional[_Union[Namespace, _Mapping]] = ..., subject_sets: _Optional[_Iterable[_Union[SubjectSet, _Mapping]]] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... class SubjectProperty(_message.Message): __slots__ = ("external_selector_value", "external_value") @@ -381,16 +375,18 @@ class PublicKey(_message.Message): def __init__(self, remote: _Optional[str] = ..., cached: _Optional[_Union[KasPublicKeySet, _Mapping]] = ...) -> None: ... class RegisteredResource(_message.Message): - __slots__ = ("id", "name", "values", "metadata") + __slots__ = ("id", "name", "values", "namespace", "metadata") ID_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] VALUES_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] id: str name: str values: _containers.RepeatedCompositeFieldContainer[RegisteredResourceValue] + namespace: Namespace metadata: _common_pb2.Metadata - def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., values: _Optional[_Iterable[_Union[RegisteredResourceValue, _Mapping]]] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... + def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., values: _Optional[_Iterable[_Union[RegisteredResourceValue, _Mapping]]] = ..., namespace: _Optional[_Union[Namespace, _Mapping]] = ..., metadata: _Optional[_Union[_common_pb2.Metadata, _Mapping]] = ...) -> None: ... class RegisteredResourceValue(_message.Message): __slots__ = ("id", "value", "resource", "action_attribute_values", "metadata") diff --git a/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_connect.py b/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_connect.py index 728502d2..d3d4eb9b 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_connect.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_connect.py @@ -49,6 +49,9 @@ async def update_obligation_value(self, request: policy_dot_obligations_dot_obli async def delete_obligation_value(self, request: policy_dot_obligations_dot_obligations__pb2.DeleteObligationValueRequest, ctx: RequestContext) -> policy_dot_obligations_dot_obligations__pb2.DeleteObligationValueResponse: raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") + async def get_obligation_trigger(self, request: policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest, ctx: RequestContext) -> policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse: + raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") + async def add_obligation_trigger(self, request: policy_dot_obligations_dot_obligations__pb2.AddObligationTriggerRequest, ctx: RequestContext) -> policy_dot_obligations_dot_obligations__pb2.AddObligationTriggerResponse: raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") @@ -174,6 +177,16 @@ def __init__(self, service: Service | AsyncGenerator[Service], *, interceptors: ), function=svc.delete_obligation_value, ), + "/policy.obligations.Service/GetObligationTrigger": Endpoint.unary( + method=MethodInfo( + name="GetObligationTrigger", + service_name="policy.obligations.Service", + input=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest, + output=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse, + idempotency_level=IdempotencyLevel.NO_SIDE_EFFECTS, + ), + function=svc.get_obligation_trigger, + ), "/policy.obligations.Service/AddObligationTrigger": Endpoint.unary( method=MethodInfo( name="AddObligationTrigger", @@ -446,6 +459,28 @@ async def delete_obligation_value( timeout_ms=timeout_ms, ) + async def get_obligation_trigger( + self, + request: policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest, + *, + headers: Headers | Mapping[str, str] | None = None, + timeout_ms: int | None = None, + use_get: bool = False, + ) -> policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse: + return await self.execute_unary( + request=request, + method=MethodInfo( + name="GetObligationTrigger", + service_name="policy.obligations.Service", + input=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest, + output=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse, + idempotency_level=IdempotencyLevel.NO_SIDE_EFFECTS, + ), + headers=headers, + timeout_ms=timeout_ms, + use_get=use_get, + ) + async def add_obligation_trigger( self, request: policy_dot_obligations_dot_obligations__pb2.AddObligationTriggerRequest, @@ -532,6 +567,8 @@ def update_obligation_value(self, request: policy_dot_obligations_dot_obligation raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") def delete_obligation_value(self, request: policy_dot_obligations_dot_obligations__pb2.DeleteObligationValueRequest, ctx: RequestContext) -> policy_dot_obligations_dot_obligations__pb2.DeleteObligationValueResponse: raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") + def get_obligation_trigger(self, request: policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest, ctx: RequestContext) -> policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse: + raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") def add_obligation_trigger(self, request: policy_dot_obligations_dot_obligations__pb2.AddObligationTriggerRequest, ctx: RequestContext) -> policy_dot_obligations_dot_obligations__pb2.AddObligationTriggerResponse: raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") def remove_obligation_trigger(self, request: policy_dot_obligations_dot_obligations__pb2.RemoveObligationTriggerRequest, ctx: RequestContext) -> policy_dot_obligations_dot_obligations__pb2.RemoveObligationTriggerResponse: @@ -654,6 +691,16 @@ def __init__(self, service: ServiceSync, interceptors: Iterable[InterceptorSync] ), function=service.delete_obligation_value, ), + "/policy.obligations.Service/GetObligationTrigger": EndpointSync.unary( + method=MethodInfo( + name="GetObligationTrigger", + service_name="policy.obligations.Service", + input=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest, + output=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse, + idempotency_level=IdempotencyLevel.NO_SIDE_EFFECTS, + ), + function=service.get_obligation_trigger, + ), "/policy.obligations.Service/AddObligationTrigger": EndpointSync.unary( method=MethodInfo( name="AddObligationTrigger", @@ -926,6 +973,28 @@ def delete_obligation_value( timeout_ms=timeout_ms, ) + def get_obligation_trigger( + self, + request: policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest, + *, + headers: Headers | Mapping[str, str] | None = None, + timeout_ms: int | None = None, + use_get: bool = False, + ) -> policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse: + return self.execute_unary( + request=request, + method=MethodInfo( + name="GetObligationTrigger", + service_name="policy.obligations.Service", + input=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerRequest, + output=policy_dot_obligations_dot_obligations__pb2.GetObligationTriggerResponse, + idempotency_level=IdempotencyLevel.NO_SIDE_EFFECTS, + ), + headers=headers, + timeout_ms=timeout_ms, + use_get=use_get, + ) + def add_obligation_trigger( self, request: policy_dot_obligations_dot_obligations__pb2.AddObligationTriggerRequest, diff --git a/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_pb2.py b/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_pb2.py index c62e7294..38cadfcf 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_pb2.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_pb2.py @@ -28,7 +28,7 @@ from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$policy/obligations/obligations.proto\x12\x12policy.obligations\x1a\x13\x63ommon/common.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\x1a\x1b\x62uf/validate/validate.proto\"`\n\x14GetObligationRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x1c\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x03\x66qn:\x10\xbaH\r\"\x0b\n\x02id\n\x03\x66qn\x10\x01\"\xcb\x01\n\x13ValueTriggerRequest\x12\x38\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x18.common.IdNameIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x06\x61\x63tion\x12H\n\x0f\x61ttribute_value\x18\x02 \x01(\x0b\x32\x17.common.IdFqnIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x0e\x61ttributeValue\x12\x30\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x16.policy.RequestContextR\x07\x63ontext\"K\n\x15GetObligationResponse\x12\x32\n\nobligation\x18\x01 \x01(\x0b\x32\x12.policy.ObligationR\nobligation\"I\n\x1bGetObligationsByFQNsRequest\x12*\n\x04\x66qns\x18\x01 \x03(\tB\x16\xbaH\x13\x92\x01\x10\x08\x01\x10\xfa\x01\x18\x01\"\x07r\x05\x10\x01\x88\x01\x01R\x04\x66qns\"\xed\x01\n\x1cGetObligationsByFQNsResponse\x12t\n\x12\x66qn_obligation_map\x18\x01 \x03(\x0b\x32\x46.policy.obligations.GetObligationsByFQNsResponse.FqnObligationMapEntryR\x10\x66qnObligationMap\x1aW\n\x15\x46qnObligationMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x12.policy.ObligationR\x05value:\x02\x38\x01\"\xd4\x04\n\x17\x43reateObligationRequest\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\xa7\x02\n\x04name\x18\x03 \x01(\tB\x92\x02\xbaH\x8e\x02r\x03\x18\xfd\x01\xba\x01\x82\x02\n\x16obligation_name_format\x12\xaa\x01Obligation name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x04name\x12V\n\x06values\x18\x04 \x03(\tB>\xbaH;\x92\x01\x38\x08\x00\x18\x01\"2r0\x18\xfd\x01\x32+^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$R\x06values\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x01\"N\n\x18\x43reateObligationResponse\x12\x32\n\nobligation\x18\x01 \x01(\x0b\x32\x12.policy.ObligationR\nobligation\"\x80\x04\n\x17UpdateObligationRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xbf\x02\n\x04name\x18\x02 \x01(\tB\xaa\x02\xbaH\xa6\x02r\x03\x18\xfd\x01\xba\x01\x9a\x02\n\x16obligation_name_format\x12\xaa\x01Obligation name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"N\n\x18UpdateObligationResponse\x12\x32\n\nobligation\x18\x01 \x01(\x0b\x32\x12.policy.ObligationR\nobligation\"c\n\x17\x44\x65leteObligationRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x1c\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x03\x66qn:\x10\xbaH\r\"\x0b\n\x02id\n\x03\x66qn\x10\x01\"N\n\x18\x44\x65leteObligationResponse\x12\x32\n\nobligation\x18\x01 \x01(\x0b\x32\x12.policy.ObligationR\nobligation\"\xd1\x01\n\x16ListObligationsRequest\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"\x85\x01\n\x17ListObligationsResponse\x12\x34\n\x0bobligations\x18\x01 \x03(\x0b\x32\x12.policy.ObligationR\x0bobligations\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"e\n\x19GetObligationValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x1c\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x03\x66qn:\x10\xbaH\r\"\x0b\n\x02id\n\x03\x66qn\x10\x01\"K\n\x1aGetObligationValueResponse\x12-\n\x05value\x18\x01 \x01(\x0b\x32\x17.policy.ObligationValueR\x05value\"N\n GetObligationValuesByFQNsRequest\x12*\n\x04\x66qns\x18\x01 \x03(\tB\x16\xbaH\x13\x92\x01\x10\x08\x01\x10\xfa\x01\x18\x01\"\x07r\x05\x10\x01\x88\x01\x01R\x04\x66qns\"\xe8\x01\n!GetObligationValuesByFQNsResponse\x12j\n\rfqn_value_map\x18\x01 \x03(\x0b\x32\x46.policy.obligations.GetObligationValuesByFQNsResponse.FqnValueMapEntryR\x0b\x66qnValueMap\x1aW\n\x10\x46qnValueMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x17.policy.ObligationValueR\x05value:\x02\x38\x01\"\xd1\x04\n\x1c\x43reateObligationValueRequest\x12-\n\robligation_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0cobligationId\x12\x31\n\x0eobligation_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\robligationFqn\x12\xac\x02\n\x05value\x18\x03 \x01(\tB\x95\x02\xbaH\x91\x02r\x03\x18\xfd\x01\xba\x01\x85\x02\n\x17obligation_value_format\x12\xac\x01Obligation value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x05value\x12\x43\n\x08triggers\x18\x04 \x03(\x0b\x32\'.policy.obligations.ValueTriggerRequestR\x08triggers\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:&\xbaH#\"!\n\robligation_id\n\x0eobligation_fqn\x10\x01\"N\n\x1d\x43reateObligationValueResponse\x12-\n\x05value\x18\x01 \x01(\x0b\x32\x17.policy.ObligationValueR\x05value\"\xcf\x04\n\x1cUpdateObligationValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xc4\x02\n\x05value\x18\x02 \x01(\tB\xad\x02\xbaH\xa9\x02r\x03\x18\xfd\x01\xba\x01\x9d\x02\n\x17obligation_value_format\x12\xac\x01Obligation value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00R\x05value\x12\x43\n\x08triggers\x18\x03 \x03(\x0b\x32\'.policy.obligations.ValueTriggerRequestR\x08triggers\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"N\n\x1dUpdateObligationValueResponse\x12-\n\x05value\x18\x01 \x01(\x0b\x32\x17.policy.ObligationValueR\x05value\"h\n\x1c\x44\x65leteObligationValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x1c\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x03\x66qn:\x10\xbaH\r\"\x0b\n\x02id\n\x03\x66qn\x10\x01\"N\n\x1d\x44\x65leteObligationValueResponse\x12-\n\x05value\x18\x01 \x01(\x0b\x32\x17.policy.ObligationValueR\x05value\"\xd4\x02\n\x1b\x41\x64\x64ObligationTriggerRequest\x12J\n\x10obligation_value\x18\x01 \x01(\x0b\x32\x17.common.IdFqnIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x0fobligationValue\x12\x38\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32\x18.common.IdNameIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x06\x61\x63tion\x12H\n\x0f\x61ttribute_value\x18\x03 \x01(\x0b\x32\x17.common.IdFqnIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x0e\x61ttributeValue\x12\x30\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x16.policy.RequestContextR\x07\x63ontext\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"S\n\x1c\x41\x64\x64ObligationTriggerResponse\x12\x33\n\x07trigger\x18\x01 \x01(\x0b\x32\x19.policy.ObligationTriggerR\x07trigger\":\n\x1eRemoveObligationTriggerRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"V\n\x1fRemoveObligationTriggerResponse\x12\x33\n\x07trigger\x18\x01 \x01(\x0b\x32\x19.policy.ObligationTriggerR\x07trigger\"\xd8\x01\n\x1dListObligationTriggersRequest\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"\x8d\x01\n\x1eListObligationTriggersResponse\x12\x35\n\x08triggers\x18\x01 \x03(\x0b\x32\x19.policy.ObligationTriggerR\x08triggers\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination2\xcd\r\n\x07Service\x12o\n\x0fListObligations\x12*.policy.obligations.ListObligationsRequest\x1a+.policy.obligations.ListObligationsResponse\"\x03\x90\x02\x01\x12i\n\rGetObligation\x12(.policy.obligations.GetObligationRequest\x1a).policy.obligations.GetObligationResponse\"\x03\x90\x02\x01\x12~\n\x14GetObligationsByFQNs\x12/.policy.obligations.GetObligationsByFQNsRequest\x1a\x30.policy.obligations.GetObligationsByFQNsResponse\"\x03\x90\x02\x01\x12o\n\x10\x43reateObligation\x12+.policy.obligations.CreateObligationRequest\x1a,.policy.obligations.CreateObligationResponse\"\x00\x12o\n\x10UpdateObligation\x12+.policy.obligations.UpdateObligationRequest\x1a,.policy.obligations.UpdateObligationResponse\"\x00\x12o\n\x10\x44\x65leteObligation\x12+.policy.obligations.DeleteObligationRequest\x1a,.policy.obligations.DeleteObligationResponse\"\x00\x12x\n\x12GetObligationValue\x12-.policy.obligations.GetObligationValueRequest\x1a..policy.obligations.GetObligationValueResponse\"\x03\x90\x02\x01\x12\x8d\x01\n\x19GetObligationValuesByFQNs\x12\x34.policy.obligations.GetObligationValuesByFQNsRequest\x1a\x35.policy.obligations.GetObligationValuesByFQNsResponse\"\x03\x90\x02\x01\x12~\n\x15\x43reateObligationValue\x12\x30.policy.obligations.CreateObligationValueRequest\x1a\x31.policy.obligations.CreateObligationValueResponse\"\x00\x12~\n\x15UpdateObligationValue\x12\x30.policy.obligations.UpdateObligationValueRequest\x1a\x31.policy.obligations.UpdateObligationValueResponse\"\x00\x12~\n\x15\x44\x65leteObligationValue\x12\x30.policy.obligations.DeleteObligationValueRequest\x1a\x31.policy.obligations.DeleteObligationValueResponse\"\x00\x12{\n\x14\x41\x64\x64ObligationTrigger\x12/.policy.obligations.AddObligationTriggerRequest\x1a\x30.policy.obligations.AddObligationTriggerResponse\"\x00\x12\x84\x01\n\x17RemoveObligationTrigger\x12\x32.policy.obligations.RemoveObligationTriggerRequest\x1a\x33.policy.obligations.RemoveObligationTriggerResponse\"\x00\x12\x84\x01\n\x16ListObligationTriggers\x12\x31.policy.obligations.ListObligationTriggersRequest\x1a\x32.policy.obligations.ListObligationTriggersResponse\"\x03\x90\x02\x01\x42\x93\x01\n\x16\x63om.policy.obligationsB\x10ObligationsProtoP\x01\xa2\x02\x03POX\xaa\x02\x12Policy.Obligations\xca\x02\x12Policy\\Obligations\xe2\x02\x1ePolicy\\Obligations\\GPBMetadata\xea\x02\x13Policy::Obligationsb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$policy/obligations/obligations.proto\x12\x12policy.obligations\x1a\x13\x63ommon/common.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\x1a\x1b\x62uf/validate/validate.proto\"\x85\x01\n\x0fObligationsSort\x12=\n\x05\x66ield\x18\x01 \x01(\x0e\x32\'.policy.obligations.SortObligationsTypeR\x05\x66ield\x12\x33\n\tdirection\x18\x02 \x01(\x0e\x32\x15.policy.SortDirectionR\tdirection\"`\n\x14GetObligationRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x1c\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x03\x66qn:\x10\xbaH\r\"\x0b\n\x02id\n\x03\x66qn\x10\x01\"\xcb\x01\n\x13ValueTriggerRequest\x12\x38\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x18.common.IdNameIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x06\x61\x63tion\x12H\n\x0f\x61ttribute_value\x18\x02 \x01(\x0b\x32\x17.common.IdFqnIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x0e\x61ttributeValue\x12\x30\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x16.policy.RequestContextR\x07\x63ontext\"K\n\x15GetObligationResponse\x12\x32\n\nobligation\x18\x01 \x01(\x0b\x32\x12.policy.ObligationR\nobligation\"I\n\x1bGetObligationsByFQNsRequest\x12*\n\x04\x66qns\x18\x01 \x03(\tB\x16\xbaH\x13\x92\x01\x10\x08\x01\x10\xfa\x01\x18\x01\"\x07r\x05\x10\x01\x88\x01\x01R\x04\x66qns\"\xed\x01\n\x1cGetObligationsByFQNsResponse\x12t\n\x12\x66qn_obligation_map\x18\x01 \x03(\x0b\x32\x46.policy.obligations.GetObligationsByFQNsResponse.FqnObligationMapEntryR\x10\x66qnObligationMap\x1aW\n\x15\x46qnObligationMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x12.policy.ObligationR\x05value:\x02\x38\x01\"\xd4\x04\n\x17\x43reateObligationRequest\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\xa7\x02\n\x04name\x18\x03 \x01(\tB\x92\x02\xbaH\x8e\x02r\x03\x18\xfd\x01\xba\x01\x82\x02\n\x16obligation_name_format\x12\xaa\x01Obligation name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x04name\x12V\n\x06values\x18\x04 \x03(\tB>\xbaH;\x92\x01\x38\x08\x00\x18\x01\"2r0\x18\xfd\x01\x32+^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$R\x06values\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x01\"N\n\x18\x43reateObligationResponse\x12\x32\n\nobligation\x18\x01 \x01(\x0b\x32\x12.policy.ObligationR\nobligation\"\x80\x04\n\x17UpdateObligationRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xbf\x02\n\x04name\x18\x02 \x01(\tB\xaa\x02\xbaH\xa6\x02r\x03\x18\xfd\x01\xba\x01\x9a\x02\n\x16obligation_name_format\x12\xaa\x01Obligation name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"N\n\x18UpdateObligationResponse\x12\x32\n\nobligation\x18\x01 \x01(\x0b\x32\x12.policy.ObligationR\nobligation\"c\n\x17\x44\x65leteObligationRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x1c\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x03\x66qn:\x10\xbaH\r\"\x0b\n\x02id\n\x03\x66qn\x10\x01\"N\n\x18\x44\x65leteObligationResponse\x12\x32\n\nobligation\x18\x01 \x01(\x0b\x32\x12.policy.ObligationR\nobligation\"\x94\x02\n\x16ListObligationsRequest\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\x12\x41\n\x04sort\x18\x0b \x03(\x0b\x32#.policy.obligations.ObligationsSortB\x08\xbaH\x05\x92\x01\x02\x10\x01R\x04sort:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"\x85\x01\n\x17ListObligationsResponse\x12\x34\n\x0bobligations\x18\x01 \x03(\x0b\x32\x12.policy.ObligationR\x0bobligations\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"e\n\x19GetObligationValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x1c\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x03\x66qn:\x10\xbaH\r\"\x0b\n\x02id\n\x03\x66qn\x10\x01\"K\n\x1aGetObligationValueResponse\x12-\n\x05value\x18\x01 \x01(\x0b\x32\x17.policy.ObligationValueR\x05value\"N\n GetObligationValuesByFQNsRequest\x12*\n\x04\x66qns\x18\x01 \x03(\tB\x16\xbaH\x13\x92\x01\x10\x08\x01\x10\xfa\x01\x18\x01\"\x07r\x05\x10\x01\x88\x01\x01R\x04\x66qns\"\xe8\x01\n!GetObligationValuesByFQNsResponse\x12j\n\rfqn_value_map\x18\x01 \x03(\x0b\x32\x46.policy.obligations.GetObligationValuesByFQNsResponse.FqnValueMapEntryR\x0b\x66qnValueMap\x1aW\n\x10\x46qnValueMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12-\n\x05value\x18\x02 \x01(\x0b\x32\x17.policy.ObligationValueR\x05value:\x02\x38\x01\"\xd1\x04\n\x1c\x43reateObligationValueRequest\x12-\n\robligation_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0cobligationId\x12\x31\n\x0eobligation_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\robligationFqn\x12\xac\x02\n\x05value\x18\x03 \x01(\tB\x95\x02\xbaH\x91\x02r\x03\x18\xfd\x01\xba\x01\x85\x02\n\x17obligation_value_format\x12\xac\x01Obligation value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x05value\x12\x43\n\x08triggers\x18\x04 \x03(\x0b\x32\'.policy.obligations.ValueTriggerRequestR\x08triggers\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:&\xbaH#\"!\n\robligation_id\n\x0eobligation_fqn\x10\x01\"N\n\x1d\x43reateObligationValueResponse\x12-\n\x05value\x18\x01 \x01(\x0b\x32\x17.policy.ObligationValueR\x05value\"\xcf\x04\n\x1cUpdateObligationValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xc4\x02\n\x05value\x18\x02 \x01(\tB\xad\x02\xbaH\xa9\x02r\x03\x18\xfd\x01\xba\x01\x9d\x02\n\x17obligation_value_format\x12\xac\x01Obligation value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00R\x05value\x12\x43\n\x08triggers\x18\x03 \x03(\x0b\x32\'.policy.obligations.ValueTriggerRequestR\x08triggers\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"N\n\x1dUpdateObligationValueResponse\x12-\n\x05value\x18\x01 \x01(\x0b\x32\x17.policy.ObligationValueR\x05value\"h\n\x1c\x44\x65leteObligationValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x1c\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x03\x66qn:\x10\xbaH\r\"\x0b\n\x02id\n\x03\x66qn\x10\x01\"N\n\x1d\x44\x65leteObligationValueResponse\x12-\n\x05value\x18\x01 \x01(\x0b\x32\x17.policy.ObligationValueR\x05value\"7\n\x1bGetObligationTriggerRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"S\n\x1cGetObligationTriggerResponse\x12\x33\n\x07trigger\x18\x01 \x01(\x0b\x32\x19.policy.ObligationTriggerR\x07trigger\"\xd4\x02\n\x1b\x41\x64\x64ObligationTriggerRequest\x12J\n\x10obligation_value\x18\x01 \x01(\x0b\x32\x17.common.IdFqnIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x0fobligationValue\x12\x38\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32\x18.common.IdNameIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x06\x61\x63tion\x12H\n\x0f\x61ttribute_value\x18\x03 \x01(\x0b\x32\x17.common.IdFqnIdentifierB\x06\xbaH\x03\xc8\x01\x01R\x0e\x61ttributeValue\x12\x30\n\x07\x63ontext\x18\x04 \x01(\x0b\x32\x16.policy.RequestContextR\x07\x63ontext\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"S\n\x1c\x41\x64\x64ObligationTriggerResponse\x12\x33\n\x07trigger\x18\x01 \x01(\x0b\x32\x19.policy.ObligationTriggerR\x07trigger\":\n\x1eRemoveObligationTriggerRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"V\n\x1fRemoveObligationTriggerResponse\x12\x33\n\x07trigger\x18\x01 \x01(\x0b\x32\x19.policy.ObligationTriggerR\x07trigger\"\xd8\x01\n\x1dListObligationTriggersRequest\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"\x8d\x01\n\x1eListObligationTriggersResponse\x12\x35\n\x08triggers\x18\x01 \x03(\x0b\x32\x19.policy.ObligationTriggerR\x08triggers\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination*\xc7\x01\n\x13SortObligationsType\x12%\n!SORT_OBLIGATIONS_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSORT_OBLIGATIONS_TYPE_NAME\x10\x01\x12\x1d\n\x19SORT_OBLIGATIONS_TYPE_FQN\x10\x02\x12$\n SORT_OBLIGATIONS_TYPE_CREATED_AT\x10\x03\x12$\n SORT_OBLIGATIONS_TYPE_UPDATED_AT\x10\x04\x32\xcd\x0e\n\x07Service\x12o\n\x0fListObligations\x12*.policy.obligations.ListObligationsRequest\x1a+.policy.obligations.ListObligationsResponse\"\x03\x90\x02\x01\x12i\n\rGetObligation\x12(.policy.obligations.GetObligationRequest\x1a).policy.obligations.GetObligationResponse\"\x03\x90\x02\x01\x12~\n\x14GetObligationsByFQNs\x12/.policy.obligations.GetObligationsByFQNsRequest\x1a\x30.policy.obligations.GetObligationsByFQNsResponse\"\x03\x90\x02\x01\x12o\n\x10\x43reateObligation\x12+.policy.obligations.CreateObligationRequest\x1a,.policy.obligations.CreateObligationResponse\"\x00\x12o\n\x10UpdateObligation\x12+.policy.obligations.UpdateObligationRequest\x1a,.policy.obligations.UpdateObligationResponse\"\x00\x12o\n\x10\x44\x65leteObligation\x12+.policy.obligations.DeleteObligationRequest\x1a,.policy.obligations.DeleteObligationResponse\"\x00\x12x\n\x12GetObligationValue\x12-.policy.obligations.GetObligationValueRequest\x1a..policy.obligations.GetObligationValueResponse\"\x03\x90\x02\x01\x12\x8d\x01\n\x19GetObligationValuesByFQNs\x12\x34.policy.obligations.GetObligationValuesByFQNsRequest\x1a\x35.policy.obligations.GetObligationValuesByFQNsResponse\"\x03\x90\x02\x01\x12~\n\x15\x43reateObligationValue\x12\x30.policy.obligations.CreateObligationValueRequest\x1a\x31.policy.obligations.CreateObligationValueResponse\"\x00\x12~\n\x15UpdateObligationValue\x12\x30.policy.obligations.UpdateObligationValueRequest\x1a\x31.policy.obligations.UpdateObligationValueResponse\"\x00\x12~\n\x15\x44\x65leteObligationValue\x12\x30.policy.obligations.DeleteObligationValueRequest\x1a\x31.policy.obligations.DeleteObligationValueResponse\"\x00\x12~\n\x14GetObligationTrigger\x12/.policy.obligations.GetObligationTriggerRequest\x1a\x30.policy.obligations.GetObligationTriggerResponse\"\x03\x90\x02\x01\x12{\n\x14\x41\x64\x64ObligationTrigger\x12/.policy.obligations.AddObligationTriggerRequest\x1a\x30.policy.obligations.AddObligationTriggerResponse\"\x00\x12\x84\x01\n\x17RemoveObligationTrigger\x12\x32.policy.obligations.RemoveObligationTriggerRequest\x1a\x33.policy.obligations.RemoveObligationTriggerResponse\"\x00\x12\x84\x01\n\x16ListObligationTriggers\x12\x31.policy.obligations.ListObligationTriggersRequest\x1a\x32.policy.obligations.ListObligationTriggersResponse\"\x03\x90\x02\x01\x42\x93\x01\n\x16\x63om.policy.obligationsB\x10ObligationsProtoP\x01\xa2\x02\x03POX\xaa\x02\x12Policy.Obligations\xca\x02\x12Policy\\Obligations\xe2\x02\x1ePolicy\\Obligations\\GPBMetadata\xea\x02\x13Policy::Obligationsb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -74,6 +74,8 @@ _globals['_LISTOBLIGATIONSREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_LISTOBLIGATIONSREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None _globals['_LISTOBLIGATIONSREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' + _globals['_LISTOBLIGATIONSREQUEST'].fields_by_name['sort']._loaded_options = None + _globals['_LISTOBLIGATIONSREQUEST'].fields_by_name['sort']._serialized_options = b'\272H\005\222\001\002\020\001' _globals['_LISTOBLIGATIONSREQUEST']._loaded_options = None _globals['_LISTOBLIGATIONSREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' _globals['_GETOBLIGATIONVALUEREQUEST'].fields_by_name['id']._loaded_options = None @@ -104,6 +106,8 @@ _globals['_DELETEOBLIGATIONVALUEREQUEST'].fields_by_name['fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' _globals['_DELETEOBLIGATIONVALUEREQUEST']._loaded_options = None _globals['_DELETEOBLIGATIONVALUEREQUEST']._serialized_options = b'\272H\r\"\013\n\002id\n\003fqn\020\001' + _globals['_GETOBLIGATIONTRIGGERREQUEST'].fields_by_name['id']._loaded_options = None + _globals['_GETOBLIGATIONTRIGGERREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_ADDOBLIGATIONTRIGGERREQUEST'].fields_by_name['obligation_value']._loaded_options = None _globals['_ADDOBLIGATIONTRIGGERREQUEST'].fields_by_name['obligation_value']._serialized_options = b'\272H\003\310\001\001' _globals['_ADDOBLIGATIONTRIGGERREQUEST'].fields_by_name['action']._loaded_options = None @@ -128,70 +132,80 @@ _globals['_SERVICE'].methods_by_name['GetObligationValue']._serialized_options = b'\220\002\001' _globals['_SERVICE'].methods_by_name['GetObligationValuesByFQNs']._loaded_options = None _globals['_SERVICE'].methods_by_name['GetObligationValuesByFQNs']._serialized_options = b'\220\002\001' + _globals['_SERVICE'].methods_by_name['GetObligationTrigger']._loaded_options = None + _globals['_SERVICE'].methods_by_name['GetObligationTrigger']._serialized_options = b'\220\002\001' _globals['_SERVICE'].methods_by_name['ListObligationTriggers']._loaded_options = None _globals['_SERVICE'].methods_by_name['ListObligationTriggers']._serialized_options = b'\220\002\001' - _globals['_GETOBLIGATIONREQUEST']._serialized_start=156 - _globals['_GETOBLIGATIONREQUEST']._serialized_end=252 - _globals['_VALUETRIGGERREQUEST']._serialized_start=255 - _globals['_VALUETRIGGERREQUEST']._serialized_end=458 - _globals['_GETOBLIGATIONRESPONSE']._serialized_start=460 - _globals['_GETOBLIGATIONRESPONSE']._serialized_end=535 - _globals['_GETOBLIGATIONSBYFQNSREQUEST']._serialized_start=537 - _globals['_GETOBLIGATIONSBYFQNSREQUEST']._serialized_end=610 - _globals['_GETOBLIGATIONSBYFQNSRESPONSE']._serialized_start=613 - _globals['_GETOBLIGATIONSBYFQNSRESPONSE']._serialized_end=850 - _globals['_GETOBLIGATIONSBYFQNSRESPONSE_FQNOBLIGATIONMAPENTRY']._serialized_start=763 - _globals['_GETOBLIGATIONSBYFQNSRESPONSE_FQNOBLIGATIONMAPENTRY']._serialized_end=850 - _globals['_CREATEOBLIGATIONREQUEST']._serialized_start=853 - _globals['_CREATEOBLIGATIONREQUEST']._serialized_end=1449 - _globals['_CREATEOBLIGATIONRESPONSE']._serialized_start=1451 - _globals['_CREATEOBLIGATIONRESPONSE']._serialized_end=1529 - _globals['_UPDATEOBLIGATIONREQUEST']._serialized_start=1532 - _globals['_UPDATEOBLIGATIONREQUEST']._serialized_end=2044 - _globals['_UPDATEOBLIGATIONRESPONSE']._serialized_start=2046 - _globals['_UPDATEOBLIGATIONRESPONSE']._serialized_end=2124 - _globals['_DELETEOBLIGATIONREQUEST']._serialized_start=2126 - _globals['_DELETEOBLIGATIONREQUEST']._serialized_end=2225 - _globals['_DELETEOBLIGATIONRESPONSE']._serialized_start=2227 - _globals['_DELETEOBLIGATIONRESPONSE']._serialized_end=2305 - _globals['_LISTOBLIGATIONSREQUEST']._serialized_start=2308 - _globals['_LISTOBLIGATIONSREQUEST']._serialized_end=2517 - _globals['_LISTOBLIGATIONSRESPONSE']._serialized_start=2520 - _globals['_LISTOBLIGATIONSRESPONSE']._serialized_end=2653 - _globals['_GETOBLIGATIONVALUEREQUEST']._serialized_start=2655 - _globals['_GETOBLIGATIONVALUEREQUEST']._serialized_end=2756 - _globals['_GETOBLIGATIONVALUERESPONSE']._serialized_start=2758 - _globals['_GETOBLIGATIONVALUERESPONSE']._serialized_end=2833 - _globals['_GETOBLIGATIONVALUESBYFQNSREQUEST']._serialized_start=2835 - _globals['_GETOBLIGATIONVALUESBYFQNSREQUEST']._serialized_end=2913 - _globals['_GETOBLIGATIONVALUESBYFQNSRESPONSE']._serialized_start=2916 - _globals['_GETOBLIGATIONVALUESBYFQNSRESPONSE']._serialized_end=3148 - _globals['_GETOBLIGATIONVALUESBYFQNSRESPONSE_FQNVALUEMAPENTRY']._serialized_start=3061 - _globals['_GETOBLIGATIONVALUESBYFQNSRESPONSE_FQNVALUEMAPENTRY']._serialized_end=3148 - _globals['_CREATEOBLIGATIONVALUEREQUEST']._serialized_start=3151 - _globals['_CREATEOBLIGATIONVALUEREQUEST']._serialized_end=3744 - _globals['_CREATEOBLIGATIONVALUERESPONSE']._serialized_start=3746 - _globals['_CREATEOBLIGATIONVALUERESPONSE']._serialized_end=3824 - _globals['_UPDATEOBLIGATIONVALUEREQUEST']._serialized_start=3827 - _globals['_UPDATEOBLIGATIONVALUEREQUEST']._serialized_end=4418 - _globals['_UPDATEOBLIGATIONVALUERESPONSE']._serialized_start=4420 - _globals['_UPDATEOBLIGATIONVALUERESPONSE']._serialized_end=4498 - _globals['_DELETEOBLIGATIONVALUEREQUEST']._serialized_start=4500 - _globals['_DELETEOBLIGATIONVALUEREQUEST']._serialized_end=4604 - _globals['_DELETEOBLIGATIONVALUERESPONSE']._serialized_start=4606 - _globals['_DELETEOBLIGATIONVALUERESPONSE']._serialized_end=4684 - _globals['_ADDOBLIGATIONTRIGGERREQUEST']._serialized_start=4687 - _globals['_ADDOBLIGATIONTRIGGERREQUEST']._serialized_end=5027 - _globals['_ADDOBLIGATIONTRIGGERRESPONSE']._serialized_start=5029 - _globals['_ADDOBLIGATIONTRIGGERRESPONSE']._serialized_end=5112 - _globals['_REMOVEOBLIGATIONTRIGGERREQUEST']._serialized_start=5114 - _globals['_REMOVEOBLIGATIONTRIGGERREQUEST']._serialized_end=5172 - _globals['_REMOVEOBLIGATIONTRIGGERRESPONSE']._serialized_start=5174 - _globals['_REMOVEOBLIGATIONTRIGGERRESPONSE']._serialized_end=5260 - _globals['_LISTOBLIGATIONTRIGGERSREQUEST']._serialized_start=5263 - _globals['_LISTOBLIGATIONTRIGGERSREQUEST']._serialized_end=5479 - _globals['_LISTOBLIGATIONTRIGGERSRESPONSE']._serialized_start=5482 - _globals['_LISTOBLIGATIONTRIGGERSRESPONSE']._serialized_end=5623 - _globals['_SERVICE']._serialized_start=5626 - _globals['_SERVICE']._serialized_end=7367 + _globals['_SORTOBLIGATIONSTYPE']._serialized_start=5971 + _globals['_SORTOBLIGATIONSTYPE']._serialized_end=6170 + _globals['_OBLIGATIONSSORT']._serialized_start=157 + _globals['_OBLIGATIONSSORT']._serialized_end=290 + _globals['_GETOBLIGATIONREQUEST']._serialized_start=292 + _globals['_GETOBLIGATIONREQUEST']._serialized_end=388 + _globals['_VALUETRIGGERREQUEST']._serialized_start=391 + _globals['_VALUETRIGGERREQUEST']._serialized_end=594 + _globals['_GETOBLIGATIONRESPONSE']._serialized_start=596 + _globals['_GETOBLIGATIONRESPONSE']._serialized_end=671 + _globals['_GETOBLIGATIONSBYFQNSREQUEST']._serialized_start=673 + _globals['_GETOBLIGATIONSBYFQNSREQUEST']._serialized_end=746 + _globals['_GETOBLIGATIONSBYFQNSRESPONSE']._serialized_start=749 + _globals['_GETOBLIGATIONSBYFQNSRESPONSE']._serialized_end=986 + _globals['_GETOBLIGATIONSBYFQNSRESPONSE_FQNOBLIGATIONMAPENTRY']._serialized_start=899 + _globals['_GETOBLIGATIONSBYFQNSRESPONSE_FQNOBLIGATIONMAPENTRY']._serialized_end=986 + _globals['_CREATEOBLIGATIONREQUEST']._serialized_start=989 + _globals['_CREATEOBLIGATIONREQUEST']._serialized_end=1585 + _globals['_CREATEOBLIGATIONRESPONSE']._serialized_start=1587 + _globals['_CREATEOBLIGATIONRESPONSE']._serialized_end=1665 + _globals['_UPDATEOBLIGATIONREQUEST']._serialized_start=1668 + _globals['_UPDATEOBLIGATIONREQUEST']._serialized_end=2180 + _globals['_UPDATEOBLIGATIONRESPONSE']._serialized_start=2182 + _globals['_UPDATEOBLIGATIONRESPONSE']._serialized_end=2260 + _globals['_DELETEOBLIGATIONREQUEST']._serialized_start=2262 + _globals['_DELETEOBLIGATIONREQUEST']._serialized_end=2361 + _globals['_DELETEOBLIGATIONRESPONSE']._serialized_start=2363 + _globals['_DELETEOBLIGATIONRESPONSE']._serialized_end=2441 + _globals['_LISTOBLIGATIONSREQUEST']._serialized_start=2444 + _globals['_LISTOBLIGATIONSREQUEST']._serialized_end=2720 + _globals['_LISTOBLIGATIONSRESPONSE']._serialized_start=2723 + _globals['_LISTOBLIGATIONSRESPONSE']._serialized_end=2856 + _globals['_GETOBLIGATIONVALUEREQUEST']._serialized_start=2858 + _globals['_GETOBLIGATIONVALUEREQUEST']._serialized_end=2959 + _globals['_GETOBLIGATIONVALUERESPONSE']._serialized_start=2961 + _globals['_GETOBLIGATIONVALUERESPONSE']._serialized_end=3036 + _globals['_GETOBLIGATIONVALUESBYFQNSREQUEST']._serialized_start=3038 + _globals['_GETOBLIGATIONVALUESBYFQNSREQUEST']._serialized_end=3116 + _globals['_GETOBLIGATIONVALUESBYFQNSRESPONSE']._serialized_start=3119 + _globals['_GETOBLIGATIONVALUESBYFQNSRESPONSE']._serialized_end=3351 + _globals['_GETOBLIGATIONVALUESBYFQNSRESPONSE_FQNVALUEMAPENTRY']._serialized_start=3264 + _globals['_GETOBLIGATIONVALUESBYFQNSRESPONSE_FQNVALUEMAPENTRY']._serialized_end=3351 + _globals['_CREATEOBLIGATIONVALUEREQUEST']._serialized_start=3354 + _globals['_CREATEOBLIGATIONVALUEREQUEST']._serialized_end=3947 + _globals['_CREATEOBLIGATIONVALUERESPONSE']._serialized_start=3949 + _globals['_CREATEOBLIGATIONVALUERESPONSE']._serialized_end=4027 + _globals['_UPDATEOBLIGATIONVALUEREQUEST']._serialized_start=4030 + _globals['_UPDATEOBLIGATIONVALUEREQUEST']._serialized_end=4621 + _globals['_UPDATEOBLIGATIONVALUERESPONSE']._serialized_start=4623 + _globals['_UPDATEOBLIGATIONVALUERESPONSE']._serialized_end=4701 + _globals['_DELETEOBLIGATIONVALUEREQUEST']._serialized_start=4703 + _globals['_DELETEOBLIGATIONVALUEREQUEST']._serialized_end=4807 + _globals['_DELETEOBLIGATIONVALUERESPONSE']._serialized_start=4809 + _globals['_DELETEOBLIGATIONVALUERESPONSE']._serialized_end=4887 + _globals['_GETOBLIGATIONTRIGGERREQUEST']._serialized_start=4889 + _globals['_GETOBLIGATIONTRIGGERREQUEST']._serialized_end=4944 + _globals['_GETOBLIGATIONTRIGGERRESPONSE']._serialized_start=4946 + _globals['_GETOBLIGATIONTRIGGERRESPONSE']._serialized_end=5029 + _globals['_ADDOBLIGATIONTRIGGERREQUEST']._serialized_start=5032 + _globals['_ADDOBLIGATIONTRIGGERREQUEST']._serialized_end=5372 + _globals['_ADDOBLIGATIONTRIGGERRESPONSE']._serialized_start=5374 + _globals['_ADDOBLIGATIONTRIGGERRESPONSE']._serialized_end=5457 + _globals['_REMOVEOBLIGATIONTRIGGERREQUEST']._serialized_start=5459 + _globals['_REMOVEOBLIGATIONTRIGGERREQUEST']._serialized_end=5517 + _globals['_REMOVEOBLIGATIONTRIGGERRESPONSE']._serialized_start=5519 + _globals['_REMOVEOBLIGATIONTRIGGERRESPONSE']._serialized_end=5605 + _globals['_LISTOBLIGATIONTRIGGERSREQUEST']._serialized_start=5608 + _globals['_LISTOBLIGATIONTRIGGERSREQUEST']._serialized_end=5824 + _globals['_LISTOBLIGATIONTRIGGERSRESPONSE']._serialized_start=5827 + _globals['_LISTOBLIGATIONTRIGGERSRESPONSE']._serialized_end=5968 + _globals['_SERVICE']._serialized_start=6173 + _globals['_SERVICE']._serialized_end=8042 # @@protoc_insertion_point(module_scope) diff --git a/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_pb2.pyi b/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_pb2.pyi index 895d17d8..d1b3a2c2 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_pb2.pyi +++ b/otdf-python-proto/src/otdf_python_proto/policy/obligations/obligations_pb2.pyi @@ -3,6 +3,7 @@ from policy import objects_pb2 as _objects_pb2 from policy import selectors_pb2 as _selectors_pb2 from buf.validate import validate_pb2 as _validate_pb2 from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from collections.abc import Iterable as _Iterable, Mapping as _Mapping @@ -10,6 +11,27 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class SortObligationsType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SORT_OBLIGATIONS_TYPE_UNSPECIFIED: _ClassVar[SortObligationsType] + SORT_OBLIGATIONS_TYPE_NAME: _ClassVar[SortObligationsType] + SORT_OBLIGATIONS_TYPE_FQN: _ClassVar[SortObligationsType] + SORT_OBLIGATIONS_TYPE_CREATED_AT: _ClassVar[SortObligationsType] + SORT_OBLIGATIONS_TYPE_UPDATED_AT: _ClassVar[SortObligationsType] +SORT_OBLIGATIONS_TYPE_UNSPECIFIED: SortObligationsType +SORT_OBLIGATIONS_TYPE_NAME: SortObligationsType +SORT_OBLIGATIONS_TYPE_FQN: SortObligationsType +SORT_OBLIGATIONS_TYPE_CREATED_AT: SortObligationsType +SORT_OBLIGATIONS_TYPE_UPDATED_AT: SortObligationsType + +class ObligationsSort(_message.Message): + __slots__ = ("field", "direction") + FIELD_FIELD_NUMBER: _ClassVar[int] + DIRECTION_FIELD_NUMBER: _ClassVar[int] + field: SortObligationsType + direction: _selectors_pb2.SortDirection + def __init__(self, field: _Optional[_Union[SortObligationsType, str]] = ..., direction: _Optional[_Union[_selectors_pb2.SortDirection, str]] = ...) -> None: ... + class GetObligationRequest(_message.Message): __slots__ = ("id", "fqn") ID_FIELD_NUMBER: _ClassVar[int] @@ -106,14 +128,16 @@ class DeleteObligationResponse(_message.Message): def __init__(self, obligation: _Optional[_Union[_objects_pb2.Obligation, _Mapping]] = ...) -> None: ... class ListObligationsRequest(_message.Message): - __slots__ = ("namespace_id", "namespace_fqn", "pagination") + __slots__ = ("namespace_id", "namespace_fqn", "pagination", "sort") NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] PAGINATION_FIELD_NUMBER: _ClassVar[int] + SORT_FIELD_NUMBER: _ClassVar[int] namespace_id: str namespace_fqn: str pagination: _selectors_pb2.PageRequest - def __init__(self, namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ..., pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ...) -> None: ... + sort: _containers.RepeatedCompositeFieldContainer[ObligationsSort] + def __init__(self, namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ..., pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ..., sort: _Optional[_Iterable[_Union[ObligationsSort, _Mapping]]] = ...) -> None: ... class ListObligationsResponse(_message.Message): __slots__ = ("obligations", "pagination") @@ -210,6 +234,18 @@ class DeleteObligationValueResponse(_message.Message): value: _objects_pb2.ObligationValue def __init__(self, value: _Optional[_Union[_objects_pb2.ObligationValue, _Mapping]] = ...) -> None: ... +class GetObligationTriggerRequest(_message.Message): + __slots__ = ("id",) + ID_FIELD_NUMBER: _ClassVar[int] + id: str + def __init__(self, id: _Optional[str] = ...) -> None: ... + +class GetObligationTriggerResponse(_message.Message): + __slots__ = ("trigger",) + TRIGGER_FIELD_NUMBER: _ClassVar[int] + trigger: _objects_pb2.ObligationTrigger + def __init__(self, trigger: _Optional[_Union[_objects_pb2.ObligationTrigger, _Mapping]] = ...) -> None: ... + class AddObligationTriggerRequest(_message.Message): __slots__ = ("obligation_value", "action", "attribute_value", "context", "metadata") OBLIGATION_VALUE_FIELD_NUMBER: _ClassVar[int] diff --git a/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.py b/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.py index ab32eea2..5400409b 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.py @@ -28,7 +28,7 @@ from policy import selectors_pb2 as policy_dot_selectors__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5policy/registeredresources/registered_resources.proto\x12\x1apolicy.registeredresources\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"\xd9\x03\n\x1f\x43reateRegisteredResourceRequest\x12\xa8\x02\n\x04name\x18\x01 \x01(\tB\x93\x02\xbaH\x8f\x02r\x03\x18\xfd\x01\xba\x01\x83\x02\n\x0err_name_format\x12\xb3\x01Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x04name\x12V\n\x06values\x18\x02 \x03(\tB>\xbaH;\x92\x01\x38\x08\x00\x18\x01\"2r0\x18\xfd\x01\x32+^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$R\x06values\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"Z\n CreateRegisteredResourceResponse\x12\x36\n\x08resource\x18\x01 \x01(\x0b\x32\x1a.policy.RegisteredResourceR\x08resource\"\x94\x03\n\x1cGetRegisteredResourceRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\xc2\x02\n\x04name\x18\x02 \x01(\tB\xab\x02\xbaH\xa7\x02r\x03\x18\xfd\x01\xba\x01\x9b\x02\n\x0err_name_format\x12\xb3\x01Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00H\x00R\x04nameB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"W\n\x1dGetRegisteredResourceResponse\x12\x36\n\x08resource\x18\x01 \x01(\x0b\x32\x1a.policy.RegisteredResourceR\x08resource\"U\n\x1eListRegisteredResourcesRequest\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\"\x91\x01\n\x1fListRegisteredResourcesResponse\x12\x38\n\tresources\x18\x01 \x03(\x0b\x32\x1a.policy.RegisteredResourceR\tresources\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\x89\x04\n\x1fUpdateRegisteredResourceRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xc0\x02\n\x04name\x18\x02 \x01(\tB\xab\x02\xbaH\xa7\x02r\x03\x18\xfd\x01\xba\x01\x9b\x02\n\x0err_name_format\x12\xb3\x01Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"Z\n UpdateRegisteredResourceResponse\x12\x36\n\x08resource\x18\x01 \x01(\x0b\x32\x1a.policy.RegisteredResourceR\x08resource\";\n\x1f\x44\x65leteRegisteredResourceRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"Z\n DeleteRegisteredResourceResponse\x12\x36\n\x08resource\x18\x01 \x01(\x0b\x32\x1a.policy.RegisteredResourceR\x08resource\"\xad\x04\n\x14\x41\x63tionAttributeValue\x12\'\n\taction_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x08\x61\x63tionId\x12\xb2\x02\n\x0b\x61\x63tion_name\x18\x02 \x01(\tB\x8e\x02\xbaH\x8a\x02r\x03\x18\xfd\x01\xba\x01\x81\x02\n\x12\x61\x63tion_name_format\x12\xad\x01\x41\x63tion name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')H\x00R\nactionName\x12\x38\n\x12\x61ttribute_value_id\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x01R\x10\x61ttributeValueId\x12<\n\x13\x61ttribute_value_fqn\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x01R\x11\x61ttributeValueFqnB\x1a\n\x11\x61\x63tion_identifier\x12\x05\xbaH\x02\x08\x01\x42#\n\x1a\x61ttribute_value_identifier\x12\x05\xbaH\x02\x08\x01\"\xa0\x04\n$CreateRegisteredResourceValueRequest\x12)\n\x0bresource_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\nresourceId\x12\xad\x02\n\x05value\x18\x02 \x01(\tB\x96\x02\xbaH\x92\x02r\x03\x18\xfd\x01\xba\x01\x86\x02\n\x0frr_value_format\x12\xb5\x01Registered Resource Value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x05value\x12h\n\x17\x61\x63tion_attribute_values\x18\x03 \x03(\x0b\x32\x30.policy.registeredresources.ActionAttributeValueR\x15\x61\x63tionAttributeValues\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"^\n%CreateRegisteredResourceValueResponse\x12\x35\n\x05value\x18\x01 \x01(\x0b\x32\x1f.policy.RegisteredResourceValueR\x05value\"t\n!GetRegisteredResourceValueRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\x1e\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03\x66qnB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"[\n\"GetRegisteredResourceValueResponse\x12\x35\n\x05value\x18\x01 \x01(\x0b\x32\x1f.policy.RegisteredResourceValueR\x05value\"S\n(GetRegisteredResourceValuesByFQNsRequest\x12\'\n\x04\x66qns\x18\x01 \x03(\tB\x13\xbaH\x10\x92\x01\r\x08\x01\x18\x01\"\x07r\x05\x10\x01\x88\x01\x01R\x04\x66qns\"\x88\x02\n)GetRegisteredResourceValuesByFQNsResponse\x12z\n\rfqn_value_map\x18\x01 \x03(\x0b\x32V.policy.registeredresources.GetRegisteredResourceValuesByFQNsResponse.FqnValueMapEntryR\x0b\x66qnValueMap\x1a_\n\x10\x46qnValueMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32\x1f.policy.RegisteredResourceValueR\x05value:\x02\x38\x01\"\xb2\x02\n#ListRegisteredResourceValuesRequest\x12\xd5\x01\n\x0bresource_id\x18\x01 \x01(\tB\xb3\x01\xbaH\xaf\x01\xba\x01\xab\x01\n\x14optional_uuid_format\x12#Optional field must be a valid UUID\x1ansize(this) == 0 || this.matches(\'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\')R\nresourceId\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\"\x95\x01\n$ListRegisteredResourceValuesResponse\x12\x37\n\x06values\x18\x01 \x03(\x0b\x32\x1f.policy.RegisteredResourceValueR\x06values\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\xfd\x04\n$UpdateRegisteredResourceValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xc5\x02\n\x05value\x18\x02 \x01(\tB\xae\x02\xbaH\xaa\x02r\x03\x18\xfd\x01\xba\x01\x9e\x02\n\x0frr_value_format\x12\xb5\x01Registered Resource Value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00R\x05value\x12h\n\x17\x61\x63tion_attribute_values\x18\x03 \x03(\x0b\x32\x30.policy.registeredresources.ActionAttributeValueR\x15\x61\x63tionAttributeValues\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"^\n%UpdateRegisteredResourceValueResponse\x12\x35\n\x05value\x18\x01 \x01(\x0b\x32\x1f.policy.RegisteredResourceValueR\x05value\"@\n$DeleteRegisteredResourceValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"^\n%DeleteRegisteredResourceValueResponse\x12\x35\n\x05value\x18\x01 \x01(\x0b\x32\x1f.policy.RegisteredResourceValueR\x05value2\x88\x0e\n\x1aRegisteredResourcesService\x12\x97\x01\n\x18\x43reateRegisteredResource\x12;.policy.registeredresources.CreateRegisteredResourceRequest\x1a<.policy.registeredresources.CreateRegisteredResourceResponse\"\x00\x12\x8e\x01\n\x15GetRegisteredResource\x12\x38.policy.registeredresources.GetRegisteredResourceRequest\x1a\x39.policy.registeredresources.GetRegisteredResourceResponse\"\x00\x12\x94\x01\n\x17ListRegisteredResources\x12:.policy.registeredresources.ListRegisteredResourcesRequest\x1a;.policy.registeredresources.ListRegisteredResourcesResponse\"\x00\x12\x97\x01\n\x18UpdateRegisteredResource\x12;.policy.registeredresources.UpdateRegisteredResourceRequest\x1a<.policy.registeredresources.UpdateRegisteredResourceResponse\"\x00\x12\x97\x01\n\x18\x44\x65leteRegisteredResource\x12;.policy.registeredresources.DeleteRegisteredResourceRequest\x1a<.policy.registeredresources.DeleteRegisteredResourceResponse\"\x00\x12\xa6\x01\n\x1d\x43reateRegisteredResourceValue\x12@.policy.registeredresources.CreateRegisteredResourceValueRequest\x1a\x41.policy.registeredresources.CreateRegisteredResourceValueResponse\"\x00\x12\x9d\x01\n\x1aGetRegisteredResourceValue\x12=.policy.registeredresources.GetRegisteredResourceValueRequest\x1a>.policy.registeredresources.GetRegisteredResourceValueResponse\"\x00\x12\xb2\x01\n!GetRegisteredResourceValuesByFQNs\x12\x44.policy.registeredresources.GetRegisteredResourceValuesByFQNsRequest\x1a\x45.policy.registeredresources.GetRegisteredResourceValuesByFQNsResponse\"\x00\x12\xa3\x01\n\x1cListRegisteredResourceValues\x12?.policy.registeredresources.ListRegisteredResourceValuesRequest\x1a@.policy.registeredresources.ListRegisteredResourceValuesResponse\"\x00\x12\xa6\x01\n\x1dUpdateRegisteredResourceValue\x12@.policy.registeredresources.UpdateRegisteredResourceValueRequest\x1a\x41.policy.registeredresources.UpdateRegisteredResourceValueResponse\"\x00\x12\xa6\x01\n\x1d\x44\x65leteRegisteredResourceValue\x12@.policy.registeredresources.DeleteRegisteredResourceValueRequest\x1a\x41.policy.registeredresources.DeleteRegisteredResourceValueResponse\"\x00\x42\xc3\x01\n\x1e\x63om.policy.registeredresourcesB\x18RegisteredResourcesProtoP\x01\xa2\x02\x03PRX\xaa\x02\x1aPolicy.Registeredresources\xca\x02\x1aPolicy\\Registeredresources\xe2\x02&Policy\\Registeredresources\\GPBMetadata\xea\x02\x1bPolicy::Registeredresourcesb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5policy/registeredresources/registered_resources.proto\x12\x1apolicy.registeredresources\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"\xdd\x04\n\x1f\x43reateRegisteredResourceRequest\x12\xa8\x02\n\x04name\x18\x01 \x01(\tB\x93\x02\xbaH\x8f\x02r\x03\x18\xfd\x01\xba\x01\x83\x02\n\x0err_name_format\x12\xb3\x01Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x04name\x12V\n\x06values\x18\x02 \x03(\tB>\xbaH;\x92\x01\x38\x08\x00\x18\x01\"2r0\x18\xfd\x01\x32+^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$R\x06values\x12+\n\x0cnamespace_id\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"Z\n CreateRegisteredResourceResponse\x12\x36\n\x08resource\x18\x01 \x01(\x0b\x32\x1a.policy.RegisteredResourceR\x08resource\"\x98\x04\n\x1cGetRegisteredResourceRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\xc2\x02\n\x04name\x18\x02 \x01(\tB\xab\x02\xbaH\xa7\x02r\x03\x18\xfd\x01\xba\x01\x9b\x02\n\x0err_name_format\x12\xb3\x01Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00H\x00R\x04name\x12/\n\rnamespace_fqn\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12+\n\x0cnamespace_id\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\x42\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"W\n\x1dGetRegisteredResourceResponse\x12\x36\n\x08resource\x18\x01 \x01(\x0b\x32\x1a.policy.RegisteredResourceR\x08resource\"\x9d\x01\n\x17RegisteredResourcesSort\x12M\n\x05\x66ield\x18\x01 \x01(\x0e\x32\x37.policy.registeredresources.SortRegisteredResourcesTypeR\x05\x66ield\x12\x33\n\tdirection\x18\x02 \x01(\x0e\x32\x15.policy.SortDirectionR\tdirection\"\xac\x02\n\x1eListRegisteredResourcesRequest\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\x12Q\n\x04sort\x18\x0b \x03(\x0b\x32\x33.policy.registeredresources.RegisteredResourcesSortB\x08\xbaH\x05\x92\x01\x02\x10\x01R\x04sort:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"\x91\x01\n\x1fListRegisteredResourcesResponse\x12\x38\n\tresources\x18\x01 \x03(\x0b\x32\x1a.policy.RegisteredResourceR\tresources\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\x89\x04\n\x1fUpdateRegisteredResourceRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xc0\x02\n\x04name\x18\x02 \x01(\tB\xab\x02\xbaH\xa7\x02r\x03\x18\xfd\x01\xba\x01\x9b\x02\n\x0err_name_format\x12\xb3\x01Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00R\x04name\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"Z\n UpdateRegisteredResourceResponse\x12\x36\n\x08resource\x18\x01 \x01(\x0b\x32\x1a.policy.RegisteredResourceR\x08resource\";\n\x1f\x44\x65leteRegisteredResourceRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"Z\n DeleteRegisteredResourceResponse\x12\x36\n\x08resource\x18\x01 \x01(\x0b\x32\x1a.policy.RegisteredResourceR\x08resource\"\xad\x04\n\x14\x41\x63tionAttributeValue\x12\'\n\taction_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x08\x61\x63tionId\x12\xb2\x02\n\x0b\x61\x63tion_name\x18\x02 \x01(\tB\x8e\x02\xbaH\x8a\x02r\x03\x18\xfd\x01\xba\x01\x81\x02\n\x12\x61\x63tion_name_format\x12\xad\x01\x41\x63tion name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')H\x00R\nactionName\x12\x38\n\x12\x61ttribute_value_id\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x01R\x10\x61ttributeValueId\x12<\n\x13\x61ttribute_value_fqn\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x01R\x11\x61ttributeValueFqnB\x1a\n\x11\x61\x63tion_identifier\x12\x05\xbaH\x02\x08\x01\x42#\n\x1a\x61ttribute_value_identifier\x12\x05\xbaH\x02\x08\x01\"\xa0\x04\n$CreateRegisteredResourceValueRequest\x12)\n\x0bresource_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\nresourceId\x12\xad\x02\n\x05value\x18\x02 \x01(\tB\x96\x02\xbaH\x92\x02r\x03\x18\xfd\x01\xba\x01\x86\x02\n\x0frr_value_format\x12\xb5\x01Registered Resource Value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.\x1a;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\xc8\x01\x01R\x05value\x12h\n\x17\x61\x63tion_attribute_values\x18\x03 \x03(\x0b\x32\x30.policy.registeredresources.ActionAttributeValueR\x15\x61\x63tionAttributeValues\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"^\n%CreateRegisteredResourceValueResponse\x12\x35\n\x05value\x18\x01 \x01(\x0b\x32\x1f.policy.RegisteredResourceValueR\x05value\"t\n!GetRegisteredResourceValueRequest\x12\x1a\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x02id\x12\x1e\n\x03\x66qn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01H\x00R\x03\x66qnB\x13\n\nidentifier\x12\x05\xbaH\x02\x08\x01\"[\n\"GetRegisteredResourceValueResponse\x12\x35\n\x05value\x18\x01 \x01(\x0b\x32\x1f.policy.RegisteredResourceValueR\x05value\"S\n(GetRegisteredResourceValuesByFQNsRequest\x12\'\n\x04\x66qns\x18\x01 \x03(\tB\x13\xbaH\x10\x92\x01\r\x08\x01\x18\x01\"\x07r\x05\x10\x01\x88\x01\x01R\x04\x66qns\"\x88\x02\n)GetRegisteredResourceValuesByFQNsResponse\x12z\n\rfqn_value_map\x18\x01 \x03(\x0b\x32V.policy.registeredresources.GetRegisteredResourceValuesByFQNsResponse.FqnValueMapEntryR\x0b\x66qnValueMap\x1a_\n\x10\x46qnValueMapEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32\x1f.policy.RegisteredResourceValueR\x05value:\x02\x38\x01\"\xb2\x02\n#ListRegisteredResourceValuesRequest\x12\xd5\x01\n\x0bresource_id\x18\x01 \x01(\tB\xb3\x01\xbaH\xaf\x01\xba\x01\xab\x01\n\x14optional_uuid_format\x12#Optional field must be a valid UUID\x1ansize(this) == 0 || this.matches(\'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\')R\nresourceId\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\"\x95\x01\n$ListRegisteredResourceValuesResponse\x12\x37\n\x06values\x18\x01 \x03(\x0b\x32\x1f.policy.RegisteredResourceValueR\x06values\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\xfd\x04\n$UpdateRegisteredResourceValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xc5\x02\n\x05value\x18\x02 \x01(\tB\xae\x02\xbaH\xaa\x02r\x03\x18\xfd\x01\xba\x01\x9e\x02\n\x0frr_value_format\x12\xb5\x01Registered Resource Value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.\x1aSsize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\xc8\x01\x00R\x05value\x12h\n\x17\x61\x63tion_attribute_values\x18\x03 \x03(\x0b\x32\x30.policy.registeredresources.ActionAttributeValueR\x15\x61\x63tionAttributeValues\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"^\n%UpdateRegisteredResourceValueResponse\x12\x35\n\x05value\x18\x01 \x01(\x0b\x32\x1f.policy.RegisteredResourceValueR\x05value\"@\n$DeleteRegisteredResourceValueRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"^\n%DeleteRegisteredResourceValueResponse\x12\x35\n\x05value\x18\x01 \x01(\x0b\x32\x1f.policy.RegisteredResourceValueR\x05value*\xd4\x01\n\x1bSortRegisteredResourcesType\x12.\n*SORT_REGISTERED_RESOURCES_TYPE_UNSPECIFIED\x10\x00\x12\'\n#SORT_REGISTERED_RESOURCES_TYPE_NAME\x10\x01\x12-\n)SORT_REGISTERED_RESOURCES_TYPE_CREATED_AT\x10\x02\x12-\n)SORT_REGISTERED_RESOURCES_TYPE_UPDATED_AT\x10\x03\x32\x88\x0e\n\x1aRegisteredResourcesService\x12\x97\x01\n\x18\x43reateRegisteredResource\x12;.policy.registeredresources.CreateRegisteredResourceRequest\x1a<.policy.registeredresources.CreateRegisteredResourceResponse\"\x00\x12\x8e\x01\n\x15GetRegisteredResource\x12\x38.policy.registeredresources.GetRegisteredResourceRequest\x1a\x39.policy.registeredresources.GetRegisteredResourceResponse\"\x00\x12\x94\x01\n\x17ListRegisteredResources\x12:.policy.registeredresources.ListRegisteredResourcesRequest\x1a;.policy.registeredresources.ListRegisteredResourcesResponse\"\x00\x12\x97\x01\n\x18UpdateRegisteredResource\x12;.policy.registeredresources.UpdateRegisteredResourceRequest\x1a<.policy.registeredresources.UpdateRegisteredResourceResponse\"\x00\x12\x97\x01\n\x18\x44\x65leteRegisteredResource\x12;.policy.registeredresources.DeleteRegisteredResourceRequest\x1a<.policy.registeredresources.DeleteRegisteredResourceResponse\"\x00\x12\xa6\x01\n\x1d\x43reateRegisteredResourceValue\x12@.policy.registeredresources.CreateRegisteredResourceValueRequest\x1a\x41.policy.registeredresources.CreateRegisteredResourceValueResponse\"\x00\x12\x9d\x01\n\x1aGetRegisteredResourceValue\x12=.policy.registeredresources.GetRegisteredResourceValueRequest\x1a>.policy.registeredresources.GetRegisteredResourceValueResponse\"\x00\x12\xb2\x01\n!GetRegisteredResourceValuesByFQNs\x12\x44.policy.registeredresources.GetRegisteredResourceValuesByFQNsRequest\x1a\x45.policy.registeredresources.GetRegisteredResourceValuesByFQNsResponse\"\x00\x12\xa3\x01\n\x1cListRegisteredResourceValues\x12?.policy.registeredresources.ListRegisteredResourceValuesRequest\x1a@.policy.registeredresources.ListRegisteredResourceValuesResponse\"\x00\x12\xa6\x01\n\x1dUpdateRegisteredResourceValue\x12@.policy.registeredresources.UpdateRegisteredResourceValueRequest\x1a\x41.policy.registeredresources.UpdateRegisteredResourceValueResponse\"\x00\x12\xa6\x01\n\x1d\x44\x65leteRegisteredResourceValue\x12@.policy.registeredresources.DeleteRegisteredResourceValueRequest\x1a\x41.policy.registeredresources.DeleteRegisteredResourceValueResponse\"\x00\x42\xc3\x01\n\x1e\x63om.policy.registeredresourcesB\x18RegisteredResourcesProtoP\x01\xa2\x02\x03PRX\xaa\x02\x1aPolicy.Registeredresources\xca\x02\x1aPolicy\\Registeredresources\xe2\x02&Policy\\Registeredresources\\GPBMetadata\xea\x02\x1bPolicy::Registeredresourcesb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,12 +40,32 @@ _globals['_CREATEREGISTEREDRESOURCEREQUEST'].fields_by_name['name']._serialized_options = b'\272H\217\002r\003\030\375\001\272\001\203\002\n\016rr_name_format\022\263\001Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\032;this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\')\310\001\001' _globals['_CREATEREGISTEREDRESOURCEREQUEST'].fields_by_name['values']._loaded_options = None _globals['_CREATEREGISTEREDRESOURCEREQUEST'].fields_by_name['values']._serialized_options = b'\272H;\222\0018\010\000\030\001\"2r0\030\375\0012+^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$' + _globals['_CREATEREGISTEREDRESOURCEREQUEST'].fields_by_name['namespace_id']._loaded_options = None + _globals['_CREATEREGISTEREDRESOURCEREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_CREATEREGISTEREDRESOURCEREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None + _globals['_CREATEREGISTEREDRESOURCEREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' + _globals['_CREATEREGISTEREDRESOURCEREQUEST']._loaded_options = None + _globals['_CREATEREGISTEREDRESOURCEREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' _globals['_GETREGISTEREDRESOURCEREQUEST'].oneofs_by_name['identifier']._loaded_options = None _globals['_GETREGISTEREDRESOURCEREQUEST'].oneofs_by_name['identifier']._serialized_options = b'\272H\002\010\001' _globals['_GETREGISTEREDRESOURCEREQUEST'].fields_by_name['id']._loaded_options = None _globals['_GETREGISTEREDRESOURCEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_GETREGISTEREDRESOURCEREQUEST'].fields_by_name['name']._loaded_options = None _globals['_GETREGISTEREDRESOURCEREQUEST'].fields_by_name['name']._serialized_options = b'\272H\247\002r\003\030\375\001\272\001\233\002\n\016rr_name_format\022\263\001Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.\032Ssize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\310\001\000' + _globals['_GETREGISTEREDRESOURCEREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None + _globals['_GETREGISTEREDRESOURCEREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' + _globals['_GETREGISTEREDRESOURCEREQUEST'].fields_by_name['namespace_id']._loaded_options = None + _globals['_GETREGISTEREDRESOURCEREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_GETREGISTEREDRESOURCEREQUEST']._loaded_options = None + _globals['_GETREGISTEREDRESOURCEREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' + _globals['_LISTREGISTEREDRESOURCESREQUEST'].fields_by_name['namespace_id']._loaded_options = None + _globals['_LISTREGISTEREDRESOURCESREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_LISTREGISTEREDRESOURCESREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None + _globals['_LISTREGISTEREDRESOURCESREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' + _globals['_LISTREGISTEREDRESOURCESREQUEST'].fields_by_name['sort']._loaded_options = None + _globals['_LISTREGISTEREDRESOURCESREQUEST'].fields_by_name['sort']._serialized_options = b'\272H\005\222\001\002\020\001' + _globals['_LISTREGISTEREDRESOURCESREQUEST']._loaded_options = None + _globals['_LISTREGISTEREDRESOURCESREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' _globals['_UPDATEREGISTEREDRESOURCEREQUEST'].fields_by_name['id']._loaded_options = None _globals['_UPDATEREGISTEREDRESOURCEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_UPDATEREGISTEREDRESOURCEREQUEST'].fields_by_name['name']._loaded_options = None @@ -86,54 +106,58 @@ _globals['_UPDATEREGISTEREDRESOURCEVALUEREQUEST'].fields_by_name['value']._serialized_options = b'\272H\252\002r\003\030\375\001\272\001\236\002\n\017rr_value_format\022\265\001Registered Resource Value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.\032Ssize(this) > 0 ? this.matches(\'^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$\') : true\310\001\000' _globals['_DELETEREGISTEREDRESOURCEVALUEREQUEST'].fields_by_name['id']._loaded_options = None _globals['_DELETEREGISTEREDRESOURCEVALUEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_SORTREGISTEREDRESOURCESTYPE']._serialized_start=6015 + _globals['_SORTREGISTEREDRESOURCESTYPE']._serialized_end=6227 _globals['_CREATEREGISTEREDRESOURCEREQUEST']._serialized_start=182 - _globals['_CREATEREGISTEREDRESOURCEREQUEST']._serialized_end=655 - _globals['_CREATEREGISTEREDRESOURCERESPONSE']._serialized_start=657 - _globals['_CREATEREGISTEREDRESOURCERESPONSE']._serialized_end=747 - _globals['_GETREGISTEREDRESOURCEREQUEST']._serialized_start=750 - _globals['_GETREGISTEREDRESOURCEREQUEST']._serialized_end=1154 - _globals['_GETREGISTEREDRESOURCERESPONSE']._serialized_start=1156 - _globals['_GETREGISTEREDRESOURCERESPONSE']._serialized_end=1243 - _globals['_LISTREGISTEREDRESOURCESREQUEST']._serialized_start=1245 - _globals['_LISTREGISTEREDRESOURCESREQUEST']._serialized_end=1330 - _globals['_LISTREGISTEREDRESOURCESRESPONSE']._serialized_start=1333 - _globals['_LISTREGISTEREDRESOURCESRESPONSE']._serialized_end=1478 - _globals['_UPDATEREGISTEREDRESOURCEREQUEST']._serialized_start=1481 - _globals['_UPDATEREGISTEREDRESOURCEREQUEST']._serialized_end=2002 - _globals['_UPDATEREGISTEREDRESOURCERESPONSE']._serialized_start=2004 - _globals['_UPDATEREGISTEREDRESOURCERESPONSE']._serialized_end=2094 - _globals['_DELETEREGISTEREDRESOURCEREQUEST']._serialized_start=2096 - _globals['_DELETEREGISTEREDRESOURCEREQUEST']._serialized_end=2155 - _globals['_DELETEREGISTEREDRESOURCERESPONSE']._serialized_start=2157 - _globals['_DELETEREGISTEREDRESOURCERESPONSE']._serialized_end=2247 - _globals['_ACTIONATTRIBUTEVALUE']._serialized_start=2250 - _globals['_ACTIONATTRIBUTEVALUE']._serialized_end=2807 - _globals['_CREATEREGISTEREDRESOURCEVALUEREQUEST']._serialized_start=2810 - _globals['_CREATEREGISTEREDRESOURCEVALUEREQUEST']._serialized_end=3354 - _globals['_CREATEREGISTEREDRESOURCEVALUERESPONSE']._serialized_start=3356 - _globals['_CREATEREGISTEREDRESOURCEVALUERESPONSE']._serialized_end=3450 - _globals['_GETREGISTEREDRESOURCEVALUEREQUEST']._serialized_start=3452 - _globals['_GETREGISTEREDRESOURCEVALUEREQUEST']._serialized_end=3568 - _globals['_GETREGISTEREDRESOURCEVALUERESPONSE']._serialized_start=3570 - _globals['_GETREGISTEREDRESOURCEVALUERESPONSE']._serialized_end=3661 - _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSREQUEST']._serialized_start=3663 - _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSREQUEST']._serialized_end=3746 - _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSRESPONSE']._serialized_start=3749 - _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSRESPONSE']._serialized_end=4013 - _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSRESPONSE_FQNVALUEMAPENTRY']._serialized_start=3918 - _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSRESPONSE_FQNVALUEMAPENTRY']._serialized_end=4013 - _globals['_LISTREGISTEREDRESOURCEVALUESREQUEST']._serialized_start=4016 - _globals['_LISTREGISTEREDRESOURCEVALUESREQUEST']._serialized_end=4322 - _globals['_LISTREGISTEREDRESOURCEVALUESRESPONSE']._serialized_start=4325 - _globals['_LISTREGISTEREDRESOURCEVALUESRESPONSE']._serialized_end=4474 - _globals['_UPDATEREGISTEREDRESOURCEVALUEREQUEST']._serialized_start=4477 - _globals['_UPDATEREGISTEREDRESOURCEVALUEREQUEST']._serialized_end=5114 - _globals['_UPDATEREGISTEREDRESOURCEVALUERESPONSE']._serialized_start=5116 - _globals['_UPDATEREGISTEREDRESOURCEVALUERESPONSE']._serialized_end=5210 - _globals['_DELETEREGISTEREDRESOURCEVALUEREQUEST']._serialized_start=5212 - _globals['_DELETEREGISTEREDRESOURCEVALUEREQUEST']._serialized_end=5276 - _globals['_DELETEREGISTEREDRESOURCEVALUERESPONSE']._serialized_start=5278 - _globals['_DELETEREGISTEREDRESOURCEVALUERESPONSE']._serialized_end=5372 - _globals['_REGISTEREDRESOURCESSERVICE']._serialized_start=5375 - _globals['_REGISTEREDRESOURCESSERVICE']._serialized_end=7175 + _globals['_CREATEREGISTEREDRESOURCEREQUEST']._serialized_end=787 + _globals['_CREATEREGISTEREDRESOURCERESPONSE']._serialized_start=789 + _globals['_CREATEREGISTEREDRESOURCERESPONSE']._serialized_end=879 + _globals['_GETREGISTEREDRESOURCEREQUEST']._serialized_start=882 + _globals['_GETREGISTEREDRESOURCEREQUEST']._serialized_end=1418 + _globals['_GETREGISTEREDRESOURCERESPONSE']._serialized_start=1420 + _globals['_GETREGISTEREDRESOURCERESPONSE']._serialized_end=1507 + _globals['_REGISTEREDRESOURCESSORT']._serialized_start=1510 + _globals['_REGISTEREDRESOURCESSORT']._serialized_end=1667 + _globals['_LISTREGISTEREDRESOURCESREQUEST']._serialized_start=1670 + _globals['_LISTREGISTEREDRESOURCESREQUEST']._serialized_end=1970 + _globals['_LISTREGISTEREDRESOURCESRESPONSE']._serialized_start=1973 + _globals['_LISTREGISTEREDRESOURCESRESPONSE']._serialized_end=2118 + _globals['_UPDATEREGISTEREDRESOURCEREQUEST']._serialized_start=2121 + _globals['_UPDATEREGISTEREDRESOURCEREQUEST']._serialized_end=2642 + _globals['_UPDATEREGISTEREDRESOURCERESPONSE']._serialized_start=2644 + _globals['_UPDATEREGISTEREDRESOURCERESPONSE']._serialized_end=2734 + _globals['_DELETEREGISTEREDRESOURCEREQUEST']._serialized_start=2736 + _globals['_DELETEREGISTEREDRESOURCEREQUEST']._serialized_end=2795 + _globals['_DELETEREGISTEREDRESOURCERESPONSE']._serialized_start=2797 + _globals['_DELETEREGISTEREDRESOURCERESPONSE']._serialized_end=2887 + _globals['_ACTIONATTRIBUTEVALUE']._serialized_start=2890 + _globals['_ACTIONATTRIBUTEVALUE']._serialized_end=3447 + _globals['_CREATEREGISTEREDRESOURCEVALUEREQUEST']._serialized_start=3450 + _globals['_CREATEREGISTEREDRESOURCEVALUEREQUEST']._serialized_end=3994 + _globals['_CREATEREGISTEREDRESOURCEVALUERESPONSE']._serialized_start=3996 + _globals['_CREATEREGISTEREDRESOURCEVALUERESPONSE']._serialized_end=4090 + _globals['_GETREGISTEREDRESOURCEVALUEREQUEST']._serialized_start=4092 + _globals['_GETREGISTEREDRESOURCEVALUEREQUEST']._serialized_end=4208 + _globals['_GETREGISTEREDRESOURCEVALUERESPONSE']._serialized_start=4210 + _globals['_GETREGISTEREDRESOURCEVALUERESPONSE']._serialized_end=4301 + _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSREQUEST']._serialized_start=4303 + _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSREQUEST']._serialized_end=4386 + _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSRESPONSE']._serialized_start=4389 + _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSRESPONSE']._serialized_end=4653 + _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSRESPONSE_FQNVALUEMAPENTRY']._serialized_start=4558 + _globals['_GETREGISTEREDRESOURCEVALUESBYFQNSRESPONSE_FQNVALUEMAPENTRY']._serialized_end=4653 + _globals['_LISTREGISTEREDRESOURCEVALUESREQUEST']._serialized_start=4656 + _globals['_LISTREGISTEREDRESOURCEVALUESREQUEST']._serialized_end=4962 + _globals['_LISTREGISTEREDRESOURCEVALUESRESPONSE']._serialized_start=4965 + _globals['_LISTREGISTEREDRESOURCEVALUESRESPONSE']._serialized_end=5114 + _globals['_UPDATEREGISTEREDRESOURCEVALUEREQUEST']._serialized_start=5117 + _globals['_UPDATEREGISTEREDRESOURCEVALUEREQUEST']._serialized_end=5754 + _globals['_UPDATEREGISTEREDRESOURCEVALUERESPONSE']._serialized_start=5756 + _globals['_UPDATEREGISTEREDRESOURCEVALUERESPONSE']._serialized_end=5850 + _globals['_DELETEREGISTEREDRESOURCEVALUEREQUEST']._serialized_start=5852 + _globals['_DELETEREGISTEREDRESOURCEVALUEREQUEST']._serialized_end=5916 + _globals['_DELETEREGISTEREDRESOURCEVALUERESPONSE']._serialized_start=5918 + _globals['_DELETEREGISTEREDRESOURCEVALUERESPONSE']._serialized_end=6012 + _globals['_REGISTEREDRESOURCESSERVICE']._serialized_start=6230 + _globals['_REGISTEREDRESOURCESSERVICE']._serialized_end=8030 # @@protoc_insertion_point(module_scope) diff --git a/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.pyi b/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.pyi index 7d41bbb9..21c75d1b 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.pyi +++ b/otdf-python-proto/src/otdf_python_proto/policy/registeredresources/registered_resources_pb2.pyi @@ -3,6 +3,7 @@ from common import common_pb2 as _common_pb2 from policy import objects_pb2 as _objects_pb2 from policy import selectors_pb2 as _selectors_pb2 from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from collections.abc import Iterable as _Iterable, Mapping as _Mapping @@ -10,15 +11,30 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class SortRegisteredResourcesType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SORT_REGISTERED_RESOURCES_TYPE_UNSPECIFIED: _ClassVar[SortRegisteredResourcesType] + SORT_REGISTERED_RESOURCES_TYPE_NAME: _ClassVar[SortRegisteredResourcesType] + SORT_REGISTERED_RESOURCES_TYPE_CREATED_AT: _ClassVar[SortRegisteredResourcesType] + SORT_REGISTERED_RESOURCES_TYPE_UPDATED_AT: _ClassVar[SortRegisteredResourcesType] +SORT_REGISTERED_RESOURCES_TYPE_UNSPECIFIED: SortRegisteredResourcesType +SORT_REGISTERED_RESOURCES_TYPE_NAME: SortRegisteredResourcesType +SORT_REGISTERED_RESOURCES_TYPE_CREATED_AT: SortRegisteredResourcesType +SORT_REGISTERED_RESOURCES_TYPE_UPDATED_AT: SortRegisteredResourcesType + class CreateRegisteredResourceRequest(_message.Message): - __slots__ = ("name", "values", "metadata") + __slots__ = ("name", "values", "namespace_id", "namespace_fqn", "metadata") NAME_FIELD_NUMBER: _ClassVar[int] VALUES_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] name: str values: _containers.RepeatedScalarFieldContainer[str] + namespace_id: str + namespace_fqn: str metadata: _common_pb2.MetadataMutable - def __init__(self, name: _Optional[str] = ..., values: _Optional[_Iterable[str]] = ..., metadata: _Optional[_Union[_common_pb2.MetadataMutable, _Mapping]] = ...) -> None: ... + def __init__(self, name: _Optional[str] = ..., values: _Optional[_Iterable[str]] = ..., namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ..., metadata: _Optional[_Union[_common_pb2.MetadataMutable, _Mapping]] = ...) -> None: ... class CreateRegisteredResourceResponse(_message.Message): __slots__ = ("resource",) @@ -27,12 +43,16 @@ class CreateRegisteredResourceResponse(_message.Message): def __init__(self, resource: _Optional[_Union[_objects_pb2.RegisteredResource, _Mapping]] = ...) -> None: ... class GetRegisteredResourceRequest(_message.Message): - __slots__ = ("id", "name") + __slots__ = ("id", "name", "namespace_fqn", "namespace_id") ID_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] id: str name: str - def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ... + namespace_fqn: str + namespace_id: str + def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., namespace_fqn: _Optional[str] = ..., namespace_id: _Optional[str] = ...) -> None: ... class GetRegisteredResourceResponse(_message.Message): __slots__ = ("resource",) @@ -40,11 +60,25 @@ class GetRegisteredResourceResponse(_message.Message): resource: _objects_pb2.RegisteredResource def __init__(self, resource: _Optional[_Union[_objects_pb2.RegisteredResource, _Mapping]] = ...) -> None: ... +class RegisteredResourcesSort(_message.Message): + __slots__ = ("field", "direction") + FIELD_FIELD_NUMBER: _ClassVar[int] + DIRECTION_FIELD_NUMBER: _ClassVar[int] + field: SortRegisteredResourcesType + direction: _selectors_pb2.SortDirection + def __init__(self, field: _Optional[_Union[SortRegisteredResourcesType, str]] = ..., direction: _Optional[_Union[_selectors_pb2.SortDirection, str]] = ...) -> None: ... + class ListRegisteredResourcesRequest(_message.Message): - __slots__ = ("pagination",) + __slots__ = ("namespace_id", "namespace_fqn", "pagination", "sort") + NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] PAGINATION_FIELD_NUMBER: _ClassVar[int] + SORT_FIELD_NUMBER: _ClassVar[int] + namespace_id: str + namespace_fqn: str pagination: _selectors_pb2.PageRequest - def __init__(self, pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ...) -> None: ... + sort: _containers.RepeatedCompositeFieldContainer[RegisteredResourcesSort] + def __init__(self, namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ..., pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ..., sort: _Optional[_Iterable[_Union[RegisteredResourcesSort, _Mapping]]] = ...) -> None: ... class ListRegisteredResourcesResponse(_message.Message): __slots__ = ("resources", "pagination") diff --git a/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.py b/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.py index f443e090..4a77628f 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.py @@ -24,7 +24,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16policy/selectors.proto\x12\x06policy\"\xcc\x03\n\x1a\x41ttributeNamespaceSelector\x12]\n\x0fwith_attributes\x18\n \x01(\x0b\x32\x34.policy.AttributeNamespaceSelector.AttributeSelectorR\x0ewithAttributes\x1a\xce\x02\n\x11\x41ttributeSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12\x63\n\x0bwith_values\x18\n \x01(\x0b\x32\x42.policy.AttributeNamespaceSelector.AttributeSelector.ValueSelectorR\nwithValues\x1a\x9e\x01\n\rValueSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12*\n\x11with_subject_maps\x18\x02 \x01(\x08R\x0fwithSubjectMaps\x12,\n\x12with_resource_maps\x18\x03 \x01(\x08R\x10withResourceMaps\"\xba\x03\n\x1b\x41ttributeDefinitionSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12\\\n\x0ewith_namespace\x18\n \x01(\x0b\x32\x35.policy.AttributeDefinitionSelector.NamespaceSelectorR\rwithNamespace\x12R\n\x0bwith_values\x18\x0b \x01(\x0b\x32\x31.policy.AttributeDefinitionSelector.ValueSelectorR\nwithValues\x1a\x13\n\x11NamespaceSelector\x1a\x9e\x01\n\rValueSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12*\n\x11with_subject_maps\x18\x02 \x01(\x08R\x0fwithSubjectMaps\x12,\n\x12with_resource_maps\x18\x03 \x01(\x08R\x10withResourceMaps\"\xcb\x03\n\x16\x41ttributeValueSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12*\n\x11with_subject_maps\x18\x02 \x01(\x08R\x0fwithSubjectMaps\x12,\n\x12with_resource_maps\x18\x03 \x01(\x08R\x10withResourceMaps\x12W\n\x0ewith_attribute\x18\n \x01(\x0b\x32\x30.policy.AttributeValueSelector.AttributeSelectorR\rwithAttribute\x1a\xc8\x01\n\x11\x41ttributeSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12i\n\x0ewith_namespace\x18\n \x01(\x0b\x32\x42.policy.AttributeValueSelector.AttributeSelector.NamespaceSelectorR\rwithNamespace\x1a\x13\n\x11NamespaceSelector\";\n\x0bPageRequest\x12\x14\n\x05limit\x18\x01 \x01(\x05R\x05limit\x12\x16\n\x06offset\x18\x02 \x01(\x05R\x06offset\"l\n\x0cPageResponse\x12%\n\x0e\x63urrent_offset\x18\x01 \x01(\x05R\rcurrentOffset\x12\x1f\n\x0bnext_offset\x18\x02 \x01(\x05R\nnextOffset\x12\x14\n\x05total\x18\x03 \x01(\x05R\x05totalBT\n\ncom.policyB\x0eSelectorsProtoP\x01\xa2\x02\x03PXX\xaa\x02\x06Policy\xca\x02\x06Policy\xe2\x02\x12Policy\\GPBMetadata\xea\x02\x06Policyb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16policy/selectors.proto\x12\x06policy\"\xcc\x03\n\x1a\x41ttributeNamespaceSelector\x12]\n\x0fwith_attributes\x18\n \x01(\x0b\x32\x34.policy.AttributeNamespaceSelector.AttributeSelectorR\x0ewithAttributes\x1a\xce\x02\n\x11\x41ttributeSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12\x63\n\x0bwith_values\x18\n \x01(\x0b\x32\x42.policy.AttributeNamespaceSelector.AttributeSelector.ValueSelectorR\nwithValues\x1a\x9e\x01\n\rValueSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12*\n\x11with_subject_maps\x18\x02 \x01(\x08R\x0fwithSubjectMaps\x12,\n\x12with_resource_maps\x18\x03 \x01(\x08R\x10withResourceMaps\"\xba\x03\n\x1b\x41ttributeDefinitionSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12\\\n\x0ewith_namespace\x18\n \x01(\x0b\x32\x35.policy.AttributeDefinitionSelector.NamespaceSelectorR\rwithNamespace\x12R\n\x0bwith_values\x18\x0b \x01(\x0b\x32\x31.policy.AttributeDefinitionSelector.ValueSelectorR\nwithValues\x1a\x13\n\x11NamespaceSelector\x1a\x9e\x01\n\rValueSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12*\n\x11with_subject_maps\x18\x02 \x01(\x08R\x0fwithSubjectMaps\x12,\n\x12with_resource_maps\x18\x03 \x01(\x08R\x10withResourceMaps\"\xcb\x03\n\x16\x41ttributeValueSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12*\n\x11with_subject_maps\x18\x02 \x01(\x08R\x0fwithSubjectMaps\x12,\n\x12with_resource_maps\x18\x03 \x01(\x08R\x10withResourceMaps\x12W\n\x0ewith_attribute\x18\n \x01(\x0b\x32\x30.policy.AttributeValueSelector.AttributeSelectorR\rwithAttribute\x1a\xc8\x01\n\x11\x41ttributeSelector\x12\x33\n\x16with_key_access_grants\x18\x01 \x01(\x08R\x13withKeyAccessGrants\x12i\n\x0ewith_namespace\x18\n \x01(\x0b\x32\x42.policy.AttributeValueSelector.AttributeSelector.NamespaceSelectorR\rwithNamespace\x1a\x13\n\x11NamespaceSelector\";\n\x0bPageRequest\x12\x14\n\x05limit\x18\x01 \x01(\x05R\x05limit\x12\x16\n\x06offset\x18\x02 \x01(\x05R\x06offset\"l\n\x0cPageResponse\x12%\n\x0e\x63urrent_offset\x18\x01 \x01(\x05R\rcurrentOffset\x12\x1f\n\x0bnext_offset\x18\x02 \x01(\x05R\nnextOffset\x12\x14\n\x05total\x18\x03 \x01(\x05R\x05total*`\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12\x16\n\x12SORT_DIRECTION_ASC\x10\x01\x12\x17\n\x13SORT_DIRECTION_DESC\x10\x02\x42T\n\ncom.policyB\x0eSelectorsProtoP\x01\xa2\x02\x03PXX\xaa\x02\x06Policy\xca\x02\x06Policy\xe2\x02\x12Policy\\GPBMetadata\xea\x02\x06Policyb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,6 +32,8 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\n\ncom.policyB\016SelectorsProtoP\001\242\002\003PXX\252\002\006Policy\312\002\006Policy\342\002\022Policy\\GPBMetadata\352\002\006Policy' + _globals['_SORTDIRECTION']._serialized_start=1575 + _globals['_SORTDIRECTION']._serialized_end=1671 _globals['_ATTRIBUTENAMESPACESELECTOR']._serialized_start=35 _globals['_ATTRIBUTENAMESPACESELECTOR']._serialized_end=495 _globals['_ATTRIBUTENAMESPACESELECTOR_ATTRIBUTESELECTOR']._serialized_start=161 diff --git a/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.pyi b/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.pyi index 4bcaca05..d1ee07f4 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.pyi +++ b/otdf-python-proto/src/otdf_python_proto/policy/selectors_pb2.pyi @@ -1,3 +1,4 @@ +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from collections.abc import Mapping as _Mapping @@ -5,6 +6,15 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class SortDirection(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SORT_DIRECTION_UNSPECIFIED: _ClassVar[SortDirection] + SORT_DIRECTION_ASC: _ClassVar[SortDirection] + SORT_DIRECTION_DESC: _ClassVar[SortDirection] +SORT_DIRECTION_UNSPECIFIED: SortDirection +SORT_DIRECTION_ASC: SortDirection +SORT_DIRECTION_DESC: SortDirection + class AttributeNamespaceSelector(_message.Message): __slots__ = ("with_attributes",) class AttributeSelector(_message.Message): diff --git a/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py b/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py index 7e28ad14..6f42e9ac 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py +++ b/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.py @@ -28,7 +28,7 @@ from policy import selectors_pb2 as policy_dot_selectors__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+policy/subjectmapping/subject_mapping.proto\x12\x15policy.subjectmapping\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"o\n\x1bMatchSubjectMappingsRequest\x12P\n\x12subject_properties\x18\x01 \x03(\x0b\x32\x17.policy.SubjectPropertyB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x11subjectProperties\"a\n\x1cMatchSubjectMappingsResponse\x12\x41\n\x10subject_mappings\x18\x01 \x03(\x0b\x32\x16.policy.SubjectMappingR\x0fsubjectMappings\"4\n\x18GetSubjectMappingRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"\\\n\x19GetSubjectMappingResponse\x12?\n\x0fsubject_mapping\x18\x01 \x01(\x0b\x32\x16.policy.SubjectMappingR\x0esubjectMapping\"Q\n\x1aListSubjectMappingsRequest\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\"\x96\x01\n\x1bListSubjectMappingsResponse\x12\x41\n\x10subject_mappings\x18\x01 \x03(\x0b\x32\x16.policy.SubjectMappingR\x0fsubjectMappings\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\xb3\x05\n\x1b\x43reateSubjectMappingRequest\x12\x36\n\x12\x61ttribute_value_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x10\x61ttributeValueId\x12\xb8\x01\n\x07\x61\x63tions\x18\x02 \x03(\x0b\x32\x0e.policy.ActionB\x8d\x01\xbaH\x89\x01\x92\x01\x02\x08\x01\xba\x01\x80\x01\n\x1b\x61\x63tion_name_or_id_not_empty\x12/Action name or ID must not be empty if provided\x1a\x30this.all(item, item.name != \'\' || item.id != \'\')R\x07\x61\x63tions\x12\xfe\x01\n!existing_subject_condition_set_id\x18\x03 \x01(\tB\xb3\x01\xbaH\xaf\x01\xba\x01\xab\x01\n\x14optional_uuid_format\x12#Optional field must be a valid UUID\x1ansize(this) == 0 || this.matches(\'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\')R\x1d\x65xistingSubjectConditionSetId\x12k\n\x19new_subject_condition_set\x18\x04 \x01(\x0b\x32\x30.policy.subjectmapping.SubjectConditionSetCreateR\x16newSubjectConditionSet\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"_\n\x1c\x43reateSubjectMappingResponse\x12?\n\x0fsubject_mapping\x18\x01 \x01(\x0b\x32\x16.policy.SubjectMappingR\x0esubjectMapping\"\xfc\x04\n\x1bUpdateSubjectMappingRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xed\x01\n\x18subject_condition_set_id\x18\x02 \x01(\tB\xb3\x01\xbaH\xaf\x01\xba\x01\xab\x01\n\x14optional_uuid_format\x12#Optional field must be a valid UUID\x1ansize(this) == 0 || this.matches(\'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\')R\x15subjectConditionSetId\x12\xc7\x01\n\x07\x61\x63tions\x18\x03 \x03(\x0b\x32\x0e.policy.ActionB\x9c\x01\xbaH\x98\x01\xba\x01\x94\x01\n\x1b\x61\x63tion_name_or_id_not_empty\x12/Action name or ID must not be empty if provided\x1a\x44this.size() == 0 || this.all(item, item.name != \'\' || item.id != \'\')R\x07\x61\x63tions\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"_\n\x1cUpdateSubjectMappingResponse\x12?\n\x0fsubject_mapping\x18\x01 \x01(\x0b\x32\x16.policy.SubjectMappingR\x0esubjectMapping\"7\n\x1b\x44\x65leteSubjectMappingRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"_\n\x1c\x44\x65leteSubjectMappingResponse\x12?\n\x0fsubject_mapping\x18\x01 \x01(\x0b\x32\x16.policy.SubjectMappingR\x0esubjectMapping\"9\n\x1dGetSubjectConditionSetRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"\xc9\x01\n\x1eGetSubjectConditionSetResponse\x12O\n\x15subject_condition_set\x18\x01 \x01(\x0b\x32\x1b.policy.SubjectConditionSetR\x13subjectConditionSet\x12V\n\x1b\x61ssociated_subject_mappings\x18\x02 \x03(\x0b\x32\x16.policy.SubjectMappingR\x19\x61ssociatedSubjectMappings\"V\n\x1fListSubjectConditionSetsRequest\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\"\xab\x01\n ListSubjectConditionSetsResponse\x12Q\n\x16subject_condition_sets\x18\x01 \x03(\x0b\x32\x1b.policy.SubjectConditionSetR\x14subjectConditionSets\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\x91\x01\n\x19SubjectConditionSetCreate\x12?\n\x0csubject_sets\x18\x01 \x03(\x0b\x32\x12.policy.SubjectSetB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x0bsubjectSets\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"\x90\x01\n CreateSubjectConditionSetRequest\x12l\n\x15subject_condition_set\x18\x01 \x01(\x0b\x32\x30.policy.subjectmapping.SubjectConditionSetCreateB\x06\xbaH\x03\xc8\x01\x01R\x13subjectConditionSet\"t\n!CreateSubjectConditionSetResponse\x12O\n\x15subject_condition_set\x18\x01 \x01(\x0b\x32\x1b.policy.SubjectConditionSetR\x13subjectConditionSet\"\xfe\x01\n UpdateSubjectConditionSetRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x35\n\x0csubject_sets\x18\x02 \x03(\x0b\x32\x12.policy.SubjectSetR\x0bsubjectSets\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"t\n!UpdateSubjectConditionSetResponse\x12O\n\x15subject_condition_set\x18\x01 \x01(\x0b\x32\x1b.policy.SubjectConditionSetR\x13subjectConditionSet\"<\n DeleteSubjectConditionSetRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"t\n!DeleteSubjectConditionSetResponse\x12O\n\x15subject_condition_set\x18\x01 \x01(\x0b\x32\x1b.policy.SubjectConditionSetR\x13subjectConditionSet\".\n,DeleteAllUnmappedSubjectConditionSetsRequest\"\x82\x01\n-DeleteAllUnmappedSubjectConditionSetsResponse\x12Q\n\x16subject_condition_sets\x18\x01 \x03(\x0b\x32\x1b.policy.SubjectConditionSetR\x14subjectConditionSets2\xb8\r\n\x15SubjectMappingService\x12\x81\x01\n\x14MatchSubjectMappings\x12\x32.policy.subjectmapping.MatchSubjectMappingsRequest\x1a\x33.policy.subjectmapping.MatchSubjectMappingsResponse\"\x00\x12\x81\x01\n\x13ListSubjectMappings\x12\x31.policy.subjectmapping.ListSubjectMappingsRequest\x1a\x32.policy.subjectmapping.ListSubjectMappingsResponse\"\x03\x90\x02\x01\x12{\n\x11GetSubjectMapping\x12/.policy.subjectmapping.GetSubjectMappingRequest\x1a\x30.policy.subjectmapping.GetSubjectMappingResponse\"\x03\x90\x02\x01\x12\x81\x01\n\x14\x43reateSubjectMapping\x12\x32.policy.subjectmapping.CreateSubjectMappingRequest\x1a\x33.policy.subjectmapping.CreateSubjectMappingResponse\"\x00\x12\x81\x01\n\x14UpdateSubjectMapping\x12\x32.policy.subjectmapping.UpdateSubjectMappingRequest\x1a\x33.policy.subjectmapping.UpdateSubjectMappingResponse\"\x00\x12\x81\x01\n\x14\x44\x65leteSubjectMapping\x12\x32.policy.subjectmapping.DeleteSubjectMappingRequest\x1a\x33.policy.subjectmapping.DeleteSubjectMappingResponse\"\x00\x12\x90\x01\n\x18ListSubjectConditionSets\x12\x36.policy.subjectmapping.ListSubjectConditionSetsRequest\x1a\x37.policy.subjectmapping.ListSubjectConditionSetsResponse\"\x03\x90\x02\x01\x12\x8a\x01\n\x16GetSubjectConditionSet\x12\x34.policy.subjectmapping.GetSubjectConditionSetRequest\x1a\x35.policy.subjectmapping.GetSubjectConditionSetResponse\"\x03\x90\x02\x01\x12\x90\x01\n\x19\x43reateSubjectConditionSet\x12\x37.policy.subjectmapping.CreateSubjectConditionSetRequest\x1a\x38.policy.subjectmapping.CreateSubjectConditionSetResponse\"\x00\x12\x90\x01\n\x19UpdateSubjectConditionSet\x12\x37.policy.subjectmapping.UpdateSubjectConditionSetRequest\x1a\x38.policy.subjectmapping.UpdateSubjectConditionSetResponse\"\x00\x12\x90\x01\n\x19\x44\x65leteSubjectConditionSet\x12\x37.policy.subjectmapping.DeleteSubjectConditionSetRequest\x1a\x38.policy.subjectmapping.DeleteSubjectConditionSetResponse\"\x00\x12\xb4\x01\n%DeleteAllUnmappedSubjectConditionSets\x12\x43.policy.subjectmapping.DeleteAllUnmappedSubjectConditionSetsRequest\x1a\x44.policy.subjectmapping.DeleteAllUnmappedSubjectConditionSetsResponse\"\x00\x42\xa5\x01\n\x19\x63om.policy.subjectmappingB\x13SubjectMappingProtoP\x01\xa2\x02\x03PSX\xaa\x02\x15Policy.Subjectmapping\xca\x02\x15Policy\\Subjectmapping\xe2\x02!Policy\\Subjectmapping\\GPBMetadata\xea\x02\x16Policy::Subjectmappingb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+policy/subjectmapping/subject_mapping.proto\x12\x15policy.subjectmapping\x1a\x1b\x62uf/validate/validate.proto\x1a\x13\x63ommon/common.proto\x1a\x14policy/objects.proto\x1a\x16policy/selectors.proto\"o\n\x1bMatchSubjectMappingsRequest\x12P\n\x12subject_properties\x18\x01 \x03(\x0b\x32\x17.policy.SubjectPropertyB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x11subjectProperties\"a\n\x1cMatchSubjectMappingsResponse\x12\x41\n\x10subject_mappings\x18\x01 \x03(\x0b\x32\x16.policy.SubjectMappingR\x0fsubjectMappings\"4\n\x18GetSubjectMappingRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"\\\n\x19GetSubjectMappingResponse\x12?\n\x0fsubject_mapping\x18\x01 \x01(\x0b\x32\x16.policy.SubjectMappingR\x0esubjectMapping\"\x90\x01\n\x13SubjectMappingsSort\x12\x44\n\x05\x66ield\x18\x01 \x01(\x0e\x32..policy.subjectmapping.SortSubjectMappingsTypeR\x05\x66ield\x12\x33\n\tdirection\x18\x02 \x01(\x0e\x32\x15.policy.SortDirectionR\tdirection\"\x9f\x02\n\x1aListSubjectMappingsRequest\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\x12H\n\x04sort\x18\x0b \x03(\x0b\x32*.policy.subjectmapping.SubjectMappingsSortB\x08\xbaH\x05\x92\x01\x02\x10\x01R\x04sort:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"\x96\x01\n\x1bListSubjectMappingsResponse\x12\x41\n\x10subject_mappings\x18\x01 \x03(\x0b\x32\x16.policy.SubjectMappingR\x0fsubjectMappings\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\xb7\x06\n\x1b\x43reateSubjectMappingRequest\x12\x36\n\x12\x61ttribute_value_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x10\x61ttributeValueId\x12\xb8\x01\n\x07\x61\x63tions\x18\x02 \x03(\x0b\x32\x0e.policy.ActionB\x8d\x01\xbaH\x89\x01\x92\x01\x02\x08\x01\xba\x01\x80\x01\n\x1b\x61\x63tion_name_or_id_not_empty\x12/Action name or ID must not be empty if provided\x1a\x30this.all(item, item.name != \'\' || item.id != \'\')R\x07\x61\x63tions\x12\xfe\x01\n!existing_subject_condition_set_id\x18\x03 \x01(\tB\xb3\x01\xbaH\xaf\x01\xba\x01\xab\x01\n\x14optional_uuid_format\x12#Optional field must be a valid UUID\x1ansize(this) == 0 || this.matches(\'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\')R\x1d\x65xistingSubjectConditionSetId\x12k\n\x19new_subject_condition_set\x18\x04 \x01(\x0b\x32\x30.policy.subjectmapping.SubjectConditionSetCreateR\x16newSubjectConditionSet\x12+\n\x0cnamespace_id\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x06 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"_\n\x1c\x43reateSubjectMappingResponse\x12?\n\x0fsubject_mapping\x18\x01 \x01(\x0b\x32\x16.policy.SubjectMappingR\x0esubjectMapping\"\xfc\x04\n\x1bUpdateSubjectMappingRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\xed\x01\n\x18subject_condition_set_id\x18\x02 \x01(\tB\xb3\x01\xbaH\xaf\x01\xba\x01\xab\x01\n\x14optional_uuid_format\x12#Optional field must be a valid UUID\x1ansize(this) == 0 || this.matches(\'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\')R\x15subjectConditionSetId\x12\xc7\x01\n\x07\x61\x63tions\x18\x03 \x03(\x0b\x32\x0e.policy.ActionB\x9c\x01\xbaH\x98\x01\xba\x01\x94\x01\n\x1b\x61\x63tion_name_or_id_not_empty\x12/Action name or ID must not be empty if provided\x1a\x44this.size() == 0 || this.all(item, item.name != \'\' || item.id != \'\')R\x07\x61\x63tions\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"_\n\x1cUpdateSubjectMappingResponse\x12?\n\x0fsubject_mapping\x18\x01 \x01(\x0b\x32\x16.policy.SubjectMappingR\x0esubjectMapping\"7\n\x1b\x44\x65leteSubjectMappingRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"_\n\x1c\x44\x65leteSubjectMappingResponse\x12?\n\x0fsubject_mapping\x18\x01 \x01(\x0b\x32\x16.policy.SubjectMappingR\x0esubjectMapping\"9\n\x1dGetSubjectConditionSetRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"\xc9\x01\n\x1eGetSubjectConditionSetResponse\x12O\n\x15subject_condition_set\x18\x01 \x01(\x0b\x32\x1b.policy.SubjectConditionSetR\x13subjectConditionSet\x12V\n\x1b\x61ssociated_subject_mappings\x18\x02 \x03(\x0b\x32\x16.policy.SubjectMappingR\x19\x61ssociatedSubjectMappings\"\x9a\x01\n\x18SubjectConditionSetsSort\x12I\n\x05\x66ield\x18\x01 \x01(\x0e\x32\x33.policy.subjectmapping.SortSubjectConditionSetsTypeR\x05\x66ield\x12\x33\n\tdirection\x18\x02 \x01(\x0e\x32\x15.policy.SortDirectionR\tdirection\"\xa9\x02\n\x1fListSubjectConditionSetsRequest\x12+\n\x0cnamespace_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x02 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn\x12\x33\n\npagination\x18\n \x01(\x0b\x32\x13.policy.PageRequestR\npagination\x12M\n\x04sort\x18\x0b \x03(\x0b\x32/.policy.subjectmapping.SubjectConditionSetsSortB\x08\xbaH\x05\x92\x01\x02\x10\x01R\x04sort:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"\xab\x01\n ListSubjectConditionSetsResponse\x12Q\n\x16subject_condition_sets\x18\x01 \x03(\x0b\x32\x1b.policy.SubjectConditionSetR\x14subjectConditionSets\x12\x34\n\npagination\x18\n \x01(\x0b\x32\x14.policy.PageResponseR\npagination\"\x91\x01\n\x19SubjectConditionSetCreate\x12?\n\x0csubject_sets\x18\x01 \x03(\x0b\x32\x12.policy.SubjectSetB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x0bsubjectSets\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\"\x94\x02\n CreateSubjectConditionSetRequest\x12l\n\x15subject_condition_set\x18\x01 \x01(\x0b\x32\x30.policy.subjectmapping.SubjectConditionSetCreateB\x06\xbaH\x03\xc8\x01\x01R\x13subjectConditionSet\x12+\n\x0cnamespace_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x0bnamespaceId\x12/\n\rnamespace_fqn\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x01\x88\x01\x01R\x0cnamespaceFqn:$\xbaH!\"\x1f\n\x0cnamespace_id\n\rnamespace_fqn\x10\x00\"t\n!CreateSubjectConditionSetResponse\x12O\n\x15subject_condition_set\x18\x01 \x01(\x0b\x32\x1b.policy.SubjectConditionSetR\x13subjectConditionSet\"\xfe\x01\n UpdateSubjectConditionSetRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\x12\x35\n\x0csubject_sets\x18\x02 \x03(\x0b\x32\x12.policy.SubjectSetR\x0bsubjectSets\x12\x33\n\x08metadata\x18\x64 \x01(\x0b\x32\x17.common.MetadataMutableR\x08metadata\x12T\n\x18metadata_update_behavior\x18\x65 \x01(\x0e\x32\x1a.common.MetadataUpdateEnumR\x16metadataUpdateBehavior\"t\n!UpdateSubjectConditionSetResponse\x12O\n\x15subject_condition_set\x18\x01 \x01(\x0b\x32\x1b.policy.SubjectConditionSetR\x13subjectConditionSet\"<\n DeleteSubjectConditionSetRequest\x12\x18\n\x02id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x02id\"t\n!DeleteSubjectConditionSetResponse\x12O\n\x15subject_condition_set\x18\x01 \x01(\x0b\x32\x1b.policy.SubjectConditionSetR\x13subjectConditionSet\".\n,DeleteAllUnmappedSubjectConditionSetsRequest\"\x82\x01\n-DeleteAllUnmappedSubjectConditionSetsResponse\x12Q\n\x16subject_condition_sets\x18\x01 \x03(\x0b\x32\x1b.policy.SubjectConditionSetR\x14subjectConditionSets*\x9b\x01\n\x17SortSubjectMappingsType\x12*\n&SORT_SUBJECT_MAPPINGS_TYPE_UNSPECIFIED\x10\x00\x12)\n%SORT_SUBJECT_MAPPINGS_TYPE_CREATED_AT\x10\x01\x12)\n%SORT_SUBJECT_MAPPINGS_TYPE_UPDATED_AT\x10\x02*\xb2\x01\n\x1cSortSubjectConditionSetsType\x12\x30\n,SORT_SUBJECT_CONDITION_SETS_TYPE_UNSPECIFIED\x10\x00\x12/\n+SORT_SUBJECT_CONDITION_SETS_TYPE_CREATED_AT\x10\x01\x12/\n+SORT_SUBJECT_CONDITION_SETS_TYPE_UPDATED_AT\x10\x02\x32\xb8\r\n\x15SubjectMappingService\x12\x81\x01\n\x14MatchSubjectMappings\x12\x32.policy.subjectmapping.MatchSubjectMappingsRequest\x1a\x33.policy.subjectmapping.MatchSubjectMappingsResponse\"\x00\x12\x81\x01\n\x13ListSubjectMappings\x12\x31.policy.subjectmapping.ListSubjectMappingsRequest\x1a\x32.policy.subjectmapping.ListSubjectMappingsResponse\"\x03\x90\x02\x01\x12{\n\x11GetSubjectMapping\x12/.policy.subjectmapping.GetSubjectMappingRequest\x1a\x30.policy.subjectmapping.GetSubjectMappingResponse\"\x03\x90\x02\x01\x12\x81\x01\n\x14\x43reateSubjectMapping\x12\x32.policy.subjectmapping.CreateSubjectMappingRequest\x1a\x33.policy.subjectmapping.CreateSubjectMappingResponse\"\x00\x12\x81\x01\n\x14UpdateSubjectMapping\x12\x32.policy.subjectmapping.UpdateSubjectMappingRequest\x1a\x33.policy.subjectmapping.UpdateSubjectMappingResponse\"\x00\x12\x81\x01\n\x14\x44\x65leteSubjectMapping\x12\x32.policy.subjectmapping.DeleteSubjectMappingRequest\x1a\x33.policy.subjectmapping.DeleteSubjectMappingResponse\"\x00\x12\x90\x01\n\x18ListSubjectConditionSets\x12\x36.policy.subjectmapping.ListSubjectConditionSetsRequest\x1a\x37.policy.subjectmapping.ListSubjectConditionSetsResponse\"\x03\x90\x02\x01\x12\x8a\x01\n\x16GetSubjectConditionSet\x12\x34.policy.subjectmapping.GetSubjectConditionSetRequest\x1a\x35.policy.subjectmapping.GetSubjectConditionSetResponse\"\x03\x90\x02\x01\x12\x90\x01\n\x19\x43reateSubjectConditionSet\x12\x37.policy.subjectmapping.CreateSubjectConditionSetRequest\x1a\x38.policy.subjectmapping.CreateSubjectConditionSetResponse\"\x00\x12\x90\x01\n\x19UpdateSubjectConditionSet\x12\x37.policy.subjectmapping.UpdateSubjectConditionSetRequest\x1a\x38.policy.subjectmapping.UpdateSubjectConditionSetResponse\"\x00\x12\x90\x01\n\x19\x44\x65leteSubjectConditionSet\x12\x37.policy.subjectmapping.DeleteSubjectConditionSetRequest\x1a\x38.policy.subjectmapping.DeleteSubjectConditionSetResponse\"\x00\x12\xb4\x01\n%DeleteAllUnmappedSubjectConditionSets\x12\x43.policy.subjectmapping.DeleteAllUnmappedSubjectConditionSetsRequest\x1a\x44.policy.subjectmapping.DeleteAllUnmappedSubjectConditionSetsResponse\"\x00\x42\xa5\x01\n\x19\x63om.policy.subjectmappingB\x13SubjectMappingProtoP\x01\xa2\x02\x03PSX\xaa\x02\x15Policy.Subjectmapping\xca\x02\x15Policy\\Subjectmapping\xe2\x02!Policy\\Subjectmapping\\GPBMetadata\xea\x02\x16Policy::Subjectmappingb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,12 +40,26 @@ _globals['_MATCHSUBJECTMAPPINGSREQUEST'].fields_by_name['subject_properties']._serialized_options = b'\272H\005\222\001\002\010\001' _globals['_GETSUBJECTMAPPINGREQUEST'].fields_by_name['id']._loaded_options = None _globals['_GETSUBJECTMAPPINGREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_LISTSUBJECTMAPPINGSREQUEST'].fields_by_name['namespace_id']._loaded_options = None + _globals['_LISTSUBJECTMAPPINGSREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_LISTSUBJECTMAPPINGSREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None + _globals['_LISTSUBJECTMAPPINGSREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' + _globals['_LISTSUBJECTMAPPINGSREQUEST'].fields_by_name['sort']._loaded_options = None + _globals['_LISTSUBJECTMAPPINGSREQUEST'].fields_by_name['sort']._serialized_options = b'\272H\005\222\001\002\020\001' + _globals['_LISTSUBJECTMAPPINGSREQUEST']._loaded_options = None + _globals['_LISTSUBJECTMAPPINGSREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' _globals['_CREATESUBJECTMAPPINGREQUEST'].fields_by_name['attribute_value_id']._loaded_options = None _globals['_CREATESUBJECTMAPPINGREQUEST'].fields_by_name['attribute_value_id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_CREATESUBJECTMAPPINGREQUEST'].fields_by_name['actions']._loaded_options = None _globals['_CREATESUBJECTMAPPINGREQUEST'].fields_by_name['actions']._serialized_options = b'\272H\211\001\222\001\002\010\001\272\001\200\001\n\033action_name_or_id_not_empty\022/Action name or ID must not be empty if provided\0320this.all(item, item.name != \'\' || item.id != \'\')' _globals['_CREATESUBJECTMAPPINGREQUEST'].fields_by_name['existing_subject_condition_set_id']._loaded_options = None _globals['_CREATESUBJECTMAPPINGREQUEST'].fields_by_name['existing_subject_condition_set_id']._serialized_options = b'\272H\257\001\272\001\253\001\n\024optional_uuid_format\022#Optional field must be a valid UUID\032nsize(this) == 0 || this.matches(\'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\')' + _globals['_CREATESUBJECTMAPPINGREQUEST'].fields_by_name['namespace_id']._loaded_options = None + _globals['_CREATESUBJECTMAPPINGREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_CREATESUBJECTMAPPINGREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None + _globals['_CREATESUBJECTMAPPINGREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' + _globals['_CREATESUBJECTMAPPINGREQUEST']._loaded_options = None + _globals['_CREATESUBJECTMAPPINGREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' _globals['_UPDATESUBJECTMAPPINGREQUEST'].fields_by_name['id']._loaded_options = None _globals['_UPDATESUBJECTMAPPINGREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_UPDATESUBJECTMAPPINGREQUEST'].fields_by_name['subject_condition_set_id']._loaded_options = None @@ -56,10 +70,24 @@ _globals['_DELETESUBJECTMAPPINGREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_GETSUBJECTCONDITIONSETREQUEST'].fields_by_name['id']._loaded_options = None _globals['_GETSUBJECTCONDITIONSETREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_LISTSUBJECTCONDITIONSETSREQUEST'].fields_by_name['namespace_id']._loaded_options = None + _globals['_LISTSUBJECTCONDITIONSETSREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_LISTSUBJECTCONDITIONSETSREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None + _globals['_LISTSUBJECTCONDITIONSETSREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' + _globals['_LISTSUBJECTCONDITIONSETSREQUEST'].fields_by_name['sort']._loaded_options = None + _globals['_LISTSUBJECTCONDITIONSETSREQUEST'].fields_by_name['sort']._serialized_options = b'\272H\005\222\001\002\020\001' + _globals['_LISTSUBJECTCONDITIONSETSREQUEST']._loaded_options = None + _globals['_LISTSUBJECTCONDITIONSETSREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' _globals['_SUBJECTCONDITIONSETCREATE'].fields_by_name['subject_sets']._loaded_options = None _globals['_SUBJECTCONDITIONSETCREATE'].fields_by_name['subject_sets']._serialized_options = b'\272H\005\222\001\002\010\001' _globals['_CREATESUBJECTCONDITIONSETREQUEST'].fields_by_name['subject_condition_set']._loaded_options = None _globals['_CREATESUBJECTCONDITIONSETREQUEST'].fields_by_name['subject_condition_set']._serialized_options = b'\272H\003\310\001\001' + _globals['_CREATESUBJECTCONDITIONSETREQUEST'].fields_by_name['namespace_id']._loaded_options = None + _globals['_CREATESUBJECTCONDITIONSETREQUEST'].fields_by_name['namespace_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_CREATESUBJECTCONDITIONSETREQUEST'].fields_by_name['namespace_fqn']._loaded_options = None + _globals['_CREATESUBJECTCONDITIONSETREQUEST'].fields_by_name['namespace_fqn']._serialized_options = b'\272H\007r\005\020\001\210\001\001' + _globals['_CREATESUBJECTCONDITIONSETREQUEST']._loaded_options = None + _globals['_CREATESUBJECTCONDITIONSETREQUEST']._serialized_options = b'\272H!\"\037\n\014namespace_id\n\rnamespace_fqn\020\000' _globals['_UPDATESUBJECTCONDITIONSETREQUEST'].fields_by_name['id']._loaded_options = None _globals['_UPDATESUBJECTCONDITIONSETREQUEST'].fields_by_name['id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_DELETESUBJECTCONDITIONSETREQUEST'].fields_by_name['id']._loaded_options = None @@ -72,6 +100,10 @@ _globals['_SUBJECTMAPPINGSERVICE'].methods_by_name['ListSubjectConditionSets']._serialized_options = b'\220\002\001' _globals['_SUBJECTMAPPINGSERVICE'].methods_by_name['GetSubjectConditionSet']._loaded_options = None _globals['_SUBJECTMAPPINGSERVICE'].methods_by_name['GetSubjectConditionSet']._serialized_options = b'\220\002\001' + _globals['_SORTSUBJECTMAPPINGSTYPE']._serialized_start=5105 + _globals['_SORTSUBJECTMAPPINGSTYPE']._serialized_end=5260 + _globals['_SORTSUBJECTCONDITIONSETSTYPE']._serialized_start=5263 + _globals['_SORTSUBJECTCONDITIONSETSTYPE']._serialized_end=5441 _globals['_MATCHSUBJECTMAPPINGSREQUEST']._serialized_start=166 _globals['_MATCHSUBJECTMAPPINGSREQUEST']._serialized_end=277 _globals['_MATCHSUBJECTMAPPINGSRESPONSE']._serialized_start=279 @@ -80,48 +112,52 @@ _globals['_GETSUBJECTMAPPINGREQUEST']._serialized_end=430 _globals['_GETSUBJECTMAPPINGRESPONSE']._serialized_start=432 _globals['_GETSUBJECTMAPPINGRESPONSE']._serialized_end=524 - _globals['_LISTSUBJECTMAPPINGSREQUEST']._serialized_start=526 - _globals['_LISTSUBJECTMAPPINGSREQUEST']._serialized_end=607 - _globals['_LISTSUBJECTMAPPINGSRESPONSE']._serialized_start=610 - _globals['_LISTSUBJECTMAPPINGSRESPONSE']._serialized_end=760 - _globals['_CREATESUBJECTMAPPINGREQUEST']._serialized_start=763 - _globals['_CREATESUBJECTMAPPINGREQUEST']._serialized_end=1454 - _globals['_CREATESUBJECTMAPPINGRESPONSE']._serialized_start=1456 - _globals['_CREATESUBJECTMAPPINGRESPONSE']._serialized_end=1551 - _globals['_UPDATESUBJECTMAPPINGREQUEST']._serialized_start=1554 - _globals['_UPDATESUBJECTMAPPINGREQUEST']._serialized_end=2190 - _globals['_UPDATESUBJECTMAPPINGRESPONSE']._serialized_start=2192 - _globals['_UPDATESUBJECTMAPPINGRESPONSE']._serialized_end=2287 - _globals['_DELETESUBJECTMAPPINGREQUEST']._serialized_start=2289 - _globals['_DELETESUBJECTMAPPINGREQUEST']._serialized_end=2344 - _globals['_DELETESUBJECTMAPPINGRESPONSE']._serialized_start=2346 - _globals['_DELETESUBJECTMAPPINGRESPONSE']._serialized_end=2441 - _globals['_GETSUBJECTCONDITIONSETREQUEST']._serialized_start=2443 - _globals['_GETSUBJECTCONDITIONSETREQUEST']._serialized_end=2500 - _globals['_GETSUBJECTCONDITIONSETRESPONSE']._serialized_start=2503 - _globals['_GETSUBJECTCONDITIONSETRESPONSE']._serialized_end=2704 - _globals['_LISTSUBJECTCONDITIONSETSREQUEST']._serialized_start=2706 - _globals['_LISTSUBJECTCONDITIONSETSREQUEST']._serialized_end=2792 - _globals['_LISTSUBJECTCONDITIONSETSRESPONSE']._serialized_start=2795 - _globals['_LISTSUBJECTCONDITIONSETSRESPONSE']._serialized_end=2966 - _globals['_SUBJECTCONDITIONSETCREATE']._serialized_start=2969 - _globals['_SUBJECTCONDITIONSETCREATE']._serialized_end=3114 - _globals['_CREATESUBJECTCONDITIONSETREQUEST']._serialized_start=3117 - _globals['_CREATESUBJECTCONDITIONSETREQUEST']._serialized_end=3261 - _globals['_CREATESUBJECTCONDITIONSETRESPONSE']._serialized_start=3263 - _globals['_CREATESUBJECTCONDITIONSETRESPONSE']._serialized_end=3379 - _globals['_UPDATESUBJECTCONDITIONSETREQUEST']._serialized_start=3382 - _globals['_UPDATESUBJECTCONDITIONSETREQUEST']._serialized_end=3636 - _globals['_UPDATESUBJECTCONDITIONSETRESPONSE']._serialized_start=3638 - _globals['_UPDATESUBJECTCONDITIONSETRESPONSE']._serialized_end=3754 - _globals['_DELETESUBJECTCONDITIONSETREQUEST']._serialized_start=3756 - _globals['_DELETESUBJECTCONDITIONSETREQUEST']._serialized_end=3816 - _globals['_DELETESUBJECTCONDITIONSETRESPONSE']._serialized_start=3818 - _globals['_DELETESUBJECTCONDITIONSETRESPONSE']._serialized_end=3934 - _globals['_DELETEALLUNMAPPEDSUBJECTCONDITIONSETSREQUEST']._serialized_start=3936 - _globals['_DELETEALLUNMAPPEDSUBJECTCONDITIONSETSREQUEST']._serialized_end=3982 - _globals['_DELETEALLUNMAPPEDSUBJECTCONDITIONSETSRESPONSE']._serialized_start=3985 - _globals['_DELETEALLUNMAPPEDSUBJECTCONDITIONSETSRESPONSE']._serialized_end=4115 - _globals['_SUBJECTMAPPINGSERVICE']._serialized_start=4118 - _globals['_SUBJECTMAPPINGSERVICE']._serialized_end=5838 + _globals['_SUBJECTMAPPINGSSORT']._serialized_start=527 + _globals['_SUBJECTMAPPINGSSORT']._serialized_end=671 + _globals['_LISTSUBJECTMAPPINGSREQUEST']._serialized_start=674 + _globals['_LISTSUBJECTMAPPINGSREQUEST']._serialized_end=961 + _globals['_LISTSUBJECTMAPPINGSRESPONSE']._serialized_start=964 + _globals['_LISTSUBJECTMAPPINGSRESPONSE']._serialized_end=1114 + _globals['_CREATESUBJECTMAPPINGREQUEST']._serialized_start=1117 + _globals['_CREATESUBJECTMAPPINGREQUEST']._serialized_end=1940 + _globals['_CREATESUBJECTMAPPINGRESPONSE']._serialized_start=1942 + _globals['_CREATESUBJECTMAPPINGRESPONSE']._serialized_end=2037 + _globals['_UPDATESUBJECTMAPPINGREQUEST']._serialized_start=2040 + _globals['_UPDATESUBJECTMAPPINGREQUEST']._serialized_end=2676 + _globals['_UPDATESUBJECTMAPPINGRESPONSE']._serialized_start=2678 + _globals['_UPDATESUBJECTMAPPINGRESPONSE']._serialized_end=2773 + _globals['_DELETESUBJECTMAPPINGREQUEST']._serialized_start=2775 + _globals['_DELETESUBJECTMAPPINGREQUEST']._serialized_end=2830 + _globals['_DELETESUBJECTMAPPINGRESPONSE']._serialized_start=2832 + _globals['_DELETESUBJECTMAPPINGRESPONSE']._serialized_end=2927 + _globals['_GETSUBJECTCONDITIONSETREQUEST']._serialized_start=2929 + _globals['_GETSUBJECTCONDITIONSETREQUEST']._serialized_end=2986 + _globals['_GETSUBJECTCONDITIONSETRESPONSE']._serialized_start=2989 + _globals['_GETSUBJECTCONDITIONSETRESPONSE']._serialized_end=3190 + _globals['_SUBJECTCONDITIONSETSSORT']._serialized_start=3193 + _globals['_SUBJECTCONDITIONSETSSORT']._serialized_end=3347 + _globals['_LISTSUBJECTCONDITIONSETSREQUEST']._serialized_start=3350 + _globals['_LISTSUBJECTCONDITIONSETSREQUEST']._serialized_end=3647 + _globals['_LISTSUBJECTCONDITIONSETSRESPONSE']._serialized_start=3650 + _globals['_LISTSUBJECTCONDITIONSETSRESPONSE']._serialized_end=3821 + _globals['_SUBJECTCONDITIONSETCREATE']._serialized_start=3824 + _globals['_SUBJECTCONDITIONSETCREATE']._serialized_end=3969 + _globals['_CREATESUBJECTCONDITIONSETREQUEST']._serialized_start=3972 + _globals['_CREATESUBJECTCONDITIONSETREQUEST']._serialized_end=4248 + _globals['_CREATESUBJECTCONDITIONSETRESPONSE']._serialized_start=4250 + _globals['_CREATESUBJECTCONDITIONSETRESPONSE']._serialized_end=4366 + _globals['_UPDATESUBJECTCONDITIONSETREQUEST']._serialized_start=4369 + _globals['_UPDATESUBJECTCONDITIONSETREQUEST']._serialized_end=4623 + _globals['_UPDATESUBJECTCONDITIONSETRESPONSE']._serialized_start=4625 + _globals['_UPDATESUBJECTCONDITIONSETRESPONSE']._serialized_end=4741 + _globals['_DELETESUBJECTCONDITIONSETREQUEST']._serialized_start=4743 + _globals['_DELETESUBJECTCONDITIONSETREQUEST']._serialized_end=4803 + _globals['_DELETESUBJECTCONDITIONSETRESPONSE']._serialized_start=4805 + _globals['_DELETESUBJECTCONDITIONSETRESPONSE']._serialized_end=4921 + _globals['_DELETEALLUNMAPPEDSUBJECTCONDITIONSETSREQUEST']._serialized_start=4923 + _globals['_DELETEALLUNMAPPEDSUBJECTCONDITIONSETSREQUEST']._serialized_end=4969 + _globals['_DELETEALLUNMAPPEDSUBJECTCONDITIONSETSRESPONSE']._serialized_start=4972 + _globals['_DELETEALLUNMAPPEDSUBJECTCONDITIONSETSRESPONSE']._serialized_end=5102 + _globals['_SUBJECTMAPPINGSERVICE']._serialized_start=5444 + _globals['_SUBJECTMAPPINGSERVICE']._serialized_end=7164 # @@protoc_insertion_point(module_scope) diff --git a/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.pyi b/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.pyi index 60eb36ec..72f3039f 100644 --- a/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.pyi +++ b/otdf-python-proto/src/otdf_python_proto/policy/subjectmapping/subject_mapping_pb2.pyi @@ -3,6 +3,7 @@ from common import common_pb2 as _common_pb2 from policy import objects_pb2 as _objects_pb2 from policy import selectors_pb2 as _selectors_pb2 from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from collections.abc import Iterable as _Iterable, Mapping as _Mapping @@ -10,6 +11,24 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class SortSubjectMappingsType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SORT_SUBJECT_MAPPINGS_TYPE_UNSPECIFIED: _ClassVar[SortSubjectMappingsType] + SORT_SUBJECT_MAPPINGS_TYPE_CREATED_AT: _ClassVar[SortSubjectMappingsType] + SORT_SUBJECT_MAPPINGS_TYPE_UPDATED_AT: _ClassVar[SortSubjectMappingsType] + +class SortSubjectConditionSetsType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SORT_SUBJECT_CONDITION_SETS_TYPE_UNSPECIFIED: _ClassVar[SortSubjectConditionSetsType] + SORT_SUBJECT_CONDITION_SETS_TYPE_CREATED_AT: _ClassVar[SortSubjectConditionSetsType] + SORT_SUBJECT_CONDITION_SETS_TYPE_UPDATED_AT: _ClassVar[SortSubjectConditionSetsType] +SORT_SUBJECT_MAPPINGS_TYPE_UNSPECIFIED: SortSubjectMappingsType +SORT_SUBJECT_MAPPINGS_TYPE_CREATED_AT: SortSubjectMappingsType +SORT_SUBJECT_MAPPINGS_TYPE_UPDATED_AT: SortSubjectMappingsType +SORT_SUBJECT_CONDITION_SETS_TYPE_UNSPECIFIED: SortSubjectConditionSetsType +SORT_SUBJECT_CONDITION_SETS_TYPE_CREATED_AT: SortSubjectConditionSetsType +SORT_SUBJECT_CONDITION_SETS_TYPE_UPDATED_AT: SortSubjectConditionSetsType + class MatchSubjectMappingsRequest(_message.Message): __slots__ = ("subject_properties",) SUBJECT_PROPERTIES_FIELD_NUMBER: _ClassVar[int] @@ -34,11 +53,25 @@ class GetSubjectMappingResponse(_message.Message): subject_mapping: _objects_pb2.SubjectMapping def __init__(self, subject_mapping: _Optional[_Union[_objects_pb2.SubjectMapping, _Mapping]] = ...) -> None: ... +class SubjectMappingsSort(_message.Message): + __slots__ = ("field", "direction") + FIELD_FIELD_NUMBER: _ClassVar[int] + DIRECTION_FIELD_NUMBER: _ClassVar[int] + field: SortSubjectMappingsType + direction: _selectors_pb2.SortDirection + def __init__(self, field: _Optional[_Union[SortSubjectMappingsType, str]] = ..., direction: _Optional[_Union[_selectors_pb2.SortDirection, str]] = ...) -> None: ... + class ListSubjectMappingsRequest(_message.Message): - __slots__ = ("pagination",) + __slots__ = ("namespace_id", "namespace_fqn", "pagination", "sort") + NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] PAGINATION_FIELD_NUMBER: _ClassVar[int] + SORT_FIELD_NUMBER: _ClassVar[int] + namespace_id: str + namespace_fqn: str pagination: _selectors_pb2.PageRequest - def __init__(self, pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ...) -> None: ... + sort: _containers.RepeatedCompositeFieldContainer[SubjectMappingsSort] + def __init__(self, namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ..., pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ..., sort: _Optional[_Iterable[_Union[SubjectMappingsSort, _Mapping]]] = ...) -> None: ... class ListSubjectMappingsResponse(_message.Message): __slots__ = ("subject_mappings", "pagination") @@ -49,18 +82,22 @@ class ListSubjectMappingsResponse(_message.Message): def __init__(self, subject_mappings: _Optional[_Iterable[_Union[_objects_pb2.SubjectMapping, _Mapping]]] = ..., pagination: _Optional[_Union[_selectors_pb2.PageResponse, _Mapping]] = ...) -> None: ... class CreateSubjectMappingRequest(_message.Message): - __slots__ = ("attribute_value_id", "actions", "existing_subject_condition_set_id", "new_subject_condition_set", "metadata") + __slots__ = ("attribute_value_id", "actions", "existing_subject_condition_set_id", "new_subject_condition_set", "namespace_id", "namespace_fqn", "metadata") ATTRIBUTE_VALUE_ID_FIELD_NUMBER: _ClassVar[int] ACTIONS_FIELD_NUMBER: _ClassVar[int] EXISTING_SUBJECT_CONDITION_SET_ID_FIELD_NUMBER: _ClassVar[int] NEW_SUBJECT_CONDITION_SET_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] attribute_value_id: str actions: _containers.RepeatedCompositeFieldContainer[_objects_pb2.Action] existing_subject_condition_set_id: str new_subject_condition_set: SubjectConditionSetCreate + namespace_id: str + namespace_fqn: str metadata: _common_pb2.MetadataMutable - def __init__(self, attribute_value_id: _Optional[str] = ..., actions: _Optional[_Iterable[_Union[_objects_pb2.Action, _Mapping]]] = ..., existing_subject_condition_set_id: _Optional[str] = ..., new_subject_condition_set: _Optional[_Union[SubjectConditionSetCreate, _Mapping]] = ..., metadata: _Optional[_Union[_common_pb2.MetadataMutable, _Mapping]] = ...) -> None: ... + def __init__(self, attribute_value_id: _Optional[str] = ..., actions: _Optional[_Iterable[_Union[_objects_pb2.Action, _Mapping]]] = ..., existing_subject_condition_set_id: _Optional[str] = ..., new_subject_condition_set: _Optional[_Union[SubjectConditionSetCreate, _Mapping]] = ..., namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ..., metadata: _Optional[_Union[_common_pb2.MetadataMutable, _Mapping]] = ...) -> None: ... class CreateSubjectMappingResponse(_message.Message): __slots__ = ("subject_mapping",) @@ -114,11 +151,25 @@ class GetSubjectConditionSetResponse(_message.Message): associated_subject_mappings: _containers.RepeatedCompositeFieldContainer[_objects_pb2.SubjectMapping] def __init__(self, subject_condition_set: _Optional[_Union[_objects_pb2.SubjectConditionSet, _Mapping]] = ..., associated_subject_mappings: _Optional[_Iterable[_Union[_objects_pb2.SubjectMapping, _Mapping]]] = ...) -> None: ... +class SubjectConditionSetsSort(_message.Message): + __slots__ = ("field", "direction") + FIELD_FIELD_NUMBER: _ClassVar[int] + DIRECTION_FIELD_NUMBER: _ClassVar[int] + field: SortSubjectConditionSetsType + direction: _selectors_pb2.SortDirection + def __init__(self, field: _Optional[_Union[SortSubjectConditionSetsType, str]] = ..., direction: _Optional[_Union[_selectors_pb2.SortDirection, str]] = ...) -> None: ... + class ListSubjectConditionSetsRequest(_message.Message): - __slots__ = ("pagination",) + __slots__ = ("namespace_id", "namespace_fqn", "pagination", "sort") + NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] PAGINATION_FIELD_NUMBER: _ClassVar[int] + SORT_FIELD_NUMBER: _ClassVar[int] + namespace_id: str + namespace_fqn: str pagination: _selectors_pb2.PageRequest - def __init__(self, pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ...) -> None: ... + sort: _containers.RepeatedCompositeFieldContainer[SubjectConditionSetsSort] + def __init__(self, namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ..., pagination: _Optional[_Union[_selectors_pb2.PageRequest, _Mapping]] = ..., sort: _Optional[_Iterable[_Union[SubjectConditionSetsSort, _Mapping]]] = ...) -> None: ... class ListSubjectConditionSetsResponse(_message.Message): __slots__ = ("subject_condition_sets", "pagination") @@ -137,10 +188,14 @@ class SubjectConditionSetCreate(_message.Message): def __init__(self, subject_sets: _Optional[_Iterable[_Union[_objects_pb2.SubjectSet, _Mapping]]] = ..., metadata: _Optional[_Union[_common_pb2.MetadataMutable, _Mapping]] = ...) -> None: ... class CreateSubjectConditionSetRequest(_message.Message): - __slots__ = ("subject_condition_set",) + __slots__ = ("subject_condition_set", "namespace_id", "namespace_fqn") SUBJECT_CONDITION_SET_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_ID_FIELD_NUMBER: _ClassVar[int] + NAMESPACE_FQN_FIELD_NUMBER: _ClassVar[int] subject_condition_set: SubjectConditionSetCreate - def __init__(self, subject_condition_set: _Optional[_Union[SubjectConditionSetCreate, _Mapping]] = ...) -> None: ... + namespace_id: str + namespace_fqn: str + def __init__(self, subject_condition_set: _Optional[_Union[SubjectConditionSetCreate, _Mapping]] = ..., namespace_id: _Optional[str] = ..., namespace_fqn: _Optional[str] = ...) -> None: ... class CreateSubjectConditionSetResponse(_message.Message): __slots__ = ("subject_condition_set",) From a2c9c0712c93f7cfd1262904f83f5c83e05065af Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 3 Jun 2026 08:09:17 -0400 Subject: [PATCH 5/5] feat: improve .gitattributes file --- otdf-python-proto/.gitattributes | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 otdf-python-proto/.gitattributes diff --git a/otdf-python-proto/.gitattributes b/otdf-python-proto/.gitattributes new file mode 100644 index 00000000..96c99707 --- /dev/null +++ b/otdf-python-proto/.gitattributes @@ -0,0 +1,2 @@ +src/otdf_python_proto/**/__init__.py linguist-generated=true +src/otdf_python_proto/__init__.py linguist-generated=true