diff --git a/lib/platform-proto-version.json b/lib/platform-proto-version.json index 9cfca3c59..023e2840e 100644 --- a/lib/platform-proto-version.json +++ b/lib/platform-proto-version.json @@ -1,4 +1,4 @@ { - "tag": "protocol/go/v0.33.1", - "commit": "73105845ee9cbcae1491a1beb8667a7af8640851" + "tag": "protocol/go/v0.41.0", + "commit": "c13e2cd17d1fc7d2f4ee91bf193ed250e69f1d4d" } diff --git a/lib/src/platform/authorization/entity-identifiers.ts b/lib/src/platform/authorization/entity-identifiers.ts deleted file mode 100644 index e62ebda3e..000000000 --- a/lib/src/platform/authorization/entity-identifiers.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { create } from '@bufbuild/protobuf'; -import { BoolValueSchema } from '@bufbuild/protobuf/wkt'; -import { - type EntityIdentifier, - EntityIdentifierSchema, -} from './v2/authorization_pb.js'; -import { - type Entity, - Entity_Category, - EntityChainSchema, - EntitySchema, - TokenSchema, -} from '../entity/entity_pb.js'; - -/** - * Convenience constructors for {@link EntityIdentifier}, mirroring the Go SDK - * helpers (`ForEmail`, `ForClientID`, etc.). - * - * Each function builds a complete `EntityIdentifier` so callers avoid deeply - * nested object literals. - * - * @example - * ```ts - * // Before - * const eid = create(EntityIdentifierSchema, { - * identifier: { - * case: 'entityChain', - * value: create(EntityChainSchema, { - * entities: [create(EntitySchema, { - * entityType: { case: 'emailAddress', value: 'jen@example.com' }, - * category: Entity_Category.SUBJECT, - * })], - * }), - * }, - * }); - * - * // After - * import { EntityIdentifiers } from '@opentdf/sdk'; - * const eid = EntityIdentifiers.forEmail('jen@example.com'); - * ``` - */ - -/** Returns an EntityIdentifier for a subject identified by email address. */ -export function forEmail(email: string): EntityIdentifier { - return fromEntity( - create(EntitySchema, { - entityType: { case: 'emailAddress', value: email }, - category: Entity_Category.SUBJECT, - }) - ); -} - -/** Returns an EntityIdentifier for a subject identified by client ID. */ -export function forClientId(clientId: string): EntityIdentifier { - return fromEntity( - create(EntitySchema, { - entityType: { case: 'clientId', value: clientId }, - category: Entity_Category.SUBJECT, - }) - ); -} - -/** Returns an EntityIdentifier for a subject identified by username. */ -export function forUserName(userName: string): EntityIdentifier { - return fromEntity( - create(EntitySchema, { - entityType: { case: 'userName', value: userName }, - category: Entity_Category.SUBJECT, - }) - ); -} - -/** Returns an EntityIdentifier that resolves the entity from the given JWT. */ -export function forToken(jwt: string): EntityIdentifier { - return create(EntityIdentifierSchema, { - identifier: { - case: 'token', - value: create(TokenSchema, { jwt }), - }, - }); -} - -/** - * Returns an EntityIdentifier that instructs the authorization service to - * derive the entity from the request's Authorization header token. - */ -export function withRequestToken(): EntityIdentifier { - return create(EntityIdentifierSchema, { - identifier: { - case: 'withRequestToken', - value: create(BoolValueSchema, { value: true }), - }, - }); -} - -function fromEntity(entity: Entity): EntityIdentifier { - return create(EntityIdentifierSchema, { - identifier: { - case: 'entityChain', - value: create(EntityChainSchema, { entities: [entity] }), - }, - }); -} diff --git a/lib/src/platform/authorization/resources.ts b/lib/src/platform/authorization/resources.ts deleted file mode 100644 index 58a8302a1..000000000 --- a/lib/src/platform/authorization/resources.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { create } from '@bufbuild/protobuf'; -import { - type Resource, - ResourceSchema, - Resource_AttributeValuesSchema, -} from './v2/authorization_pb.js'; - -/** - * Convenience constructors for {@link Resource}, analogous to the - * {@link EntityIdentifiers} helpers for {@link EntityIdentifier}. - * - * Each function builds a complete `Resource` so callers avoid deeply nested - * object literals. - * - * @example - * ```ts - * // Before - * const resource = create(ResourceSchema, { - * resource: { - * case: 'attributeValues', - * value: create(Resource_AttributeValuesSchema, { - * fqns: ['https://example.com/attr/department/value/finance'], - * }), - * }, - * }); - * - * // After - * import { Resources } from '@opentdf/sdk'; - * const resource = Resources.forAttributeValues('https://example.com/attr/department/value/finance'); - * ``` - */ - -/** - * Returns a Resource containing the given attribute value FQNs. - * This is the most common Resource variant, used when authorizing against - * attribute values attached to data (e.g. those on a TDF). - */ -export function forAttributeValues(fqn: string, ...moreFqns: string[]): Resource { - const fqns = [fqn, ...moreFqns]; - return create(ResourceSchema, { - resource: { - case: 'attributeValues', - value: create(Resource_AttributeValuesSchema, { fqns }), - }, - }); -} - -/** - * Returns a Resource that references a single registered resource value - * by its fully qualified name, as stored in platform policy. - */ -export function forRegisteredResourceValueFqn(fqn: string): Resource { - return create(ResourceSchema, { - resource: { - case: 'registeredResourceValueFqn', - value: fqn, - }, - }); -} diff --git a/lib/src/platform/policy/attributes/attributes_pb.ts b/lib/src/platform/policy/attributes/attributes_pb.ts index f96efb5b6..5dd50c165 100644 --- a/lib/src/platform/policy/attributes/attributes_pb.ts +++ b/lib/src/platform/policy/attributes/attributes_pb.ts @@ -8,17 +8,19 @@ import { file_buf_validate_validate } from "../../buf/validate/validate_pb.js"; import type { ActiveStateEnum, IdFqnIdentifier, IdNameIdentifier, MetadataMutable, MetadataUpdateEnum } from "../../common/common_pb.js"; import { file_common_common } from "../../common/common_pb.js"; import { file_google_protobuf_wrappers } from "@bufbuild/protobuf/wkt"; -import type { Attribute, AttributeRuleTypeEnum, RequestContext, Value } from "../objects_pb.js"; +import type { Action, Attribute, AttributeRuleTypeEnum, Namespace, RequestContext, SimpleKasKey, SubjectMapping, Value } from "../objects_pb.js"; import { file_policy_objects } from "../objects_pb.js"; import type { PageRequest, PageResponse, Search, SortDirection } from "../selectors_pb.js"; import { file_policy_selectors } from "../selectors_pb.js"; +import type { SubjectConditionSetCreate } from "../subjectmapping/subject_mapping_pb.js"; +import { file_policy_subjectmapping_subject_mapping } from "../subjectmapping/subject_mapping_pb.js"; import type { Message } from "@bufbuild/protobuf"; /** * Describes the file policy/attributes/attributes.proto. */ export const file_policy_attributes_attributes: GenFile = /*@__PURE__*/ - fileDesc("CiJwb2xpY3kvYXR0cmlidXRlcy9hdHRyaWJ1dGVzLnByb3RvEhFwb2xpY3kuYXR0cmlidXRlcyJmChhBdHRyaWJ1dGVLZXlBY2Nlc3NTZXJ2ZXISHgoMYXR0cmlidXRlX2lkGAEgASgJQgi6SAVyA7ABARImChRrZXlfYWNjZXNzX3NlcnZlcl9pZBgCIAEoCUIIukgFcgOwAQE6AhgBIl4KFFZhbHVlS2V5QWNjZXNzU2VydmVyEhoKCHZhbHVlX2lkGAEgASgJQgi6SAVyA7ABARImChRrZXlfYWNjZXNzX3NlcnZlcl9pZBgCIAEoCUIIukgFcgOwAQE6AhgBIk4KDEF0dHJpYnV0ZUtleRIhCgxhdHRyaWJ1dGVfaWQYASABKAlCC7pICMgBAXIDsAEBEhsKBmtleV9pZBgCIAEoCUILukgIyAEBcgOwAQEiRgoIVmFsdWVLZXkSHQoIdmFsdWVfaWQYASABKAlCC7pICMgBAXIDsAEBEhsKBmtleV9pZBgCIAEoCUILukgIyAEBcgOwAQEihAEKDkF0dHJpYnV0ZXNTb3J0Ej4KBWZpZWxkGAEgASgOMiUucG9saWN5LmF0dHJpYnV0ZXMuU29ydEF0dHJpYnV0ZXNUeXBlQgi6SAWCAQIQARIyCglkaXJlY3Rpb24YAiABKA4yFS5wb2xpY3kuU29ydERpcmVjdGlvbkIIukgFggECEAEi1gEKFUxpc3RBdHRyaWJ1dGVzUmVxdWVzdBImCgVzdGF0ZRgBIAEoDjIXLmNvbW1vbi5BY3RpdmVTdGF0ZUVudW0SEQoJbmFtZXNwYWNlGAIgASgJEicKCnBhZ2luYXRpb24YCiABKAsyEy5wb2xpY3kuUGFnZVJlcXVlc3QSOQoEc29ydBgLIAMoCzIhLnBvbGljeS5hdHRyaWJ1dGVzLkF0dHJpYnV0ZXNTb3J0Qgi6SAWSAQIQARIeCgZzZWFyY2gYDCABKAsyDi5wb2xpY3kuU2VhcmNoImkKFkxpc3RBdHRyaWJ1dGVzUmVzcG9uc2USJQoKYXR0cmlidXRlcxgBIAMoCzIRLnBvbGljeS5BdHRyaWJ1dGUSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2UiqAMKE0dldEF0dHJpYnV0ZVJlcXVlc3QSGQoCaWQYASABKAlCDRgBukgI2AEBcgOwAQESIAoMYXR0cmlidXRlX2lkGAIgASgJQgi6SAVyA7ABAUgAEhkKA2ZxbhgDIAEoCUIKukgHcgUQAYgBAUgAOqoCukimAhqiAQoQZXhjbHVzaXZlX2ZpZWxkcxJQRWl0aGVyIHVzZSBkZXByZWNhdGVkICdpZCcgZmllbGQgb3Igb25lIG9mICdhdHRyaWJ1dGVfaWQnIG9yICdmcW4nLCBidXQgbm90IGJvdGgaPCEoaGFzKHRoaXMuaWQpICYmIChoYXModGhpcy5hdHRyaWJ1dGVfaWQpIHx8IGhhcyh0aGlzLmZxbikpKRp/Cg9yZXF1aXJlZF9maWVsZHMSM0VpdGhlciBpZCBvciBvbmUgb2YgYXR0cmlidXRlX2lkIG9yIGZxbiBtdXN0IGJlIHNldBo3aGFzKHRoaXMuaWQpIHx8IGhhcyh0aGlzLmF0dHJpYnV0ZV9pZCkgfHwgaGFzKHRoaXMuZnFuKUIMCgppZGVudGlmaWVyIjwKFEdldEF0dHJpYnV0ZVJlc3BvbnNlEiQKCWF0dHJpYnV0ZRgBIAEoCzIRLnBvbGljeS5BdHRyaWJ1dGUizgQKFkNyZWF0ZUF0dHJpYnV0ZVJlcXVlc3QSHgoMbmFtZXNwYWNlX2lkGAEgASgJQgi6SAVyA7ABARKpAgoEbmFtZRgCIAEoCUKaArpIlgK6AYoCChVhdHRyaWJ1dGVfbmFtZV9mb3JtYXQSswFBdHRyaWJ1dGUgbmFtZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIGF0dHJpYnV0ZSBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLho7dGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJynIAQFyAxj9ARI4CgRydWxlGAMgASgOMh0ucG9saWN5LkF0dHJpYnV0ZVJ1bGVUeXBlRW51bUILukgIyAEBggECEAESTgoGdmFsdWVzGAQgAygJQj66SDuSATgIABgBIjJyMBj9ATIrXlthLXpBLVowLTldKD86W2EtekEtWjAtOV8tXSpbYS16QS1aMC05XSk/JBIzCg9hbGxvd190cmF2ZXJzYWwYBSABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZSI/ChdDcmVhdGVBdHRyaWJ1dGVSZXNwb25zZRIkCglhdHRyaWJ1dGUYASABKAsyES5wb2xpY3kuQXR0cmlidXRlIpcBChZVcGRhdGVBdHRyaWJ1dGVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUSPAoYbWV0YWRhdGFfdXBkYXRlX2JlaGF2aW9yGGUgASgOMhouY29tbW9uLk1ldGFkYXRhVXBkYXRlRW51bSI/ChdVcGRhdGVBdHRyaWJ1dGVSZXNwb25zZRIkCglhdHRyaWJ1dGUYASABKAsyES5wb2xpY3kuQXR0cmlidXRlIjIKGkRlYWN0aXZhdGVBdHRyaWJ1dGVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJDChtEZWFjdGl2YXRlQXR0cmlidXRlUmVzcG9uc2USJAoJYXR0cmlidXRlGAEgASgLMhEucG9saWN5LkF0dHJpYnV0ZSKZAwoYR2V0QXR0cmlidXRlVmFsdWVSZXF1ZXN0EhkKAmlkGAEgASgJQg0YAbpICNgBAXIDsAEBEhwKCHZhbHVlX2lkGAIgASgJQgi6SAVyA7ABAUgAEhkKA2ZxbhgDIAEoCUIKukgHcgUQAYgBAUgAOpoCukiWAhqaAQoQZXhjbHVzaXZlX2ZpZWxkcxJMRWl0aGVyIHVzZSBkZXByZWNhdGVkICdpZCcgZmllbGQgb3Igb25lIG9mICd2YWx1ZV9pZCcgb3IgJ2ZxbicsIGJ1dCBub3QgYm90aBo4IShoYXModGhpcy5pZCkgJiYgKGhhcyh0aGlzLnZhbHVlX2lkKSB8fCBoYXModGhpcy5mcW4pKSkadwoPcmVxdWlyZWRfZmllbGRzEi9FaXRoZXIgaWQgb3Igb25lIG9mIHZhbHVlX2lkIG9yIGZxbiBtdXN0IGJlIHNldBozaGFzKHRoaXMuaWQpIHx8IGhhcyh0aGlzLnZhbHVlX2lkKSB8fCBoYXModGhpcy5mcW4pQgwKCmlkZW50aWZpZXIiOQoZR2V0QXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSKNAQoaTGlzdEF0dHJpYnV0ZVZhbHVlc1JlcXVlc3QSHgoMYXR0cmlidXRlX2lkGAEgASgJQgi6SAVyA7ABARImCgVzdGF0ZRgCIAEoDjIXLmNvbW1vbi5BY3RpdmVTdGF0ZUVudW0SJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdCJmChtMaXN0QXR0cmlidXRlVmFsdWVzUmVzcG9uc2USHQoGdmFsdWVzGAEgAygLMg0ucG9saWN5LlZhbHVlEigKCnBhZ2luYXRpb24YCiABKAsyFC5wb2xpY3kuUGFnZVJlc3BvbnNlIukBCiZBdHRyaWJ1dGVWYWx1ZU9ibGlnYXRpb25UcmlnZ2VyUmVxdWVzdBI5ChBvYmxpZ2F0aW9uX3ZhbHVlGAEgASgLMhcuY29tbW9uLklkRnFuSWRlbnRpZmllckIGukgDyAEBEjAKBmFjdGlvbhgCIAEoCzIYLmNvbW1vbi5JZE5hbWVJZGVudGlmaWVyQga6SAPIAQESJwoHY29udGV4dBgLIAEoCzIWLnBvbGljeS5SZXF1ZXN0Q29udGV4dBIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUi/wMKG0NyZWF0ZUF0dHJpYnV0ZVZhbHVlUmVxdWVzdBIeCgxhdHRyaWJ1dGVfaWQYASABKAlCCLpIBXIDsAEBEq0CCgV2YWx1ZRgCIAEoCUKdArpImQK6AY0CChZhdHRyaWJ1dGVfdmFsdWVfZm9ybWF0ErUBQXR0cmlidXRlIHZhbHVlIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgYnV0IG5vdCBhcyB0aGUgZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIuIFRoZSBzdG9yZWQgYXR0cmlidXRlIHZhbHVlIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLho7dGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJynIAQFyAxj9ARJWChNvYmxpZ2F0aW9uX3RyaWdnZXJzGAsgAygLMjkucG9saWN5LmF0dHJpYnV0ZXMuQXR0cmlidXRlVmFsdWVPYmxpZ2F0aW9uVHJpZ2dlclJlcXVlc3QSKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlSgQIAxAEUgdtZW1iZXJzIjwKHENyZWF0ZUF0dHJpYnV0ZVZhbHVlUmVzcG9uc2USHAoFdmFsdWUYASABKAsyDS5wb2xpY3kuVmFsdWUiqwEKG1VwZGF0ZUF0dHJpYnV0ZVZhbHVlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlEjwKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchhlIAEoDjIaLmNvbW1vbi5NZXRhZGF0YVVwZGF0ZUVudW1KBAgEEAVSB21lbWJlcnMiPAocVXBkYXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSI3Ch9EZWFjdGl2YXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJACiBEZWFjdGl2YXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSJOCh9HZXRBdHRyaWJ1dGVWYWx1ZXNCeUZxbnNSZXF1ZXN0EhkKBGZxbnMYASADKAlCC7pICJIBBQgBEPoBSgQIAhADUgp3aXRoX3ZhbHVlIukCCiBHZXRBdHRyaWJ1dGVWYWx1ZXNCeUZxbnNSZXNwb25zZRJpChRmcW5fYXR0cmlidXRlX3ZhbHVlcxgBIAMoCzJLLnBvbGljeS5hdHRyaWJ1dGVzLkdldEF0dHJpYnV0ZVZhbHVlc0J5RnFuc1Jlc3BvbnNlLkZxbkF0dHJpYnV0ZVZhbHVlc0VudHJ5GlcKEUF0dHJpYnV0ZUFuZFZhbHVlEiQKCWF0dHJpYnV0ZRgBIAEoCzIRLnBvbGljeS5BdHRyaWJ1dGUSHAoFdmFsdWUYAiABKAsyDS5wb2xpY3kuVmFsdWUagAEKF0ZxbkF0dHJpYnV0ZVZhbHVlc0VudHJ5EgsKA2tleRgBIAEoCRJUCgV2YWx1ZRgCIAEoCzJFLnBvbGljeS5hdHRyaWJ1dGVzLkdldEF0dHJpYnV0ZVZhbHVlc0J5RnFuc1Jlc3BvbnNlLkF0dHJpYnV0ZUFuZFZhbHVlOgI4ASJ/CidBc3NpZ25LZXlBY2Nlc3NTZXJ2ZXJUb0F0dHJpYnV0ZVJlcXVlc3QSUAobYXR0cmlidXRlX2tleV9hY2Nlc3Nfc2VydmVyGAEgASgLMisucG9saWN5LmF0dHJpYnV0ZXMuQXR0cmlidXRlS2V5QWNjZXNzU2VydmVyOgIYASKAAQooQXNzaWduS2V5QWNjZXNzU2VydmVyVG9BdHRyaWJ1dGVSZXNwb25zZRJQChthdHRyaWJ1dGVfa2V5X2FjY2Vzc19zZXJ2ZXIYASABKAsyKy5wb2xpY3kuYXR0cmlidXRlcy5BdHRyaWJ1dGVLZXlBY2Nlc3NTZXJ2ZXI6AhgBIoEBCilSZW1vdmVLZXlBY2Nlc3NTZXJ2ZXJGcm9tQXR0cmlidXRlUmVxdWVzdBJQChthdHRyaWJ1dGVfa2V5X2FjY2Vzc19zZXJ2ZXIYASABKAsyKy5wb2xpY3kuYXR0cmlidXRlcy5BdHRyaWJ1dGVLZXlBY2Nlc3NTZXJ2ZXI6AhgBIoIBCipSZW1vdmVLZXlBY2Nlc3NTZXJ2ZXJGcm9tQXR0cmlidXRlUmVzcG9uc2USUAobYXR0cmlidXRlX2tleV9hY2Nlc3Nfc2VydmVyGAEgASgLMisucG9saWN5LmF0dHJpYnV0ZXMuQXR0cmlidXRlS2V5QWNjZXNzU2VydmVyOgIYASJzCiNBc3NpZ25LZXlBY2Nlc3NTZXJ2ZXJUb1ZhbHVlUmVxdWVzdBJIChd2YWx1ZV9rZXlfYWNjZXNzX3NlcnZlchgBIAEoCzInLnBvbGljeS5hdHRyaWJ1dGVzLlZhbHVlS2V5QWNjZXNzU2VydmVyOgIYASJ0CiRBc3NpZ25LZXlBY2Nlc3NTZXJ2ZXJUb1ZhbHVlUmVzcG9uc2USSAoXdmFsdWVfa2V5X2FjY2Vzc19zZXJ2ZXIYASABKAsyJy5wb2xpY3kuYXR0cmlidXRlcy5WYWx1ZUtleUFjY2Vzc1NlcnZlcjoCGAEidQolUmVtb3ZlS2V5QWNjZXNzU2VydmVyRnJvbVZhbHVlUmVxdWVzdBJIChd2YWx1ZV9rZXlfYWNjZXNzX3NlcnZlchgBIAEoCzInLnBvbGljeS5hdHRyaWJ1dGVzLlZhbHVlS2V5QWNjZXNzU2VydmVyOgIYASJ2CiZSZW1vdmVLZXlBY2Nlc3NTZXJ2ZXJGcm9tVmFsdWVSZXNwb25zZRJIChd2YWx1ZV9rZXlfYWNjZXNzX3NlcnZlchgBIAEoCzInLnBvbGljeS5hdHRyaWJ1dGVzLlZhbHVlS2V5QWNjZXNzU2VydmVyOgIYASJjCiFBc3NpZ25QdWJsaWNLZXlUb0F0dHJpYnV0ZVJlcXVlc3QSPgoNYXR0cmlidXRlX2tleRgBIAEoCzIfLnBvbGljeS5hdHRyaWJ1dGVzLkF0dHJpYnV0ZUtleUIGukgDyAEBIlwKIkFzc2lnblB1YmxpY0tleVRvQXR0cmlidXRlUmVzcG9uc2USNgoNYXR0cmlidXRlX2tleRgBIAEoCzIfLnBvbGljeS5hdHRyaWJ1dGVzLkF0dHJpYnV0ZUtleSJlCiNSZW1vdmVQdWJsaWNLZXlGcm9tQXR0cmlidXRlUmVxdWVzdBI+Cg1hdHRyaWJ1dGVfa2V5GAEgASgLMh8ucG9saWN5LmF0dHJpYnV0ZXMuQXR0cmlidXRlS2V5Qga6SAPIAQEiXgokUmVtb3ZlUHVibGljS2V5RnJvbUF0dHJpYnV0ZVJlc3BvbnNlEjYKDWF0dHJpYnV0ZV9rZXkYASABKAsyHy5wb2xpY3kuYXR0cmlidXRlcy5BdHRyaWJ1dGVLZXkiVwodQXNzaWduUHVibGljS2V5VG9WYWx1ZVJlcXVlc3QSNgoJdmFsdWVfa2V5GAEgASgLMhsucG9saWN5LmF0dHJpYnV0ZXMuVmFsdWVLZXlCBrpIA8gBASJQCh5Bc3NpZ25QdWJsaWNLZXlUb1ZhbHVlUmVzcG9uc2USLgoJdmFsdWVfa2V5GAEgASgLMhsucG9saWN5LmF0dHJpYnV0ZXMuVmFsdWVLZXkiWQofUmVtb3ZlUHVibGljS2V5RnJvbVZhbHVlUmVxdWVzdBI2Cgl2YWx1ZV9rZXkYASABKAsyGy5wb2xpY3kuYXR0cmlidXRlcy5WYWx1ZUtleUIGukgDyAEBIlIKIFJlbW92ZVB1YmxpY0tleUZyb21WYWx1ZVJlc3BvbnNlEi4KCXZhbHVlX2tleRgBIAEoCzIbLnBvbGljeS5hdHRyaWJ1dGVzLlZhbHVlS2V5KqMBChJTb3J0QXR0cmlidXRlc1R5cGUSJAogU09SVF9BVFRSSUJVVEVTX1RZUEVfVU5TUEVDSUZJRUQQABIdChlTT1JUX0FUVFJJQlVURVNfVFlQRV9OQU1FEAESIwofU09SVF9BVFRSSUJVVEVTX1RZUEVfQ1JFQVRFRF9BVBACEiMKH1NPUlRfQVRUUklCVVRFU19UWVBFX1VQREFURURfQVQQAzLcEwoRQXR0cmlidXRlc1NlcnZpY2USagoOTGlzdEF0dHJpYnV0ZXMSKC5wb2xpY3kuYXR0cmlidXRlcy5MaXN0QXR0cmlidXRlc1JlcXVlc3QaKS5wb2xpY3kuYXR0cmlidXRlcy5MaXN0QXR0cmlidXRlc1Jlc3BvbnNlIgOQAgESfAoTTGlzdEF0dHJpYnV0ZVZhbHVlcxItLnBvbGljeS5hdHRyaWJ1dGVzLkxpc3RBdHRyaWJ1dGVWYWx1ZXNSZXF1ZXN0Gi4ucG9saWN5LmF0dHJpYnV0ZXMuTGlzdEF0dHJpYnV0ZVZhbHVlc1Jlc3BvbnNlIgaIAgGQAgESZAoMR2V0QXR0cmlidXRlEiYucG9saWN5LmF0dHJpYnV0ZXMuR2V0QXR0cmlidXRlUmVxdWVzdBonLnBvbGljeS5hdHRyaWJ1dGVzLkdldEF0dHJpYnV0ZVJlc3BvbnNlIgOQAgESiAEKGEdldEF0dHJpYnV0ZVZhbHVlc0J5RnFucxIyLnBvbGljeS5hdHRyaWJ1dGVzLkdldEF0dHJpYnV0ZVZhbHVlc0J5RnFuc1JlcXVlc3QaMy5wb2xpY3kuYXR0cmlidXRlcy5HZXRBdHRyaWJ1dGVWYWx1ZXNCeUZxbnNSZXNwb25zZSIDkAIBEmoKD0NyZWF0ZUF0dHJpYnV0ZRIpLnBvbGljeS5hdHRyaWJ1dGVzLkNyZWF0ZUF0dHJpYnV0ZVJlcXVlc3QaKi5wb2xpY3kuYXR0cmlidXRlcy5DcmVhdGVBdHRyaWJ1dGVSZXNwb25zZSIAEmoKD1VwZGF0ZUF0dHJpYnV0ZRIpLnBvbGljeS5hdHRyaWJ1dGVzLlVwZGF0ZUF0dHJpYnV0ZVJlcXVlc3QaKi5wb2xpY3kuYXR0cmlidXRlcy5VcGRhdGVBdHRyaWJ1dGVSZXNwb25zZSIAEnYKE0RlYWN0aXZhdGVBdHRyaWJ1dGUSLS5wb2xpY3kuYXR0cmlidXRlcy5EZWFjdGl2YXRlQXR0cmlidXRlUmVxdWVzdBouLnBvbGljeS5hdHRyaWJ1dGVzLkRlYWN0aXZhdGVBdHRyaWJ1dGVSZXNwb25zZSIAEnMKEUdldEF0dHJpYnV0ZVZhbHVlEisucG9saWN5LmF0dHJpYnV0ZXMuR2V0QXR0cmlidXRlVmFsdWVSZXF1ZXN0GiwucG9saWN5LmF0dHJpYnV0ZXMuR2V0QXR0cmlidXRlVmFsdWVSZXNwb25zZSIDkAIBEnkKFENyZWF0ZUF0dHJpYnV0ZVZhbHVlEi4ucG9saWN5LmF0dHJpYnV0ZXMuQ3JlYXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0Gi8ucG9saWN5LmF0dHJpYnV0ZXMuQ3JlYXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZSIAEnkKFFVwZGF0ZUF0dHJpYnV0ZVZhbHVlEi4ucG9saWN5LmF0dHJpYnV0ZXMuVXBkYXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0Gi8ucG9saWN5LmF0dHJpYnV0ZXMuVXBkYXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZSIAEoUBChhEZWFjdGl2YXRlQXR0cmlidXRlVmFsdWUSMi5wb2xpY3kuYXR0cmlidXRlcy5EZWFjdGl2YXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0GjMucG9saWN5LmF0dHJpYnV0ZXMuRGVhY3RpdmF0ZUF0dHJpYnV0ZVZhbHVlUmVzcG9uc2UiABKgAQogQXNzaWduS2V5QWNjZXNzU2VydmVyVG9BdHRyaWJ1dGUSOi5wb2xpY3kuYXR0cmlidXRlcy5Bc3NpZ25LZXlBY2Nlc3NTZXJ2ZXJUb0F0dHJpYnV0ZVJlcXVlc3QaOy5wb2xpY3kuYXR0cmlidXRlcy5Bc3NpZ25LZXlBY2Nlc3NTZXJ2ZXJUb0F0dHJpYnV0ZVJlc3BvbnNlIgOIAgESpgEKIlJlbW92ZUtleUFjY2Vzc1NlcnZlckZyb21BdHRyaWJ1dGUSPC5wb2xpY3kuYXR0cmlidXRlcy5SZW1vdmVLZXlBY2Nlc3NTZXJ2ZXJGcm9tQXR0cmlidXRlUmVxdWVzdBo9LnBvbGljeS5hdHRyaWJ1dGVzLlJlbW92ZUtleUFjY2Vzc1NlcnZlckZyb21BdHRyaWJ1dGVSZXNwb25zZSIDiAIBEpQBChxBc3NpZ25LZXlBY2Nlc3NTZXJ2ZXJUb1ZhbHVlEjYucG9saWN5LmF0dHJpYnV0ZXMuQXNzaWduS2V5QWNjZXNzU2VydmVyVG9WYWx1ZVJlcXVlc3QaNy5wb2xpY3kuYXR0cmlidXRlcy5Bc3NpZ25LZXlBY2Nlc3NTZXJ2ZXJUb1ZhbHVlUmVzcG9uc2UiA4gCARKaAQoeUmVtb3ZlS2V5QWNjZXNzU2VydmVyRnJvbVZhbHVlEjgucG9saWN5LmF0dHJpYnV0ZXMuUmVtb3ZlS2V5QWNjZXNzU2VydmVyRnJvbVZhbHVlUmVxdWVzdBo5LnBvbGljeS5hdHRyaWJ1dGVzLlJlbW92ZUtleUFjY2Vzc1NlcnZlckZyb21WYWx1ZVJlc3BvbnNlIgOIAgESiwEKGkFzc2lnblB1YmxpY0tleVRvQXR0cmlidXRlEjQucG9saWN5LmF0dHJpYnV0ZXMuQXNzaWduUHVibGljS2V5VG9BdHRyaWJ1dGVSZXF1ZXN0GjUucG9saWN5LmF0dHJpYnV0ZXMuQXNzaWduUHVibGljS2V5VG9BdHRyaWJ1dGVSZXNwb25zZSIAEpEBChxSZW1vdmVQdWJsaWNLZXlGcm9tQXR0cmlidXRlEjYucG9saWN5LmF0dHJpYnV0ZXMuUmVtb3ZlUHVibGljS2V5RnJvbUF0dHJpYnV0ZVJlcXVlc3QaNy5wb2xpY3kuYXR0cmlidXRlcy5SZW1vdmVQdWJsaWNLZXlGcm9tQXR0cmlidXRlUmVzcG9uc2UiABJ/ChZBc3NpZ25QdWJsaWNLZXlUb1ZhbHVlEjAucG9saWN5LmF0dHJpYnV0ZXMuQXNzaWduUHVibGljS2V5VG9WYWx1ZVJlcXVlc3QaMS5wb2xpY3kuYXR0cmlidXRlcy5Bc3NpZ25QdWJsaWNLZXlUb1ZhbHVlUmVzcG9uc2UiABKFAQoYUmVtb3ZlUHVibGljS2V5RnJvbVZhbHVlEjIucG9saWN5LmF0dHJpYnV0ZXMuUmVtb3ZlUHVibGljS2V5RnJvbVZhbHVlUmVxdWVzdBozLnBvbGljeS5hdHRyaWJ1dGVzLlJlbW92ZVB1YmxpY0tleUZyb21WYWx1ZVJlc3BvbnNlIgBiBnByb3RvMw", [file_buf_validate_validate, file_common_common, file_google_protobuf_wrappers, file_policy_objects, file_policy_selectors]); + fileDesc("CiJwb2xpY3kvYXR0cmlidXRlcy9hdHRyaWJ1dGVzLnByb3RvEhFwb2xpY3kuYXR0cmlidXRlcyJmChhBdHRyaWJ1dGVLZXlBY2Nlc3NTZXJ2ZXISHgoMYXR0cmlidXRlX2lkGAEgASgJQgi6SAVyA7ABARImChRrZXlfYWNjZXNzX3NlcnZlcl9pZBgCIAEoCUIIukgFcgOwAQE6AhgBIl4KFFZhbHVlS2V5QWNjZXNzU2VydmVyEhoKCHZhbHVlX2lkGAEgASgJQgi6SAVyA7ABARImChRrZXlfYWNjZXNzX3NlcnZlcl9pZBgCIAEoCUIIukgFcgOwAQE6AhgBIk4KDEF0dHJpYnV0ZUtleRIhCgxhdHRyaWJ1dGVfaWQYASABKAlCC7pICMgBAXIDsAEBEhsKBmtleV9pZBgCIAEoCUILukgIyAEBcgOwAQEiRgoIVmFsdWVLZXkSHQoIdmFsdWVfaWQYASABKAlCC7pICMgBAXIDsAEBEhsKBmtleV9pZBgCIAEoCUILukgIyAEBcgOwAQEihAEKDkF0dHJpYnV0ZXNTb3J0Ej4KBWZpZWxkGAEgASgOMiUucG9saWN5LmF0dHJpYnV0ZXMuU29ydEF0dHJpYnV0ZXNUeXBlQgi6SAWCAQIQARIyCglkaXJlY3Rpb24YAiABKA4yFS5wb2xpY3kuU29ydERpcmVjdGlvbkIIukgFggECEAEi1gEKFUxpc3RBdHRyaWJ1dGVzUmVxdWVzdBImCgVzdGF0ZRgBIAEoDjIXLmNvbW1vbi5BY3RpdmVTdGF0ZUVudW0SEQoJbmFtZXNwYWNlGAIgASgJEicKCnBhZ2luYXRpb24YCiABKAsyEy5wb2xpY3kuUGFnZVJlcXVlc3QSOQoEc29ydBgLIAMoCzIhLnBvbGljeS5hdHRyaWJ1dGVzLkF0dHJpYnV0ZXNTb3J0Qgi6SAWSAQIQARIeCgZzZWFyY2gYDCABKAsyDi5wb2xpY3kuU2VhcmNoImkKFkxpc3RBdHRyaWJ1dGVzUmVzcG9uc2USJQoKYXR0cmlidXRlcxgBIAMoCzIRLnBvbGljeS5BdHRyaWJ1dGUSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2UiqAMKE0dldEF0dHJpYnV0ZVJlcXVlc3QSGQoCaWQYASABKAlCDRgBukgI2AEBcgOwAQESIAoMYXR0cmlidXRlX2lkGAIgASgJQgi6SAVyA7ABAUgAEhkKA2ZxbhgDIAEoCUIKukgHcgUQAYgBAUgAOqoCukimAhqiAQoQZXhjbHVzaXZlX2ZpZWxkcxJQRWl0aGVyIHVzZSBkZXByZWNhdGVkICdpZCcgZmllbGQgb3Igb25lIG9mICdhdHRyaWJ1dGVfaWQnIG9yICdmcW4nLCBidXQgbm90IGJvdGgaPCEoaGFzKHRoaXMuaWQpICYmIChoYXModGhpcy5hdHRyaWJ1dGVfaWQpIHx8IGhhcyh0aGlzLmZxbikpKRp/Cg9yZXF1aXJlZF9maWVsZHMSM0VpdGhlciBpZCBvciBvbmUgb2YgYXR0cmlidXRlX2lkIG9yIGZxbiBtdXN0IGJlIHNldBo3aGFzKHRoaXMuaWQpIHx8IGhhcyh0aGlzLmF0dHJpYnV0ZV9pZCkgfHwgaGFzKHRoaXMuZnFuKUIMCgppZGVudGlmaWVyIjwKFEdldEF0dHJpYnV0ZVJlc3BvbnNlEiQKCWF0dHJpYnV0ZRgBIAEoCzIRLnBvbGljeS5BdHRyaWJ1dGUizgQKFkNyZWF0ZUF0dHJpYnV0ZVJlcXVlc3QSHgoMbmFtZXNwYWNlX2lkGAEgASgJQgi6SAVyA7ABARKpAgoEbmFtZRgCIAEoCUKaArpIlgK6AYoCChVhdHRyaWJ1dGVfbmFtZV9mb3JtYXQSswFBdHRyaWJ1dGUgbmFtZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIGF0dHJpYnV0ZSBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLho7dGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJynIAQFyAxj9ARI4CgRydWxlGAMgASgOMh0ucG9saWN5LkF0dHJpYnV0ZVJ1bGVUeXBlRW51bUILukgIyAEBggECEAESTgoGdmFsdWVzGAQgAygJQj66SDuSATgIABgBIjJyMBj9ATIrXlthLXpBLVowLTldKD86W2EtekEtWjAtOV8tXSpbYS16QS1aMC05XSk/JBIzCg9hbGxvd190cmF2ZXJzYWwYBSABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZSI/ChdDcmVhdGVBdHRyaWJ1dGVSZXNwb25zZRIkCglhdHRyaWJ1dGUYASABKAsyES5wb2xpY3kuQXR0cmlidXRlIpcBChZVcGRhdGVBdHRyaWJ1dGVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUSPAoYbWV0YWRhdGFfdXBkYXRlX2JlaGF2aW9yGGUgASgOMhouY29tbW9uLk1ldGFkYXRhVXBkYXRlRW51bSI/ChdVcGRhdGVBdHRyaWJ1dGVSZXNwb25zZRIkCglhdHRyaWJ1dGUYASABKAsyES5wb2xpY3kuQXR0cmlidXRlIjIKGkRlYWN0aXZhdGVBdHRyaWJ1dGVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJDChtEZWFjdGl2YXRlQXR0cmlidXRlUmVzcG9uc2USJAoJYXR0cmlidXRlGAEgASgLMhEucG9saWN5LkF0dHJpYnV0ZSKZAwoYR2V0QXR0cmlidXRlVmFsdWVSZXF1ZXN0EhkKAmlkGAEgASgJQg0YAbpICNgBAXIDsAEBEhwKCHZhbHVlX2lkGAIgASgJQgi6SAVyA7ABAUgAEhkKA2ZxbhgDIAEoCUIKukgHcgUQAYgBAUgAOpoCukiWAhqaAQoQZXhjbHVzaXZlX2ZpZWxkcxJMRWl0aGVyIHVzZSBkZXByZWNhdGVkICdpZCcgZmllbGQgb3Igb25lIG9mICd2YWx1ZV9pZCcgb3IgJ2ZxbicsIGJ1dCBub3QgYm90aBo4IShoYXModGhpcy5pZCkgJiYgKGhhcyh0aGlzLnZhbHVlX2lkKSB8fCBoYXModGhpcy5mcW4pKSkadwoPcmVxdWlyZWRfZmllbGRzEi9FaXRoZXIgaWQgb3Igb25lIG9mIHZhbHVlX2lkIG9yIGZxbiBtdXN0IGJlIHNldBozaGFzKHRoaXMuaWQpIHx8IGhhcyh0aGlzLnZhbHVlX2lkKSB8fCBoYXModGhpcy5mcW4pQgwKCmlkZW50aWZpZXIiOQoZR2V0QXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSKNAQoaTGlzdEF0dHJpYnV0ZVZhbHVlc1JlcXVlc3QSHgoMYXR0cmlidXRlX2lkGAEgASgJQgi6SAVyA7ABARImCgVzdGF0ZRgCIAEoDjIXLmNvbW1vbi5BY3RpdmVTdGF0ZUVudW0SJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdCJmChtMaXN0QXR0cmlidXRlVmFsdWVzUmVzcG9uc2USHQoGdmFsdWVzGAEgAygLMg0ucG9saWN5LlZhbHVlEigKCnBhZ2luYXRpb24YCiABKAsyFC5wb2xpY3kuUGFnZVJlc3BvbnNlIukBCiZBdHRyaWJ1dGVWYWx1ZU9ibGlnYXRpb25UcmlnZ2VyUmVxdWVzdBI5ChBvYmxpZ2F0aW9uX3ZhbHVlGAEgASgLMhcuY29tbW9uLklkRnFuSWRlbnRpZmllckIGukgDyAEBEjAKBmFjdGlvbhgCIAEoCzIYLmNvbW1vbi5JZE5hbWVJZGVudGlmaWVyQga6SAPIAQESJwoHY29udGV4dBgLIAEoCzIWLnBvbGljeS5SZXF1ZXN0Q29udGV4dBIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUi2AUKI0F0dHJpYnV0ZVZhbHVlU3ViamVjdE1hcHBpbmdSZXF1ZXN0Eq8BCgdhY3Rpb25zGAEgAygLMg4ucG9saWN5LkFjdGlvbkKNAbpIiQG6AYABChthY3Rpb25fbmFtZV9vcl9pZF9ub3RfZW1wdHkSL0FjdGlvbiBuYW1lIG9yIElEIG11c3Qgbm90IGJlIGVtcHR5IGlmIHByb3ZpZGVkGjB0aGlzLmFsbChpdGVtLCBpdGVtLm5hbWUgIT0gJycgfHwgaXRlbS5pZCAhPSAnJymSAQIIARI2CiFleGlzdGluZ19zdWJqZWN0X2NvbmRpdGlvbl9zZXRfaWQYAiABKAlCC7pICNgBAXIDsAEBElMKGW5ld19zdWJqZWN0X2NvbmRpdGlvbl9zZXQYAyABKAsyMC5wb2xpY3kuc3ViamVjdG1hcHBpbmcuU3ViamVjdENvbmRpdGlvblNldENyZWF0ZRIhCgxuYW1lc3BhY2VfaWQYBCABKAlCC7pICNgBAXIDsAEBEiQKDW5hbWVzcGFjZV9mcW4YBSABKAlCDbpICtgBAXIFEAGIAQESKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlOv0Bukj5ARrVAQocc3ViamVjdF9jb25kaXRpb25fc2V0X3NvdXJjZRJeRXhhY3RseSBvbmUgb2YgZXhpc3Rpbmdfc3ViamVjdF9jb25kaXRpb25fc2V0X2lkIG9yIG5ld19zdWJqZWN0X2NvbmRpdGlvbl9zZXQgbXVzdCBiZSBwcm92aWRlZBpVKHRoaXMuZXhpc3Rpbmdfc3ViamVjdF9jb25kaXRpb25fc2V0X2lkICE9ICcnKSAhPSBoYXModGhpcy5uZXdfc3ViamVjdF9jb25kaXRpb25fc2V0KSIfCgxuYW1lc3BhY2VfaWQKDW5hbWVzcGFjZV9mcW4QACLcBAobQ3JlYXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0Eh4KDGF0dHJpYnV0ZV9pZBgBIAEoCUIIukgFcgOwAQESrQIKBXZhbHVlGAIgASgJQp0CukiZAroBjQIKFmF0dHJpYnV0ZV92YWx1ZV9mb3JtYXQStQFBdHRyaWJ1dGUgdmFsdWUgbXVzdCBiZSBhbiBhbHBoYW51bWVyaWMgc3RyaW5nLCBhbGxvd2luZyBoeXBoZW5zIGFuZCB1bmRlcnNjb3JlcyBidXQgbm90IGFzIHRoZSBmaXJzdCBvciBsYXN0IGNoYXJhY3Rlci4gVGhlIHN0b3JlZCBhdHRyaWJ1dGUgdmFsdWUgd2lsbCBiZSBub3JtYWxpemVkIHRvIGxvd2VyIGNhc2UuGjt0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKcgBAXIDGP0BElYKE29ibGlnYXRpb25fdHJpZ2dlcnMYCyADKAsyOS5wb2xpY3kuYXR0cmlidXRlcy5BdHRyaWJ1dGVWYWx1ZU9ibGlnYXRpb25UcmlnZ2VyUmVxdWVzdBJbChBzdWJqZWN0X21hcHBpbmdzGAwgAygLMjYucG9saWN5LmF0dHJpYnV0ZXMuQXR0cmlidXRlVmFsdWVTdWJqZWN0TWFwcGluZ1JlcXVlc3RCCbpIBpIBAxD6ARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGVKBAgDEARSB21lbWJlcnMiPAocQ3JlYXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSKrAQobVXBkYXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUSPAoYbWV0YWRhdGFfdXBkYXRlX2JlaGF2aW9yGGUgASgOMhouY29tbW9uLk1ldGFkYXRhVXBkYXRlRW51bUoECAQQBVIHbWVtYmVycyI8ChxVcGRhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlEhwKBXZhbHVlGAEgASgLMg0ucG9saWN5LlZhbHVlIjcKH0RlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIkAKIERlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlEhwKBXZhbHVlGAEgASgLMg0ucG9saWN5LlZhbHVlIk4KH0dldEF0dHJpYnV0ZVZhbHVlc0J5RnFuc1JlcXVlc3QSGQoEZnFucxgBIAMoCUILukgIkgEFCAEQ+gFKBAgCEANSCndpdGhfdmFsdWUi6QIKIEdldEF0dHJpYnV0ZVZhbHVlc0J5RnFuc1Jlc3BvbnNlEmkKFGZxbl9hdHRyaWJ1dGVfdmFsdWVzGAEgAygLMksucG9saWN5LmF0dHJpYnV0ZXMuR2V0QXR0cmlidXRlVmFsdWVzQnlGcW5zUmVzcG9uc2UuRnFuQXR0cmlidXRlVmFsdWVzRW50cnkaVwoRQXR0cmlidXRlQW5kVmFsdWUSJAoJYXR0cmlidXRlGAEgASgLMhEucG9saWN5LkF0dHJpYnV0ZRIcCgV2YWx1ZRgCIAEoCzINLnBvbGljeS5WYWx1ZRqAAQoXRnFuQXR0cmlidXRlVmFsdWVzRW50cnkSCwoDa2V5GAEgASgJElQKBXZhbHVlGAIgASgLMkUucG9saWN5LmF0dHJpYnV0ZXMuR2V0QXR0cmlidXRlVmFsdWVzQnlGcW5zUmVzcG9uc2UuQXR0cmlidXRlQW5kVmFsdWU6AjgBIjgKG0dldEtleU1hcHBpbmdzQnlGcW5zUmVxdWVzdBIZCgRmcW5zGAEgAygJQgu6SAiSAQUIARD6ASLhAgocR2V0S2V5TWFwcGluZ3NCeUZxbnNSZXNwb25zZRJdChBmcW5fa2V5X21hcHBpbmdzGAEgAygLMkMucG9saWN5LmF0dHJpYnV0ZXMuR2V0S2V5TWFwcGluZ3NCeUZxbnNSZXNwb25zZS5GcW5LZXlNYXBwaW5nc0VudHJ5GmYKE0F0dHJpYnV0ZUtleU1hcHBpbmcSKwoEcnVsZRgBIAEoDjIdLnBvbGljeS5BdHRyaWJ1dGVSdWxlVHlwZUVudW0SIgoEa2V5cxgCIAMoCzIULnBvbGljeS5TaW1wbGVLYXNLZXkaegoTRnFuS2V5TWFwcGluZ3NFbnRyeRILCgNrZXkYASABKAkSUgoFdmFsdWUYAiABKAsyQy5wb2xpY3kuYXR0cmlidXRlcy5HZXRLZXlNYXBwaW5nc0J5RnFuc1Jlc3BvbnNlLkF0dHJpYnV0ZUtleU1hcHBpbmc6AjgBIkIKJUdldEVudGl0bGVhYmxlQXR0cmlidXRlc0J5RnFuc1JlcXVlc3QSGQoEZnFucxgBIAMoCUILukgIkgEFCAEQ+gEi2AcKJkdldEVudGl0bGVhYmxlQXR0cmlidXRlc0J5RnFuc1Jlc3BvbnNlEl8KC2RlZmluaXRpb25zGAEgAygLMkoucG9saWN5LmF0dHJpYnV0ZXMuR2V0RW50aXRsZWFibGVBdHRyaWJ1dGVzQnlGcW5zUmVzcG9uc2UuRGVmaW5pdGlvbnNFbnRyeRJ7ChpmcW5fZW50aXRsZWFibGVfYXR0cmlidXRlcxgCIAMoCzJXLnBvbGljeS5hdHRyaWJ1dGVzLkdldEVudGl0bGVhYmxlQXR0cmlidXRlc0J5RnFuc1Jlc3BvbnNlLkZxbkVudGl0bGVhYmxlQXR0cmlidXRlc0VudHJ5GmMKEEVudGl0bGVhYmxlVmFsdWUSCwoDZnFuGAEgASgJEhAKCHZhbHVlX2lkGAIgASgJEjAKEHN1YmplY3RfbWFwcGluZ3MYAyADKAsyFi5wb2xpY3kuU3ViamVjdE1hcHBpbmcaxgEKFUVudGl0bGVhYmxlRGVmaW5pdGlvbhIrCgRydWxlGAEgASgOMh0ucG9saWN5LkF0dHJpYnV0ZVJ1bGVUeXBlRW51bRJaCgZ2YWx1ZXMYAiADKAsySi5wb2xpY3kuYXR0cmlidXRlcy5HZXRFbnRpdGxlYWJsZUF0dHJpYnV0ZXNCeUZxbnNSZXNwb25zZS5FbnRpdGxlYWJsZVZhbHVlEiQKCW5hbWVzcGFjZRgDIAEoCzIRLnBvbGljeS5OYW1lc3BhY2UaiQEKFEVudGl0bGVhYmxlQXR0cmlidXRlEhYKDmRlZmluaXRpb25fZnFuGAEgASgJElkKBXZhbHVlGAIgASgLMkoucG9saWN5LmF0dHJpYnV0ZXMuR2V0RW50aXRsZWFibGVBdHRyaWJ1dGVzQnlGcW5zUmVzcG9uc2UuRW50aXRsZWFibGVWYWx1ZRqDAQoQRGVmaW5pdGlvbnNFbnRyeRILCgNrZXkYASABKAkSXgoFdmFsdWUYAiABKAsyTy5wb2xpY3kuYXR0cmlidXRlcy5HZXRFbnRpdGxlYWJsZUF0dHJpYnV0ZXNCeUZxbnNSZXNwb25zZS5FbnRpdGxlYWJsZURlZmluaXRpb246AjgBGo8BCh1GcW5FbnRpdGxlYWJsZUF0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSXQoFdmFsdWUYAiABKAsyTi5wb2xpY3kuYXR0cmlidXRlcy5HZXRFbnRpdGxlYWJsZUF0dHJpYnV0ZXNCeUZxbnNSZXNwb25zZS5FbnRpdGxlYWJsZUF0dHJpYnV0ZToCOAEifwonQXNzaWduS2V5QWNjZXNzU2VydmVyVG9BdHRyaWJ1dGVSZXF1ZXN0ElAKG2F0dHJpYnV0ZV9rZXlfYWNjZXNzX3NlcnZlchgBIAEoCzIrLnBvbGljeS5hdHRyaWJ1dGVzLkF0dHJpYnV0ZUtleUFjY2Vzc1NlcnZlcjoCGAEigAEKKEFzc2lnbktleUFjY2Vzc1NlcnZlclRvQXR0cmlidXRlUmVzcG9uc2USUAobYXR0cmlidXRlX2tleV9hY2Nlc3Nfc2VydmVyGAEgASgLMisucG9saWN5LmF0dHJpYnV0ZXMuQXR0cmlidXRlS2V5QWNjZXNzU2VydmVyOgIYASKBAQopUmVtb3ZlS2V5QWNjZXNzU2VydmVyRnJvbUF0dHJpYnV0ZVJlcXVlc3QSUAobYXR0cmlidXRlX2tleV9hY2Nlc3Nfc2VydmVyGAEgASgLMisucG9saWN5LmF0dHJpYnV0ZXMuQXR0cmlidXRlS2V5QWNjZXNzU2VydmVyOgIYASKCAQoqUmVtb3ZlS2V5QWNjZXNzU2VydmVyRnJvbUF0dHJpYnV0ZVJlc3BvbnNlElAKG2F0dHJpYnV0ZV9rZXlfYWNjZXNzX3NlcnZlchgBIAEoCzIrLnBvbGljeS5hdHRyaWJ1dGVzLkF0dHJpYnV0ZUtleUFjY2Vzc1NlcnZlcjoCGAEicwojQXNzaWduS2V5QWNjZXNzU2VydmVyVG9WYWx1ZVJlcXVlc3QSSAoXdmFsdWVfa2V5X2FjY2Vzc19zZXJ2ZXIYASABKAsyJy5wb2xpY3kuYXR0cmlidXRlcy5WYWx1ZUtleUFjY2Vzc1NlcnZlcjoCGAEidAokQXNzaWduS2V5QWNjZXNzU2VydmVyVG9WYWx1ZVJlc3BvbnNlEkgKF3ZhbHVlX2tleV9hY2Nlc3Nfc2VydmVyGAEgASgLMicucG9saWN5LmF0dHJpYnV0ZXMuVmFsdWVLZXlBY2Nlc3NTZXJ2ZXI6AhgBInUKJVJlbW92ZUtleUFjY2Vzc1NlcnZlckZyb21WYWx1ZVJlcXVlc3QSSAoXdmFsdWVfa2V5X2FjY2Vzc19zZXJ2ZXIYASABKAsyJy5wb2xpY3kuYXR0cmlidXRlcy5WYWx1ZUtleUFjY2Vzc1NlcnZlcjoCGAEidgomUmVtb3ZlS2V5QWNjZXNzU2VydmVyRnJvbVZhbHVlUmVzcG9uc2USSAoXdmFsdWVfa2V5X2FjY2Vzc19zZXJ2ZXIYASABKAsyJy5wb2xpY3kuYXR0cmlidXRlcy5WYWx1ZUtleUFjY2Vzc1NlcnZlcjoCGAEiYwohQXNzaWduUHVibGljS2V5VG9BdHRyaWJ1dGVSZXF1ZXN0Ej4KDWF0dHJpYnV0ZV9rZXkYASABKAsyHy5wb2xpY3kuYXR0cmlidXRlcy5BdHRyaWJ1dGVLZXlCBrpIA8gBASJcCiJBc3NpZ25QdWJsaWNLZXlUb0F0dHJpYnV0ZVJlc3BvbnNlEjYKDWF0dHJpYnV0ZV9rZXkYASABKAsyHy5wb2xpY3kuYXR0cmlidXRlcy5BdHRyaWJ1dGVLZXkiZQojUmVtb3ZlUHVibGljS2V5RnJvbUF0dHJpYnV0ZVJlcXVlc3QSPgoNYXR0cmlidXRlX2tleRgBIAEoCzIfLnBvbGljeS5hdHRyaWJ1dGVzLkF0dHJpYnV0ZUtleUIGukgDyAEBIl4KJFJlbW92ZVB1YmxpY0tleUZyb21BdHRyaWJ1dGVSZXNwb25zZRI2Cg1hdHRyaWJ1dGVfa2V5GAEgASgLMh8ucG9saWN5LmF0dHJpYnV0ZXMuQXR0cmlidXRlS2V5IlcKHUFzc2lnblB1YmxpY0tleVRvVmFsdWVSZXF1ZXN0EjYKCXZhbHVlX2tleRgBIAEoCzIbLnBvbGljeS5hdHRyaWJ1dGVzLlZhbHVlS2V5Qga6SAPIAQEiUAoeQXNzaWduUHVibGljS2V5VG9WYWx1ZVJlc3BvbnNlEi4KCXZhbHVlX2tleRgBIAEoCzIbLnBvbGljeS5hdHRyaWJ1dGVzLlZhbHVlS2V5IlkKH1JlbW92ZVB1YmxpY0tleUZyb21WYWx1ZVJlcXVlc3QSNgoJdmFsdWVfa2V5GAEgASgLMhsucG9saWN5LmF0dHJpYnV0ZXMuVmFsdWVLZXlCBrpIA8gBASJSCiBSZW1vdmVQdWJsaWNLZXlGcm9tVmFsdWVSZXNwb25zZRIuCgl2YWx1ZV9rZXkYASABKAsyGy5wb2xpY3kuYXR0cmlidXRlcy5WYWx1ZUtleSqjAQoSU29ydEF0dHJpYnV0ZXNUeXBlEiQKIFNPUlRfQVRUUklCVVRFU19UWVBFX1VOU1BFQ0lGSUVEEAASHQoZU09SVF9BVFRSSUJVVEVTX1RZUEVfTkFNRRABEiMKH1NPUlRfQVRUUklCVVRFU19UWVBFX0NSRUFURURfQVQQAhIjCh9TT1JUX0FUVFJJQlVURVNfVFlQRV9VUERBVEVEX0FUEAMy+hUKEUF0dHJpYnV0ZXNTZXJ2aWNlEmoKDkxpc3RBdHRyaWJ1dGVzEigucG9saWN5LmF0dHJpYnV0ZXMuTGlzdEF0dHJpYnV0ZXNSZXF1ZXN0GikucG9saWN5LmF0dHJpYnV0ZXMuTGlzdEF0dHJpYnV0ZXNSZXNwb25zZSIDkAIBEnwKE0xpc3RBdHRyaWJ1dGVWYWx1ZXMSLS5wb2xpY3kuYXR0cmlidXRlcy5MaXN0QXR0cmlidXRlVmFsdWVzUmVxdWVzdBouLnBvbGljeS5hdHRyaWJ1dGVzLkxpc3RBdHRyaWJ1dGVWYWx1ZXNSZXNwb25zZSIGiAIBkAIBEmQKDEdldEF0dHJpYnV0ZRImLnBvbGljeS5hdHRyaWJ1dGVzLkdldEF0dHJpYnV0ZVJlcXVlc3QaJy5wb2xpY3kuYXR0cmlidXRlcy5HZXRBdHRyaWJ1dGVSZXNwb25zZSIDkAIBEosBChhHZXRBdHRyaWJ1dGVWYWx1ZXNCeUZxbnMSMi5wb2xpY3kuYXR0cmlidXRlcy5HZXRBdHRyaWJ1dGVWYWx1ZXNCeUZxbnNSZXF1ZXN0GjMucG9saWN5LmF0dHJpYnV0ZXMuR2V0QXR0cmlidXRlVmFsdWVzQnlGcW5zUmVzcG9uc2UiBogCAZACARJ8ChRHZXRLZXlNYXBwaW5nc0J5RnFucxIuLnBvbGljeS5hdHRyaWJ1dGVzLkdldEtleU1hcHBpbmdzQnlGcW5zUmVxdWVzdBovLnBvbGljeS5hdHRyaWJ1dGVzLkdldEtleU1hcHBpbmdzQnlGcW5zUmVzcG9uc2UiA5ACARKaAQoeR2V0RW50aXRsZWFibGVBdHRyaWJ1dGVzQnlGcW5zEjgucG9saWN5LmF0dHJpYnV0ZXMuR2V0RW50aXRsZWFibGVBdHRyaWJ1dGVzQnlGcW5zUmVxdWVzdBo5LnBvbGljeS5hdHRyaWJ1dGVzLkdldEVudGl0bGVhYmxlQXR0cmlidXRlc0J5RnFuc1Jlc3BvbnNlIgOQAgESagoPQ3JlYXRlQXR0cmlidXRlEikucG9saWN5LmF0dHJpYnV0ZXMuQ3JlYXRlQXR0cmlidXRlUmVxdWVzdBoqLnBvbGljeS5hdHRyaWJ1dGVzLkNyZWF0ZUF0dHJpYnV0ZVJlc3BvbnNlIgASagoPVXBkYXRlQXR0cmlidXRlEikucG9saWN5LmF0dHJpYnV0ZXMuVXBkYXRlQXR0cmlidXRlUmVxdWVzdBoqLnBvbGljeS5hdHRyaWJ1dGVzLlVwZGF0ZUF0dHJpYnV0ZVJlc3BvbnNlIgASdgoTRGVhY3RpdmF0ZUF0dHJpYnV0ZRItLnBvbGljeS5hdHRyaWJ1dGVzLkRlYWN0aXZhdGVBdHRyaWJ1dGVSZXF1ZXN0Gi4ucG9saWN5LmF0dHJpYnV0ZXMuRGVhY3RpdmF0ZUF0dHJpYnV0ZVJlc3BvbnNlIgAScwoRR2V0QXR0cmlidXRlVmFsdWUSKy5wb2xpY3kuYXR0cmlidXRlcy5HZXRBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QaLC5wb2xpY3kuYXR0cmlidXRlcy5HZXRBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlIgOQAgESeQoUQ3JlYXRlQXR0cmlidXRlVmFsdWUSLi5wb2xpY3kuYXR0cmlidXRlcy5DcmVhdGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QaLy5wb2xpY3kuYXR0cmlidXRlcy5DcmVhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlIgASeQoUVXBkYXRlQXR0cmlidXRlVmFsdWUSLi5wb2xpY3kuYXR0cmlidXRlcy5VcGRhdGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QaLy5wb2xpY3kuYXR0cmlidXRlcy5VcGRhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlIgAShQEKGERlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZRIyLnBvbGljeS5hdHRyaWJ1dGVzLkRlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QaMy5wb2xpY3kuYXR0cmlidXRlcy5EZWFjdGl2YXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZSIAEqABCiBBc3NpZ25LZXlBY2Nlc3NTZXJ2ZXJUb0F0dHJpYnV0ZRI6LnBvbGljeS5hdHRyaWJ1dGVzLkFzc2lnbktleUFjY2Vzc1NlcnZlclRvQXR0cmlidXRlUmVxdWVzdBo7LnBvbGljeS5hdHRyaWJ1dGVzLkFzc2lnbktleUFjY2Vzc1NlcnZlclRvQXR0cmlidXRlUmVzcG9uc2UiA4gCARKmAQoiUmVtb3ZlS2V5QWNjZXNzU2VydmVyRnJvbUF0dHJpYnV0ZRI8LnBvbGljeS5hdHRyaWJ1dGVzLlJlbW92ZUtleUFjY2Vzc1NlcnZlckZyb21BdHRyaWJ1dGVSZXF1ZXN0Gj0ucG9saWN5LmF0dHJpYnV0ZXMuUmVtb3ZlS2V5QWNjZXNzU2VydmVyRnJvbUF0dHJpYnV0ZVJlc3BvbnNlIgOIAgESlAEKHEFzc2lnbktleUFjY2Vzc1NlcnZlclRvVmFsdWUSNi5wb2xpY3kuYXR0cmlidXRlcy5Bc3NpZ25LZXlBY2Nlc3NTZXJ2ZXJUb1ZhbHVlUmVxdWVzdBo3LnBvbGljeS5hdHRyaWJ1dGVzLkFzc2lnbktleUFjY2Vzc1NlcnZlclRvVmFsdWVSZXNwb25zZSIDiAIBEpoBCh5SZW1vdmVLZXlBY2Nlc3NTZXJ2ZXJGcm9tVmFsdWUSOC5wb2xpY3kuYXR0cmlidXRlcy5SZW1vdmVLZXlBY2Nlc3NTZXJ2ZXJGcm9tVmFsdWVSZXF1ZXN0GjkucG9saWN5LmF0dHJpYnV0ZXMuUmVtb3ZlS2V5QWNjZXNzU2VydmVyRnJvbVZhbHVlUmVzcG9uc2UiA4gCARKLAQoaQXNzaWduUHVibGljS2V5VG9BdHRyaWJ1dGUSNC5wb2xpY3kuYXR0cmlidXRlcy5Bc3NpZ25QdWJsaWNLZXlUb0F0dHJpYnV0ZVJlcXVlc3QaNS5wb2xpY3kuYXR0cmlidXRlcy5Bc3NpZ25QdWJsaWNLZXlUb0F0dHJpYnV0ZVJlc3BvbnNlIgASkQEKHFJlbW92ZVB1YmxpY0tleUZyb21BdHRyaWJ1dGUSNi5wb2xpY3kuYXR0cmlidXRlcy5SZW1vdmVQdWJsaWNLZXlGcm9tQXR0cmlidXRlUmVxdWVzdBo3LnBvbGljeS5hdHRyaWJ1dGVzLlJlbW92ZVB1YmxpY0tleUZyb21BdHRyaWJ1dGVSZXNwb25zZSIAEn8KFkFzc2lnblB1YmxpY0tleVRvVmFsdWUSMC5wb2xpY3kuYXR0cmlidXRlcy5Bc3NpZ25QdWJsaWNLZXlUb1ZhbHVlUmVxdWVzdBoxLnBvbGljeS5hdHRyaWJ1dGVzLkFzc2lnblB1YmxpY0tleVRvVmFsdWVSZXNwb25zZSIAEoUBChhSZW1vdmVQdWJsaWNLZXlGcm9tVmFsdWUSMi5wb2xpY3kuYXR0cmlidXRlcy5SZW1vdmVQdWJsaWNLZXlGcm9tVmFsdWVSZXF1ZXN0GjMucG9saWN5LmF0dHJpYnV0ZXMuUmVtb3ZlUHVibGljS2V5RnJvbVZhbHVlUmVzcG9uc2UiAGIGcHJvdG8z", [file_buf_validate_validate, file_common_common, file_google_protobuf_wrappers, file_policy_objects, file_policy_selectors, file_policy_subjectmapping_subject_mapping]); /** * Deprecated @@ -601,6 +603,56 @@ export type AttributeValueObligationTriggerRequest = Message<"policy.attributes. export const AttributeValueObligationTriggerRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_policy_attributes_attributes, 19); +/** + * @generated from message policy.attributes.AttributeValueSubjectMappingRequest + */ +export type AttributeValueSubjectMappingRequest = Message<"policy.attributes.AttributeValueSubjectMappingRequest"> & { + /** + * Required. The actions permitted by subjects in this mapping. + * + * @generated from field: repeated policy.Action actions = 1; + */ + actions: Action[]; + + /** + * Reuse an existing SubjectConditionSet. + * + * @generated from field: string existing_subject_condition_set_id = 2; + */ + existingSubjectConditionSetId: string; + + /** + * Create a new SubjectConditionSet. + * + * @generated from field: policy.subjectmapping.SubjectConditionSetCreate new_subject_condition_set = 3; + */ + newSubjectConditionSet?: SubjectConditionSetCreate; + + /** + * @generated from field: string namespace_id = 4; + */ + namespaceId: string; + + /** + * @generated from field: string namespace_fqn = 5; + */ + namespaceFqn: string; + + /** + * Optional. Common metadata for the subject mapping. + * + * @generated from field: common.MetadataMutable metadata = 100; + */ + metadata?: MetadataMutable; +}; + +/** + * Describes the message policy.attributes.AttributeValueSubjectMappingRequest. + * Use `create(AttributeValueSubjectMappingRequestSchema)` to create a new message. + */ +export const AttributeValueSubjectMappingRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_attributes_attributes, 20); + /** * @generated from message policy.attributes.CreateAttributeValueRequest */ @@ -627,6 +679,14 @@ export type CreateAttributeValueRequest = Message<"policy.attributes.CreateAttri */ obligationTriggers: AttributeValueObligationTriggerRequest[]; + /** + * Optional + * Subject mappings to associate with the newly created attribute value. + * + * @generated from field: repeated policy.attributes.AttributeValueSubjectMappingRequest subject_mappings = 12; + */ + subjectMappings: AttributeValueSubjectMappingRequest[]; + /** * Optional * Common metadata @@ -641,7 +701,7 @@ export type CreateAttributeValueRequest = Message<"policy.attributes.CreateAttri * Use `create(CreateAttributeValueRequestSchema)` to create a new message. */ export const CreateAttributeValueRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 20); + messageDesc(file_policy_attributes_attributes, 21); /** * @generated from message policy.attributes.CreateAttributeValueResponse @@ -658,7 +718,7 @@ export type CreateAttributeValueResponse = Message<"policy.attributes.CreateAttr * Use `create(CreateAttributeValueResponseSchema)` to create a new message. */ export const CreateAttributeValueResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 21); + messageDesc(file_policy_attributes_attributes, 22); /** * @generated from message policy.attributes.UpdateAttributeValueRequest @@ -690,7 +750,7 @@ export type UpdateAttributeValueRequest = Message<"policy.attributes.UpdateAttri * Use `create(UpdateAttributeValueRequestSchema)` to create a new message. */ export const UpdateAttributeValueRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 22); + messageDesc(file_policy_attributes_attributes, 23); /** * @generated from message policy.attributes.UpdateAttributeValueResponse @@ -707,7 +767,7 @@ export type UpdateAttributeValueResponse = Message<"policy.attributes.UpdateAttr * Use `create(UpdateAttributeValueResponseSchema)` to create a new message. */ export const UpdateAttributeValueResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 23); + messageDesc(file_policy_attributes_attributes, 24); /** * @generated from message policy.attributes.DeactivateAttributeValueRequest @@ -726,7 +786,7 @@ export type DeactivateAttributeValueRequest = Message<"policy.attributes.Deactiv * Use `create(DeactivateAttributeValueRequestSchema)` to create a new message. */ export const DeactivateAttributeValueRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 24); + messageDesc(file_policy_attributes_attributes, 25); /** * @generated from message policy.attributes.DeactivateAttributeValueResponse @@ -743,7 +803,7 @@ export type DeactivateAttributeValueResponse = Message<"policy.attributes.Deacti * Use `create(DeactivateAttributeValueResponseSchema)` to create a new message. */ export const DeactivateAttributeValueResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 25); + messageDesc(file_policy_attributes_attributes, 26); /** * @generated from message policy.attributes.GetAttributeValuesByFqnsRequest @@ -763,7 +823,7 @@ export type GetAttributeValuesByFqnsRequest = Message<"policy.attributes.GetAttr * Use `create(GetAttributeValuesByFqnsRequestSchema)` to create a new message. */ export const GetAttributeValuesByFqnsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 26); + messageDesc(file_policy_attributes_attributes, 27); /** * @generated from message policy.attributes.GetAttributeValuesByFqnsResponse @@ -782,7 +842,7 @@ export type GetAttributeValuesByFqnsResponse = Message<"policy.attributes.GetAtt * Use `create(GetAttributeValuesByFqnsResponseSchema)` to create a new message. */ export const GetAttributeValuesByFqnsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 27); + messageDesc(file_policy_attributes_attributes, 28); /** * @generated from message policy.attributes.GetAttributeValuesByFqnsResponse.AttributeAndValue @@ -804,7 +864,247 @@ export type GetAttributeValuesByFqnsResponse_AttributeAndValue = Message<"policy * Use `create(GetAttributeValuesByFqnsResponse_AttributeAndValueSchema)` to create a new message. */ export const GetAttributeValuesByFqnsResponse_AttributeAndValueSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 27, 0); + messageDesc(file_policy_attributes_attributes, 28, 0); + +/** + * + * Key Mappings By FQNs (client-side key split path) + * + * Narrow read API for the client-side encrypt flow. Given attribute value FQNs, + * returns only the information needed to build key splits: the governing + * attribute rule and the effective mapped KAS keys resolved server-side. It does not + * return subject mappings, resource mappings, obligations, sibling values, or + * metadata. Prefer this over GetAttributeValuesByFqns when building splits. A + * value that does not exist under a definition with allow_traversal resolves at + * the definition (then namespace) level, supporting front-loaded TDF creation. + * + * @generated from message policy.attributes.GetKeyMappingsByFqnsRequest + */ +export type GetKeyMappingsByFqnsRequest = Message<"policy.attributes.GetKeyMappingsByFqnsRequest"> & { + /** + * Required + * Fully Qualified Names of attribute values (i.e. https:///attr//value/), normalized to lower case. + * + * @generated from field: repeated string fqns = 1; + */ + fqns: string[]; +}; + +/** + * Describes the message policy.attributes.GetKeyMappingsByFqnsRequest. + * Use `create(GetKeyMappingsByFqnsRequestSchema)` to create a new message. + */ +export const GetKeyMappingsByFqnsRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_attributes_attributes, 29); + +/** + * @generated from message policy.attributes.GetKeyMappingsByFqnsResponse + */ +export type GetKeyMappingsByFqnsResponse = Message<"policy.attributes.GetKeyMappingsByFqnsResponse"> & { + /** + * map of value FQN to its key mapping information, for O(1) lookup + * + * @generated from field: map fqn_key_mappings = 1; + */ + fqnKeyMappings: { [key: string]: GetKeyMappingsByFqnsResponse_AttributeKeyMapping }; +}; + +/** + * Describes the message policy.attributes.GetKeyMappingsByFqnsResponse. + * Use `create(GetKeyMappingsByFqnsResponseSchema)` to create a new message. + */ +export const GetKeyMappingsByFqnsResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_attributes_attributes, 30); + +/** + * @generated from message policy.attributes.GetKeyMappingsByFqnsResponse.AttributeKeyMapping + */ +export type GetKeyMappingsByFqnsResponse_AttributeKeyMapping = Message<"policy.attributes.GetKeyMappingsByFqnsResponse.AttributeKeyMapping"> & { + /** + * the attribute rule, which governs how splits combine (any_of / all_of / hierarchy) + * + * @generated from field: policy.AttributeRuleTypeEnum rule = 1; + */ + rule: AttributeRuleTypeEnum; + + /** + * effective KAS keys resolved for this value (value > definition > namespace + * precedence). Legacy grants are not used by this API; values configured only + * with grants and no kas_keys return an empty key set, and the client resolves + * those grants via GetAttributeValuesByFqns. + * + * @generated from field: repeated policy.SimpleKasKey keys = 2; + */ + keys: SimpleKasKey[]; +}; + +/** + * Describes the message policy.attributes.GetKeyMappingsByFqnsResponse.AttributeKeyMapping. + * Use `create(GetKeyMappingsByFqnsResponse_AttributeKeyMappingSchema)` to create a new message. + */ +export const GetKeyMappingsByFqnsResponse_AttributeKeyMappingSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_attributes_attributes, 30, 0); + +/** + * + * Entitleable Attributes By FQNs (server-side decisioning path) + * + * Narrow read API for Auth Service / Access PDP entitlement resolution. Given + * attribute value FQNs, returns the parent definitions (deduped, each with its + * rule and namespace identity) and, per requested value, the value identity and + * the subject mappings needed to resolve entitlements. Hierarchy definitions + * additionally carry their ordered values with subject mappings, for hierarchy + * rule propagation. It does not return KAS keys, grants, resource mappings, + * obligations, or metadata. A value that does not exist under a definition with + * allow_traversal is returned with its definition and an empty value identity (no + * value_id, no subject mappings). + * + * @generated from message policy.attributes.GetEntitleableAttributesByFqnsRequest + */ +export type GetEntitleableAttributesByFqnsRequest = Message<"policy.attributes.GetEntitleableAttributesByFqnsRequest"> & { + /** + * Required + * Fully Qualified Names of attribute values (i.e. https:///attr//value/), normalized to lower case. + * + * @generated from field: repeated string fqns = 1; + */ + fqns: string[]; +}; + +/** + * Describes the message policy.attributes.GetEntitleableAttributesByFqnsRequest. + * Use `create(GetEntitleableAttributesByFqnsRequestSchema)` to create a new message. + */ +export const GetEntitleableAttributesByFqnsRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_attributes_attributes, 31); + +/** + * @generated from message policy.attributes.GetEntitleableAttributesByFqnsResponse + */ +export type GetEntitleableAttributesByFqnsResponse = Message<"policy.attributes.GetEntitleableAttributesByFqnsResponse"> & { + /** + * map of definition FQN to its definition, returned once each (deduped) + * + * @generated from field: map definitions = 1; + */ + definitions: { [key: string]: GetEntitleableAttributesByFqnsResponse_EntitleableDefinition }; + + /** + * map of requested value FQN to its value and parent definition reference, for O(1) lookup + * + * @generated from field: map fqn_entitleable_attributes = 2; + */ + fqnEntitleableAttributes: { [key: string]: GetEntitleableAttributesByFqnsResponse_EntitleableAttribute }; +}; + +/** + * Describes the message policy.attributes.GetEntitleableAttributesByFqnsResponse. + * Use `create(GetEntitleableAttributesByFqnsResponseSchema)` to create a new message. + */ +export const GetEntitleableAttributesByFqnsResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_attributes_attributes, 32); + +/** + * An attribute value plus the subject mappings that entitle it. + * + * @generated from message policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableValue + */ +export type GetEntitleableAttributesByFqnsResponse_EntitleableValue = Message<"policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableValue"> & { + /** + * the attribute value FQN + * + * @generated from field: string fqn = 1; + */ + fqn: string; + + /** + * identity of the attribute value + * + * @generated from field: string value_id = 2; + */ + valueId: string; + + /** + * subject mappings used to resolve entitlements for this value + * + * @generated from field: repeated policy.SubjectMapping subject_mappings = 3; + */ + subjectMappings: SubjectMapping[]; +}; + +/** + * Describes the message policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableValue. + * Use `create(GetEntitleableAttributesByFqnsResponse_EntitleableValueSchema)` to create a new message. + */ +export const GetEntitleableAttributesByFqnsResponse_EntitleableValueSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_attributes_attributes, 32, 0); + +/** + * An attribute definition referenced by one or more requested value FQNs, + * returned once regardless of how many of its values were requested. + * + * @generated from message policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableDefinition + */ +export type GetEntitleableAttributesByFqnsResponse_EntitleableDefinition = Message<"policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableDefinition"> & { + /** + * the attribute rule, which drives rule logic during decisioning + * + * @generated from field: policy.AttributeRuleTypeEnum rule = 1; + */ + rule: AttributeRuleTypeEnum; + + /** + * the definition's values in order, each with its subject mappings. Populated + * ONLY for hierarchy definitions (whose decisioning needs sibling values and + * their mappings to propagate entitlement up the chain). Empty for any_of / + * all_of, where the requested per-value entries below carry what's needed. + * + * @generated from field: repeated policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableValue values = 2; + */ + values: GetEntitleableAttributesByFqnsResponse_EntitleableValue[]; + + /** + * the definition's namespace identity (id and fqn), needed for + * namespaced-policy decisioning and registered-resource matching. Only the + * identity is populated; grants, keys, and metadata are not. + * + * @generated from field: policy.Namespace namespace = 3; + */ + namespace?: Namespace; +}; + +/** + * Describes the message policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableDefinition. + * Use `create(GetEntitleableAttributesByFqnsResponse_EntitleableDefinitionSchema)` to create a new message. + */ +export const GetEntitleableAttributesByFqnsResponse_EntitleableDefinitionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_attributes_attributes, 32, 1); + +/** + * @generated from message policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableAttribute + */ +export type GetEntitleableAttributesByFqnsResponse_EntitleableAttribute = Message<"policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableAttribute"> & { + /** + * the FQN of the parent definition, a key into `definitions` + * + * @generated from field: string definition_fqn = 1; + */ + definitionFqn: string; + + /** + * the requested attribute value plus its subject mappings + * + * @generated from field: policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableValue value = 2; + */ + value?: GetEntitleableAttributesByFqnsResponse_EntitleableValue; +}; + +/** + * Describes the message policy.attributes.GetEntitleableAttributesByFqnsResponse.EntitleableAttribute. + * Use `create(GetEntitleableAttributesByFqnsResponse_EntitleableAttributeSchema)` to create a new message. + */ +export const GetEntitleableAttributesByFqnsResponse_EntitleableAttributeSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_attributes_attributes, 32, 2); /** * Deprecated: utilize AssignPublicKeyToAttributeRequest @@ -827,7 +1127,7 @@ export type AssignKeyAccessServerToAttributeRequest = Message<"policy.attributes * @deprecated */ export const AssignKeyAccessServerToAttributeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 28); + messageDesc(file_policy_attributes_attributes, 33); /** * @generated from message policy.attributes.AssignKeyAccessServerToAttributeResponse @@ -846,7 +1146,7 @@ export type AssignKeyAccessServerToAttributeResponse = Message<"policy.attribute * @deprecated */ export const AssignKeyAccessServerToAttributeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 29); + messageDesc(file_policy_attributes_attributes, 34); /** * Deprecated: utilize RemovePublicKeyFromAttributeRequest @@ -869,7 +1169,7 @@ export type RemoveKeyAccessServerFromAttributeRequest = Message<"policy.attribut * @deprecated */ export const RemoveKeyAccessServerFromAttributeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 30); + messageDesc(file_policy_attributes_attributes, 35); /** * @generated from message policy.attributes.RemoveKeyAccessServerFromAttributeResponse @@ -888,7 +1188,7 @@ export type RemoveKeyAccessServerFromAttributeResponse = Message<"policy.attribu * @deprecated */ export const RemoveKeyAccessServerFromAttributeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 31); + messageDesc(file_policy_attributes_attributes, 36); /** * Deprecated: utilize AssignPublicKeyToValueRequest @@ -911,7 +1211,7 @@ export type AssignKeyAccessServerToValueRequest = Message<"policy.attributes.Ass * @deprecated */ export const AssignKeyAccessServerToValueRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 32); + messageDesc(file_policy_attributes_attributes, 37); /** * @generated from message policy.attributes.AssignKeyAccessServerToValueResponse @@ -930,7 +1230,7 @@ export type AssignKeyAccessServerToValueResponse = Message<"policy.attributes.As * @deprecated */ export const AssignKeyAccessServerToValueResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 33); + messageDesc(file_policy_attributes_attributes, 38); /** * Deprecated: utilize RemovePublicKeyFromValueRequest @@ -953,7 +1253,7 @@ export type RemoveKeyAccessServerFromValueRequest = Message<"policy.attributes.R * @deprecated */ export const RemoveKeyAccessServerFromValueRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 34); + messageDesc(file_policy_attributes_attributes, 39); /** * @generated from message policy.attributes.RemoveKeyAccessServerFromValueResponse @@ -972,7 +1272,7 @@ export type RemoveKeyAccessServerFromValueResponse = Message<"policy.attributes. * @deprecated */ export const RemoveKeyAccessServerFromValueResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 35); + messageDesc(file_policy_attributes_attributes, 40); /** * @generated from message policy.attributes.AssignPublicKeyToAttributeRequest @@ -991,7 +1291,7 @@ export type AssignPublicKeyToAttributeRequest = Message<"policy.attributes.Assig * Use `create(AssignPublicKeyToAttributeRequestSchema)` to create a new message. */ export const AssignPublicKeyToAttributeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 36); + messageDesc(file_policy_attributes_attributes, 41); /** * @generated from message policy.attributes.AssignPublicKeyToAttributeResponse @@ -1010,7 +1310,7 @@ export type AssignPublicKeyToAttributeResponse = Message<"policy.attributes.Assi * Use `create(AssignPublicKeyToAttributeResponseSchema)` to create a new message. */ export const AssignPublicKeyToAttributeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 37); + messageDesc(file_policy_attributes_attributes, 42); /** * @generated from message policy.attributes.RemovePublicKeyFromAttributeRequest @@ -1029,7 +1329,7 @@ export type RemovePublicKeyFromAttributeRequest = Message<"policy.attributes.Rem * Use `create(RemovePublicKeyFromAttributeRequestSchema)` to create a new message. */ export const RemovePublicKeyFromAttributeRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 38); + messageDesc(file_policy_attributes_attributes, 43); /** * @generated from message policy.attributes.RemovePublicKeyFromAttributeResponse @@ -1048,7 +1348,7 @@ export type RemovePublicKeyFromAttributeResponse = Message<"policy.attributes.Re * Use `create(RemovePublicKeyFromAttributeResponseSchema)` to create a new message. */ export const RemovePublicKeyFromAttributeResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 39); + messageDesc(file_policy_attributes_attributes, 44); /** * @generated from message policy.attributes.AssignPublicKeyToValueRequest @@ -1067,7 +1367,7 @@ export type AssignPublicKeyToValueRequest = Message<"policy.attributes.AssignPub * Use `create(AssignPublicKeyToValueRequestSchema)` to create a new message. */ export const AssignPublicKeyToValueRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 40); + messageDesc(file_policy_attributes_attributes, 45); /** * @generated from message policy.attributes.AssignPublicKeyToValueResponse @@ -1086,7 +1386,7 @@ export type AssignPublicKeyToValueResponse = Message<"policy.attributes.AssignPu * Use `create(AssignPublicKeyToValueResponseSchema)` to create a new message. */ export const AssignPublicKeyToValueResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 41); + messageDesc(file_policy_attributes_attributes, 46); /** * @generated from message policy.attributes.RemovePublicKeyFromValueRequest @@ -1105,7 +1405,7 @@ export type RemovePublicKeyFromValueRequest = Message<"policy.attributes.RemoveP * Use `create(RemovePublicKeyFromValueRequestSchema)` to create a new message. */ export const RemovePublicKeyFromValueRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 42); + messageDesc(file_policy_attributes_attributes, 47); /** * @generated from message policy.attributes.RemovePublicKeyFromValueResponse @@ -1124,7 +1424,7 @@ export type RemovePublicKeyFromValueResponse = Message<"policy.attributes.Remove * Use `create(RemovePublicKeyFromValueResponseSchema)` to create a new message. */ export const RemovePublicKeyFromValueResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_attributes_attributes, 43); + messageDesc(file_policy_attributes_attributes, 48); /** * @generated from enum policy.attributes.SortAttributesType @@ -1198,13 +1498,40 @@ export const AttributesService: GenService<{ output: typeof GetAttributeResponseSchema; }, /** + * Deprecated: Use GetKeyMappingsByFqns for client-side key splits and + * GetEntitleableAttributesByFqns for server-side entitlement resolution. + * * @generated from rpc policy.attributes.AttributesService.GetAttributeValuesByFqns + * @deprecated */ getAttributeValuesByFqns: { methodKind: "unary"; input: typeof GetAttributeValuesByFqnsRequestSchema; output: typeof GetAttributeValuesByFqnsResponseSchema; }, + /** + * Returns only key-mapping information (rule and effective KAS keys) for the + * requested attribute value FQNs, for client-side key split construction. + * + * @generated from rpc policy.attributes.AttributesService.GetKeyMappingsByFqns + */ + getKeyMappingsByFqns: { + methodKind: "unary"; + input: typeof GetKeyMappingsByFqnsRequestSchema; + output: typeof GetKeyMappingsByFqnsResponseSchema; + }, + /** + * Returns only entitlement-relevant information (rule, value identity, ordered + * definition values, and subject mappings) for the requested attribute value + * FQNs, for server-side decisioning / entitlement resolution. + * + * @generated from rpc policy.attributes.AttributesService.GetEntitleableAttributesByFqns + */ + getEntitleableAttributesByFqns: { + methodKind: "unary"; + input: typeof GetEntitleableAttributesByFqnsRequestSchema; + output: typeof GetEntitleableAttributesByFqnsResponseSchema; + }, /** * @generated from rpc policy.attributes.AttributesService.CreateAttribute */ diff --git a/lib/src/platform/policy/dynamicvaluemapping/dynamic_value_mapping_pb.ts b/lib/src/platform/policy/dynamicvaluemapping/dynamic_value_mapping_pb.ts new file mode 100644 index 000000000..a62f9df8d --- /dev/null +++ b/lib/src/platform/policy/dynamicvaluemapping/dynamic_value_mapping_pb.ts @@ -0,0 +1,412 @@ +// @generated by protoc-gen-es v2.2.5 with parameter "target=ts,import_extension=.js" +// @generated from file policy/dynamicvaluemapping/dynamic_value_mapping.proto (package policy.dynamicvaluemapping, syntax proto3) +/* eslint-disable */ + +import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1"; +import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1"; +import { file_buf_validate_validate } from "../../buf/validate/validate_pb.js"; +import type { MetadataMutable, MetadataUpdateEnum } from "../../common/common_pb.js"; +import { file_common_common } from "../../common/common_pb.js"; +import type { Action, DynamicValueMapping, DynamicValueResolver } from "../objects_pb.js"; +import { file_policy_objects } from "../objects_pb.js"; +import type { PageRequest, PageResponse, SortDirection } from "../selectors_pb.js"; +import { file_policy_selectors } from "../selectors_pb.js"; +import type { SubjectConditionSetCreate } from "../subjectmapping/subject_mapping_pb.js"; +import { file_policy_subjectmapping_subject_mapping } from "../subjectmapping/subject_mapping_pb.js"; +import type { Message } from "@bufbuild/protobuf"; + +/** + * Describes the file policy/dynamicvaluemapping/dynamic_value_mapping.proto. + */ +export const file_policy_dynamicvaluemapping_dynamic_value_mapping: GenFile = /*@__PURE__*/ + fileDesc("CjZwb2xpY3kvZHluYW1pY3ZhbHVlbWFwcGluZy9keW5hbWljX3ZhbHVlX21hcHBpbmcucHJvdG8SGnBvbGljeS5keW5hbWljdmFsdWVtYXBwaW5nIjUKHUdldER5bmFtaWNWYWx1ZU1hcHBpbmdSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJcCh5HZXREeW5hbWljVmFsdWVNYXBwaW5nUmVzcG9uc2USOgoVZHluYW1pY192YWx1ZV9tYXBwaW5nGAEgASgLMhsucG9saWN5LkR5bmFtaWNWYWx1ZU1hcHBpbmcioQEKGER5bmFtaWNWYWx1ZU1hcHBpbmdzU29ydBJRCgVmaWVsZBgBIAEoDjI4LnBvbGljeS5keW5hbWljdmFsdWVtYXBwaW5nLlNvcnREeW5hbWljVmFsdWVNYXBwaW5nc1R5cGVCCLpIBYIBAhABEjIKCWRpcmVjdGlvbhgCIAEoDjIVLnBvbGljeS5Tb3J0RGlyZWN0aW9uQgi6SAWCAQIQASLZAwofTGlzdER5bmFtaWNWYWx1ZU1hcHBpbmdzUmVxdWVzdBIeCgxuYW1lc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEiEKDW5hbWVzcGFjZV9mcW4YAiABKAlCCrpIB3IFEAGIAQES1QEKF2F0dHJpYnV0ZV9kZWZpbml0aW9uX2lkGAMgASgJQrMBukivAboBqwEKFG9wdGlvbmFsX3V1aWRfZm9ybWF0EiNPcHRpb25hbCBmaWVsZCBtdXN0IGJlIGEgdmFsaWQgVVVJRBpuc2l6ZSh0aGlzKSA9PSAwIHx8IHRoaXMubWF0Y2hlcygnWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JykSJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdBJMCgRzb3J0GAsgAygLMjQucG9saWN5LmR5bmFtaWN2YWx1ZW1hcHBpbmcuRHluYW1pY1ZhbHVlTWFwcGluZ3NTb3J0Qgi6SAWSAQIQATokukghIh8KDG5hbWVzcGFjZV9pZAoNbmFtZXNwYWNlX2ZxbhAAIokBCiBMaXN0RHluYW1pY1ZhbHVlTWFwcGluZ3NSZXNwb25zZRI7ChZkeW5hbWljX3ZhbHVlX21hcHBpbmdzGAEgAygLMhsucG9saWN5LkR5bmFtaWNWYWx1ZU1hcHBpbmcSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2Ui7QYKIENyZWF0ZUR5bmFtaWNWYWx1ZU1hcHBpbmdSZXF1ZXN0EikKF2F0dHJpYnV0ZV9kZWZpbml0aW9uX2lkGAEgASgJQgi6SAVyA7ABARIsChhhdHRyaWJ1dGVfZGVmaW5pdGlvbl9mcW4YAiABKAlCCrpIB3IFEAGIAQESPAoOdmFsdWVfcmVzb2x2ZXIYAyABKAsyHC5wb2xpY3kuRHluYW1pY1ZhbHVlUmVzb2x2ZXJCBrpIA8gBARKvAQoHYWN0aW9ucxgEIAMoCzIOLnBvbGljeS5BY3Rpb25CjQG6SIkBugGAAQobYWN0aW9uX25hbWVfb3JfaWRfbm90X2VtcHR5Ei9BY3Rpb24gbmFtZSBvciBJRCBtdXN0IG5vdCBiZSBlbXB0eSBpZiBwcm92aWRlZBowdGhpcy5hbGwoaXRlbSwgaXRlbS5uYW1lICE9ICcnIHx8IGl0ZW0uaWQgIT0gJycpkgECCAES3wEKIWV4aXN0aW5nX3N1YmplY3RfY29uZGl0aW9uX3NldF9pZBgFIAEoCUKzAbpIrwG6AasBChRvcHRpb25hbF91dWlkX2Zvcm1hdBIjT3B0aW9uYWwgZmllbGQgbXVzdCBiZSBhIHZhbGlkIFVVSUQabnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ1swLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfScpElMKGW5ld19zdWJqZWN0X2NvbmRpdGlvbl9zZXQYBiABKAsyMC5wb2xpY3kuc3ViamVjdG1hcHBpbmcuU3ViamVjdENvbmRpdGlvblNldENyZWF0ZRIeCgxuYW1lc3BhY2VfaWQYByABKAlCCLpIBXIDsAEBEiEKDW5hbWVzcGFjZV9mcW4YCCABKAlCCrpIB3IFEAGIAQESKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlOlu6SFgiNQoXYXR0cmlidXRlX2RlZmluaXRpb25faWQKGGF0dHJpYnV0ZV9kZWZpbml0aW9uX2ZxbhABIh8KDG5hbWVzcGFjZV9pZAoNbmFtZXNwYWNlX2ZxbhAAIl8KIUNyZWF0ZUR5bmFtaWNWYWx1ZU1hcHBpbmdSZXNwb25zZRI6ChVkeW5hbWljX3ZhbHVlX21hcHBpbmcYASABKAsyGy5wb2xpY3kuRHluYW1pY1ZhbHVlTWFwcGluZyLxBAogVXBkYXRlRHluYW1pY1ZhbHVlTWFwcGluZ1JlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEjQKDnZhbHVlX3Jlc29sdmVyGAIgASgLMhwucG9saWN5LkR5bmFtaWNWYWx1ZVJlc29sdmVyEtYBChhzdWJqZWN0X2NvbmRpdGlvbl9zZXRfaWQYAyABKAlCswG6SK8BugGrAQoUb3B0aW9uYWxfdXVpZF9mb3JtYXQSI09wdGlvbmFsIGZpZWxkIG11c3QgYmUgYSB2YWxpZCBVVUlEGm5zaXplKHRoaXMpID09IDAgfHwgdGhpcy5tYXRjaGVzKCdbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0nKRK+AQoHYWN0aW9ucxgEIAMoCzIOLnBvbGljeS5BY3Rpb25CnAG6SJgBugGUAQobYWN0aW9uX25hbWVfb3JfaWRfbm90X2VtcHR5Ei9BY3Rpb24gbmFtZSBvciBJRCBtdXN0IG5vdCBiZSBlbXB0eSBpZiBwcm92aWRlZBpEdGhpcy5zaXplKCkgPT0gMCB8fCB0aGlzLmFsbChpdGVtLCBpdGVtLm5hbWUgIT0gJycgfHwgaXRlbS5pZCAhPSAnJykSKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlEjwKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchhlIAEoDjIaLmNvbW1vbi5NZXRhZGF0YVVwZGF0ZUVudW0iXwohVXBkYXRlRHluYW1pY1ZhbHVlTWFwcGluZ1Jlc3BvbnNlEjoKFWR5bmFtaWNfdmFsdWVfbWFwcGluZxgBIAEoCzIbLnBvbGljeS5EeW5hbWljVmFsdWVNYXBwaW5nIjgKIERlbGV0ZUR5bmFtaWNWYWx1ZU1hcHBpbmdSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJfCiFEZWxldGVEeW5hbWljVmFsdWVNYXBwaW5nUmVzcG9uc2USOgoVZHluYW1pY192YWx1ZV9tYXBwaW5nGAEgASgLMhsucG9saWN5LkR5bmFtaWNWYWx1ZU1hcHBpbmcqsgEKHFNvcnREeW5hbWljVmFsdWVNYXBwaW5nc1R5cGUSMAosU09SVF9EWU5BTUlDX1ZBTFVFX01BUFBJTkdTX1RZUEVfVU5TUEVDSUZJRUQQABIvCitTT1JUX0RZTkFNSUNfVkFMVUVfTUFQUElOR1NfVFlQRV9DUkVBVEVEX0FUEAESLworU09SVF9EWU5BTUlDX1ZBTFVFX01BUFBJTkdTX1RZUEVfVVBEQVRFRF9BVBACMqcGChpEeW5hbWljVmFsdWVNYXBwaW5nU2VydmljZRKaAQoYTGlzdER5bmFtaWNWYWx1ZU1hcHBpbmdzEjsucG9saWN5LmR5bmFtaWN2YWx1ZW1hcHBpbmcuTGlzdER5bmFtaWNWYWx1ZU1hcHBpbmdzUmVxdWVzdBo8LnBvbGljeS5keW5hbWljdmFsdWVtYXBwaW5nLkxpc3REeW5hbWljVmFsdWVNYXBwaW5nc1Jlc3BvbnNlIgOQAgESlAEKFkdldER5bmFtaWNWYWx1ZU1hcHBpbmcSOS5wb2xpY3kuZHluYW1pY3ZhbHVlbWFwcGluZy5HZXREeW5hbWljVmFsdWVNYXBwaW5nUmVxdWVzdBo6LnBvbGljeS5keW5hbWljdmFsdWVtYXBwaW5nLkdldER5bmFtaWNWYWx1ZU1hcHBpbmdSZXNwb25zZSIDkAIBEpoBChlDcmVhdGVEeW5hbWljVmFsdWVNYXBwaW5nEjwucG9saWN5LmR5bmFtaWN2YWx1ZW1hcHBpbmcuQ3JlYXRlRHluYW1pY1ZhbHVlTWFwcGluZ1JlcXVlc3QaPS5wb2xpY3kuZHluYW1pY3ZhbHVlbWFwcGluZy5DcmVhdGVEeW5hbWljVmFsdWVNYXBwaW5nUmVzcG9uc2UiABKaAQoZVXBkYXRlRHluYW1pY1ZhbHVlTWFwcGluZxI8LnBvbGljeS5keW5hbWljdmFsdWVtYXBwaW5nLlVwZGF0ZUR5bmFtaWNWYWx1ZU1hcHBpbmdSZXF1ZXN0Gj0ucG9saWN5LmR5bmFtaWN2YWx1ZW1hcHBpbmcuVXBkYXRlRHluYW1pY1ZhbHVlTWFwcGluZ1Jlc3BvbnNlIgASmgEKGURlbGV0ZUR5bmFtaWNWYWx1ZU1hcHBpbmcSPC5wb2xpY3kuZHluYW1pY3ZhbHVlbWFwcGluZy5EZWxldGVEeW5hbWljVmFsdWVNYXBwaW5nUmVxdWVzdBo9LnBvbGljeS5keW5hbWljdmFsdWVtYXBwaW5nLkRlbGV0ZUR5bmFtaWNWYWx1ZU1hcHBpbmdSZXNwb25zZSIAYgZwcm90bzM", [file_buf_validate_validate, file_common_common, file_policy_objects, file_policy_selectors, file_policy_subjectmapping_subject_mapping]); + +/** + * @generated from message policy.dynamicvaluemapping.GetDynamicValueMappingRequest + */ +export type GetDynamicValueMappingRequest = Message<"policy.dynamicvaluemapping.GetDynamicValueMappingRequest"> & { + /** + * Required + * + * @generated from field: string id = 1; + */ + id: string; +}; + +/** + * Describes the message policy.dynamicvaluemapping.GetDynamicValueMappingRequest. + * Use `create(GetDynamicValueMappingRequestSchema)` to create a new message. + */ +export const GetDynamicValueMappingRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 0); + +/** + * @generated from message policy.dynamicvaluemapping.GetDynamicValueMappingResponse + */ +export type GetDynamicValueMappingResponse = Message<"policy.dynamicvaluemapping.GetDynamicValueMappingResponse"> & { + /** + * @generated from field: policy.DynamicValueMapping dynamic_value_mapping = 1; + */ + dynamicValueMapping?: DynamicValueMapping; +}; + +/** + * Describes the message policy.dynamicvaluemapping.GetDynamicValueMappingResponse. + * Use `create(GetDynamicValueMappingResponseSchema)` to create a new message. + */ +export const GetDynamicValueMappingResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 1); + +/** + * @generated from message policy.dynamicvaluemapping.DynamicValueMappingsSort + */ +export type DynamicValueMappingsSort = Message<"policy.dynamicvaluemapping.DynamicValueMappingsSort"> & { + /** + * @generated from field: policy.dynamicvaluemapping.SortDynamicValueMappingsType field = 1; + */ + field: SortDynamicValueMappingsType; + + /** + * @generated from field: policy.SortDirection direction = 2; + */ + direction: SortDirection; +}; + +/** + * Describes the message policy.dynamicvaluemapping.DynamicValueMappingsSort. + * Use `create(DynamicValueMappingsSortSchema)` to create a new message. + */ +export const DynamicValueMappingsSortSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 2); + +/** + * @generated from message policy.dynamicvaluemapping.ListDynamicValueMappingsRequest + */ +export type ListDynamicValueMappingsRequest = Message<"policy.dynamicvaluemapping.ListDynamicValueMappingsRequest"> & { + /** + * @generated from field: string namespace_id = 1; + */ + namespaceId: string; + + /** + * @generated from field: string namespace_fqn = 2; + */ + namespaceFqn: string; + + /** + * Optional: Attribute Definition ID to filter by + * + * @generated from field: string attribute_definition_id = 3; + */ + attributeDefinitionId: string; + + /** + * Optional + * + * @generated from field: policy.PageRequest pagination = 10; + */ + pagination?: PageRequest; + + /** + * Optional - CONSTRAINT: max 1 item + * + * @generated from field: repeated policy.dynamicvaluemapping.DynamicValueMappingsSort sort = 11; + */ + sort: DynamicValueMappingsSort[]; +}; + +/** + * Describes the message policy.dynamicvaluemapping.ListDynamicValueMappingsRequest. + * Use `create(ListDynamicValueMappingsRequestSchema)` to create a new message. + */ +export const ListDynamicValueMappingsRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 3); + +/** + * @generated from message policy.dynamicvaluemapping.ListDynamicValueMappingsResponse + */ +export type ListDynamicValueMappingsResponse = Message<"policy.dynamicvaluemapping.ListDynamicValueMappingsResponse"> & { + /** + * @generated from field: repeated policy.DynamicValueMapping dynamic_value_mappings = 1; + */ + dynamicValueMappings: DynamicValueMapping[]; + + /** + * @generated from field: policy.PageResponse pagination = 10; + */ + pagination?: PageResponse; +}; + +/** + * Describes the message policy.dynamicvaluemapping.ListDynamicValueMappingsResponse. + * Use `create(ListDynamicValueMappingsResponseSchema)` to create a new message. + */ +export const ListDynamicValueMappingsResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 4); + +/** + * @generated from message policy.dynamicvaluemapping.CreateDynamicValueMappingRequest + */ +export type CreateDynamicValueMappingRequest = Message<"policy.dynamicvaluemapping.CreateDynamicValueMappingRequest"> & { + /** + * @generated from field: string attribute_definition_id = 1; + */ + attributeDefinitionId: string; + + /** + * @generated from field: string attribute_definition_fqn = 2; + */ + attributeDefinitionFqn: string; + + /** + * Required: the dynamic resolver comparing entity selector result to the resource value segment + * + * @generated from field: policy.DynamicValueResolver value_resolver = 3; + */ + valueResolver?: DynamicValueResolver; + + /** + * Required: actions permitted on a matched value + * + * @generated from field: repeated policy.Action actions = 4; + */ + actions: Action[]; + + /** + * Optional static pre-gate. Reuse an existing SubjectConditionSet (prioritized) ... + * + * @generated from field: string existing_subject_condition_set_id = 5; + */ + existingSubjectConditionSetId: string; + + /** + * ... or create a new one (ignored if existing_subject_condition_set_id is provided) + * + * @generated from field: policy.subjectmapping.SubjectConditionSetCreate new_subject_condition_set = 6; + */ + newSubjectConditionSet?: SubjectConditionSetCreate; + + /** + * Optional: namespace ID or FQN for the mapping + * + * @generated from field: string namespace_id = 7; + */ + namespaceId: string; + + /** + * @generated from field: string namespace_fqn = 8; + */ + namespaceFqn: string; + + /** + * Optional + * + * @generated from field: common.MetadataMutable metadata = 100; + */ + metadata?: MetadataMutable; +}; + +/** + * Describes the message policy.dynamicvaluemapping.CreateDynamicValueMappingRequest. + * Use `create(CreateDynamicValueMappingRequestSchema)` to create a new message. + */ +export const CreateDynamicValueMappingRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 5); + +/** + * @generated from message policy.dynamicvaluemapping.CreateDynamicValueMappingResponse + */ +export type CreateDynamicValueMappingResponse = Message<"policy.dynamicvaluemapping.CreateDynamicValueMappingResponse"> & { + /** + * @generated from field: policy.DynamicValueMapping dynamic_value_mapping = 1; + */ + dynamicValueMapping?: DynamicValueMapping; +}; + +/** + * Describes the message policy.dynamicvaluemapping.CreateDynamicValueMappingResponse. + * Use `create(CreateDynamicValueMappingResponseSchema)` to create a new message. + */ +export const CreateDynamicValueMappingResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 6); + +/** + * @generated from message policy.dynamicvaluemapping.UpdateDynamicValueMappingRequest + */ +export type UpdateDynamicValueMappingRequest = Message<"policy.dynamicvaluemapping.UpdateDynamicValueMappingRequest"> & { + /** + * Required + * + * @generated from field: string id = 1; + */ + id: string; + + /** + * Optional: replace the dynamic resolver + * + * @generated from field: policy.DynamicValueResolver value_resolver = 2; + */ + valueResolver?: DynamicValueResolver; + + /** + * Optional: replace the static pre-gate SubjectConditionSet by id + * + * @generated from field: string subject_condition_set_id = 3; + */ + subjectConditionSetId: string; + + /** + * Optional: replace the entire list of actions + * + * @generated from field: repeated policy.Action actions = 4; + */ + actions: Action[]; + + /** + * Common metadata + * + * @generated from field: common.MetadataMutable metadata = 100; + */ + metadata?: MetadataMutable; + + /** + * @generated from field: common.MetadataUpdateEnum metadata_update_behavior = 101; + */ + metadataUpdateBehavior: MetadataUpdateEnum; +}; + +/** + * Describes the message policy.dynamicvaluemapping.UpdateDynamicValueMappingRequest. + * Use `create(UpdateDynamicValueMappingRequestSchema)` to create a new message. + */ +export const UpdateDynamicValueMappingRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 7); + +/** + * @generated from message policy.dynamicvaluemapping.UpdateDynamicValueMappingResponse + */ +export type UpdateDynamicValueMappingResponse = Message<"policy.dynamicvaluemapping.UpdateDynamicValueMappingResponse"> & { + /** + * @generated from field: policy.DynamicValueMapping dynamic_value_mapping = 1; + */ + dynamicValueMapping?: DynamicValueMapping; +}; + +/** + * Describes the message policy.dynamicvaluemapping.UpdateDynamicValueMappingResponse. + * Use `create(UpdateDynamicValueMappingResponseSchema)` to create a new message. + */ +export const UpdateDynamicValueMappingResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 8); + +/** + * @generated from message policy.dynamicvaluemapping.DeleteDynamicValueMappingRequest + */ +export type DeleteDynamicValueMappingRequest = Message<"policy.dynamicvaluemapping.DeleteDynamicValueMappingRequest"> & { + /** + * Required + * + * @generated from field: string id = 1; + */ + id: string; +}; + +/** + * Describes the message policy.dynamicvaluemapping.DeleteDynamicValueMappingRequest. + * Use `create(DeleteDynamicValueMappingRequestSchema)` to create a new message. + */ +export const DeleteDynamicValueMappingRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 9); + +/** + * @generated from message policy.dynamicvaluemapping.DeleteDynamicValueMappingResponse + */ +export type DeleteDynamicValueMappingResponse = Message<"policy.dynamicvaluemapping.DeleteDynamicValueMappingResponse"> & { + /** + * Only ID of the deleted mapping provided + * + * @generated from field: policy.DynamicValueMapping dynamic_value_mapping = 1; + */ + dynamicValueMapping?: DynamicValueMapping; +}; + +/** + * Describes the message policy.dynamicvaluemapping.DeleteDynamicValueMappingResponse. + * Use `create(DeleteDynamicValueMappingResponseSchema)` to create a new message. + */ +export const DeleteDynamicValueMappingResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 10); + +/** + * @generated from enum policy.dynamicvaluemapping.SortDynamicValueMappingsType + */ +export enum SortDynamicValueMappingsType { + /** + * @generated from enum value: SORT_DYNAMIC_VALUE_MAPPINGS_TYPE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: SORT_DYNAMIC_VALUE_MAPPINGS_TYPE_CREATED_AT = 1; + */ + CREATED_AT = 1, + + /** + * @generated from enum value: SORT_DYNAMIC_VALUE_MAPPINGS_TYPE_UPDATED_AT = 2; + */ + UPDATED_AT = 2, +} + +/** + * Describes the enum policy.dynamicvaluemapping.SortDynamicValueMappingsType. + */ +export const SortDynamicValueMappingsTypeSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 0); + +/** + * @generated from service policy.dynamicvaluemapping.DynamicValueMappingService + */ +export const DynamicValueMappingService: GenService<{ + /** + * @generated from rpc policy.dynamicvaluemapping.DynamicValueMappingService.ListDynamicValueMappings + */ + listDynamicValueMappings: { + methodKind: "unary"; + input: typeof ListDynamicValueMappingsRequestSchema; + output: typeof ListDynamicValueMappingsResponseSchema; + }, + /** + * @generated from rpc policy.dynamicvaluemapping.DynamicValueMappingService.GetDynamicValueMapping + */ + getDynamicValueMapping: { + methodKind: "unary"; + input: typeof GetDynamicValueMappingRequestSchema; + output: typeof GetDynamicValueMappingResponseSchema; + }, + /** + * @generated from rpc policy.dynamicvaluemapping.DynamicValueMappingService.CreateDynamicValueMapping + */ + createDynamicValueMapping: { + methodKind: "unary"; + input: typeof CreateDynamicValueMappingRequestSchema; + output: typeof CreateDynamicValueMappingResponseSchema; + }, + /** + * @generated from rpc policy.dynamicvaluemapping.DynamicValueMappingService.UpdateDynamicValueMapping + */ + updateDynamicValueMapping: { + methodKind: "unary"; + input: typeof UpdateDynamicValueMappingRequestSchema; + output: typeof UpdateDynamicValueMappingResponseSchema; + }, + /** + * @generated from rpc policy.dynamicvaluemapping.DynamicValueMappingService.DeleteDynamicValueMapping + */ + deleteDynamicValueMapping: { + methodKind: "unary"; + input: typeof DeleteDynamicValueMappingRequestSchema; + output: typeof DeleteDynamicValueMappingResponseSchema; + }, +}> = /*@__PURE__*/ + serviceDesc(file_policy_dynamicvaluemapping_dynamic_value_mapping, 0); + diff --git a/lib/src/platform/policy/kasregistry/key_access_server_registry_pb.ts b/lib/src/platform/policy/kasregistry/key_access_server_registry_pb.ts index e035851d2..6040992f8 100644 --- a/lib/src/platform/policy/kasregistry/key_access_server_registry_pb.ts +++ b/lib/src/platform/policy/kasregistry/key_access_server_registry_pb.ts @@ -17,7 +17,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file policy/kasregistry/key_access_server_registry.proto. */ export const file_policy_kasregistry_key_access_server_registry: GenFile = /*@__PURE__*/ - fileDesc("CjNwb2xpY3kva2FzcmVnaXN0cnkva2V5X2FjY2Vzc19zZXJ2ZXJfcmVnaXN0cnkucHJvdG8SEnBvbGljeS5rYXNyZWdpc3RyeSLOAwoZR2V0S2V5QWNjZXNzU2VydmVyUmVxdWVzdBIZCgJpZBgBIAEoCUINGAG6SAjYAQFyA7ABARIaCgZrYXNfaWQYAiABKAlCCLpIBXIDsAEBSAASFwoEbmFtZRgDIAEoCUIHukgEcgIQAUgAEhkKA3VyaRgEIAEoCUIKukgHcgUQAYgBAUgAOrcCukizAhqoAQoQZXhjbHVzaXZlX2ZpZWxkcxJKRWl0aGVyIHVzZSBkZXByZWNhdGVkICdpZCcgZmllbGQgb3Igb25lIG9mICdrYXNfaWQnIG9yICd1cmknLCBidXQgbm90IGJvdGgaSCEoaGFzKHRoaXMuaWQpICYmIChoYXModGhpcy5rYXNfaWQpIHx8IGhhcyh0aGlzLnVyaSkgfHwgaGFzKHRoaXMubmFtZSkpKRqFAQoPcmVxdWlyZWRfZmllbGRzEi1FaXRoZXIgaWQgb3Igb25lIG9mIGthc19pZCBvciB1cmkgbXVzdCBiZSBzZXQaQ2hhcyh0aGlzLmlkKSB8fCBoYXModGhpcy5rYXNfaWQpIHx8IGhhcyh0aGlzLnVyaSkgfHwgaGFzKHRoaXMubmFtZSlCDAoKaWRlbnRpZmllciJQChpHZXRLZXlBY2Nlc3NTZXJ2ZXJSZXNwb25zZRIyChFrZXlfYWNjZXNzX3NlcnZlchgBIAEoCzIXLnBvbGljeS5LZXlBY2Nlc3NTZXJ2ZXIikQEKFEtleUFjY2Vzc1NlcnZlcnNTb3J0EkUKBWZpZWxkGAEgASgOMiwucG9saWN5Lmthc3JlZ2lzdHJ5LlNvcnRLZXlBY2Nlc3NTZXJ2ZXJzVHlwZUIIukgFggECEAESMgoJZGlyZWN0aW9uGAIgASgOMhUucG9saWN5LlNvcnREaXJlY3Rpb25CCLpIBYIBAhABIqgBChtMaXN0S2V5QWNjZXNzU2VydmVyc1JlcXVlc3QSJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdBJACgRzb3J0GAsgAygLMigucG9saWN5Lmthc3JlZ2lzdHJ5LktleUFjY2Vzc1NlcnZlcnNTb3J0Qgi6SAWSAQIQARIeCgZzZWFyY2gYDCABKAsyDi5wb2xpY3kuU2VhcmNoIn0KHExpc3RLZXlBY2Nlc3NTZXJ2ZXJzUmVzcG9uc2USMwoSa2V5X2FjY2Vzc19zZXJ2ZXJzGAEgAygLMhcucG9saWN5LktleUFjY2Vzc1NlcnZlchIoCgpwYWdpbmF0aW9uGAogASgLMhQucG9saWN5LlBhZ2VSZXNwb25zZSJ/CgtLYXNLZXlzU29ydBI8CgVmaWVsZBgBIAEoDjIjLnBvbGljeS5rYXNyZWdpc3RyeS5Tb3J0S2FzS2V5c1R5cGVCCLpIBYIBAhABEjIKCWRpcmVjdGlvbhgCIAEoDjIVLnBvbGljeS5Tb3J0RGlyZWN0aW9uQgi6SAWCAQIQASLpBQocQ3JlYXRlS2V5QWNjZXNzU2VydmVyUmVxdWVzdBKCAgoDdXJpGAEgASgJQvQBukjwAboB7AEKCnVyaV9mb3JtYXQSzwFVUkkgbXVzdCBiZSBhIHZhbGlkIFVSTCAoZS5nLiwgJ2h0dHBzOi8vZGVtby5jb20vJykgZm9sbG93ZWQgYnkgYWRkaXRpb25hbCBzZWdtZW50cy4gRWFjaCBzZWdtZW50IG11c3Qgc3RhcnQgYW5kIGVuZCB3aXRoIGFuIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXIsIGNhbiBjb250YWluIGh5cGhlbnMsIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBhbmQgc2xhc2hlcy4aDHRoaXMuaXNVcmkoKRIlCgpwdWJsaWNfa2V5GAIgASgLMhEucG9saWN5LlB1YmxpY0tleRI0Cgtzb3VyY2VfdHlwZRgDIAEoDjISLnBvbGljeS5Tb3VyY2VUeXBlQgu6SAjIAQCCAQIQARK7AgoEbmFtZRgUIAEoCUKsArpIqAK6AZwCCg9rYXNfbmFtZV9mb3JtYXQSswFSZWdpc3RlcmVkIEtBUyBuYW1lIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucywgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIEtBUyBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpTc2l6ZSh0aGlzKSA+IDAgPyB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKSA6IHRydWXIAQByAxj9ARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUiUwodQ3JlYXRlS2V5QWNjZXNzU2VydmVyUmVzcG9uc2USMgoRa2V5X2FjY2Vzc19zZXJ2ZXIYASABKAsyFy5wb2xpY3kuS2V5QWNjZXNzU2VydmVyIt0GChxVcGRhdGVLZXlBY2Nlc3NTZXJ2ZXJSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARKnAgoDdXJpGAIgASgJQpkCukiVAroBkQIKE29wdGlvbmFsX3VyaV9mb3JtYXQS2AFPcHRpb25hbCBVUkkgbXVzdCBiZSBhIHZhbGlkIFVSTCAoZS5nLiwgJ2h0dHBzOi8vZGVtby5jb20vJykgZm9sbG93ZWQgYnkgYWRkaXRpb25hbCBzZWdtZW50cy4gRWFjaCBzZWdtZW50IG11c3Qgc3RhcnQgYW5kIGVuZCB3aXRoIGFuIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXIsIGNhbiBjb250YWluIGh5cGhlbnMsIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBhbmQgc2xhc2hlcy4aH3NpemUodGhpcykgPT0gMCB8fCB0aGlzLmlzVXJpKCkSJQoKcHVibGljX2tleRgDIAEoCzIRLnBvbGljeS5QdWJsaWNLZXkSNAoLc291cmNlX3R5cGUYBCABKA4yEi5wb2xpY3kuU291cmNlVHlwZUILukgIyAEAggECEAEStgIKBG5hbWUYFCABKAlCpwK6SKMCugGXAgoPa2FzX25hbWVfZm9ybWF0ErMBUmVnaXN0ZXJlZCBLQVMgbmFtZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMsIGFuZCB1bmRlcnNjb3JlcyBidXQgbm90IGFzIHRoZSBmaXJzdCBvciBsYXN0IGNoYXJhY3Rlci4gVGhlIHN0b3JlZCBLQVMgbmFtZSB3aWxsIGJlIG5vcm1hbGl6ZWQgdG8gbG93ZXIgY2FzZS4aTnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKcgBAHIDGP0BEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZRI8ChhtZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IYZSABKA4yGi5jb21tb24uTWV0YWRhdGFVcGRhdGVFbnVtIlMKHVVwZGF0ZUtleUFjY2Vzc1NlcnZlclJlc3BvbnNlEjIKEWtleV9hY2Nlc3Nfc2VydmVyGAEgASgLMhcucG9saWN5LktleUFjY2Vzc1NlcnZlciI0ChxEZWxldGVLZXlBY2Nlc3NTZXJ2ZXJSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJTCh1EZWxldGVLZXlBY2Nlc3NTZXJ2ZXJSZXNwb25zZRIyChFrZXlfYWNjZXNzX3NlcnZlchgBIAEoCzIXLnBvbGljeS5LZXlBY2Nlc3NTZXJ2ZXIiLgoTR3JhbnRlZFBvbGljeU9iamVjdBIKCgJpZBgBIAEoCRILCgNmcW4YAiABKAkikAIKFUtleUFjY2Vzc1NlcnZlckdyYW50cxIyChFrZXlfYWNjZXNzX3NlcnZlchgBIAEoCzIXLnBvbGljeS5LZXlBY2Nlc3NTZXJ2ZXISQQoQbmFtZXNwYWNlX2dyYW50cxgCIAMoCzInLnBvbGljeS5rYXNyZWdpc3RyeS5HcmFudGVkUG9saWN5T2JqZWN0EkEKEGF0dHJpYnV0ZV9ncmFudHMYAyADKAsyJy5wb2xpY3kua2FzcmVnaXN0cnkuR3JhbnRlZFBvbGljeU9iamVjdBI9Cgx2YWx1ZV9ncmFudHMYBCADKAsyJy5wb2xpY3kua2FzcmVnaXN0cnkuR3JhbnRlZFBvbGljeU9iamVjdCKIAQoWQ3JlYXRlUHVibGljS2V5UmVxdWVzdBIYCgZrYXNfaWQYASABKAlCCLpIBXIDsAEBEikKA2tleRgCIAEoCzIULnBvbGljeS5LYXNQdWJsaWNLZXlCBrpIA8gBARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUiMwoXQ3JlYXRlUHVibGljS2V5UmVzcG9uc2USGAoDa2V5GAEgASgLMgsucG9saWN5LktleSI7ChNHZXRQdWJsaWNLZXlSZXF1ZXN0EhYKAmlkGAEgASgJQgi6SAVyA7ABAUgAQgwKCmlkZW50aWZpZXIiMAoUR2V0UHVibGljS2V5UmVzcG9uc2USGAoDa2V5GAEgASgLMgsucG9saWN5LktleSKmAQoVTGlzdFB1YmxpY0tleXNSZXF1ZXN0EhoKBmthc19pZBgBIAEoCUIIukgFcgOwAQFIABIbCghrYXNfbmFtZRgCIAEoCUIHukgEcgIQAUgAEh0KB2thc191cmkYAyABKAlCCrpIB3IFEAGIAQFIABInCgpwYWdpbmF0aW9uGAogASgLMhMucG9saWN5LlBhZ2VSZXF1ZXN0QgwKCmthc19maWx0ZXIiXQoWTGlzdFB1YmxpY0tleXNSZXNwb25zZRIZCgRrZXlzGAEgAygLMgsucG9saWN5LktleRIoCgpwYWdpbmF0aW9uGAogASgLMhQucG9saWN5LlBhZ2VSZXNwb25zZSLQAQobTGlzdFB1YmxpY0tleU1hcHBpbmdSZXF1ZXN0EhoKBmthc19pZBgBIAEoCUIIukgFcgOwAQFIABIbCghrYXNfbmFtZRgCIAEoCUIHukgEcgIQAUgAEh0KB2thc191cmkYAyABKAlCCrpIB3IFEAGIAQFIABIiCg1wdWJsaWNfa2V5X2lkGAQgASgJQgu6SAjYAQFyA7ABARInCgpwYWdpbmF0aW9uGAogASgLMhMucG9saWN5LlBhZ2VSZXF1ZXN0QgwKCmthc19maWx0ZXIihAUKHExpc3RQdWJsaWNLZXlNYXBwaW5nUmVzcG9uc2USXgoTcHVibGljX2tleV9tYXBwaW5ncxgBIAMoCzJBLnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0UHVibGljS2V5TWFwcGluZ1Jlc3BvbnNlLlB1YmxpY0tleU1hcHBpbmcSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2UalgEKEFB1YmxpY0tleU1hcHBpbmcSDgoGa2FzX2lkGAIgASgJEhAKCGthc19uYW1lGAMgASgJEg8KB2thc191cmkYBCABKAkSTwoLcHVibGljX2tleXMYBSADKAsyOi5wb2xpY3kua2FzcmVnaXN0cnkuTGlzdFB1YmxpY0tleU1hcHBpbmdSZXNwb25zZS5QdWJsaWNLZXkamAIKCVB1YmxpY0tleRIYCgNrZXkYASABKAsyCy5wb2xpY3kuS2V5EkwKBnZhbHVlcxgGIAMoCzI8LnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0UHVibGljS2V5TWFwcGluZ1Jlc3BvbnNlLkFzc29jaWF0aW9uElEKC2RlZmluaXRpb25zGAcgAygLMjwucG9saWN5Lmthc3JlZ2lzdHJ5Lkxpc3RQdWJsaWNLZXlNYXBwaW5nUmVzcG9uc2UuQXNzb2NpYXRpb24SUAoKbmFtZXNwYWNlcxgIIAMoCzI8LnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0UHVibGljS2V5TWFwcGluZ1Jlc3BvbnNlLkFzc29jaWF0aW9uGiYKC0Fzc29jaWF0aW9uEgoKAmlkGAEgASgJEgsKA2ZxbhgCIAEoCSKXAQoWVXBkYXRlUHVibGljS2V5UmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlEjwKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchhlIAEoDjIaLmNvbW1vbi5NZXRhZGF0YVVwZGF0ZUVudW0iMwoXVXBkYXRlUHVibGljS2V5UmVzcG9uc2USGAoDa2V5GAEgASgLMgsucG9saWN5LktleSIyChpEZWFjdGl2YXRlUHVibGljS2V5UmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiNwobRGVhY3RpdmF0ZVB1YmxpY0tleVJlc3BvbnNlEhgKA2tleRgBIAEoCzILLnBvbGljeS5LZXkiMAoYQWN0aXZhdGVQdWJsaWNLZXlSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASI1ChlBY3RpdmF0ZVB1YmxpY0tleVJlc3BvbnNlEhgKA2tleRgBIAEoCzILLnBvbGljeS5LZXkigQcKIExpc3RLZXlBY2Nlc3NTZXJ2ZXJHcmFudHNSZXF1ZXN0EsQBCgZrYXNfaWQYASABKAlCswG6SK8BugGrAQoUb3B0aW9uYWxfdXVpZF9mb3JtYXQSI09wdGlvbmFsIGZpZWxkIG11c3QgYmUgYSB2YWxpZCBVVUlEGm5zaXplKHRoaXMpID09IDAgfHwgdGhpcy5tYXRjaGVzKCdbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0nKRKrAgoHa2FzX3VyaRgCIAEoCUKZArpIlQK6AZECChNvcHRpb25hbF91cmlfZm9ybWF0EtgBT3B0aW9uYWwgVVJJIG11c3QgYmUgYSB2YWxpZCBVUkwgKGUuZy4sICdodHRwczovL2RlbW8uY29tLycpIGZvbGxvd2VkIGJ5IGFkZGl0aW9uYWwgc2VnbWVudHMuIEVhY2ggc2VnbWVudCBtdXN0IHN0YXJ0IGFuZCBlbmQgd2l0aCBhbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVyLCBjYW4gY29udGFpbiBoeXBoZW5zLCBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgYW5kIHNsYXNoZXMuGh9zaXplKHRoaXMpID09IDAgfHwgdGhpcy5pc1VyaSgpEroCCghrYXNfbmFtZRgDIAEoCUKnArpIowK6AZcCCg9rYXNfbmFtZV9mb3JtYXQSswFSZWdpc3RlcmVkIEtBUyBuYW1lIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucywgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIEtBUyBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpOc2l6ZSh0aGlzKSA9PSAwIHx8IHRoaXMubWF0Y2hlcygnXlthLXpBLVowLTldKD86W2EtekEtWjAtOV8tXSpbYS16QS1aMC05XSk/JCcpyAEAcgMY/QESJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdDoCGAEikAEKIUxpc3RLZXlBY2Nlc3NTZXJ2ZXJHcmFudHNSZXNwb25zZRI9CgZncmFudHMYASADKAsyKS5wb2xpY3kua2FzcmVnaXN0cnkuS2V5QWNjZXNzU2VydmVyR3JhbnRzQgIYARIoCgpwYWdpbmF0aW9uGAogASgLMhQucG9saWN5LlBhZ2VSZXNwb25zZToCGAEi7wsKEENyZWF0ZUtleVJlcXVlc3QSGAoGa2FzX2lkGAEgASgJQgi6SAVyA7ABARIXCgZrZXlfaWQYAiABKAlCB7pIBHICEAESnwEKDWtleV9hbGdvcml0aG0YAyABKA4yES5wb2xpY3kuQWxnb3JpdGhtQnW6SHK6AW8KFWtleV9hbGdvcml0aG1fZGVmaW5lZBI0VGhlIGtleV9hbGdvcml0aG0gbXVzdCBiZSBvbmUgb2YgdGhlIGRlZmluZWQgdmFsdWVzLhogdGhpcyBpbiBbMSwgMiwgMywgNCwgNSwgNiwgNywgOF0SigEKCGtleV9tb2RlGAQgASgOMg8ucG9saWN5LktleU1vZGVCZ7pIZLoBYQoQa2V5X21vZGVfZGVmaW5lZBI1VGhlIGtleV9tb2RlIG11c3QgYmUgb25lIG9mIHRoZSBkZWZpbmVkIHZhbHVlcyAoMS00KS4aFnRoaXMgPj0gMSAmJiB0aGlzIDw9IDQSNAoOcHVibGljX2tleV9jdHgYBSABKAsyFC5wb2xpY3kuUHVibGljS2V5Q3R4Qga6SAPIAQESLgoPcHJpdmF0ZV9rZXlfY3R4GAYgASgLMhUucG9saWN5LlByaXZhdGVLZXlDdHgSGgoScHJvdmlkZXJfY29uZmlnX2lkGAcgASgJEg4KBmxlZ2FjeRgIIAEoCBIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGU6uwe6SLcHGpcDCiNwcml2YXRlX2tleV9jdHhfb3B0aW9uYWxseV9yZXF1aXJlZBK8AVRoZSB3cmFwcGVkX2tleSBpcyByZXF1aXJlZCBpZiBrZXlfbW9kZSBpcyBLRVlfTU9ERV9DT05GSUdfUk9PVF9LRVkgb3IgS0VZX01PREVfUFJPVklERVJfUk9PVF9LRVkuIFRoZSB3cmFwcGVkX2tleSBtdXN0IGJlIGVtcHR5IGlmIGtleV9tb2RlIGlzIEtFWV9NT0RFX1JFTU9URSBvciBLRVlfTU9ERV9QVUJMSUNfS0VZX09OTFkuGrABKCh0aGlzLmtleV9tb2RlID09IDEgfHwgdGhpcy5rZXlfbW9kZSA9PSAyKSAmJiB0aGlzLnByaXZhdGVfa2V5X2N0eC53cmFwcGVkX2tleSAhPSAnJykgfHwgKCh0aGlzLmtleV9tb2RlID09IDMgfHwgdGhpcy5rZXlfbW9kZSA9PSA0KSAmJiB0aGlzLnByaXZhdGVfa2V5X2N0eC53cmFwcGVkX2tleSA9PSAnJyka9AIKJnByb3ZpZGVyX2NvbmZpZ19pZF9vcHRpb25hbGx5X3JlcXVpcmVkEqgBUHJvdmlkZXIgY29uZmlnIGlkIGlzIHJlcXVpcmVkIGlmIGtleV9tb2RlIGlzIEtFWV9NT0RFX1BST1ZJREVSX1JPT1RfS0VZIG9yIEtFWV9NT0RFX1JFTU9URS4gSXQgbXVzdCBiZSBlbXB0eSBmb3IgS0VZX01PREVfQ09ORklHX1JPT1RfS0VZIGFuZCBLRVlfTU9ERV9QVUJMSUNfS0VZX09OTFkuGp4BKCh0aGlzLmtleV9tb2RlID09IDEgfHwgdGhpcy5rZXlfbW9kZSA9PSA0KSAmJiB0aGlzLnByb3ZpZGVyX2NvbmZpZ19pZCA9PSAnJykgfHwgKCh0aGlzLmtleV9tb2RlID09IDIgfHwgdGhpcy5rZXlfbW9kZSA9PSAzKSAmJiB0aGlzLnByb3ZpZGVyX2NvbmZpZ19pZCAhPSAnJykaowEKI3ByaXZhdGVfa2V5X2N0eF9mb3JfcHVibGljX2tleV9vbmx5Ekhwcml2YXRlX2tleV9jdHggbXVzdCBub3QgYmUgc2V0IGlmIGtleV9tb2RlIGlzIEtFWV9NT0RFX1BVQkxJQ19LRVlfT05MWS4aMiEodGhpcy5rZXlfbW9kZSA9PSA0ICYmIGhhcyh0aGlzLnByaXZhdGVfa2V5X2N0eCkpIjQKEUNyZWF0ZUtleVJlc3BvbnNlEh8KB2thc19rZXkYASABKAsyDi5wb2xpY3kuS2FzS2V5InEKDUdldEtleVJlcXVlc3QSFgoCaWQYAiABKAlCCLpIBXIDsAEBSAASMwoDa2V5GAMgASgLMiQucG9saWN5Lmthc3JlZ2lzdHJ5Lkthc0tleUlkZW50aWZpZXJIAEITCgppZGVudGlmaWVyEgW6SAIIASIxCg5HZXRLZXlSZXNwb25zZRIfCgdrYXNfa2V5GAEgASgLMg4ucG9saWN5Lkthc0tleSK+AwoPTGlzdEtleXNSZXF1ZXN0EqIBCg1rZXlfYWxnb3JpdGhtGAEgASgOMhEucG9saWN5LkFsZ29yaXRobUJ4ukh1ugFyChVrZXlfYWxnb3JpdGhtX2RlZmluZWQSNFRoZSBrZXlfYWxnb3JpdGhtIG11c3QgYmUgb25lIG9mIHRoZSBkZWZpbmVkIHZhbHVlcy4aI3RoaXMgaW4gWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDhdEhoKBmthc19pZBgCIAEoCUIIukgFcgOwAQFIABIbCghrYXNfbmFtZRgDIAEoCUIHukgEcgIQAUgAEh0KB2thc191cmkYBCABKAlCCrpIB3IFEAGIAQFIABITCgZsZWdhY3kYCCABKAhIAYgBARInCgpwYWdpbmF0aW9uGAogASgLMhMucG9saWN5LlBhZ2VSZXF1ZXN0EjcKBHNvcnQYCyADKAsyHy5wb2xpY3kua2FzcmVnaXN0cnkuS2FzS2V5c1NvcnRCCLpIBZIBAhABEh4KBnNlYXJjaBgMIAEoCzIOLnBvbGljeS5TZWFyY2hCDAoKa2FzX2ZpbHRlckIJCgdfbGVnYWN5Il4KEExpc3RLZXlzUmVzcG9uc2USIAoIa2FzX2tleXMYASADKAsyDi5wb2xpY3kuS2FzS2V5EigKCnBhZ2luYXRpb24YCiABKAsyFC5wb2xpY3kuUGFnZVJlc3BvbnNlIuACChBVcGRhdGVLZXlSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUSPAoYbWV0YWRhdGFfdXBkYXRlX2JlaGF2aW9yGGUgASgOMhouY29tbW9uLk1ldGFkYXRhVXBkYXRlRW51bTrMAbpIyAEaxQEKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchJSTWV0YWRhdGEgdXBkYXRlIGJlaGF2aW9yIG11c3QgYmUgZWl0aGVyIEFQUEVORCBvciBSRVBMQUNFLCB3aGVuIHVwZGF0aW5nIG1ldGFkYXRhLhpVKCghaGFzKHRoaXMubWV0YWRhdGEpKSB8fCAoaGFzKHRoaXMubWV0YWRhdGEpICYmIHRoaXMubWV0YWRhdGFfdXBkYXRlX2JlaGF2aW9yICE9IDApKSI0ChFVcGRhdGVLZXlSZXNwb25zZRIfCgdrYXNfa2V5GAEgASgLMg4ucG9saWN5Lkthc0tleSKNAQoQS2FzS2V5SWRlbnRpZmllchIaCgZrYXNfaWQYAiABKAlCCLpIBXIDsAEBSAASFwoEbmFtZRgDIAEoCUIHukgEcgIQAUgAEhkKA3VyaRgEIAEoCUIKukgHcgUQAYgBAUgAEhQKA2tpZBgFIAEoCUIHukgEcgIQAUITCgppZGVudGlmaWVyEgW6SAIIASKJDgoQUm90YXRlS2V5UmVxdWVzdBIWCgJpZBgBIAEoCUIIukgFcgOwAQFIABIzCgNrZXkYAiABKAsyJC5wb2xpY3kua2FzcmVnaXN0cnkuS2FzS2V5SWRlbnRpZmllckgAEjwKB25ld19rZXkYAyABKAsyKy5wb2xpY3kua2FzcmVnaXN0cnkuUm90YXRlS2V5UmVxdWVzdC5OZXdLZXkahAQKBk5ld0tleRIXCgZrZXlfaWQYASABKAlCB7pIBHICEAESmwEKCWFsZ29yaXRobRgCIAEoDjIRLnBvbGljeS5BbGdvcml0aG1CdbpIcroBbwoVa2V5X2FsZ29yaXRobV9kZWZpbmVkEjRUaGUga2V5X2FsZ29yaXRobSBtdXN0IGJlIG9uZSBvZiB0aGUgZGVmaW5lZCB2YWx1ZXMuGiB0aGlzIGluIFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XRKVAQoIa2V5X21vZGUYAyABKA4yDy5wb2xpY3kuS2V5TW9kZUJyukhvugFnChRuZXdfa2V5X21vZGVfZGVmaW5lZBI5VGhlIG5ldyBrZXlfbW9kZSBtdXN0IGJlIG9uZSBvZiB0aGUgZGVmaW5lZCB2YWx1ZXMgKDEtNCkuGhR0aGlzIGluIFsxLCAyLCAzLCA0XYIBAhABEjQKDnB1YmxpY19rZXlfY3R4GAQgASgLMhQucG9saWN5LlB1YmxpY0tleUN0eEIGukgDyAEBEi4KD3ByaXZhdGVfa2V5X2N0eBgFIAEoCzIVLnBvbGljeS5Qcml2YXRlS2V5Q3R4EhoKEnByb3ZpZGVyX2NvbmZpZ19pZBgGIAEoCRIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGU6zQi6SMkIGtgDCiNwcml2YXRlX2tleV9jdHhfb3B0aW9uYWxseV9yZXF1aXJlZBLNAUZvciB0aGUgbmV3IGtleSwgdGhlIHdyYXBwZWRfa2V5IGlzIHJlcXVpcmVkIGlmIGtleV9tb2RlIGlzIEtFWV9NT0RFX0NPTkZJR19ST09UX0tFWSBvciBLRVlfTU9ERV9QUk9WSURFUl9ST09UX0tFWS4gVGhlIHdyYXBwZWRfa2V5IG11c3QgYmUgZW1wdHkgaWYga2V5X21vZGUgaXMgS0VZX01PREVfUkVNT1RFIG9yIEtFWV9NT0RFX1BVQkxJQ19LRVlfT05MWS4a4AEoKHRoaXMubmV3X2tleS5rZXlfbW9kZSA9PSAxIHx8IHRoaXMubmV3X2tleS5rZXlfbW9kZSA9PSAyKSAmJiB0aGlzLm5ld19rZXkucHJpdmF0ZV9rZXlfY3R4LndyYXBwZWRfa2V5ICE9ICcnKSB8fCAoKHRoaXMubmV3X2tleS5rZXlfbW9kZSA9PSAzIHx8IHRoaXMubmV3X2tleS5rZXlfbW9kZSA9PSA0KSAmJiB0aGlzLm5ld19rZXkucHJpdmF0ZV9rZXlfY3R4LndyYXBwZWRfa2V5ID09ICcnKRq1AwomcHJvdmlkZXJfY29uZmlnX2lkX29wdGlvbmFsbHlfcmVxdWlyZWQSuQFGb3IgdGhlIG5ldyBrZXksIHByb3ZpZGVyIGNvbmZpZyBpZCBpcyByZXF1aXJlZCBpZiBrZXlfbW9kZSBpcyBLRVlfTU9ERV9QUk9WSURFUl9ST09UX0tFWSBvciBLRVlfTU9ERV9SRU1PVEUuIEl0IG11c3QgYmUgZW1wdHkgZm9yIEtFWV9NT0RFX0NPTkZJR19ST09UX0tFWSBhbmQgS0VZX01PREVfUFVCTElDX0tFWV9PTkxZLhrOASgodGhpcy5uZXdfa2V5LmtleV9tb2RlID09IDEgfHwgdGhpcy5uZXdfa2V5LmtleV9tb2RlID09IDQpICYmIHRoaXMubmV3X2tleS5wcm92aWRlcl9jb25maWdfaWQgPT0gJycpIHx8ICgodGhpcy5uZXdfa2V5LmtleV9tb2RlID09IDIgfHwgdGhpcy5uZXdfa2V5LmtleV9tb2RlID09IDMpICYmIHRoaXMubmV3X2tleS5wcm92aWRlcl9jb25maWdfaWQgIT0gJycpGrMBCiNwcml2YXRlX2tleV9jdHhfZm9yX3B1YmxpY19rZXlfb25seRJIcHJpdmF0ZV9rZXlfY3R4IG11c3Qgbm90IGJlIHNldCBpZiBrZXlfbW9kZSBpcyBLRVlfTU9ERV9QVUJMSUNfS0VZX09OTFkuGkIhKHRoaXMubmV3X2tleS5rZXlfbW9kZSA9PSA0ICYmIGhhcyh0aGlzLm5ld19rZXkucHJpdmF0ZV9rZXlfY3R4KSlCEwoKYWN0aXZlX2tleRIFukgCCAEiKQoOQ2hhbmdlTWFwcGluZ3MSCgoCaWQYASABKAkSCwoDZnFuGAIgASgJIowCChBSb3RhdGVkUmVzb3VyY2VzEicKD3JvdGF0ZWRfb3V0X2tleRgBIAEoCzIOLnBvbGljeS5LYXNLZXkSSQodYXR0cmlidXRlX2RlZmluaXRpb25fbWFwcGluZ3MYAiADKAsyIi5wb2xpY3kua2FzcmVnaXN0cnkuQ2hhbmdlTWFwcGluZ3MSRAoYYXR0cmlidXRlX3ZhbHVlX21hcHBpbmdzGAMgAygLMiIucG9saWN5Lmthc3JlZ2lzdHJ5LkNoYW5nZU1hcHBpbmdzEj4KEm5hbWVzcGFjZV9tYXBwaW5ncxgEIAMoCzIiLnBvbGljeS5rYXNyZWdpc3RyeS5DaGFuZ2VNYXBwaW5ncyJ1ChFSb3RhdGVLZXlSZXNwb25zZRIfCgdrYXNfa2V5GAEgASgLMg4ucG9saWN5Lkthc0tleRI/ChFyb3RhdGVkX3Jlc291cmNlcxgCIAEoCzIkLnBvbGljeS5rYXNyZWdpc3RyeS5Sb3RhdGVkUmVzb3VyY2VzInUKEVNldEJhc2VLZXlSZXF1ZXN0EhYKAmlkGAEgASgJQgi6SAVyA7ABAUgAEjMKA2tleRgCIAEoCzIkLnBvbGljeS5rYXNyZWdpc3RyeS5LYXNLZXlJZGVudGlmaWVySABCEwoKYWN0aXZlX2tleRIFukgCCAEiEwoRR2V0QmFzZUtleVJlcXVlc3QiPAoSR2V0QmFzZUtleVJlc3BvbnNlEiYKCGJhc2Vfa2V5GAEgASgLMhQucG9saWN5LlNpbXBsZUthc0tleSJxChJTZXRCYXNlS2V5UmVzcG9uc2USKgoMbmV3X2Jhc2Vfa2V5GAEgASgLMhQucG9saWN5LlNpbXBsZUthc0tleRIvChFwcmV2aW91c19iYXNlX2tleRgCIAEoCzIULnBvbGljeS5TaW1wbGVLYXNLZXkiLQoSTWFwcGVkUG9saWN5T2JqZWN0EgoKAmlkGAEgASgJEgsKA2ZxbhgCIAEoCSLyAQoKS2V5TWFwcGluZxILCgNraWQYASABKAkSDwoHa2FzX3VyaRgCIAEoCRJCChJuYW1lc3BhY2VfbWFwcGluZ3MYAyADKAsyJi5wb2xpY3kua2FzcmVnaXN0cnkuTWFwcGVkUG9saWN5T2JqZWN0EkIKEmF0dHJpYnV0ZV9tYXBwaW5ncxgEIAMoCzImLnBvbGljeS5rYXNyZWdpc3RyeS5NYXBwZWRQb2xpY3lPYmplY3QSPgoOdmFsdWVfbWFwcGluZ3MYBSADKAsyJi5wb2xpY3kua2FzcmVnaXN0cnkuTWFwcGVkUG9saWN5T2JqZWN0IqMBChZMaXN0S2V5TWFwcGluZ3NSZXF1ZXN0EhYKAmlkGAIgASgJQgi6SAVyA7ABAUgAEjMKA2tleRgDIAEoCzIkLnBvbGljeS5rYXNyZWdpc3RyeS5LYXNLZXlJZGVudGlmaWVySAASJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdEITCgppZGVudGlmaWVyEgW6SAIIACJ5ChdMaXN0S2V5TWFwcGluZ3NSZXNwb25zZRI0CgxrZXlfbWFwcGluZ3MYASADKAsyHi5wb2xpY3kua2FzcmVnaXN0cnkuS2V5TWFwcGluZxIoCgpwYWdpbmF0aW9uGAogASgLMhQucG9saWN5LlBhZ2VSZXNwb25zZSrvAQoYU29ydEtleUFjY2Vzc1NlcnZlcnNUeXBlEiwKKFNPUlRfS0VZX0FDQ0VTU19TRVJWRVJTX1RZUEVfVU5TUEVDSUZJRUQQABIlCiFTT1JUX0tFWV9BQ0NFU1NfU0VSVkVSU19UWVBFX05BTUUQARIkCiBTT1JUX0tFWV9BQ0NFU1NfU0VSVkVSU19UWVBFX1VSSRACEisKJ1NPUlRfS0VZX0FDQ0VTU19TRVJWRVJTX1RZUEVfQ1JFQVRFRF9BVBADEisKJ1NPUlRfS0VZX0FDQ0VTU19TRVJWRVJTX1RZUEVfVVBEQVRFRF9BVBAEKpoBCg9Tb3J0S2FzS2V5c1R5cGUSIgoeU09SVF9LQVNfS0VZU19UWVBFX1VOU1BFQ0lGSUVEEAASHQoZU09SVF9LQVNfS0VZU19UWVBFX0tFWV9JRBABEiEKHVNPUlRfS0FTX0tFWVNfVFlQRV9DUkVBVEVEX0FUEAISIQodU09SVF9LQVNfS0VZU19UWVBFX1VQREFURURfQVQQAzKZDAoeS2V5QWNjZXNzU2VydmVyUmVnaXN0cnlTZXJ2aWNlEn4KFExpc3RLZXlBY2Nlc3NTZXJ2ZXJzEi8ucG9saWN5Lmthc3JlZ2lzdHJ5Lkxpc3RLZXlBY2Nlc3NTZXJ2ZXJzUmVxdWVzdBowLnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0S2V5QWNjZXNzU2VydmVyc1Jlc3BvbnNlIgOQAgESeAoSR2V0S2V5QWNjZXNzU2VydmVyEi0ucG9saWN5Lmthc3JlZ2lzdHJ5LkdldEtleUFjY2Vzc1NlcnZlclJlcXVlc3QaLi5wb2xpY3kua2FzcmVnaXN0cnkuR2V0S2V5QWNjZXNzU2VydmVyUmVzcG9uc2UiA5ACARJ+ChVDcmVhdGVLZXlBY2Nlc3NTZXJ2ZXISMC5wb2xpY3kua2FzcmVnaXN0cnkuQ3JlYXRlS2V5QWNjZXNzU2VydmVyUmVxdWVzdBoxLnBvbGljeS5rYXNyZWdpc3RyeS5DcmVhdGVLZXlBY2Nlc3NTZXJ2ZXJSZXNwb25zZSIAEn4KFVVwZGF0ZUtleUFjY2Vzc1NlcnZlchIwLnBvbGljeS5rYXNyZWdpc3RyeS5VcGRhdGVLZXlBY2Nlc3NTZXJ2ZXJSZXF1ZXN0GjEucG9saWN5Lmthc3JlZ2lzdHJ5LlVwZGF0ZUtleUFjY2Vzc1NlcnZlclJlc3BvbnNlIgASfgoVRGVsZXRlS2V5QWNjZXNzU2VydmVyEjAucG9saWN5Lmthc3JlZ2lzdHJ5LkRlbGV0ZUtleUFjY2Vzc1NlcnZlclJlcXVlc3QaMS5wb2xpY3kua2FzcmVnaXN0cnkuRGVsZXRlS2V5QWNjZXNzU2VydmVyUmVzcG9uc2UiABKQAQoZTGlzdEtleUFjY2Vzc1NlcnZlckdyYW50cxI0LnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0S2V5QWNjZXNzU2VydmVyR3JhbnRzUmVxdWVzdBo1LnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0S2V5QWNjZXNzU2VydmVyR3JhbnRzUmVzcG9uc2UiBogCAZACARJaCglDcmVhdGVLZXkSJC5wb2xpY3kua2FzcmVnaXN0cnkuQ3JlYXRlS2V5UmVxdWVzdBolLnBvbGljeS5rYXNyZWdpc3RyeS5DcmVhdGVLZXlSZXNwb25zZSIAElEKBkdldEtleRIhLnBvbGljeS5rYXNyZWdpc3RyeS5HZXRLZXlSZXF1ZXN0GiIucG9saWN5Lmthc3JlZ2lzdHJ5LkdldEtleVJlc3BvbnNlIgASVwoITGlzdEtleXMSIy5wb2xpY3kua2FzcmVnaXN0cnkuTGlzdEtleXNSZXF1ZXN0GiQucG9saWN5Lmthc3JlZ2lzdHJ5Lkxpc3RLZXlzUmVzcG9uc2UiABJaCglVcGRhdGVLZXkSJC5wb2xpY3kua2FzcmVnaXN0cnkuVXBkYXRlS2V5UmVxdWVzdBolLnBvbGljeS5rYXNyZWdpc3RyeS5VcGRhdGVLZXlSZXNwb25zZSIAEloKCVJvdGF0ZUtleRIkLnBvbGljeS5rYXNyZWdpc3RyeS5Sb3RhdGVLZXlSZXF1ZXN0GiUucG9saWN5Lmthc3JlZ2lzdHJ5LlJvdGF0ZUtleVJlc3BvbnNlIgASXQoKU2V0QmFzZUtleRIlLnBvbGljeS5rYXNyZWdpc3RyeS5TZXRCYXNlS2V5UmVxdWVzdBomLnBvbGljeS5rYXNyZWdpc3RyeS5TZXRCYXNlS2V5UmVzcG9uc2UiABJdCgpHZXRCYXNlS2V5EiUucG9saWN5Lmthc3JlZ2lzdHJ5LkdldEJhc2VLZXlSZXF1ZXN0GiYucG9saWN5Lmthc3JlZ2lzdHJ5LkdldEJhc2VLZXlSZXNwb25zZSIAEmwKD0xpc3RLZXlNYXBwaW5ncxIqLnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0S2V5TWFwcGluZ3NSZXF1ZXN0GisucG9saWN5Lmthc3JlZ2lzdHJ5Lkxpc3RLZXlNYXBwaW5nc1Jlc3BvbnNlIgBiBnByb3RvMw", [file_buf_validate_validate, file_common_common, file_policy_objects, file_policy_selectors]); + fileDesc("CjNwb2xpY3kva2FzcmVnaXN0cnkva2V5X2FjY2Vzc19zZXJ2ZXJfcmVnaXN0cnkucHJvdG8SEnBvbGljeS5rYXNyZWdpc3RyeSLOAwoZR2V0S2V5QWNjZXNzU2VydmVyUmVxdWVzdBIZCgJpZBgBIAEoCUINGAG6SAjYAQFyA7ABARIaCgZrYXNfaWQYAiABKAlCCLpIBXIDsAEBSAASFwoEbmFtZRgDIAEoCUIHukgEcgIQAUgAEhkKA3VyaRgEIAEoCUIKukgHcgUQAYgBAUgAOrcCukizAhqoAQoQZXhjbHVzaXZlX2ZpZWxkcxJKRWl0aGVyIHVzZSBkZXByZWNhdGVkICdpZCcgZmllbGQgb3Igb25lIG9mICdrYXNfaWQnIG9yICd1cmknLCBidXQgbm90IGJvdGgaSCEoaGFzKHRoaXMuaWQpICYmIChoYXModGhpcy5rYXNfaWQpIHx8IGhhcyh0aGlzLnVyaSkgfHwgaGFzKHRoaXMubmFtZSkpKRqFAQoPcmVxdWlyZWRfZmllbGRzEi1FaXRoZXIgaWQgb3Igb25lIG9mIGthc19pZCBvciB1cmkgbXVzdCBiZSBzZXQaQ2hhcyh0aGlzLmlkKSB8fCBoYXModGhpcy5rYXNfaWQpIHx8IGhhcyh0aGlzLnVyaSkgfHwgaGFzKHRoaXMubmFtZSlCDAoKaWRlbnRpZmllciJQChpHZXRLZXlBY2Nlc3NTZXJ2ZXJSZXNwb25zZRIyChFrZXlfYWNjZXNzX3NlcnZlchgBIAEoCzIXLnBvbGljeS5LZXlBY2Nlc3NTZXJ2ZXIikQEKFEtleUFjY2Vzc1NlcnZlcnNTb3J0EkUKBWZpZWxkGAEgASgOMiwucG9saWN5Lmthc3JlZ2lzdHJ5LlNvcnRLZXlBY2Nlc3NTZXJ2ZXJzVHlwZUIIukgFggECEAESMgoJZGlyZWN0aW9uGAIgASgOMhUucG9saWN5LlNvcnREaXJlY3Rpb25CCLpIBYIBAhABIqgBChtMaXN0S2V5QWNjZXNzU2VydmVyc1JlcXVlc3QSJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdBJACgRzb3J0GAsgAygLMigucG9saWN5Lmthc3JlZ2lzdHJ5LktleUFjY2Vzc1NlcnZlcnNTb3J0Qgi6SAWSAQIQARIeCgZzZWFyY2gYDCABKAsyDi5wb2xpY3kuU2VhcmNoIn0KHExpc3RLZXlBY2Nlc3NTZXJ2ZXJzUmVzcG9uc2USMwoSa2V5X2FjY2Vzc19zZXJ2ZXJzGAEgAygLMhcucG9saWN5LktleUFjY2Vzc1NlcnZlchIoCgpwYWdpbmF0aW9uGAogASgLMhQucG9saWN5LlBhZ2VSZXNwb25zZSJ/CgtLYXNLZXlzU29ydBI8CgVmaWVsZBgBIAEoDjIjLnBvbGljeS5rYXNyZWdpc3RyeS5Tb3J0S2FzS2V5c1R5cGVCCLpIBYIBAhABEjIKCWRpcmVjdGlvbhgCIAEoDjIVLnBvbGljeS5Tb3J0RGlyZWN0aW9uQgi6SAWCAQIQASLpBQocQ3JlYXRlS2V5QWNjZXNzU2VydmVyUmVxdWVzdBKCAgoDdXJpGAEgASgJQvQBukjwAboB7AEKCnVyaV9mb3JtYXQSzwFVUkkgbXVzdCBiZSBhIHZhbGlkIFVSTCAoZS5nLiwgJ2h0dHBzOi8vZGVtby5jb20vJykgZm9sbG93ZWQgYnkgYWRkaXRpb25hbCBzZWdtZW50cy4gRWFjaCBzZWdtZW50IG11c3Qgc3RhcnQgYW5kIGVuZCB3aXRoIGFuIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXIsIGNhbiBjb250YWluIGh5cGhlbnMsIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBhbmQgc2xhc2hlcy4aDHRoaXMuaXNVcmkoKRIlCgpwdWJsaWNfa2V5GAIgASgLMhEucG9saWN5LlB1YmxpY0tleRI0Cgtzb3VyY2VfdHlwZRgDIAEoDjISLnBvbGljeS5Tb3VyY2VUeXBlQgu6SAjIAQCCAQIQARK7AgoEbmFtZRgUIAEoCUKsArpIqAK6AZwCCg9rYXNfbmFtZV9mb3JtYXQSswFSZWdpc3RlcmVkIEtBUyBuYW1lIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucywgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIEtBUyBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpTc2l6ZSh0aGlzKSA+IDAgPyB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKSA6IHRydWXIAQByAxj9ARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUiUwodQ3JlYXRlS2V5QWNjZXNzU2VydmVyUmVzcG9uc2USMgoRa2V5X2FjY2Vzc19zZXJ2ZXIYASABKAsyFy5wb2xpY3kuS2V5QWNjZXNzU2VydmVyIt0GChxVcGRhdGVLZXlBY2Nlc3NTZXJ2ZXJSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARKnAgoDdXJpGAIgASgJQpkCukiVAroBkQIKE29wdGlvbmFsX3VyaV9mb3JtYXQS2AFPcHRpb25hbCBVUkkgbXVzdCBiZSBhIHZhbGlkIFVSTCAoZS5nLiwgJ2h0dHBzOi8vZGVtby5jb20vJykgZm9sbG93ZWQgYnkgYWRkaXRpb25hbCBzZWdtZW50cy4gRWFjaCBzZWdtZW50IG11c3Qgc3RhcnQgYW5kIGVuZCB3aXRoIGFuIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXIsIGNhbiBjb250YWluIGh5cGhlbnMsIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBhbmQgc2xhc2hlcy4aH3NpemUodGhpcykgPT0gMCB8fCB0aGlzLmlzVXJpKCkSJQoKcHVibGljX2tleRgDIAEoCzIRLnBvbGljeS5QdWJsaWNLZXkSNAoLc291cmNlX3R5cGUYBCABKA4yEi5wb2xpY3kuU291cmNlVHlwZUILukgIyAEAggECEAEStgIKBG5hbWUYFCABKAlCpwK6SKMCugGXAgoPa2FzX25hbWVfZm9ybWF0ErMBUmVnaXN0ZXJlZCBLQVMgbmFtZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMsIGFuZCB1bmRlcnNjb3JlcyBidXQgbm90IGFzIHRoZSBmaXJzdCBvciBsYXN0IGNoYXJhY3Rlci4gVGhlIHN0b3JlZCBLQVMgbmFtZSB3aWxsIGJlIG5vcm1hbGl6ZWQgdG8gbG93ZXIgY2FzZS4aTnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKcgBAHIDGP0BEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZRI8ChhtZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IYZSABKA4yGi5jb21tb24uTWV0YWRhdGFVcGRhdGVFbnVtIlMKHVVwZGF0ZUtleUFjY2Vzc1NlcnZlclJlc3BvbnNlEjIKEWtleV9hY2Nlc3Nfc2VydmVyGAEgASgLMhcucG9saWN5LktleUFjY2Vzc1NlcnZlciI0ChxEZWxldGVLZXlBY2Nlc3NTZXJ2ZXJSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJTCh1EZWxldGVLZXlBY2Nlc3NTZXJ2ZXJSZXNwb25zZRIyChFrZXlfYWNjZXNzX3NlcnZlchgBIAEoCzIXLnBvbGljeS5LZXlBY2Nlc3NTZXJ2ZXIiLgoTR3JhbnRlZFBvbGljeU9iamVjdBIKCgJpZBgBIAEoCRILCgNmcW4YAiABKAkikAIKFUtleUFjY2Vzc1NlcnZlckdyYW50cxIyChFrZXlfYWNjZXNzX3NlcnZlchgBIAEoCzIXLnBvbGljeS5LZXlBY2Nlc3NTZXJ2ZXISQQoQbmFtZXNwYWNlX2dyYW50cxgCIAMoCzInLnBvbGljeS5rYXNyZWdpc3RyeS5HcmFudGVkUG9saWN5T2JqZWN0EkEKEGF0dHJpYnV0ZV9ncmFudHMYAyADKAsyJy5wb2xpY3kua2FzcmVnaXN0cnkuR3JhbnRlZFBvbGljeU9iamVjdBI9Cgx2YWx1ZV9ncmFudHMYBCADKAsyJy5wb2xpY3kua2FzcmVnaXN0cnkuR3JhbnRlZFBvbGljeU9iamVjdCKIAQoWQ3JlYXRlUHVibGljS2V5UmVxdWVzdBIYCgZrYXNfaWQYASABKAlCCLpIBXIDsAEBEikKA2tleRgCIAEoCzIULnBvbGljeS5LYXNQdWJsaWNLZXlCBrpIA8gBARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUiMwoXQ3JlYXRlUHVibGljS2V5UmVzcG9uc2USGAoDa2V5GAEgASgLMgsucG9saWN5LktleSI7ChNHZXRQdWJsaWNLZXlSZXF1ZXN0EhYKAmlkGAEgASgJQgi6SAVyA7ABAUgAQgwKCmlkZW50aWZpZXIiMAoUR2V0UHVibGljS2V5UmVzcG9uc2USGAoDa2V5GAEgASgLMgsucG9saWN5LktleSKmAQoVTGlzdFB1YmxpY0tleXNSZXF1ZXN0EhoKBmthc19pZBgBIAEoCUIIukgFcgOwAQFIABIbCghrYXNfbmFtZRgCIAEoCUIHukgEcgIQAUgAEh0KB2thc191cmkYAyABKAlCCrpIB3IFEAGIAQFIABInCgpwYWdpbmF0aW9uGAogASgLMhMucG9saWN5LlBhZ2VSZXF1ZXN0QgwKCmthc19maWx0ZXIiXQoWTGlzdFB1YmxpY0tleXNSZXNwb25zZRIZCgRrZXlzGAEgAygLMgsucG9saWN5LktleRIoCgpwYWdpbmF0aW9uGAogASgLMhQucG9saWN5LlBhZ2VSZXNwb25zZSLQAQobTGlzdFB1YmxpY0tleU1hcHBpbmdSZXF1ZXN0EhoKBmthc19pZBgBIAEoCUIIukgFcgOwAQFIABIbCghrYXNfbmFtZRgCIAEoCUIHukgEcgIQAUgAEh0KB2thc191cmkYAyABKAlCCrpIB3IFEAGIAQFIABIiCg1wdWJsaWNfa2V5X2lkGAQgASgJQgu6SAjYAQFyA7ABARInCgpwYWdpbmF0aW9uGAogASgLMhMucG9saWN5LlBhZ2VSZXF1ZXN0QgwKCmthc19maWx0ZXIihAUKHExpc3RQdWJsaWNLZXlNYXBwaW5nUmVzcG9uc2USXgoTcHVibGljX2tleV9tYXBwaW5ncxgBIAMoCzJBLnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0UHVibGljS2V5TWFwcGluZ1Jlc3BvbnNlLlB1YmxpY0tleU1hcHBpbmcSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2UalgEKEFB1YmxpY0tleU1hcHBpbmcSDgoGa2FzX2lkGAIgASgJEhAKCGthc19uYW1lGAMgASgJEg8KB2thc191cmkYBCABKAkSTwoLcHVibGljX2tleXMYBSADKAsyOi5wb2xpY3kua2FzcmVnaXN0cnkuTGlzdFB1YmxpY0tleU1hcHBpbmdSZXNwb25zZS5QdWJsaWNLZXkamAIKCVB1YmxpY0tleRIYCgNrZXkYASABKAsyCy5wb2xpY3kuS2V5EkwKBnZhbHVlcxgGIAMoCzI8LnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0UHVibGljS2V5TWFwcGluZ1Jlc3BvbnNlLkFzc29jaWF0aW9uElEKC2RlZmluaXRpb25zGAcgAygLMjwucG9saWN5Lmthc3JlZ2lzdHJ5Lkxpc3RQdWJsaWNLZXlNYXBwaW5nUmVzcG9uc2UuQXNzb2NpYXRpb24SUAoKbmFtZXNwYWNlcxgIIAMoCzI8LnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0UHVibGljS2V5TWFwcGluZ1Jlc3BvbnNlLkFzc29jaWF0aW9uGiYKC0Fzc29jaWF0aW9uEgoKAmlkGAEgASgJEgsKA2ZxbhgCIAEoCSKXAQoWVXBkYXRlUHVibGljS2V5UmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlEjwKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchhlIAEoDjIaLmNvbW1vbi5NZXRhZGF0YVVwZGF0ZUVudW0iMwoXVXBkYXRlUHVibGljS2V5UmVzcG9uc2USGAoDa2V5GAEgASgLMgsucG9saWN5LktleSIyChpEZWFjdGl2YXRlUHVibGljS2V5UmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiNwobRGVhY3RpdmF0ZVB1YmxpY0tleVJlc3BvbnNlEhgKA2tleRgBIAEoCzILLnBvbGljeS5LZXkiMAoYQWN0aXZhdGVQdWJsaWNLZXlSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASI1ChlBY3RpdmF0ZVB1YmxpY0tleVJlc3BvbnNlEhgKA2tleRgBIAEoCzILLnBvbGljeS5LZXkigQcKIExpc3RLZXlBY2Nlc3NTZXJ2ZXJHcmFudHNSZXF1ZXN0EsQBCgZrYXNfaWQYASABKAlCswG6SK8BugGrAQoUb3B0aW9uYWxfdXVpZF9mb3JtYXQSI09wdGlvbmFsIGZpZWxkIG11c3QgYmUgYSB2YWxpZCBVVUlEGm5zaXplKHRoaXMpID09IDAgfHwgdGhpcy5tYXRjaGVzKCdbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0nKRKrAgoHa2FzX3VyaRgCIAEoCUKZArpIlQK6AZECChNvcHRpb25hbF91cmlfZm9ybWF0EtgBT3B0aW9uYWwgVVJJIG11c3QgYmUgYSB2YWxpZCBVUkwgKGUuZy4sICdodHRwczovL2RlbW8uY29tLycpIGZvbGxvd2VkIGJ5IGFkZGl0aW9uYWwgc2VnbWVudHMuIEVhY2ggc2VnbWVudCBtdXN0IHN0YXJ0IGFuZCBlbmQgd2l0aCBhbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVyLCBjYW4gY29udGFpbiBoeXBoZW5zLCBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgYW5kIHNsYXNoZXMuGh9zaXplKHRoaXMpID09IDAgfHwgdGhpcy5pc1VyaSgpEroCCghrYXNfbmFtZRgDIAEoCUKnArpIowK6AZcCCg9rYXNfbmFtZV9mb3JtYXQSswFSZWdpc3RlcmVkIEtBUyBuYW1lIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucywgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIEtBUyBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpOc2l6ZSh0aGlzKSA9PSAwIHx8IHRoaXMubWF0Y2hlcygnXlthLXpBLVowLTldKD86W2EtekEtWjAtOV8tXSpbYS16QS1aMC05XSk/JCcpyAEAcgMY/QESJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdDoCGAEikAEKIUxpc3RLZXlBY2Nlc3NTZXJ2ZXJHcmFudHNSZXNwb25zZRI9CgZncmFudHMYASADKAsyKS5wb2xpY3kua2FzcmVnaXN0cnkuS2V5QWNjZXNzU2VydmVyR3JhbnRzQgIYARIoCgpwYWdpbmF0aW9uGAogASgLMhQucG9saWN5LlBhZ2VSZXNwb25zZToCGAEi9wsKEENyZWF0ZUtleVJlcXVlc3QSGAoGa2FzX2lkGAEgASgJQgi6SAVyA7ABARIXCgZrZXlfaWQYAiABKAlCB7pIBHICEAESpwEKDWtleV9hbGdvcml0aG0YAyABKA4yES5wb2xpY3kuQWxnb3JpdGhtQn26SHq6AXcKFWtleV9hbGdvcml0aG1fZGVmaW5lZBI0VGhlIGtleV9hbGdvcml0aG0gbXVzdCBiZSBvbmUgb2YgdGhlIGRlZmluZWQgdmFsdWVzLhoodGhpcyBpbiBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgMjAsIDIxXRKKAQoIa2V5X21vZGUYBCABKA4yDy5wb2xpY3kuS2V5TW9kZUJnukhkugFhChBrZXlfbW9kZV9kZWZpbmVkEjVUaGUga2V5X21vZGUgbXVzdCBiZSBvbmUgb2YgdGhlIGRlZmluZWQgdmFsdWVzICgxLTQpLhoWdGhpcyA+PSAxICYmIHRoaXMgPD0gNBI0Cg5wdWJsaWNfa2V5X2N0eBgFIAEoCzIULnBvbGljeS5QdWJsaWNLZXlDdHhCBrpIA8gBARIuCg9wcml2YXRlX2tleV9jdHgYBiABKAsyFS5wb2xpY3kuUHJpdmF0ZUtleUN0eBIaChJwcm92aWRlcl9jb25maWdfaWQYByABKAkSDgoGbGVnYWN5GAggASgIEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZTq7B7pItwcalwMKI3ByaXZhdGVfa2V5X2N0eF9vcHRpb25hbGx5X3JlcXVpcmVkErwBVGhlIHdyYXBwZWRfa2V5IGlzIHJlcXVpcmVkIGlmIGtleV9tb2RlIGlzIEtFWV9NT0RFX0NPTkZJR19ST09UX0tFWSBvciBLRVlfTU9ERV9QUk9WSURFUl9ST09UX0tFWS4gVGhlIHdyYXBwZWRfa2V5IG11c3QgYmUgZW1wdHkgaWYga2V5X21vZGUgaXMgS0VZX01PREVfUkVNT1RFIG9yIEtFWV9NT0RFX1BVQkxJQ19LRVlfT05MWS4asAEoKHRoaXMua2V5X21vZGUgPT0gMSB8fCB0aGlzLmtleV9tb2RlID09IDIpICYmIHRoaXMucHJpdmF0ZV9rZXlfY3R4LndyYXBwZWRfa2V5ICE9ICcnKSB8fCAoKHRoaXMua2V5X21vZGUgPT0gMyB8fCB0aGlzLmtleV9tb2RlID09IDQpICYmIHRoaXMucHJpdmF0ZV9rZXlfY3R4LndyYXBwZWRfa2V5ID09ICcnKRr0AgomcHJvdmlkZXJfY29uZmlnX2lkX29wdGlvbmFsbHlfcmVxdWlyZWQSqAFQcm92aWRlciBjb25maWcgaWQgaXMgcmVxdWlyZWQgaWYga2V5X21vZGUgaXMgS0VZX01PREVfUFJPVklERVJfUk9PVF9LRVkgb3IgS0VZX01PREVfUkVNT1RFLiBJdCBtdXN0IGJlIGVtcHR5IGZvciBLRVlfTU9ERV9DT05GSUdfUk9PVF9LRVkgYW5kIEtFWV9NT0RFX1BVQkxJQ19LRVlfT05MWS4angEoKHRoaXMua2V5X21vZGUgPT0gMSB8fCB0aGlzLmtleV9tb2RlID09IDQpICYmIHRoaXMucHJvdmlkZXJfY29uZmlnX2lkID09ICcnKSB8fCAoKHRoaXMua2V5X21vZGUgPT0gMiB8fCB0aGlzLmtleV9tb2RlID09IDMpICYmIHRoaXMucHJvdmlkZXJfY29uZmlnX2lkICE9ICcnKRqjAQojcHJpdmF0ZV9rZXlfY3R4X2Zvcl9wdWJsaWNfa2V5X29ubHkSSHByaXZhdGVfa2V5X2N0eCBtdXN0IG5vdCBiZSBzZXQgaWYga2V5X21vZGUgaXMgS0VZX01PREVfUFVCTElDX0tFWV9PTkxZLhoyISh0aGlzLmtleV9tb2RlID09IDQgJiYgaGFzKHRoaXMucHJpdmF0ZV9rZXlfY3R4KSkiNAoRQ3JlYXRlS2V5UmVzcG9uc2USHwoHa2FzX2tleRgBIAEoCzIOLnBvbGljeS5LYXNLZXkicQoNR2V0S2V5UmVxdWVzdBIWCgJpZBgCIAEoCUIIukgFcgOwAQFIABIzCgNrZXkYAyABKAsyJC5wb2xpY3kua2FzcmVnaXN0cnkuS2FzS2V5SWRlbnRpZmllckgAQhMKCmlkZW50aWZpZXISBbpIAggBIjEKDkdldEtleVJlc3BvbnNlEh8KB2thc19rZXkYASABKAsyDi5wb2xpY3kuS2FzS2V5IscDCg9MaXN0S2V5c1JlcXVlc3QSqwEKDWtleV9hbGdvcml0aG0YASABKA4yES5wb2xpY3kuQWxnb3JpdGhtQoABukh9ugF6ChVrZXlfYWxnb3JpdGhtX2RlZmluZWQSNFRoZSBrZXlfYWxnb3JpdGhtIG11c3QgYmUgb25lIG9mIHRoZSBkZWZpbmVkIHZhbHVlcy4aK3RoaXMgaW4gWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDIwLCAyMV0SGgoGa2FzX2lkGAIgASgJQgi6SAVyA7ABAUgAEhsKCGthc19uYW1lGAMgASgJQge6SARyAhABSAASHQoHa2FzX3VyaRgEIAEoCUIKukgHcgUQAYgBAUgAEhMKBmxlZ2FjeRgIIAEoCEgBiAEBEicKCnBhZ2luYXRpb24YCiABKAsyEy5wb2xpY3kuUGFnZVJlcXVlc3QSNwoEc29ydBgLIAMoCzIfLnBvbGljeS5rYXNyZWdpc3RyeS5LYXNLZXlzU29ydEIIukgFkgECEAESHgoGc2VhcmNoGAwgASgLMg4ucG9saWN5LlNlYXJjaEIMCgprYXNfZmlsdGVyQgkKB19sZWdhY3kiXgoQTGlzdEtleXNSZXNwb25zZRIgCghrYXNfa2V5cxgBIAMoCzIOLnBvbGljeS5LYXNLZXkSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2Ui4AIKEFVwZGF0ZUtleVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZRI8ChhtZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IYZSABKA4yGi5jb21tb24uTWV0YWRhdGFVcGRhdGVFbnVtOswBukjIARrFAQoYbWV0YWRhdGFfdXBkYXRlX2JlaGF2aW9yElJNZXRhZGF0YSB1cGRhdGUgYmVoYXZpb3IgbXVzdCBiZSBlaXRoZXIgQVBQRU5EIG9yIFJFUExBQ0UsIHdoZW4gdXBkYXRpbmcgbWV0YWRhdGEuGlUoKCFoYXModGhpcy5tZXRhZGF0YSkpIHx8IChoYXModGhpcy5tZXRhZGF0YSkgJiYgdGhpcy5tZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IgIT0gMCkpIjQKEVVwZGF0ZUtleVJlc3BvbnNlEh8KB2thc19rZXkYASABKAsyDi5wb2xpY3kuS2FzS2V5Io0BChBLYXNLZXlJZGVudGlmaWVyEhoKBmthc19pZBgCIAEoCUIIukgFcgOwAQFIABIXCgRuYW1lGAMgASgJQge6SARyAhABSAASGQoDdXJpGAQgASgJQgq6SAdyBRABiAEBSAASFAoDa2lkGAUgASgJQge6SARyAhABQhMKCmlkZW50aWZpZXISBbpIAggBIpEOChBSb3RhdGVLZXlSZXF1ZXN0EhYKAmlkGAEgASgJQgi6SAVyA7ABAUgAEjMKA2tleRgCIAEoCzIkLnBvbGljeS5rYXNyZWdpc3RyeS5LYXNLZXlJZGVudGlmaWVySAASPAoHbmV3X2tleRgDIAEoCzIrLnBvbGljeS5rYXNyZWdpc3RyeS5Sb3RhdGVLZXlSZXF1ZXN0Lk5ld0tleRqMBAoGTmV3S2V5EhcKBmtleV9pZBgBIAEoCUIHukgEcgIQARKjAQoJYWxnb3JpdGhtGAIgASgOMhEucG9saWN5LkFsZ29yaXRobUJ9ukh6ugF3ChVrZXlfYWxnb3JpdGhtX2RlZmluZWQSNFRoZSBrZXlfYWxnb3JpdGhtIG11c3QgYmUgb25lIG9mIHRoZSBkZWZpbmVkIHZhbHVlcy4aKHRoaXMgaW4gWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDIwLCAyMV0SlQEKCGtleV9tb2RlGAMgASgOMg8ucG9saWN5LktleU1vZGVCcrpIb7oBZwoUbmV3X2tleV9tb2RlX2RlZmluZWQSOVRoZSBuZXcga2V5X21vZGUgbXVzdCBiZSBvbmUgb2YgdGhlIGRlZmluZWQgdmFsdWVzICgxLTQpLhoUdGhpcyBpbiBbMSwgMiwgMywgNF2CAQIQARI0Cg5wdWJsaWNfa2V5X2N0eBgEIAEoCzIULnBvbGljeS5QdWJsaWNLZXlDdHhCBrpIA8gBARIuCg9wcml2YXRlX2tleV9jdHgYBSABKAsyFS5wb2xpY3kuUHJpdmF0ZUtleUN0eBIaChJwcm92aWRlcl9jb25maWdfaWQYBiABKAkSKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlOs0IukjJCBrYAwojcHJpdmF0ZV9rZXlfY3R4X29wdGlvbmFsbHlfcmVxdWlyZWQSzQFGb3IgdGhlIG5ldyBrZXksIHRoZSB3cmFwcGVkX2tleSBpcyByZXF1aXJlZCBpZiBrZXlfbW9kZSBpcyBLRVlfTU9ERV9DT05GSUdfUk9PVF9LRVkgb3IgS0VZX01PREVfUFJPVklERVJfUk9PVF9LRVkuIFRoZSB3cmFwcGVkX2tleSBtdXN0IGJlIGVtcHR5IGlmIGtleV9tb2RlIGlzIEtFWV9NT0RFX1JFTU9URSBvciBLRVlfTU9ERV9QVUJMSUNfS0VZX09OTFkuGuABKCh0aGlzLm5ld19rZXkua2V5X21vZGUgPT0gMSB8fCB0aGlzLm5ld19rZXkua2V5X21vZGUgPT0gMikgJiYgdGhpcy5uZXdfa2V5LnByaXZhdGVfa2V5X2N0eC53cmFwcGVkX2tleSAhPSAnJykgfHwgKCh0aGlzLm5ld19rZXkua2V5X21vZGUgPT0gMyB8fCB0aGlzLm5ld19rZXkua2V5X21vZGUgPT0gNCkgJiYgdGhpcy5uZXdfa2V5LnByaXZhdGVfa2V5X2N0eC53cmFwcGVkX2tleSA9PSAnJykatQMKJnByb3ZpZGVyX2NvbmZpZ19pZF9vcHRpb25hbGx5X3JlcXVpcmVkErkBRm9yIHRoZSBuZXcga2V5LCBwcm92aWRlciBjb25maWcgaWQgaXMgcmVxdWlyZWQgaWYga2V5X21vZGUgaXMgS0VZX01PREVfUFJPVklERVJfUk9PVF9LRVkgb3IgS0VZX01PREVfUkVNT1RFLiBJdCBtdXN0IGJlIGVtcHR5IGZvciBLRVlfTU9ERV9DT05GSUdfUk9PVF9LRVkgYW5kIEtFWV9NT0RFX1BVQkxJQ19LRVlfT05MWS4azgEoKHRoaXMubmV3X2tleS5rZXlfbW9kZSA9PSAxIHx8IHRoaXMubmV3X2tleS5rZXlfbW9kZSA9PSA0KSAmJiB0aGlzLm5ld19rZXkucHJvdmlkZXJfY29uZmlnX2lkID09ICcnKSB8fCAoKHRoaXMubmV3X2tleS5rZXlfbW9kZSA9PSAyIHx8IHRoaXMubmV3X2tleS5rZXlfbW9kZSA9PSAzKSAmJiB0aGlzLm5ld19rZXkucHJvdmlkZXJfY29uZmlnX2lkICE9ICcnKRqzAQojcHJpdmF0ZV9rZXlfY3R4X2Zvcl9wdWJsaWNfa2V5X29ubHkSSHByaXZhdGVfa2V5X2N0eCBtdXN0IG5vdCBiZSBzZXQgaWYga2V5X21vZGUgaXMgS0VZX01PREVfUFVCTElDX0tFWV9PTkxZLhpCISh0aGlzLm5ld19rZXkua2V5X21vZGUgPT0gNCAmJiBoYXModGhpcy5uZXdfa2V5LnByaXZhdGVfa2V5X2N0eCkpQhMKCmFjdGl2ZV9rZXkSBbpIAggBIikKDkNoYW5nZU1hcHBpbmdzEgoKAmlkGAEgASgJEgsKA2ZxbhgCIAEoCSKMAgoQUm90YXRlZFJlc291cmNlcxInCg9yb3RhdGVkX291dF9rZXkYASABKAsyDi5wb2xpY3kuS2FzS2V5EkkKHWF0dHJpYnV0ZV9kZWZpbml0aW9uX21hcHBpbmdzGAIgAygLMiIucG9saWN5Lmthc3JlZ2lzdHJ5LkNoYW5nZU1hcHBpbmdzEkQKGGF0dHJpYnV0ZV92YWx1ZV9tYXBwaW5ncxgDIAMoCzIiLnBvbGljeS5rYXNyZWdpc3RyeS5DaGFuZ2VNYXBwaW5ncxI+ChJuYW1lc3BhY2VfbWFwcGluZ3MYBCADKAsyIi5wb2xpY3kua2FzcmVnaXN0cnkuQ2hhbmdlTWFwcGluZ3MidQoRUm90YXRlS2V5UmVzcG9uc2USHwoHa2FzX2tleRgBIAEoCzIOLnBvbGljeS5LYXNLZXkSPwoRcm90YXRlZF9yZXNvdXJjZXMYAiABKAsyJC5wb2xpY3kua2FzcmVnaXN0cnkuUm90YXRlZFJlc291cmNlcyJ1ChFTZXRCYXNlS2V5UmVxdWVzdBIWCgJpZBgBIAEoCUIIukgFcgOwAQFIABIzCgNrZXkYAiABKAsyJC5wb2xpY3kua2FzcmVnaXN0cnkuS2FzS2V5SWRlbnRpZmllckgAQhMKCmFjdGl2ZV9rZXkSBbpIAggBIhMKEUdldEJhc2VLZXlSZXF1ZXN0IjwKEkdldEJhc2VLZXlSZXNwb25zZRImCghiYXNlX2tleRgBIAEoCzIULnBvbGljeS5TaW1wbGVLYXNLZXkicQoSU2V0QmFzZUtleVJlc3BvbnNlEioKDG5ld19iYXNlX2tleRgBIAEoCzIULnBvbGljeS5TaW1wbGVLYXNLZXkSLwoRcHJldmlvdXNfYmFzZV9rZXkYAiABKAsyFC5wb2xpY3kuU2ltcGxlS2FzS2V5Ii0KEk1hcHBlZFBvbGljeU9iamVjdBIKCgJpZBgBIAEoCRILCgNmcW4YAiABKAki8gEKCktleU1hcHBpbmcSCwoDa2lkGAEgASgJEg8KB2thc191cmkYAiABKAkSQgoSbmFtZXNwYWNlX21hcHBpbmdzGAMgAygLMiYucG9saWN5Lmthc3JlZ2lzdHJ5Lk1hcHBlZFBvbGljeU9iamVjdBJCChJhdHRyaWJ1dGVfbWFwcGluZ3MYBCADKAsyJi5wb2xpY3kua2FzcmVnaXN0cnkuTWFwcGVkUG9saWN5T2JqZWN0Ej4KDnZhbHVlX21hcHBpbmdzGAUgAygLMiYucG9saWN5Lmthc3JlZ2lzdHJ5Lk1hcHBlZFBvbGljeU9iamVjdCKjAQoWTGlzdEtleU1hcHBpbmdzUmVxdWVzdBIWCgJpZBgCIAEoCUIIukgFcgOwAQFIABIzCgNrZXkYAyABKAsyJC5wb2xpY3kua2FzcmVnaXN0cnkuS2FzS2V5SWRlbnRpZmllckgAEicKCnBhZ2luYXRpb24YCiABKAsyEy5wb2xpY3kuUGFnZVJlcXVlc3RCEwoKaWRlbnRpZmllchIFukgCCAAieQoXTGlzdEtleU1hcHBpbmdzUmVzcG9uc2USNAoMa2V5X21hcHBpbmdzGAEgAygLMh4ucG9saWN5Lmthc3JlZ2lzdHJ5LktleU1hcHBpbmcSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2Uq7wEKGFNvcnRLZXlBY2Nlc3NTZXJ2ZXJzVHlwZRIsCihTT1JUX0tFWV9BQ0NFU1NfU0VSVkVSU19UWVBFX1VOU1BFQ0lGSUVEEAASJQohU09SVF9LRVlfQUNDRVNTX1NFUlZFUlNfVFlQRV9OQU1FEAESJAogU09SVF9LRVlfQUNDRVNTX1NFUlZFUlNfVFlQRV9VUkkQAhIrCidTT1JUX0tFWV9BQ0NFU1NfU0VSVkVSU19UWVBFX0NSRUFURURfQVQQAxIrCidTT1JUX0tFWV9BQ0NFU1NfU0VSVkVSU19UWVBFX1VQREFURURfQVQQBCq9AQoPU29ydEthc0tleXNUeXBlEiIKHlNPUlRfS0FTX0tFWVNfVFlQRV9VTlNQRUNJRklFRBAAEh0KGVNPUlRfS0FTX0tFWVNfVFlQRV9LRVlfSUQQARIhCh1TT1JUX0tBU19LRVlTX1RZUEVfQ1JFQVRFRF9BVBACEiEKHVNPUlRfS0FTX0tFWVNfVFlQRV9VUERBVEVEX0FUEAMSIQodU09SVF9LQVNfS0VZU19UWVBFX0tFWV9TVEFUVVMQBDKZDAoeS2V5QWNjZXNzU2VydmVyUmVnaXN0cnlTZXJ2aWNlEn4KFExpc3RLZXlBY2Nlc3NTZXJ2ZXJzEi8ucG9saWN5Lmthc3JlZ2lzdHJ5Lkxpc3RLZXlBY2Nlc3NTZXJ2ZXJzUmVxdWVzdBowLnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0S2V5QWNjZXNzU2VydmVyc1Jlc3BvbnNlIgOQAgESeAoSR2V0S2V5QWNjZXNzU2VydmVyEi0ucG9saWN5Lmthc3JlZ2lzdHJ5LkdldEtleUFjY2Vzc1NlcnZlclJlcXVlc3QaLi5wb2xpY3kua2FzcmVnaXN0cnkuR2V0S2V5QWNjZXNzU2VydmVyUmVzcG9uc2UiA5ACARJ+ChVDcmVhdGVLZXlBY2Nlc3NTZXJ2ZXISMC5wb2xpY3kua2FzcmVnaXN0cnkuQ3JlYXRlS2V5QWNjZXNzU2VydmVyUmVxdWVzdBoxLnBvbGljeS5rYXNyZWdpc3RyeS5DcmVhdGVLZXlBY2Nlc3NTZXJ2ZXJSZXNwb25zZSIAEn4KFVVwZGF0ZUtleUFjY2Vzc1NlcnZlchIwLnBvbGljeS5rYXNyZWdpc3RyeS5VcGRhdGVLZXlBY2Nlc3NTZXJ2ZXJSZXF1ZXN0GjEucG9saWN5Lmthc3JlZ2lzdHJ5LlVwZGF0ZUtleUFjY2Vzc1NlcnZlclJlc3BvbnNlIgASfgoVRGVsZXRlS2V5QWNjZXNzU2VydmVyEjAucG9saWN5Lmthc3JlZ2lzdHJ5LkRlbGV0ZUtleUFjY2Vzc1NlcnZlclJlcXVlc3QaMS5wb2xpY3kua2FzcmVnaXN0cnkuRGVsZXRlS2V5QWNjZXNzU2VydmVyUmVzcG9uc2UiABKQAQoZTGlzdEtleUFjY2Vzc1NlcnZlckdyYW50cxI0LnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0S2V5QWNjZXNzU2VydmVyR3JhbnRzUmVxdWVzdBo1LnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0S2V5QWNjZXNzU2VydmVyR3JhbnRzUmVzcG9uc2UiBogCAZACARJaCglDcmVhdGVLZXkSJC5wb2xpY3kua2FzcmVnaXN0cnkuQ3JlYXRlS2V5UmVxdWVzdBolLnBvbGljeS5rYXNyZWdpc3RyeS5DcmVhdGVLZXlSZXNwb25zZSIAElEKBkdldEtleRIhLnBvbGljeS5rYXNyZWdpc3RyeS5HZXRLZXlSZXF1ZXN0GiIucG9saWN5Lmthc3JlZ2lzdHJ5LkdldEtleVJlc3BvbnNlIgASVwoITGlzdEtleXMSIy5wb2xpY3kua2FzcmVnaXN0cnkuTGlzdEtleXNSZXF1ZXN0GiQucG9saWN5Lmthc3JlZ2lzdHJ5Lkxpc3RLZXlzUmVzcG9uc2UiABJaCglVcGRhdGVLZXkSJC5wb2xpY3kua2FzcmVnaXN0cnkuVXBkYXRlS2V5UmVxdWVzdBolLnBvbGljeS5rYXNyZWdpc3RyeS5VcGRhdGVLZXlSZXNwb25zZSIAEloKCVJvdGF0ZUtleRIkLnBvbGljeS5rYXNyZWdpc3RyeS5Sb3RhdGVLZXlSZXF1ZXN0GiUucG9saWN5Lmthc3JlZ2lzdHJ5LlJvdGF0ZUtleVJlc3BvbnNlIgASXQoKU2V0QmFzZUtleRIlLnBvbGljeS5rYXNyZWdpc3RyeS5TZXRCYXNlS2V5UmVxdWVzdBomLnBvbGljeS5rYXNyZWdpc3RyeS5TZXRCYXNlS2V5UmVzcG9uc2UiABJdCgpHZXRCYXNlS2V5EiUucG9saWN5Lmthc3JlZ2lzdHJ5LkdldEJhc2VLZXlSZXF1ZXN0GiYucG9saWN5Lmthc3JlZ2lzdHJ5LkdldEJhc2VLZXlSZXNwb25zZSIAEmwKD0xpc3RLZXlNYXBwaW5ncxIqLnBvbGljeS5rYXNyZWdpc3RyeS5MaXN0S2V5TWFwcGluZ3NSZXF1ZXN0GisucG9saWN5Lmthc3JlZ2lzdHJ5Lkxpc3RLZXlNYXBwaW5nc1Jlc3BvbnNlIgBiBnByb3RvMw", [file_buf_validate_validate, file_common_common, file_policy_objects, file_policy_selectors]); /** * @generated from message policy.kasregistry.GetKeyAccessServerRequest @@ -1823,6 +1823,13 @@ export enum SortKasKeysType { * @generated from enum value: SORT_KAS_KEYS_TYPE_UPDATED_AT = 3; */ UPDATED_AT = 3, + + /** + * Orders alphabetically by policy.KeyStatus name. + * + * @generated from enum value: SORT_KAS_KEYS_TYPE_KEY_STATUS = 4; + */ + KEY_STATUS = 4, } /** diff --git a/lib/src/platform/policy/keymanagement/key_management_pb.ts b/lib/src/platform/policy/keymanagement/key_management_pb.ts index 6840f1971..d8edac51d 100644 --- a/lib/src/platform/policy/keymanagement/key_management_pb.ts +++ b/lib/src/platform/policy/keymanagement/key_management_pb.ts @@ -17,7 +17,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file policy/keymanagement/key_management.proto. */ export const file_policy_keymanagement_key_management: GenFile = /*@__PURE__*/ - fileDesc("Cilwb2xpY3kva2V5bWFuYWdlbWVudC9rZXlfbWFuYWdlbWVudC5wcm90bxIUcG9saWN5LmtleW1hbmFnZW1lbnQilAEKG0NyZWF0ZVByb3ZpZGVyQ29uZmlnUmVxdWVzdBIUCgRuYW1lGAEgASgJQga6SAPIAQESGwoLY29uZmlnX2pzb24YAiABKAxCBrpIA8gBARIXCgdtYW5hZ2VyGAMgASgJQga6SAPIAQESKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlIlIKHENyZWF0ZVByb3ZpZGVyQ29uZmlnUmVzcG9uc2USMgoPcHJvdmlkZXJfY29uZmlnGAEgASgLMhkucG9saWN5LktleVByb3ZpZGVyQ29uZmlnInkKGEdldFByb3ZpZGVyQ29uZmlnUmVxdWVzdBIWCgJpZBgCIAEoCUIIukgFcgOwAQFIABIXCgRuYW1lGAMgASgJQge6SARyAhABSAASFwoHbWFuYWdlchgEIAEoCUIGukgDyAEAQhMKCmlkZW50aWZpZXISBbpIAggBIk8KGUdldFByb3ZpZGVyQ29uZmlnUmVzcG9uc2USMgoPcHJvdmlkZXJfY29uZmlnGAEgASgLMhkucG9saWN5LktleVByb3ZpZGVyQ29uZmlnIkUKGkxpc3RQcm92aWRlckNvbmZpZ3NSZXF1ZXN0EicKCnBhZ2luYXRpb24YCiABKAsyEy5wb2xpY3kuUGFnZVJlcXVlc3QifAobTGlzdFByb3ZpZGVyQ29uZmlnc1Jlc3BvbnNlEjMKEHByb3ZpZGVyX2NvbmZpZ3MYASADKAsyGS5wb2xpY3kuS2V5UHJvdmlkZXJDb25maWcSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2Ui6AEKG1VwZGF0ZVByb3ZpZGVyQ29uZmlnUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESFAoEbmFtZRgCIAEoCUIGukgDyAEAEhsKC2NvbmZpZ19qc29uGAMgASgMQga6SAPIAQASFwoHbWFuYWdlchgEIAEoCUIGukgDyAEAEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZRI8ChhtZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IYZSABKA4yGi5jb21tb24uTWV0YWRhdGFVcGRhdGVFbnVtIlIKHFVwZGF0ZVByb3ZpZGVyQ29uZmlnUmVzcG9uc2USMgoPcHJvdmlkZXJfY29uZmlnGAEgASgLMhkucG9saWN5LktleVByb3ZpZGVyQ29uZmlnIjMKG0RlbGV0ZVByb3ZpZGVyQ29uZmlnUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiUgocRGVsZXRlUHJvdmlkZXJDb25maWdSZXNwb25zZRIyCg9wcm92aWRlcl9jb25maWcYASABKAsyGS5wb2xpY3kuS2V5UHJvdmlkZXJDb25maWcyjwUKFEtleU1hbmFnZW1lbnRTZXJ2aWNlEn8KFENyZWF0ZVByb3ZpZGVyQ29uZmlnEjEucG9saWN5LmtleW1hbmFnZW1lbnQuQ3JlYXRlUHJvdmlkZXJDb25maWdSZXF1ZXN0GjIucG9saWN5LmtleW1hbmFnZW1lbnQuQ3JlYXRlUHJvdmlkZXJDb25maWdSZXNwb25zZSIAEnYKEUdldFByb3ZpZGVyQ29uZmlnEi4ucG9saWN5LmtleW1hbmFnZW1lbnQuR2V0UHJvdmlkZXJDb25maWdSZXF1ZXN0Gi8ucG9saWN5LmtleW1hbmFnZW1lbnQuR2V0UHJvdmlkZXJDb25maWdSZXNwb25zZSIAEnwKE0xpc3RQcm92aWRlckNvbmZpZ3MSMC5wb2xpY3kua2V5bWFuYWdlbWVudC5MaXN0UHJvdmlkZXJDb25maWdzUmVxdWVzdBoxLnBvbGljeS5rZXltYW5hZ2VtZW50Lkxpc3RQcm92aWRlckNvbmZpZ3NSZXNwb25zZSIAEn8KFFVwZGF0ZVByb3ZpZGVyQ29uZmlnEjEucG9saWN5LmtleW1hbmFnZW1lbnQuVXBkYXRlUHJvdmlkZXJDb25maWdSZXF1ZXN0GjIucG9saWN5LmtleW1hbmFnZW1lbnQuVXBkYXRlUHJvdmlkZXJDb25maWdSZXNwb25zZSIAEn8KFERlbGV0ZVByb3ZpZGVyQ29uZmlnEjEucG9saWN5LmtleW1hbmFnZW1lbnQuRGVsZXRlUHJvdmlkZXJDb25maWdSZXF1ZXN0GjIucG9saWN5LmtleW1hbmFnZW1lbnQuRGVsZXRlUHJvdmlkZXJDb25maWdSZXNwb25zZSIAYgZwcm90bzM", [file_buf_validate_validate, file_common_common, file_policy_objects, file_policy_selectors]); + fileDesc("Cilwb2xpY3kva2V5bWFuYWdlbWVudC9rZXlfbWFuYWdlbWVudC5wcm90bxIUcG9saWN5LmtleW1hbmFnZW1lbnQilAEKG0NyZWF0ZVByb3ZpZGVyQ29uZmlnUmVxdWVzdBIUCgRuYW1lGAEgASgJQga6SAPIAQESGwoLY29uZmlnX2pzb24YAiABKAxCBrpIA8gBARIXCgdtYW5hZ2VyGAMgASgJQga6SAPIAQESKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlIlIKHENyZWF0ZVByb3ZpZGVyQ29uZmlnUmVzcG9uc2USMgoPcHJvdmlkZXJfY29uZmlnGAEgASgLMhkucG9saWN5LktleVByb3ZpZGVyQ29uZmlnIpECChhHZXRQcm92aWRlckNvbmZpZ1JlcXVlc3QSFgoCaWQYAiABKAlCCLpIBXIDsAEBSAASGQoEbmFtZRgDIAEoCUIJGAG6SARyAhABSAASUgoMbmFtZV9tYW5hZ2VyGAUgASgLMjoucG9saWN5LmtleW1hbmFnZW1lbnQuR2V0UHJvdmlkZXJDb25maWdSZXF1ZXN0Lk5hbWVNYW5hZ2VySAASGQoHbWFuYWdlchgEIAEoCUIIGAG6SAPIAQAaPgoLTmFtZU1hbmFnZXISFQoEbmFtZRgBIAEoCUIHukgEcgIQARIYCgdtYW5hZ2VyGAIgASgJQge6SARyAhABQhMKCmlkZW50aWZpZXISBbpIAggBIk8KGUdldFByb3ZpZGVyQ29uZmlnUmVzcG9uc2USMgoPcHJvdmlkZXJfY29uZmlnGAEgASgLMhkucG9saWN5LktleVByb3ZpZGVyQ29uZmlnIkUKGkxpc3RQcm92aWRlckNvbmZpZ3NSZXF1ZXN0EicKCnBhZ2luYXRpb24YCiABKAsyEy5wb2xpY3kuUGFnZVJlcXVlc3QifAobTGlzdFByb3ZpZGVyQ29uZmlnc1Jlc3BvbnNlEjMKEHByb3ZpZGVyX2NvbmZpZ3MYASADKAsyGS5wb2xpY3kuS2V5UHJvdmlkZXJDb25maWcSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2Ui6AEKG1VwZGF0ZVByb3ZpZGVyQ29uZmlnUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESFAoEbmFtZRgCIAEoCUIGukgDyAEAEhsKC2NvbmZpZ19qc29uGAMgASgMQga6SAPIAQASFwoHbWFuYWdlchgEIAEoCUIGukgDyAEAEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZRI8ChhtZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IYZSABKA4yGi5jb21tb24uTWV0YWRhdGFVcGRhdGVFbnVtIlIKHFVwZGF0ZVByb3ZpZGVyQ29uZmlnUmVzcG9uc2USMgoPcHJvdmlkZXJfY29uZmlnGAEgASgLMhkucG9saWN5LktleVByb3ZpZGVyQ29uZmlnIjMKG0RlbGV0ZVByb3ZpZGVyQ29uZmlnUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiUgocRGVsZXRlUHJvdmlkZXJDb25maWdSZXNwb25zZRIyCg9wcm92aWRlcl9jb25maWcYASABKAsyGS5wb2xpY3kuS2V5UHJvdmlkZXJDb25maWcyjwUKFEtleU1hbmFnZW1lbnRTZXJ2aWNlEn8KFENyZWF0ZVByb3ZpZGVyQ29uZmlnEjEucG9saWN5LmtleW1hbmFnZW1lbnQuQ3JlYXRlUHJvdmlkZXJDb25maWdSZXF1ZXN0GjIucG9saWN5LmtleW1hbmFnZW1lbnQuQ3JlYXRlUHJvdmlkZXJDb25maWdSZXNwb25zZSIAEnYKEUdldFByb3ZpZGVyQ29uZmlnEi4ucG9saWN5LmtleW1hbmFnZW1lbnQuR2V0UHJvdmlkZXJDb25maWdSZXF1ZXN0Gi8ucG9saWN5LmtleW1hbmFnZW1lbnQuR2V0UHJvdmlkZXJDb25maWdSZXNwb25zZSIAEnwKE0xpc3RQcm92aWRlckNvbmZpZ3MSMC5wb2xpY3kua2V5bWFuYWdlbWVudC5MaXN0UHJvdmlkZXJDb25maWdzUmVxdWVzdBoxLnBvbGljeS5rZXltYW5hZ2VtZW50Lkxpc3RQcm92aWRlckNvbmZpZ3NSZXNwb25zZSIAEn8KFFVwZGF0ZVByb3ZpZGVyQ29uZmlnEjEucG9saWN5LmtleW1hbmFnZW1lbnQuVXBkYXRlUHJvdmlkZXJDb25maWdSZXF1ZXN0GjIucG9saWN5LmtleW1hbmFnZW1lbnQuVXBkYXRlUHJvdmlkZXJDb25maWdSZXNwb25zZSIAEn8KFERlbGV0ZVByb3ZpZGVyQ29uZmlnEjEucG9saWN5LmtleW1hbmFnZW1lbnQuRGVsZXRlUHJvdmlkZXJDb25maWdSZXF1ZXN0GjIucG9saWN5LmtleW1hbmFnZW1lbnQuRGVsZXRlUHJvdmlkZXJDb25maWdSZXNwb25zZSIAYgZwcm90bzM", [file_buf_validate_validate, file_common_common, file_policy_objects, file_policy_selectors]); /** * @@ -99,16 +99,28 @@ export type GetProviderConfigRequest = Message<"policy.keymanagement.GetProvider case: "id"; } | { /** - * @generated from field: string name = 3; + * DEPRECATED, please use the NameManager and specify manager + name together. + * + * @generated from field: string name = 3 [deprecated = true]; + * @deprecated */ value: string; case: "name"; + } | { + /** + * Search by name and manager. + * + * @generated from field: policy.keymanagement.GetProviderConfigRequest.NameManager name_manager = 5; + */ + value: GetProviderConfigRequest_NameManager; + case: "nameManager"; } | { case: undefined; value?: undefined }; /** - * Optional - filter by manager type when searching by name + * DEPRECATED, please use the NameManager and specify manager + name together. * - * @generated from field: string manager = 4; + * @generated from field: string manager = 4 [deprecated = true]; + * @deprecated */ manager: string; }; @@ -120,6 +132,32 @@ export type GetProviderConfigRequest = Message<"policy.keymanagement.GetProvider export const GetProviderConfigRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_policy_keymanagement_key_management, 2); +/** + * @generated from message policy.keymanagement.GetProviderConfigRequest.NameManager + */ +export type GetProviderConfigRequest_NameManager = Message<"policy.keymanagement.GetProviderConfigRequest.NameManager"> & { + /** + * The name of the key provider + * + * @generated from field: string name = 1; + */ + name: string; + + /** + * The type of key manager. + * + * @generated from field: string manager = 2; + */ + manager: string; +}; + +/** + * Describes the message policy.keymanagement.GetProviderConfigRequest.NameManager. + * Use `create(GetProviderConfigRequest_NameManagerSchema)` to create a new message. + */ +export const GetProviderConfigRequest_NameManagerSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_keymanagement_key_management, 2, 0); + /** * @generated from message policy.keymanagement.GetProviderConfigResponse */ diff --git a/lib/src/platform/policy/objects_pb.ts b/lib/src/platform/policy/objects_pb.ts index d00281ce5..03dbaea4a 100644 --- a/lib/src/platform/policy/objects_pb.ts +++ b/lib/src/platform/policy/objects_pb.ts @@ -14,7 +14,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file policy/objects.proto. */ export const file_policy_objects: GenFile = /*@__PURE__*/ - fileDesc("ChRwb2xpY3kvb2JqZWN0cy5wcm90bxIGcG9saWN5IlQKElNpbXBsZUthc1B1YmxpY0tleRIkCglhbGdvcml0aG0YASABKA4yES5wb2xpY3kuQWxnb3JpdGhtEgsKA2tpZBgCIAEoCRILCgNwZW0YAyABKAkiXwoMU2ltcGxlS2FzS2V5Eg8KB2thc191cmkYASABKAkSLgoKcHVibGljX2tleRgCIAEoCzIaLnBvbGljeS5TaW1wbGVLYXNQdWJsaWNLZXkSDgoGa2FzX2lkGAMgASgJIncKEUtleVByb3ZpZGVyQ29uZmlnEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLY29uZmlnX2pzb24YAyABKAwSDwoHbWFuYWdlchgEIAEoCRIiCghtZXRhZGF0YRhkIAEoCzIQLmNvbW1vbi5NZXRhZGF0YSLTAQoJTmFtZXNwYWNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSCwoDZnFuGAMgASgJEioKBmFjdGl2ZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSIgoIbWV0YWRhdGEYBSABKAsyEC5jb21tb24uTWV0YWRhdGESJwoGZ3JhbnRzGAYgAygLMhcucG9saWN5LktleUFjY2Vzc1NlcnZlchImCghrYXNfa2V5cxgHIAMoCzIULnBvbGljeS5TaW1wbGVLYXNLZXkihwMKCUF0dHJpYnV0ZRIKCgJpZBgBIAEoCRIkCgluYW1lc3BhY2UYAiABKAsyES5wb2xpY3kuTmFtZXNwYWNlEgwKBG5hbWUYAyABKAkSOAoEcnVsZRgEIAEoDjIdLnBvbGljeS5BdHRyaWJ1dGVSdWxlVHlwZUVudW1CC7pICMgBAYIBAhABEh0KBnZhbHVlcxgFIAMoCzINLnBvbGljeS5WYWx1ZRInCgZncmFudHMYBiADKAsyFy5wb2xpY3kuS2V5QWNjZXNzU2VydmVyEgsKA2ZxbhgHIAEoCRIqCgZhY3RpdmUYCCABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEiYKCGthc19rZXlzGAkgAygLMhQucG9saWN5LlNpbXBsZUthc0tleRIzCg9hbGxvd190cmF2ZXJzYWwYCiABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEiIKCG1ldGFkYXRhGGQgASgLMhAuY29tbW9uLk1ldGFkYXRhIpQDCgVWYWx1ZRIKCgJpZBgBIAEoCRIkCglhdHRyaWJ1dGUYAiABKAsyES5wb2xpY3kuQXR0cmlidXRlEg0KBXZhbHVlGAMgASgJEicKBmdyYW50cxgFIAMoCzIXLnBvbGljeS5LZXlBY2Nlc3NTZXJ2ZXISCwoDZnFuGAYgASgJEioKBmFjdGl2ZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSMAoQc3ViamVjdF9tYXBwaW5ncxgIIAMoCzIWLnBvbGljeS5TdWJqZWN0TWFwcGluZxImCghrYXNfa2V5cxgJIAMoCzIULnBvbGljeS5TaW1wbGVLYXNLZXkSMgoRcmVzb3VyY2VfbWFwcGluZ3MYCiADKAsyFy5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nEicKC29ibGlnYXRpb25zGAsgAygLMhIucG9saWN5Lk9ibGlnYXRpb24SIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGFKBAgEEAVSB21lbWJlcnMiqAIKBkFjdGlvbhIKCgJpZBgDIAEoCRIxCghzdGFuZGFyZBgBIAEoDjIdLnBvbGljeS5BY3Rpb24uU3RhbmRhcmRBY3Rpb25IABIQCgZjdXN0b20YAiABKAlIABIMCgRuYW1lGAQgASgJEiQKCW5hbWVzcGFjZRgFIAEoCzIRLnBvbGljeS5OYW1lc3BhY2USIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEibAoOU3RhbmRhcmRBY3Rpb24SHwobU1RBTkRBUkRfQUNUSU9OX1VOU1BFQ0lGSUVEEAASGwoXU1RBTkRBUkRfQUNUSU9OX0RFQ1JZUFQQARIcChhTVEFOREFSRF9BQ1RJT05fVFJBTlNNSVQQAkIHCgV2YWx1ZSLrAQoOU3ViamVjdE1hcHBpbmcSCgoCaWQYASABKAkSJgoPYXR0cmlidXRlX3ZhbHVlGAIgASgLMg0ucG9saWN5LlZhbHVlEjoKFXN1YmplY3RfY29uZGl0aW9uX3NldBgDIAEoCzIbLnBvbGljeS5TdWJqZWN0Q29uZGl0aW9uU2V0Eh8KB2FjdGlvbnMYBCADKAsyDi5wb2xpY3kuQWN0aW9uEiQKCW5hbWVzcGFjZRgFIAEoCzIRLnBvbGljeS5OYW1lc3BhY2USIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEiqgEKCUNvbmRpdGlvbhIvCh9zdWJqZWN0X2V4dGVybmFsX3NlbGVjdG9yX3ZhbHVlGAEgASgJQga6SAPIAQESQQoIb3BlcmF0b3IYAiABKA4yIi5wb2xpY3kuU3ViamVjdE1hcHBpbmdPcGVyYXRvckVudW1CC7pICMgBAYIBAhABEikKF3N1YmplY3RfZXh0ZXJuYWxfdmFsdWVzGAMgAygJQgi6SAWSAQIIASKKAQoOQ29uZGl0aW9uR3JvdXASLwoKY29uZGl0aW9ucxgBIAMoCzIRLnBvbGljeS5Db25kaXRpb25CCLpIBZIBAggBEkcKEGJvb2xlYW5fb3BlcmF0b3IYAiABKA4yIC5wb2xpY3kuQ29uZGl0aW9uQm9vbGVhblR5cGVFbnVtQgu6SAjIAQGCAQIQASJICgpTdWJqZWN0U2V0EjoKEGNvbmRpdGlvbl9ncm91cHMYASADKAsyFi5wb2xpY3kuQ29uZGl0aW9uR3JvdXBCCLpIBZIBAggBIp8BChNTdWJqZWN0Q29uZGl0aW9uU2V0EgoKAmlkGAEgASgJEiQKCW5hbWVzcGFjZRgCIAEoCzIRLnBvbGljeS5OYW1lc3BhY2USMgoMc3ViamVjdF9zZXRzGAMgAygLMhIucG9saWN5LlN1YmplY3RTZXRCCLpIBZIBAggBEiIKCG1ldGFkYXRhGGQgASgLMhAuY29tbW9uLk1ldGFkYXRhIlYKD1N1YmplY3RQcm9wZXJ0eRIrChdleHRlcm5hbF9zZWxlY3Rvcl92YWx1ZRgBIAEoCUIKukgHyAEBcgIQARIWCg5leHRlcm5hbF92YWx1ZRgCIAEoCSKHAQoUUmVzb3VyY2VNYXBwaW5nR3JvdXASCgoCaWQYASABKAkSHAoMbmFtZXNwYWNlX2lkGAIgASgJQga6SAPIAQESFAoEbmFtZRgDIAEoCUIGukgDyAEBEgsKA2ZxbhgEIAEoCRIiCghtZXRhZGF0YRhkIAEoCzIQLmNvbW1vbi5NZXRhZGF0YSLTAQoPUmVzb3VyY2VNYXBwaW5nEgoKAmlkGAEgASgJEiIKCG1ldGFkYXRhGAIgASgLMhAuY29tbW9uLk1ldGFkYXRhEi4KD2F0dHJpYnV0ZV92YWx1ZRgDIAEoCzINLnBvbGljeS5WYWx1ZUIGukgDyAEBEg0KBXRlcm1zGAQgAygJEisKBWdyb3VwGAUgASgLMhwucG9saWN5LlJlc291cmNlTWFwcGluZ0dyb3VwEiQKCW5hbWVzcGFjZRgGIAEoCzIRLnBvbGljeS5OYW1lc3BhY2UizAQKD0tleUFjY2Vzc1NlcnZlchIKCgJpZBgBIAEoCRKCAwoDdXJpGAIgASgJQvQCukjwAroB7AIKCnVyaV9mb3JtYXQSzwFVUkkgbXVzdCBiZSBhIHZhbGlkIFVSTCAoZS5nLiwgJ2h0dHBzOi8vZGVtby5jb20vJykgZm9sbG93ZWQgYnkgYWRkaXRpb25hbCBzZWdtZW50cy4gRWFjaCBzZWdtZW50IG11c3Qgc3RhcnQgYW5kIGVuZCB3aXRoIGFuIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXIsIGNhbiBjb250YWluIGh5cGhlbnMsIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBhbmQgc2xhc2hlcy4aiwF0aGlzLm1hdGNoZXMoJ15odHRwcz86Ly9bYS16QS1aMC05XShbYS16QS1aMC05XFwtXXswLDYxfVthLXpBLVowLTldKT8oXFwuW2EtekEtWjAtOV0oW2EtekEtWjAtOVxcLV17MCw2MX1bYS16QS1aMC05XSk/KSooOlswLTldKyk/KC8uKik/JCcpEiUKCnB1YmxpY19rZXkYAyABKAsyES5wb2xpY3kuUHVibGljS2V5EicKC3NvdXJjZV90eXBlGAQgASgOMhIucG9saWN5LlNvdXJjZVR5cGUSJgoIa2FzX2tleXMYBSADKAsyFC5wb2xpY3kuU2ltcGxlS2FzS2V5EgwKBG5hbWUYFCABKAkSIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEi5AEKA0tleRIKCgJpZBgBIAEoCRItCglpc19hY3RpdmUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEi4KCndhc19tYXBwZWQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEigKCnB1YmxpY19rZXkYBCABKAsyFC5wb2xpY3kuS2FzUHVibGljS2V5EiQKA2thcxgFIAEoCzIXLnBvbGljeS5LZXlBY2Nlc3NTZXJ2ZXISIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEidQoMS2FzUHVibGljS2V5EhcKA3BlbRgBIAEoCUIKukgHcgUQARiAQBIWCgNraWQYAiABKAlCCbpIBnIEEAEYIBI0CgNhbGcYAyABKA4yGy5wb2xpY3kuS2FzUHVibGljS2V5QWxnRW51bUIKukgHggEEEAEgACI1Cg9LYXNQdWJsaWNLZXlTZXQSIgoEa2V5cxgBIAMoCzIULnBvbGljeS5LYXNQdWJsaWNLZXki0AMKCVB1YmxpY0tleRL8AgoGcmVtb3RlGAEgASgJQukCukjlAroB4QIKCnVyaV9mb3JtYXQSzwFVUkkgbXVzdCBiZSBhIHZhbGlkIFVSTCAoZS5nLiwgJ2h0dHBzOi8vZGVtby5jb20vJykgZm9sbG93ZWQgYnkgYWRkaXRpb25hbCBzZWdtZW50cy4gRWFjaCBzZWdtZW50IG11c3Qgc3RhcnQgYW5kIGVuZCB3aXRoIGFuIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXIsIGNhbiBjb250YWluIGh5cGhlbnMsIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBhbmQgc2xhc2hlcy4agAF0aGlzLm1hdGNoZXMoJ15odHRwczovL1thLXpBLVowLTldKFthLXpBLVowLTlcXC1dezAsNjF9W2EtekEtWjAtOV0pPyhcXC5bYS16QS1aMC05XShbYS16QS1aMC05XFwtXXswLDYxfVthLXpBLVowLTldKT8pKigvLiopPyQnKUgAEikKBmNhY2hlZBgDIAEoCzIXLnBvbGljeS5LYXNQdWJsaWNLZXlTZXRIAEIMCgpwdWJsaWNfa2V5SgQIAhADUgVsb2NhbCKpAQoSUmVnaXN0ZXJlZFJlc291cmNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSLwoGdmFsdWVzGAMgAygLMh8ucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlEiQKCW5hbWVzcGFjZRgEIAEoCzIRLnBvbGljeS5OYW1lc3BhY2USIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEi+wIKF1JlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlEgoKAmlkGAEgASgJEg0KBXZhbHVlGAIgASgJEiwKCHJlc291cmNlGAMgASgLMhoucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZRJVChdhY3Rpb25fYXR0cmlidXRlX3ZhbHVlcxgEIAMoCzI0LnBvbGljeS5SZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZS5BY3Rpb25BdHRyaWJ1dGVWYWx1ZRILCgNmcW4YBSABKAkSIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEajgEKFEFjdGlvbkF0dHJpYnV0ZVZhbHVlEgoKAmlkGAEgASgJEh4KBmFjdGlvbhgCIAEoCzIOLnBvbGljeS5BY3Rpb24SJgoPYXR0cmlidXRlX3ZhbHVlGAMgASgLMg0ucG9saWN5LlZhbHVlEiIKCG1ldGFkYXRhGGQgASgLMhAuY29tbW9uLk1ldGFkYXRhIjQKFlBvbGljeUVuZm9yY2VtZW50UG9pbnQSGgoJY2xpZW50X2lkGAEgASgJQge6SARyAhABIkUKDlJlcXVlc3RDb250ZXh0EjMKA3BlcBgBIAEoCzIeLnBvbGljeS5Qb2xpY3lFbmZvcmNlbWVudFBvaW50Qga6SAPIAQEipgEKCk9ibGlnYXRpb24SCgoCaWQYASABKAkSJAoJbmFtZXNwYWNlGAIgASgLMhEucG9saWN5Lk5hbWVzcGFjZRIMCgRuYW1lGAMgASgJEicKBnZhbHVlcxgEIAMoCzIXLnBvbGljeS5PYmxpZ2F0aW9uVmFsdWUSCwoDZnFuGAUgASgJEiIKCG1ldGFkYXRhGGQgASgLMhAuY29tbW9uLk1ldGFkYXRhIrIBCg9PYmxpZ2F0aW9uVmFsdWUSCgoCaWQYASABKAkSJgoKb2JsaWdhdGlvbhgCIAEoCzISLnBvbGljeS5PYmxpZ2F0aW9uEg0KBXZhbHVlGAMgASgJEisKCHRyaWdnZXJzGAQgAygLMhkucG9saWN5Lk9ibGlnYXRpb25UcmlnZ2VyEgsKA2ZxbhgFIAEoCRIiCghtZXRhZGF0YRhkIAEoCzIQLmNvbW1vbi5NZXRhZGF0YSKNAgoRT2JsaWdhdGlvblRyaWdnZXISCgoCaWQYASABKAkSMQoQb2JsaWdhdGlvbl92YWx1ZRgCIAEoCzIXLnBvbGljeS5PYmxpZ2F0aW9uVmFsdWUSHgoGYWN0aW9uGAMgASgLMg4ucG9saWN5LkFjdGlvbhImCg9hdHRyaWJ1dGVfdmFsdWUYBCABKAsyDS5wb2xpY3kuVmFsdWUSJwoHY29udGV4dBgFIAMoCzIWLnBvbGljeS5SZXF1ZXN0Q29udGV4dBIkCgluYW1lc3BhY2UYCyABKAsyES5wb2xpY3kuTmFtZXNwYWNlEiIKCG1ldGFkYXRhGGQgASgLMhAuY29tbW9uLk1ldGFkYXRhIk0KBkthc0tleRIOCgZrYXNfaWQYASABKAkSIgoDa2V5GAIgASgLMhUucG9saWN5LkFzeW1tZXRyaWNLZXkSDwoHa2FzX3VyaRgDIAEoCSIkCgxQdWJsaWNLZXlDdHgSFAoDcGVtGAEgASgJQge6SARyAhABIj0KDVByaXZhdGVLZXlDdHgSFwoGa2V5X2lkGAEgASgJQge6SARyAhABEhMKC3dyYXBwZWRfa2V5GAIgASgJIuUCCg1Bc3ltbWV0cmljS2V5EgoKAmlkGAEgASgJEg4KBmtleV9pZBgCIAEoCRIoCg1rZXlfYWxnb3JpdGhtGAMgASgOMhEucG9saWN5LkFsZ29yaXRobRIlCgprZXlfc3RhdHVzGAQgASgOMhEucG9saWN5LktleVN0YXR1cxIhCghrZXlfbW9kZRgFIAEoDjIPLnBvbGljeS5LZXlNb2RlEiwKDnB1YmxpY19rZXlfY3R4GAYgASgLMhQucG9saWN5LlB1YmxpY0tleUN0eBIuCg9wcml2YXRlX2tleV9jdHgYByABKAsyFS5wb2xpY3kuUHJpdmF0ZUtleUN0eBIyCg9wcm92aWRlcl9jb25maWcYCCABKAsyGS5wb2xpY3kuS2V5UHJvdmlkZXJDb25maWcSDgoGbGVnYWN5GAkgASgIEiIKCG1ldGFkYXRhGGQgASgLMhAuY29tbW9uLk1ldGFkYXRhIt0BCgxTeW1tZXRyaWNLZXkSCgoCaWQYASABKAkSDgoGa2V5X2lkGAIgASgJEiUKCmtleV9zdGF0dXMYAyABKA4yES5wb2xpY3kuS2V5U3RhdHVzEiEKCGtleV9tb2RlGAQgASgOMg8ucG9saWN5LktleU1vZGUSDwoHa2V5X2N0eBgFIAEoDBIyCg9wcm92aWRlcl9jb25maWcYBiABKAsyGS5wb2xpY3kuS2V5UHJvdmlkZXJDb25maWcSIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEqswEKFUF0dHJpYnV0ZVJ1bGVUeXBlRW51bRIoCiRBVFRSSUJVVEVfUlVMRV9UWVBFX0VOVU1fVU5TUEVDSUZJRUQQABIjCh9BVFRSSUJVVEVfUlVMRV9UWVBFX0VOVU1fQUxMX09GEAESIwofQVRUUklCVVRFX1JVTEVfVFlQRV9FTlVNX0FOWV9PRhACEiYKIkFUVFJJQlVURV9SVUxFX1RZUEVfRU5VTV9ISUVSQVJDSFkQAyrKAQoaU3ViamVjdE1hcHBpbmdPcGVyYXRvckVudW0SLQopU1VCSkVDVF9NQVBQSU5HX09QRVJBVE9SX0VOVU1fVU5TUEVDSUZJRUQQABIkCiBTVUJKRUNUX01BUFBJTkdfT1BFUkFUT1JfRU5VTV9JThABEigKJFNVQkpFQ1RfTUFQUElOR19PUEVSQVRPUl9FTlVNX05PVF9JThACEi0KKVNVQkpFQ1RfTUFQUElOR19PUEVSQVRPUl9FTlVNX0lOX0NPTlRBSU5TEAMqkAEKGENvbmRpdGlvbkJvb2xlYW5UeXBlRW51bRIrCidDT05ESVRJT05fQk9PTEVBTl9UWVBFX0VOVU1fVU5TUEVDSUZJRUQQABIjCh9DT05ESVRJT05fQk9PTEVBTl9UWVBFX0VOVU1fQU5EEAESIgoeQ09ORElUSU9OX0JPT0xFQU5fVFlQRV9FTlVNX09SEAIqXQoKU291cmNlVHlwZRIbChdTT1VSQ0VfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFNPVVJDRV9UWVBFX0lOVEVSTkFMEAESGAoUU09VUkNFX1RZUEVfRVhURVJOQUwQAiqbAwoTS2FzUHVibGljS2V5QWxnRW51bRInCiNLQVNfUFVCTElDX0tFWV9BTEdfRU5VTV9VTlNQRUNJRklFRBAAEiQKIEtBU19QVUJMSUNfS0VZX0FMR19FTlVNX1JTQV8yMDQ4EAESJAogS0FTX1BVQkxJQ19LRVlfQUxHX0VOVU1fUlNBXzQwOTYQAhIoCiRLQVNfUFVCTElDX0tFWV9BTEdfRU5VTV9FQ19TRUNQMjU2UjEQBRIoCiRLQVNfUFVCTElDX0tFWV9BTEdfRU5VTV9FQ19TRUNQMzg0UjEQBhIoCiRLQVNfUFVCTElDX0tFWV9BTEdfRU5VTV9FQ19TRUNQNTIxUjEQBxImCiJLQVNfUFVCTElDX0tFWV9BTEdfRU5VTV9IUFFUX1hXSU5HEAoSMwovS0FTX1BVQkxJQ19LRVlfQUxHX0VOVU1fSFBRVF9TRUNQMjU2UjFfTUxLRU03NjgQCxI0CjBLQVNfUFVCTElDX0tFWV9BTEdfRU5VTV9IUFFUX1NFQ1AzODRSMV9NTEtFTTEwMjQQDCqEAgoJQWxnb3JpdGhtEhkKFUFMR09SSVRITV9VTlNQRUNJRklFRBAAEhYKEkFMR09SSVRITV9SU0FfMjA0OBABEhYKEkFMR09SSVRITV9SU0FfNDA5NhACEhUKEUFMR09SSVRITV9FQ19QMjU2EAMSFQoRQUxHT1JJVEhNX0VDX1AzODQQBBIVChFBTEdPUklUSE1fRUNfUDUyMRAFEhgKFEFMR09SSVRITV9IUFFUX1hXSU5HEAYSJQohQUxHT1JJVEhNX0hQUVRfU0VDUDI1NlIxX01MS0VNNzY4EAcSJgoiQUxHT1JJVEhNX0hQUVRfU0VDUDM4NFIxX01MS0VNMTAyNBAIKlYKCUtleVN0YXR1cxIaChZLRVlfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFQoRS0VZX1NUQVRVU19BQ1RJVkUQARIWChJLRVlfU1RBVFVTX1JPVEFURUQQAiqUAQoHS2V5TW9kZRIYChRLRVlfTU9ERV9VTlNQRUNJRklFRBAAEhwKGEtFWV9NT0RFX0NPTkZJR19ST09UX0tFWRABEh4KGktFWV9NT0RFX1BST1ZJREVSX1JPT1RfS0VZEAISEwoPS0VZX01PREVfUkVNT1RFEAMSHAoYS0VZX01PREVfUFVCTElDX0tFWV9PTkxZEARiBnByb3RvMw", [file_buf_validate_validate, file_common_common, file_google_protobuf_wrappers]); + fileDesc("ChRwb2xpY3kvb2JqZWN0cy5wcm90bxIGcG9saWN5IlQKElNpbXBsZUthc1B1YmxpY0tleRIkCglhbGdvcml0aG0YASABKA4yES5wb2xpY3kuQWxnb3JpdGhtEgsKA2tpZBgCIAEoCRILCgNwZW0YAyABKAkiXwoMU2ltcGxlS2FzS2V5Eg8KB2thc191cmkYASABKAkSLgoKcHVibGljX2tleRgCIAEoCzIaLnBvbGljeS5TaW1wbGVLYXNQdWJsaWNLZXkSDgoGa2FzX2lkGAMgASgJIncKEUtleVByb3ZpZGVyQ29uZmlnEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLY29uZmlnX2pzb24YAyABKAwSDwoHbWFuYWdlchgEIAEoCRIiCghtZXRhZGF0YRhkIAEoCzIQLmNvbW1vbi5NZXRhZGF0YSLTAQoJTmFtZXNwYWNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSCwoDZnFuGAMgASgJEioKBmFjdGl2ZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSIgoIbWV0YWRhdGEYBSABKAsyEC5jb21tb24uTWV0YWRhdGESJwoGZ3JhbnRzGAYgAygLMhcucG9saWN5LktleUFjY2Vzc1NlcnZlchImCghrYXNfa2V5cxgHIAMoCzIULnBvbGljeS5TaW1wbGVLYXNLZXkihwMKCUF0dHJpYnV0ZRIKCgJpZBgBIAEoCRIkCgluYW1lc3BhY2UYAiABKAsyES5wb2xpY3kuTmFtZXNwYWNlEgwKBG5hbWUYAyABKAkSOAoEcnVsZRgEIAEoDjIdLnBvbGljeS5BdHRyaWJ1dGVSdWxlVHlwZUVudW1CC7pICMgBAYIBAhABEh0KBnZhbHVlcxgFIAMoCzINLnBvbGljeS5WYWx1ZRInCgZncmFudHMYBiADKAsyFy5wb2xpY3kuS2V5QWNjZXNzU2VydmVyEgsKA2ZxbhgHIAEoCRIqCgZhY3RpdmUYCCABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEiYKCGthc19rZXlzGAkgAygLMhQucG9saWN5LlNpbXBsZUthc0tleRIzCg9hbGxvd190cmF2ZXJzYWwYCiABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlEiIKCG1ldGFkYXRhGGQgASgLMhAuY29tbW9uLk1ldGFkYXRhIpQDCgVWYWx1ZRIKCgJpZBgBIAEoCRIkCglhdHRyaWJ1dGUYAiABKAsyES5wb2xpY3kuQXR0cmlidXRlEg0KBXZhbHVlGAMgASgJEicKBmdyYW50cxgFIAMoCzIXLnBvbGljeS5LZXlBY2Nlc3NTZXJ2ZXISCwoDZnFuGAYgASgJEioKBmFjdGl2ZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSMAoQc3ViamVjdF9tYXBwaW5ncxgIIAMoCzIWLnBvbGljeS5TdWJqZWN0TWFwcGluZxImCghrYXNfa2V5cxgJIAMoCzIULnBvbGljeS5TaW1wbGVLYXNLZXkSMgoRcmVzb3VyY2VfbWFwcGluZ3MYCiADKAsyFy5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nEicKC29ibGlnYXRpb25zGAsgAygLMhIucG9saWN5Lk9ibGlnYXRpb24SIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGFKBAgEEAVSB21lbWJlcnMiqAIKBkFjdGlvbhIKCgJpZBgDIAEoCRIxCghzdGFuZGFyZBgBIAEoDjIdLnBvbGljeS5BY3Rpb24uU3RhbmRhcmRBY3Rpb25IABIQCgZjdXN0b20YAiABKAlIABIMCgRuYW1lGAQgASgJEiQKCW5hbWVzcGFjZRgFIAEoCzIRLnBvbGljeS5OYW1lc3BhY2USIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEibAoOU3RhbmRhcmRBY3Rpb24SHwobU1RBTkRBUkRfQUNUSU9OX1VOU1BFQ0lGSUVEEAASGwoXU1RBTkRBUkRfQUNUSU9OX0RFQ1JZUFQQARIcChhTVEFOREFSRF9BQ1RJT05fVFJBTlNNSVQQAkIHCgV2YWx1ZSLrAQoOU3ViamVjdE1hcHBpbmcSCgoCaWQYASABKAkSJgoPYXR0cmlidXRlX3ZhbHVlGAIgASgLMg0ucG9saWN5LlZhbHVlEjoKFXN1YmplY3RfY29uZGl0aW9uX3NldBgDIAEoCzIbLnBvbGljeS5TdWJqZWN0Q29uZGl0aW9uU2V0Eh8KB2FjdGlvbnMYBCADKAsyDi5wb2xpY3kuQWN0aW9uEiQKCW5hbWVzcGFjZRgFIAEoCzIRLnBvbGljeS5OYW1lc3BhY2USIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEijAEKFER5bmFtaWNWYWx1ZVJlc29sdmVyEi8KH3N1YmplY3RfZXh0ZXJuYWxfc2VsZWN0b3JfdmFsdWUYASABKAlCBrpIA8gBARJDCghvcGVyYXRvchgCIAEoDjIiLnBvbGljeS5TdWJqZWN0TWFwcGluZ09wZXJhdG9yRW51bUINukgKyAEBggEEEAEgAiKvAgoTRHluYW1pY1ZhbHVlTWFwcGluZxIKCgJpZBgBIAEoCRIvChRhdHRyaWJ1dGVfZGVmaW5pdGlvbhgCIAEoCzIRLnBvbGljeS5BdHRyaWJ1dGUSNAoOdmFsdWVfcmVzb2x2ZXIYAyABKAsyHC5wb2xpY3kuRHluYW1pY1ZhbHVlUmVzb2x2ZXISOgoVc3ViamVjdF9jb25kaXRpb25fc2V0GAQgASgLMhsucG9saWN5LlN1YmplY3RDb25kaXRpb25TZXQSHwoHYWN0aW9ucxgFIAMoCzIOLnBvbGljeS5BY3Rpb24SJAoJbmFtZXNwYWNlGAYgASgLMhEucG9saWN5Lk5hbWVzcGFjZRIiCghtZXRhZGF0YRhkIAEoCzIQLmNvbW1vbi5NZXRhZGF0YSKqAQoJQ29uZGl0aW9uEi8KH3N1YmplY3RfZXh0ZXJuYWxfc2VsZWN0b3JfdmFsdWUYASABKAlCBrpIA8gBARJBCghvcGVyYXRvchgCIAEoDjIiLnBvbGljeS5TdWJqZWN0TWFwcGluZ09wZXJhdG9yRW51bUILukgIyAEBggECEAESKQoXc3ViamVjdF9leHRlcm5hbF92YWx1ZXMYAyADKAlCCLpIBZIBAggBIooBCg5Db25kaXRpb25Hcm91cBIvCgpjb25kaXRpb25zGAEgAygLMhEucG9saWN5LkNvbmRpdGlvbkIIukgFkgECCAESRwoQYm9vbGVhbl9vcGVyYXRvchgCIAEoDjIgLnBvbGljeS5Db25kaXRpb25Cb29sZWFuVHlwZUVudW1CC7pICMgBAYIBAhABIkgKClN1YmplY3RTZXQSOgoQY29uZGl0aW9uX2dyb3VwcxgBIAMoCzIWLnBvbGljeS5Db25kaXRpb25Hcm91cEIIukgFkgECCAEinwEKE1N1YmplY3RDb25kaXRpb25TZXQSCgoCaWQYASABKAkSJAoJbmFtZXNwYWNlGAIgASgLMhEucG9saWN5Lk5hbWVzcGFjZRIyCgxzdWJqZWN0X3NldHMYAyADKAsyEi5wb2xpY3kuU3ViamVjdFNldEIIukgFkgECCAESIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEiVgoPU3ViamVjdFByb3BlcnR5EisKF2V4dGVybmFsX3NlbGVjdG9yX3ZhbHVlGAEgASgJQgq6SAfIAQFyAhABEhYKDmV4dGVybmFsX3ZhbHVlGAIgASgJIocBChRSZXNvdXJjZU1hcHBpbmdHcm91cBIKCgJpZBgBIAEoCRIcCgxuYW1lc3BhY2VfaWQYAiABKAlCBrpIA8gBARIUCgRuYW1lGAMgASgJQga6SAPIAQESCwoDZnFuGAQgASgJEiIKCG1ldGFkYXRhGGQgASgLMhAuY29tbW9uLk1ldGFkYXRhItMBCg9SZXNvdXJjZU1hcHBpbmcSCgoCaWQYASABKAkSIgoIbWV0YWRhdGEYAiABKAsyEC5jb21tb24uTWV0YWRhdGESLgoPYXR0cmlidXRlX3ZhbHVlGAMgASgLMg0ucG9saWN5LlZhbHVlQga6SAPIAQESDQoFdGVybXMYBCADKAkSKwoFZ3JvdXAYBSABKAsyHC5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nR3JvdXASJAoJbmFtZXNwYWNlGAYgASgLMhEucG9saWN5Lk5hbWVzcGFjZSLMBAoPS2V5QWNjZXNzU2VydmVyEgoKAmlkGAEgASgJEoIDCgN1cmkYAiABKAlC9AK6SPACugHsAgoKdXJpX2Zvcm1hdBLPAVVSSSBtdXN0IGJlIGEgdmFsaWQgVVJMIChlLmcuLCAnaHR0cHM6Ly9kZW1vLmNvbS8nKSBmb2xsb3dlZCBieSBhZGRpdGlvbmFsIHNlZ21lbnRzLiBFYWNoIHNlZ21lbnQgbXVzdCBzdGFydCBhbmQgZW5kIHdpdGggYW4gYWxwaGFudW1lcmljIGNoYXJhY3RlciwgY2FuIGNvbnRhaW4gaHlwaGVucywgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGFuZCBzbGFzaGVzLhqLAXRoaXMubWF0Y2hlcygnXmh0dHBzPzovL1thLXpBLVowLTldKFthLXpBLVowLTlcXC1dezAsNjF9W2EtekEtWjAtOV0pPyhcXC5bYS16QS1aMC05XShbYS16QS1aMC05XFwtXXswLDYxfVthLXpBLVowLTldKT8pKig6WzAtOV0rKT8oLy4qKT8kJykSJQoKcHVibGljX2tleRgDIAEoCzIRLnBvbGljeS5QdWJsaWNLZXkSJwoLc291cmNlX3R5cGUYBCABKA4yEi5wb2xpY3kuU291cmNlVHlwZRImCghrYXNfa2V5cxgFIAMoCzIULnBvbGljeS5TaW1wbGVLYXNLZXkSDAoEbmFtZRgUIAEoCRIiCghtZXRhZGF0YRhkIAEoCzIQLmNvbW1vbi5NZXRhZGF0YSLkAQoDS2V5EgoKAmlkGAEgASgJEi0KCWlzX2FjdGl2ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSLgoKd2FzX21hcHBlZBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSKAoKcHVibGljX2tleRgEIAEoCzIULnBvbGljeS5LYXNQdWJsaWNLZXkSJAoDa2FzGAUgASgLMhcucG9saWN5LktleUFjY2Vzc1NlcnZlchIiCghtZXRhZGF0YRhkIAEoCzIQLmNvbW1vbi5NZXRhZGF0YSJ1CgxLYXNQdWJsaWNLZXkSFwoDcGVtGAEgASgJQgq6SAdyBRABGIBAEhYKA2tpZBgCIAEoCUIJukgGcgQQARggEjQKA2FsZxgDIAEoDjIbLnBvbGljeS5LYXNQdWJsaWNLZXlBbGdFbnVtQgq6SAeCAQQQASAAIjUKD0thc1B1YmxpY0tleVNldBIiCgRrZXlzGAEgAygLMhQucG9saWN5Lkthc1B1YmxpY0tleSLQAwoJUHVibGljS2V5EvwCCgZyZW1vdGUYASABKAlC6QK6SOUCugHhAgoKdXJpX2Zvcm1hdBLPAVVSSSBtdXN0IGJlIGEgdmFsaWQgVVJMIChlLmcuLCAnaHR0cHM6Ly9kZW1vLmNvbS8nKSBmb2xsb3dlZCBieSBhZGRpdGlvbmFsIHNlZ21lbnRzLiBFYWNoIHNlZ21lbnQgbXVzdCBzdGFydCBhbmQgZW5kIHdpdGggYW4gYWxwaGFudW1lcmljIGNoYXJhY3RlciwgY2FuIGNvbnRhaW4gaHlwaGVucywgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGFuZCBzbGFzaGVzLhqAAXRoaXMubWF0Y2hlcygnXmh0dHBzOi8vW2EtekEtWjAtOV0oW2EtekEtWjAtOVxcLV17MCw2MX1bYS16QS1aMC05XSk/KFxcLlthLXpBLVowLTldKFthLXpBLVowLTlcXC1dezAsNjF9W2EtekEtWjAtOV0pPykqKC8uKik/JCcpSAASKQoGY2FjaGVkGAMgASgLMhcucG9saWN5Lkthc1B1YmxpY0tleVNldEgAQgwKCnB1YmxpY19rZXlKBAgCEANSBWxvY2FsIqkBChJSZWdpc3RlcmVkUmVzb3VyY2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIvCgZ2YWx1ZXMYAyADKAsyHy5wb2xpY3kuUmVnaXN0ZXJlZFJlc291cmNlVmFsdWUSJAoJbmFtZXNwYWNlGAQgASgLMhEucG9saWN5Lk5hbWVzcGFjZRIiCghtZXRhZGF0YRhkIAEoCzIQLmNvbW1vbi5NZXRhZGF0YSL7AgoXUmVnaXN0ZXJlZFJlc291cmNlVmFsdWUSCgoCaWQYASABKAkSDQoFdmFsdWUYAiABKAkSLAoIcmVzb3VyY2UYAyABKAsyGi5wb2xpY3kuUmVnaXN0ZXJlZFJlc291cmNlElUKF2FjdGlvbl9hdHRyaWJ1dGVfdmFsdWVzGAQgAygLMjQucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlLkFjdGlvbkF0dHJpYnV0ZVZhbHVlEgsKA2ZxbhgFIAEoCRIiCghtZXRhZGF0YRhkIAEoCzIQLmNvbW1vbi5NZXRhZGF0YRqOAQoUQWN0aW9uQXR0cmlidXRlVmFsdWUSCgoCaWQYASABKAkSHgoGYWN0aW9uGAIgASgLMg4ucG9saWN5LkFjdGlvbhImCg9hdHRyaWJ1dGVfdmFsdWUYAyABKAsyDS5wb2xpY3kuVmFsdWUSIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEiNAoWUG9saWN5RW5mb3JjZW1lbnRQb2ludBIaCgljbGllbnRfaWQYASABKAlCB7pIBHICEAEiRQoOUmVxdWVzdENvbnRleHQSMwoDcGVwGAEgASgLMh4ucG9saWN5LlBvbGljeUVuZm9yY2VtZW50UG9pbnRCBrpIA8gBASKmAQoKT2JsaWdhdGlvbhIKCgJpZBgBIAEoCRIkCgluYW1lc3BhY2UYAiABKAsyES5wb2xpY3kuTmFtZXNwYWNlEgwKBG5hbWUYAyABKAkSJwoGdmFsdWVzGAQgAygLMhcucG9saWN5Lk9ibGlnYXRpb25WYWx1ZRILCgNmcW4YBSABKAkSIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEisgEKD09ibGlnYXRpb25WYWx1ZRIKCgJpZBgBIAEoCRImCgpvYmxpZ2F0aW9uGAIgASgLMhIucG9saWN5Lk9ibGlnYXRpb24SDQoFdmFsdWUYAyABKAkSKwoIdHJpZ2dlcnMYBCADKAsyGS5wb2xpY3kuT2JsaWdhdGlvblRyaWdnZXISCwoDZnFuGAUgASgJEiIKCG1ldGFkYXRhGGQgASgLMhAuY29tbW9uLk1ldGFkYXRhIo0CChFPYmxpZ2F0aW9uVHJpZ2dlchIKCgJpZBgBIAEoCRIxChBvYmxpZ2F0aW9uX3ZhbHVlGAIgASgLMhcucG9saWN5Lk9ibGlnYXRpb25WYWx1ZRIeCgZhY3Rpb24YAyABKAsyDi5wb2xpY3kuQWN0aW9uEiYKD2F0dHJpYnV0ZV92YWx1ZRgEIAEoCzINLnBvbGljeS5WYWx1ZRInCgdjb250ZXh0GAUgAygLMhYucG9saWN5LlJlcXVlc3RDb250ZXh0EiQKCW5hbWVzcGFjZRgLIAEoCzIRLnBvbGljeS5OYW1lc3BhY2USIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEiTQoGS2FzS2V5Eg4KBmthc19pZBgBIAEoCRIiCgNrZXkYAiABKAsyFS5wb2xpY3kuQXN5bW1ldHJpY0tleRIPCgdrYXNfdXJpGAMgASgJIiQKDFB1YmxpY0tleUN0eBIUCgNwZW0YASABKAlCB7pIBHICEAEiPQoNUHJpdmF0ZUtleUN0eBIXCgZrZXlfaWQYASABKAlCB7pIBHICEAESEwoLd3JhcHBlZF9rZXkYAiABKAki5QIKDUFzeW1tZXRyaWNLZXkSCgoCaWQYASABKAkSDgoGa2V5X2lkGAIgASgJEigKDWtleV9hbGdvcml0aG0YAyABKA4yES5wb2xpY3kuQWxnb3JpdGhtEiUKCmtleV9zdGF0dXMYBCABKA4yES5wb2xpY3kuS2V5U3RhdHVzEiEKCGtleV9tb2RlGAUgASgOMg8ucG9saWN5LktleU1vZGUSLAoOcHVibGljX2tleV9jdHgYBiABKAsyFC5wb2xpY3kuUHVibGljS2V5Q3R4Ei4KD3ByaXZhdGVfa2V5X2N0eBgHIAEoCzIVLnBvbGljeS5Qcml2YXRlS2V5Q3R4EjIKD3Byb3ZpZGVyX2NvbmZpZxgIIAEoCzIZLnBvbGljeS5LZXlQcm92aWRlckNvbmZpZxIOCgZsZWdhY3kYCSABKAgSIgoIbWV0YWRhdGEYZCABKAsyEC5jb21tb24uTWV0YWRhdGEi3QEKDFN5bW1ldHJpY0tleRIKCgJpZBgBIAEoCRIOCgZrZXlfaWQYAiABKAkSJQoKa2V5X3N0YXR1cxgDIAEoDjIRLnBvbGljeS5LZXlTdGF0dXMSIQoIa2V5X21vZGUYBCABKA4yDy5wb2xpY3kuS2V5TW9kZRIPCgdrZXlfY3R4GAUgASgMEjIKD3Byb3ZpZGVyX2NvbmZpZxgGIAEoCzIZLnBvbGljeS5LZXlQcm92aWRlckNvbmZpZxIiCghtZXRhZGF0YRhkIAEoCzIQLmNvbW1vbi5NZXRhZGF0YSqzAQoVQXR0cmlidXRlUnVsZVR5cGVFbnVtEigKJEFUVFJJQlVURV9SVUxFX1RZUEVfRU5VTV9VTlNQRUNJRklFRBAAEiMKH0FUVFJJQlVURV9SVUxFX1RZUEVfRU5VTV9BTExfT0YQARIjCh9BVFRSSUJVVEVfUlVMRV9UWVBFX0VOVU1fQU5ZX09GEAISJgoiQVRUUklCVVRFX1JVTEVfVFlQRV9FTlVNX0hJRVJBUkNIWRADKsoBChpTdWJqZWN0TWFwcGluZ09wZXJhdG9yRW51bRItCilTVUJKRUNUX01BUFBJTkdfT1BFUkFUT1JfRU5VTV9VTlNQRUNJRklFRBAAEiQKIFNVQkpFQ1RfTUFQUElOR19PUEVSQVRPUl9FTlVNX0lOEAESKAokU1VCSkVDVF9NQVBQSU5HX09QRVJBVE9SX0VOVU1fTk9UX0lOEAISLQopU1VCSkVDVF9NQVBQSU5HX09QRVJBVE9SX0VOVU1fSU5fQ09OVEFJTlMQAyqQAQoYQ29uZGl0aW9uQm9vbGVhblR5cGVFbnVtEisKJ0NPTkRJVElPTl9CT09MRUFOX1RZUEVfRU5VTV9VTlNQRUNJRklFRBAAEiMKH0NPTkRJVElPTl9CT09MRUFOX1RZUEVfRU5VTV9BTkQQARIiCh5DT05ESVRJT05fQk9PTEVBTl9UWVBFX0VOVU1fT1IQAipdCgpTb3VyY2VUeXBlEhsKF1NPVVJDRV9UWVBFX1VOU1BFQ0lGSUVEEAASGAoUU09VUkNFX1RZUEVfSU5URVJOQUwQARIYChRTT1VSQ0VfVFlQRV9FWFRFUk5BTBACKuoDChNLYXNQdWJsaWNLZXlBbGdFbnVtEicKI0tBU19QVUJMSUNfS0VZX0FMR19FTlVNX1VOU1BFQ0lGSUVEEAASJAogS0FTX1BVQkxJQ19LRVlfQUxHX0VOVU1fUlNBXzIwNDgQARIkCiBLQVNfUFVCTElDX0tFWV9BTEdfRU5VTV9SU0FfNDA5NhACEigKJEtBU19QVUJMSUNfS0VZX0FMR19FTlVNX0VDX1NFQ1AyNTZSMRAFEigKJEtBU19QVUJMSUNfS0VZX0FMR19FTlVNX0VDX1NFQ1AzODRSMRAGEigKJEtBU19QVUJMSUNfS0VZX0FMR19FTlVNX0VDX1NFQ1A1MjFSMRAHEiYKIktBU19QVUJMSUNfS0VZX0FMR19FTlVNX0hQUVRfWFdJTkcQChIzCi9LQVNfUFVCTElDX0tFWV9BTEdfRU5VTV9IUFFUX1NFQ1AyNTZSMV9NTEtFTTc2OBALEjQKMEtBU19QVUJMSUNfS0VZX0FMR19FTlVNX0hQUVRfU0VDUDM4NFIxX01MS0VNMTAyNBAMEiUKIUtBU19QVUJMSUNfS0VZX0FMR19FTlVNX01MS0VNXzc2OBAUEiYKIktBU19QVUJMSUNfS0VZX0FMR19FTlVNX01MS0VNXzEwMjQQFSq3AgoJQWxnb3JpdGhtEhkKFUFMR09SSVRITV9VTlNQRUNJRklFRBAAEhYKEkFMR09SSVRITV9SU0FfMjA0OBABEhYKEkFMR09SSVRITV9SU0FfNDA5NhACEhUKEUFMR09SSVRITV9FQ19QMjU2EAMSFQoRQUxHT1JJVEhNX0VDX1AzODQQBBIVChFBTEdPUklUSE1fRUNfUDUyMRAFEhgKFEFMR09SSVRITV9IUFFUX1hXSU5HEAYSJQohQUxHT1JJVEhNX0hQUVRfU0VDUDI1NlIxX01MS0VNNzY4EAcSJgoiQUxHT1JJVEhNX0hQUVRfU0VDUDM4NFIxX01MS0VNMTAyNBAIEhcKE0FMR09SSVRITV9NTEtFTV83NjgQFBIYChRBTEdPUklUSE1fTUxLRU1fMTAyNBAVKlYKCUtleVN0YXR1cxIaChZLRVlfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFQoRS0VZX1NUQVRVU19BQ1RJVkUQARIWChJLRVlfU1RBVFVTX1JPVEFURUQQAiqUAQoHS2V5TW9kZRIYChRLRVlfTU9ERV9VTlNQRUNJRklFRBAAEhwKGEtFWV9NT0RFX0NPTkZJR19ST09UX0tFWRABEh4KGktFWV9NT0RFX1BST1ZJREVSX1JPT1RfS0VZEAISEwoPS0VZX01PREVfUkVNT1RFEAMSHAoYS0VZX01PREVfUFVCTElDX0tFWV9PTkxZEARiBnByb3RvMw", [file_buf_validate_validate, file_common_common, file_google_protobuf_wrappers]); /** * @generated from message policy.SimpleKasPublicKey @@ -483,6 +483,118 @@ export type SubjectMapping = Message<"policy.SubjectMapping"> & { export const SubjectMappingSchema: GenMessage = /*@__PURE__*/ messageDesc(file_policy_objects, 7); +/** + * + * Dynamic Value Resolver: the dynamic half of a DynamicValueMapping. It resolves a selector + * against the entity representation, then tests whether any resolved entity value matches the + * requested resource value segment under the operator. The match is inherently existential over + * the resolved entity values. + * + * @generated from message policy.DynamicValueResolver + */ +export type DynamicValueResolver = Message<"policy.DynamicValueResolver"> & { + /** + * a selector for a field value on a flattened Entity Representation (such as from + * idP/LDAP), e.g. ".patientAssignments[]" + * + * @generated from field: string subject_external_selector_value = 1; + */ + subjectExternalSelectorValue: string; + + /** + * how the requested resource value segment is compared against each value the selector + * resolves from the entity representation. NOT_IN is unsupported because dynamic resolution + * is existential over the resolved entity values. IN_CONTAINS is substring-based and + * over-matches by design (e.g. "admin" matches "superadmin", "admin-readonly"); prefer IN + * unless substring matching is genuinely intended. + * + * @generated from field: policy.SubjectMappingOperatorEnum operator = 2; + */ + operator: SubjectMappingOperatorEnum; +}; + +/** + * Describes the message policy.DynamicValueResolver. + * Use `create(DynamicValueResolverSchema)` to create a new message. + */ +export const DynamicValueResolverSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_objects, 8); + +/** + * + * Dynamic Value Mapping: a Policy assigning permitted action(s) to + * dynamically-requested values under an Attribute Definition. It raises entitlement + * authority from a concrete Attribute Value to the Attribute Definition: at decision time + * the value_resolver compares the requested resource value segment against the entity + * representation, avoiding pre-provisioning a value + subject mapping per discrete value. + * + * Combination semantics: multiple dynamic value mappings on the same definition are OR-ed (any + * match entitles); within a mapping, the optional subject_condition_set's subject sets are AND-ed + * (every set must pass), matching subject mapping evaluation. + * + * Coexistence: a definition with a dynamic value mapping cannot also carry value-level subject + * mappings, and values under such a definition cannot be added to a registered resource's action + * attribute values (those values resolve at decision time, so they are not meaningful as static + * registered-resource entitlements). + * + * @generated from message policy.DynamicValueMapping + */ +export type DynamicValueMapping = Message<"policy.DynamicValueMapping"> & { + /** + * @generated from field: string id = 1; + */ + id: string; + + /** + * the Attribute Definition whose values are entitled dynamically + * + * @generated from field: policy.Attribute attribute_definition = 2; + */ + attributeDefinition?: Attribute; + + /** + * the dynamic resolver matched against the requested resource value segment + * + * @generated from field: policy.DynamicValueResolver value_resolver = 3; + */ + valueResolver?: DynamicValueResolver; + + /** + * optional static pre-gate on the entity, evaluated with normal SubjectConditionSet + * semantics (no dynamic overload). When present, both the gate and the resolver must + * pass for entitlement. + * + * @generated from field: policy.SubjectConditionSet subject_condition_set = 4; + */ + subjectConditionSet?: SubjectConditionSet; + + /** + * the actions permitted by subjects in this mapping + * + * @generated from field: repeated policy.Action actions = 5; + */ + actions: Action[]; + + /** + * the namespace containing this mapping + * + * @generated from field: policy.Namespace namespace = 6; + */ + namespace?: Namespace; + + /** + * @generated from field: common.Metadata metadata = 100; + */ + metadata?: Metadata; +}; + +/** + * Describes the message policy.DynamicValueMapping. + * Use `create(DynamicValueMappingSchema)` to create a new message. + */ +export const DynamicValueMappingSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_objects, 9); + /** * * * A Condition defines a rule of & { * Use `create(ConditionSchema)` to create a new message. */ export const ConditionSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 8); + messageDesc(file_policy_objects, 10); /** * A collection of Conditions evaluated by the boolean_operator provided @@ -547,7 +659,7 @@ export type ConditionGroup = Message<"policy.ConditionGroup"> & { * Use `create(ConditionGroupSchema)` to create a new message. */ export const ConditionGroupSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 9); + messageDesc(file_policy_objects, 11); /** * A collection of Condition Groups @@ -568,7 +680,7 @@ export type SubjectSet = Message<"policy.SubjectSet"> & { * Use `create(SubjectSetSchema)` to create a new message. */ export const SubjectSetSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 10); + messageDesc(file_policy_objects, 12); /** * @@ -611,7 +723,7 @@ export type SubjectConditionSet = Message<"policy.SubjectConditionSet"> & { * Use `create(SubjectConditionSetSchema)` to create a new message. */ export const SubjectConditionSetSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 11); + messageDesc(file_policy_objects, 13); /** * @@ -646,7 +758,7 @@ export type SubjectProperty = Message<"policy.SubjectProperty"> & { * Use `create(SubjectPropertySchema)` to create a new message. */ export const SubjectPropertySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 12); + messageDesc(file_policy_objects, 14); /** * @@ -696,7 +808,7 @@ export type ResourceMappingGroup = Message<"policy.ResourceMappingGroup"> & { * Use `create(ResourceMappingGroupSchema)` to create a new message. */ export const ResourceMappingGroupSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 13); + messageDesc(file_policy_objects, 15); /** * @@ -746,7 +858,7 @@ export type ResourceMapping = Message<"policy.ResourceMapping"> & { * Use `create(ResourceMappingSchema)` to create a new message. */ export const ResourceMappingSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 14); + messageDesc(file_policy_objects, 16); /** * @@ -809,7 +921,7 @@ export type KeyAccessServer = Message<"policy.KeyAccessServer"> & { * Use `create(KeyAccessServerSchema)` to create a new message. */ export const KeyAccessServerSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 15); + messageDesc(file_policy_objects, 17); /** * @generated from message policy.Key @@ -855,7 +967,7 @@ export type Key = Message<"policy.Key"> & { * Use `create(KeySchema)` to create a new message. */ export const KeySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 16); + messageDesc(file_policy_objects, 18); /** * Deprecated @@ -893,7 +1005,7 @@ export type KasPublicKey = Message<"policy.KasPublicKey"> & { * Use `create(KasPublicKeySchema)` to create a new message. */ export const KasPublicKeySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 17); + messageDesc(file_policy_objects, 19); /** * Deprecated @@ -913,7 +1025,7 @@ export type KasPublicKeySet = Message<"policy.KasPublicKeySet"> & { * Use `create(KasPublicKeySetSchema)` to create a new message. */ export const KasPublicKeySetSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 18); + messageDesc(file_policy_objects, 20); /** * Deprecated @@ -948,7 +1060,7 @@ export type PublicKey = Message<"policy.PublicKey"> & { * Use `create(PublicKeySchema)` to create a new message. */ export const PublicKeySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 19); + messageDesc(file_policy_objects, 21); /** * @generated from message policy.RegisteredResource @@ -987,7 +1099,7 @@ export type RegisteredResource = Message<"policy.RegisteredResource"> & { * Use `create(RegisteredResourceSchema)` to create a new message. */ export const RegisteredResourceSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 20); + messageDesc(file_policy_objects, 22); /** * @generated from message policy.RegisteredResourceValue @@ -1031,7 +1143,7 @@ export type RegisteredResourceValue = Message<"policy.RegisteredResourceValue"> * Use `create(RegisteredResourceValueSchema)` to create a new message. */ export const RegisteredResourceValueSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 21); + messageDesc(file_policy_objects, 23); /** * @generated from message policy.RegisteredResourceValue.ActionAttributeValue @@ -1065,7 +1177,7 @@ export type RegisteredResourceValue_ActionAttributeValue = Message<"policy.Regis * Use `create(RegisteredResourceValue_ActionAttributeValueSchema)` to create a new message. */ export const RegisteredResourceValue_ActionAttributeValueSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 21, 0); + messageDesc(file_policy_objects, 23, 0); /** * @generated from message policy.PolicyEnforcementPoint @@ -1082,7 +1194,7 @@ export type PolicyEnforcementPoint = Message<"policy.PolicyEnforcementPoint"> & * Use `create(PolicyEnforcementPointSchema)` to create a new message. */ export const PolicyEnforcementPointSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 22); + messageDesc(file_policy_objects, 24); /** * Holds the context needed for obligation fulfillment @@ -1101,7 +1213,7 @@ export type RequestContext = Message<"policy.RequestContext"> & { * Use `create(RequestContextSchema)` to create a new message. */ export const RequestContextSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 23); + messageDesc(file_policy_objects, 25); /** * @generated from message policy.Obligation @@ -1143,7 +1255,7 @@ export type Obligation = Message<"policy.Obligation"> & { * Use `create(ObligationSchema)` to create a new message. */ export const ObligationSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 24); + messageDesc(file_policy_objects, 26); /** * @generated from message policy.ObligationValue @@ -1185,7 +1297,7 @@ export type ObligationValue = Message<"policy.ObligationValue"> & { * Use `create(ObligationValueSchema)` to create a new message. */ export const ObligationValueSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 25); + messageDesc(file_policy_objects, 27); /** * @generated from message policy.ObligationTrigger @@ -1234,7 +1346,7 @@ export type ObligationTrigger = Message<"policy.ObligationTrigger"> & { * Use `create(ObligationTriggerSchema)` to create a new message. */ export const ObligationTriggerSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 26); + messageDesc(file_policy_objects, 28); /** * @generated from message policy.KasKey @@ -1261,7 +1373,7 @@ export type KasKey = Message<"policy.KasKey"> & { * Use `create(KasKeySchema)` to create a new message. */ export const KasKeySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 27); + messageDesc(file_policy_objects, 29); /** * @generated from message policy.PublicKeyCtx @@ -1282,7 +1394,7 @@ export type PublicKeyCtx = Message<"policy.PublicKeyCtx"> & { * Use `create(PublicKeyCtxSchema)` to create a new message. */ export const PublicKeyCtxSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 28); + messageDesc(file_policy_objects, 30); /** * @generated from message policy.PrivateKeyCtx @@ -1312,7 +1424,7 @@ export type PrivateKeyCtx = Message<"policy.PrivateKeyCtx"> & { * Use `create(PrivateKeyCtxSchema)` to create a new message. */ export const PrivateKeyCtxSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 29); + messageDesc(file_policy_objects, 31); /** * @generated from message policy.AsymmetricKey @@ -1404,7 +1516,7 @@ export type AsymmetricKey = Message<"policy.AsymmetricKey"> & { * Use `create(AsymmetricKeySchema)` to create a new message. */ export const AsymmetricKeySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 30); + messageDesc(file_policy_objects, 32); /** * @generated from message policy.SymmetricKey @@ -1459,7 +1571,7 @@ export type SymmetricKey = Message<"policy.SymmetricKey"> & { * Use `create(SymmetricKeySchema)` to create a new message. */ export const SymmetricKeySchema: GenMessage = /*@__PURE__*/ - messageDesc(file_policy_objects, 31); + messageDesc(file_policy_objects, 33); /** * @generated from enum policy.AttributeRuleTypeEnum @@ -1638,6 +1750,16 @@ export enum KasPublicKeyAlgEnum { * @generated from enum value: KAS_PUBLIC_KEY_ALG_ENUM_HPQT_SECP384R1_MLKEM1024 = 12; */ HPQT_SECP384R1_MLKEM1024 = 12, + + /** + * @generated from enum value: KAS_PUBLIC_KEY_ALG_ENUM_MLKEM_768 = 20; + */ + MLKEM_768 = 20, + + /** + * @generated from enum value: KAS_PUBLIC_KEY_ALG_ENUM_MLKEM_1024 = 21; + */ + MLKEM_1024 = 21, } /** @@ -1696,6 +1818,16 @@ export enum Algorithm { * @generated from enum value: ALGORITHM_HPQT_SECP384R1_MLKEM1024 = 8; */ HPQT_SECP384R1_MLKEM1024 = 8, + + /** + * @generated from enum value: ALGORITHM_MLKEM_768 = 20; + */ + MLKEM_768 = 20, + + /** + * @generated from enum value: ALGORITHM_MLKEM_1024 = 21; + */ + MLKEM_1024 = 21, } /** @@ -1705,7 +1837,9 @@ export const AlgorithmSchema: GenEnum = /*@__PURE__*/ enumDesc(file_policy_objects, 5); /** - * The status of the key + * The status of the key. + * Adding a value here requires updating the key_status mapping in the listKeys + * query so SORT_KAS_KEYS_TYPE_KEY_STATUS keeps sorting alphabetically. * * @generated from enum policy.KeyStatus */ diff --git a/lib/src/platform/policy/unsafe/unsafe_pb.ts b/lib/src/platform/policy/unsafe/unsafe_pb.ts index 6a8cdfe09..22aedc6e5 100644 --- a/lib/src/platform/policy/unsafe/unsafe_pb.ts +++ b/lib/src/platform/policy/unsafe/unsafe_pb.ts @@ -6,7 +6,7 @@ import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegen import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1"; import { file_buf_validate_validate } from "../../buf/validate/validate_pb.js"; import { file_google_protobuf_wrappers } from "@bufbuild/protobuf/wkt"; -import type { Attribute, AttributeRuleTypeEnum, KasKey, Namespace, Value } from "../objects_pb.js"; +import type { Attribute, AttributeRuleTypeEnum, KasKey, KeyMode, Namespace, Value } from "../objects_pb.js"; import { file_policy_objects } from "../objects_pb.js"; import type { Message } from "@bufbuild/protobuf"; @@ -14,7 +14,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file policy/unsafe/unsafe.proto. */ export const file_policy_unsafe_unsafe: GenFile = /*@__PURE__*/ - fileDesc("Chpwb2xpY3kvdW5zYWZlL3Vuc2FmZS5wcm90bxINcG9saWN5LnVuc2FmZSLhBAocVW5zYWZlVXBkYXRlTmFtZXNwYWNlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESqgQKBG5hbWUYAiABKAlCmwS6SJcEugGOBAoVbmFtZXNwYWNlX25hbWVfZm9ybWF0EqEDTmFtZXNwYWNlIG11c3QgYmUgYSB2YWxpZCBob3N0bmFtZS4gSXQgc2hvdWxkIGluY2x1ZGUgYXQgbGVhc3Qgb25lIGRvdCwgd2l0aCBlYWNoIHNlZ21lbnQgKGxhYmVsKSBzdGFydGluZyBhbmQgZW5kaW5nIHdpdGggYW4gYWxwaGFudW1lcmljIGNoYXJhY3Rlci4gRWFjaCBsYWJlbCBtdXN0IGJlIDEgdG8gNjMgY2hhcmFjdGVycyBsb25nLCBhbGxvd2luZyBoeXBoZW5zIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgdG9wLWxldmVsIGRvbWFpbiAodGhlIGxhc3Qgc2VnbWVudCBhZnRlciB0aGUgZmluYWwgZG90KSBtdXN0IGNvbnNpc3Qgb2YgYXQgbGVhc3QgdHdvIGFscGhhYmV0aWMgY2hhcmFjdGVycy4gVGhlIHN0b3JlZCBuYW1lc3BhY2Ugd2lsbCBiZSBub3JtYWxpemVkIHRvIGxvd2VyIGNhc2UuGlF0aGlzLm1hdGNoZXMoJ14oW2EtekEtWjAtOV0oW2EtekEtWjAtOVxcLV17MCw2MX1bYS16QS1aMC05XSk/XFwuKStbYS16QS1aXXsyLH0kJylyAxj9ASJFCh1VbnNhZmVVcGRhdGVOYW1lc3BhY2VSZXNwb25zZRIkCgluYW1lc3BhY2UYASABKAsyES5wb2xpY3kuTmFtZXNwYWNlIjgKIFVuc2FmZVJlYWN0aXZhdGVOYW1lc3BhY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJJCiFVbnNhZmVSZWFjdGl2YXRlTmFtZXNwYWNlUmVzcG9uc2USJAoJbmFtZXNwYWNlGAEgASgLMhEucG9saWN5Lk5hbWVzcGFjZSJJChxVbnNhZmVEZWxldGVOYW1lc3BhY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARITCgNmcW4YAiABKAlCBrpIA8gBASJFCh1VbnNhZmVEZWxldGVOYW1lc3BhY2VSZXNwb25zZRIkCgluYW1lc3BhY2UYASABKAsyES5wb2xpY3kuTmFtZXNwYWNlIvoDChxVbnNhZmVVcGRhdGVBdHRyaWJ1dGVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARLBAgoEbmFtZRgCIAEoCUKyArpIrgK6AaICChVhdHRyaWJ1dGVfbmFtZV9mb3JtYXQSswFBdHRyaWJ1dGUgbmFtZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIGF0dHJpYnV0ZSBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpTc2l6ZSh0aGlzKSA+IDAgPyB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKSA6IHRydWXIAQByAxj9ARI1CgRydWxlGAMgASgOMh0ucG9saWN5LkF0dHJpYnV0ZVJ1bGVUeXBlRW51bUIIukgFggECEAESMwoPYWxsb3dfdHJhdmVyc2FsGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRIUCgx2YWx1ZXNfb3JkZXIYBCADKAkiRQodVW5zYWZlVXBkYXRlQXR0cmlidXRlUmVzcG9uc2USJAoJYXR0cmlidXRlGAEgASgLMhEucG9saWN5LkF0dHJpYnV0ZSI4CiBVbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiSQohVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZVJlc3BvbnNlEiQKCWF0dHJpYnV0ZRgBIAEoCzIRLnBvbGljeS5BdHRyaWJ1dGUiSQocVW5zYWZlRGVsZXRlQXR0cmlidXRlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESEwoDZnFuGAIgASgJQga6SAPIAQEiRQodVW5zYWZlRGVsZXRlQXR0cmlidXRlUmVzcG9uc2USJAoJYXR0cmlidXRlGAEgASgLMhEucG9saWN5LkF0dHJpYnV0ZSLcAgohVW5zYWZlVXBkYXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARKgAgoFdmFsdWUYAiABKAlCkAK6SIwCugGDAgoMdmFsdWVfZm9ybWF0ErUBQXR0cmlidXRlIFZhbHVlIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgYnV0IG5vdCBhcyB0aGUgZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIuIFRoZSBzdG9yZWQgYXR0cmlidXRlIHZhbHVlIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLho7dGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJylyAxj9ASJCCiJVbnNhZmVVcGRhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlEhwKBXZhbHVlGAEgASgLMg0ucG9saWN5LlZhbHVlIj0KJVVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIkYKJlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlEhwKBXZhbHVlGAEgASgLMg0ucG9saWN5LlZhbHVlIk4KIVVuc2FmZURlbGV0ZUF0dHJpYnV0ZVZhbHVlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESEwoDZnFuGAIgASgJQga6SAPIAQEiQgoiVW5zYWZlRGVsZXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSJfChlVbnNhZmVEZWxldGVLYXNLZXlSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARITCgNraWQYAiABKAlCBrpIA8gBARIXCgdrYXNfdXJpGAMgASgJQga6SAPIAQEiOQoaVW5zYWZlRGVsZXRlS2FzS2V5UmVzcG9uc2USGwoDa2V5GAEgASgLMg4ucG9saWN5Lkthc0tleTL4CQoNVW5zYWZlU2VydmljZRJ0ChVVbnNhZmVVcGRhdGVOYW1lc3BhY2USKy5wb2xpY3kudW5zYWZlLlVuc2FmZVVwZGF0ZU5hbWVzcGFjZVJlcXVlc3QaLC5wb2xpY3kudW5zYWZlLlVuc2FmZVVwZGF0ZU5hbWVzcGFjZVJlc3BvbnNlIgASgAEKGVVuc2FmZVJlYWN0aXZhdGVOYW1lc3BhY2USLy5wb2xpY3kudW5zYWZlLlVuc2FmZVJlYWN0aXZhdGVOYW1lc3BhY2VSZXF1ZXN0GjAucG9saWN5LnVuc2FmZS5VbnNhZmVSZWFjdGl2YXRlTmFtZXNwYWNlUmVzcG9uc2UiABJ0ChVVbnNhZmVEZWxldGVOYW1lc3BhY2USKy5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZU5hbWVzcGFjZVJlcXVlc3QaLC5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZU5hbWVzcGFjZVJlc3BvbnNlIgASdAoVVW5zYWZlVXBkYXRlQXR0cmlidXRlEisucG9saWN5LnVuc2FmZS5VbnNhZmVVcGRhdGVBdHRyaWJ1dGVSZXF1ZXN0GiwucG9saWN5LnVuc2FmZS5VbnNhZmVVcGRhdGVBdHRyaWJ1dGVSZXNwb25zZSIAEoABChlVbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlEi8ucG9saWN5LnVuc2FmZS5VbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlUmVxdWVzdBowLnBvbGljeS51bnNhZmUuVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZVJlc3BvbnNlIgASdAoVVW5zYWZlRGVsZXRlQXR0cmlidXRlEisucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVBdHRyaWJ1dGVSZXF1ZXN0GiwucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVBdHRyaWJ1dGVSZXNwb25zZSIAEoMBChpVbnNhZmVVcGRhdGVBdHRyaWJ1dGVWYWx1ZRIwLnBvbGljeS51bnNhZmUuVW5zYWZlVXBkYXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0GjEucG9saWN5LnVuc2FmZS5VbnNhZmVVcGRhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlIgASjwEKHlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZRI0LnBvbGljeS51bnNhZmUuVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZVZhbHVlUmVxdWVzdBo1LnBvbGljeS51bnNhZmUuVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZVZhbHVlUmVzcG9uc2UiABKDAQoaVW5zYWZlRGVsZXRlQXR0cmlidXRlVmFsdWUSMC5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZUF0dHJpYnV0ZVZhbHVlUmVxdWVzdBoxLnBvbGljeS51bnNhZmUuVW5zYWZlRGVsZXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZSIAEmsKElVuc2FmZURlbGV0ZUthc0tleRIoLnBvbGljeS51bnNhZmUuVW5zYWZlRGVsZXRlS2FzS2V5UmVxdWVzdBopLnBvbGljeS51bnNhZmUuVW5zYWZlRGVsZXRlS2FzS2V5UmVzcG9uc2UiAGIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_wrappers, file_policy_objects]); + fileDesc("Chpwb2xpY3kvdW5zYWZlL3Vuc2FmZS5wcm90bxINcG9saWN5LnVuc2FmZSLhBAocVW5zYWZlVXBkYXRlTmFtZXNwYWNlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESqgQKBG5hbWUYAiABKAlCmwS6SJcEugGOBAoVbmFtZXNwYWNlX25hbWVfZm9ybWF0EqEDTmFtZXNwYWNlIG11c3QgYmUgYSB2YWxpZCBob3N0bmFtZS4gSXQgc2hvdWxkIGluY2x1ZGUgYXQgbGVhc3Qgb25lIGRvdCwgd2l0aCBlYWNoIHNlZ21lbnQgKGxhYmVsKSBzdGFydGluZyBhbmQgZW5kaW5nIHdpdGggYW4gYWxwaGFudW1lcmljIGNoYXJhY3Rlci4gRWFjaCBsYWJlbCBtdXN0IGJlIDEgdG8gNjMgY2hhcmFjdGVycyBsb25nLCBhbGxvd2luZyBoeXBoZW5zIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgdG9wLWxldmVsIGRvbWFpbiAodGhlIGxhc3Qgc2VnbWVudCBhZnRlciB0aGUgZmluYWwgZG90KSBtdXN0IGNvbnNpc3Qgb2YgYXQgbGVhc3QgdHdvIGFscGhhYmV0aWMgY2hhcmFjdGVycy4gVGhlIHN0b3JlZCBuYW1lc3BhY2Ugd2lsbCBiZSBub3JtYWxpemVkIHRvIGxvd2VyIGNhc2UuGlF0aGlzLm1hdGNoZXMoJ14oW2EtekEtWjAtOV0oW2EtekEtWjAtOVxcLV17MCw2MX1bYS16QS1aMC05XSk/XFwuKStbYS16QS1aXXsyLH0kJylyAxj9ASJFCh1VbnNhZmVVcGRhdGVOYW1lc3BhY2VSZXNwb25zZRIkCgluYW1lc3BhY2UYASABKAsyES5wb2xpY3kuTmFtZXNwYWNlIjgKIFVuc2FmZVJlYWN0aXZhdGVOYW1lc3BhY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJJCiFVbnNhZmVSZWFjdGl2YXRlTmFtZXNwYWNlUmVzcG9uc2USJAoJbmFtZXNwYWNlGAEgASgLMhEucG9saWN5Lk5hbWVzcGFjZSJJChxVbnNhZmVEZWxldGVOYW1lc3BhY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARITCgNmcW4YAiABKAlCBrpIA8gBASJFCh1VbnNhZmVEZWxldGVOYW1lc3BhY2VSZXNwb25zZRIkCgluYW1lc3BhY2UYASABKAsyES5wb2xpY3kuTmFtZXNwYWNlIvoDChxVbnNhZmVVcGRhdGVBdHRyaWJ1dGVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARLBAgoEbmFtZRgCIAEoCUKyArpIrgK6AaICChVhdHRyaWJ1dGVfbmFtZV9mb3JtYXQSswFBdHRyaWJ1dGUgbmFtZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIGF0dHJpYnV0ZSBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpTc2l6ZSh0aGlzKSA+IDAgPyB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKSA6IHRydWXIAQByAxj9ARI1CgRydWxlGAMgASgOMh0ucG9saWN5LkF0dHJpYnV0ZVJ1bGVUeXBlRW51bUIIukgFggECEAESMwoPYWxsb3dfdHJhdmVyc2FsGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRIUCgx2YWx1ZXNfb3JkZXIYBCADKAkiRQodVW5zYWZlVXBkYXRlQXR0cmlidXRlUmVzcG9uc2USJAoJYXR0cmlidXRlGAEgASgLMhEucG9saWN5LkF0dHJpYnV0ZSI4CiBVbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiSQohVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZVJlc3BvbnNlEiQKCWF0dHJpYnV0ZRgBIAEoCzIRLnBvbGljeS5BdHRyaWJ1dGUiSQocVW5zYWZlRGVsZXRlQXR0cmlidXRlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESEwoDZnFuGAIgASgJQga6SAPIAQEiRQodVW5zYWZlRGVsZXRlQXR0cmlidXRlUmVzcG9uc2USJAoJYXR0cmlidXRlGAEgASgLMhEucG9saWN5LkF0dHJpYnV0ZSLcAgohVW5zYWZlVXBkYXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARKgAgoFdmFsdWUYAiABKAlCkAK6SIwCugGDAgoMdmFsdWVfZm9ybWF0ErUBQXR0cmlidXRlIFZhbHVlIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgYnV0IG5vdCBhcyB0aGUgZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIuIFRoZSBzdG9yZWQgYXR0cmlidXRlIHZhbHVlIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLho7dGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJylyAxj9ASJCCiJVbnNhZmVVcGRhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlEhwKBXZhbHVlGAEgASgLMg0ucG9saWN5LlZhbHVlIj0KJVVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIkYKJlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlEhwKBXZhbHVlGAEgASgLMg0ucG9saWN5LlZhbHVlIk4KIVVuc2FmZURlbGV0ZUF0dHJpYnV0ZVZhbHVlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESEwoDZnFuGAIgASgJQga6SAPIAQEiQgoiVW5zYWZlRGVsZXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSJfChlVbnNhZmVEZWxldGVLYXNLZXlSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARITCgNraWQYAiABKAlCBrpIA8gBARIXCgdrYXNfdXJpGAMgASgJQga6SAPIAQEiOQoaVW5zYWZlRGVsZXRlS2FzS2V5UmVzcG9uc2USGwoDa2V5GAEgASgLMg4ucG9saWN5Lkthc0tleSKPAQoWVW5zYWZlVXBkYXRlS2V5UmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESNgoPdGFyZ2V0X2tleV9tb2RlGAIgASgOMg8ucG9saWN5LktleU1vZGVCDLpICYIBBhgAGAMYBBInChJwcm92aWRlcl9jb25maWdfaWQYAyABKAlCC7pICNgBAXIDsAEBIjYKF1Vuc2FmZVVwZGF0ZUtleVJlc3BvbnNlEhsKA2tleRgBIAEoCzIOLnBvbGljeS5LYXNLZXky3AoKDVVuc2FmZVNlcnZpY2USdAoVVW5zYWZlVXBkYXRlTmFtZXNwYWNlEisucG9saWN5LnVuc2FmZS5VbnNhZmVVcGRhdGVOYW1lc3BhY2VSZXF1ZXN0GiwucG9saWN5LnVuc2FmZS5VbnNhZmVVcGRhdGVOYW1lc3BhY2VSZXNwb25zZSIAEoABChlVbnNhZmVSZWFjdGl2YXRlTmFtZXNwYWNlEi8ucG9saWN5LnVuc2FmZS5VbnNhZmVSZWFjdGl2YXRlTmFtZXNwYWNlUmVxdWVzdBowLnBvbGljeS51bnNhZmUuVW5zYWZlUmVhY3RpdmF0ZU5hbWVzcGFjZVJlc3BvbnNlIgASdAoVVW5zYWZlRGVsZXRlTmFtZXNwYWNlEisucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVOYW1lc3BhY2VSZXF1ZXN0GiwucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVOYW1lc3BhY2VSZXNwb25zZSIAEnQKFVVuc2FmZVVwZGF0ZUF0dHJpYnV0ZRIrLnBvbGljeS51bnNhZmUuVW5zYWZlVXBkYXRlQXR0cmlidXRlUmVxdWVzdBosLnBvbGljeS51bnNhZmUuVW5zYWZlVXBkYXRlQXR0cmlidXRlUmVzcG9uc2UiABKAAQoZVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZRIvLnBvbGljeS51bnNhZmUuVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZVJlcXVlc3QaMC5wb2xpY3kudW5zYWZlLlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVSZXNwb25zZSIAEnQKFVVuc2FmZURlbGV0ZUF0dHJpYnV0ZRIrLnBvbGljeS51bnNhZmUuVW5zYWZlRGVsZXRlQXR0cmlidXRlUmVxdWVzdBosLnBvbGljeS51bnNhZmUuVW5zYWZlRGVsZXRlQXR0cmlidXRlUmVzcG9uc2UiABKDAQoaVW5zYWZlVXBkYXRlQXR0cmlidXRlVmFsdWUSMC5wb2xpY3kudW5zYWZlLlVuc2FmZVVwZGF0ZUF0dHJpYnV0ZVZhbHVlUmVxdWVzdBoxLnBvbGljeS51bnNhZmUuVW5zYWZlVXBkYXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZSIAEo8BCh5VbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlVmFsdWUSNC5wb2xpY3kudW5zYWZlLlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QaNS5wb2xpY3kudW5zYWZlLlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlIgASgwEKGlVuc2FmZURlbGV0ZUF0dHJpYnV0ZVZhbHVlEjAucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QaMS5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZUF0dHJpYnV0ZVZhbHVlUmVzcG9uc2UiABJiCg9VbnNhZmVVcGRhdGVLZXkSJS5wb2xpY3kudW5zYWZlLlVuc2FmZVVwZGF0ZUtleVJlcXVlc3QaJi5wb2xpY3kudW5zYWZlLlVuc2FmZVVwZGF0ZUtleVJlc3BvbnNlIgASawoSVW5zYWZlRGVsZXRlS2FzS2V5EigucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVLYXNLZXlSZXF1ZXN0GikucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVLYXNLZXlSZXNwb25zZSIAYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_wrappers, file_policy_objects]); /** * WARNING!! @@ -511,6 +511,66 @@ export type UnsafeDeleteKasKeyResponse = Message<"policy.unsafe.UnsafeDeleteKasK export const UnsafeDeleteKasKeyResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_policy_unsafe_unsafe, 19); +/** + * WARNING!! + * Updating a key in place can retroactively alter decryptability for existing TDFs. + * This support-only operation is limited to switching between REMOTE and PUBLIC_KEY_ONLY + * key modes, or updating the provider configuration for an existing REMOTE key, while + * preserving the existing KID, KAS URI, and public key. + * + * @generated from message policy.unsafe.UnsafeUpdateKeyRequest + */ +export type UnsafeUpdateKeyRequest = Message<"policy.unsafe.UnsafeUpdateKeyRequest"> & { + /** + * Required + * UUID of the Key + * + * @generated from field: string id = 1; + */ + id: string; + + /** + * Optional + * Target key mode. Only KEY_MODE_REMOTE and KEY_MODE_PUBLIC_KEY_ONLY mode changes are supported. + * KEY_MODE_UNSPECIFIED with provider_config_id updates only the provider configuration for an existing REMOTE key. + * + * @generated from field: policy.KeyMode target_key_mode = 2; + */ + targetKeyMode: KeyMode; + + /** + * Conditionally Required + * Configuration ID for the key provider. Required for KEY_MODE_REMOTE and KEY_MODE_UNSPECIFIED; empty for KEY_MODE_PUBLIC_KEY_ONLY. + * + * @generated from field: string provider_config_id = 3; + */ + providerConfigId: string; +}; + +/** + * Describes the message policy.unsafe.UnsafeUpdateKeyRequest. + * Use `create(UnsafeUpdateKeyRequestSchema)` to create a new message. + */ +export const UnsafeUpdateKeyRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_unsafe_unsafe, 20); + +/** + * @generated from message policy.unsafe.UnsafeUpdateKeyResponse + */ +export type UnsafeUpdateKeyResponse = Message<"policy.unsafe.UnsafeUpdateKeyResponse"> & { + /** + * @generated from field: policy.KasKey key = 1; + */ + key?: KasKey; +}; + +/** + * Describes the message policy.unsafe.UnsafeUpdateKeyResponse. + * Use `create(UnsafeUpdateKeyResponseSchema)` to create a new message. + */ +export const UnsafeUpdateKeyResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_policy_unsafe_unsafe, 21); + /** * / * / Unsafe Service @@ -608,6 +668,14 @@ export const UnsafeService: GenService<{ * Kas Key RPCs * --------------------------------------- * + * @generated from rpc policy.unsafe.UnsafeService.UnsafeUpdateKey + */ + unsafeUpdateKey: { + methodKind: "unary"; + input: typeof UnsafeUpdateKeyRequestSchema; + output: typeof UnsafeUpdateKeyResponseSchema; + }, + /** * @generated from rpc policy.unsafe.UnsafeService.UnsafeDeleteKasKey */ unsafeDeleteKasKey: {