@opentdf/sdk 0.4.0-beta.4 → 0.4.0-beta.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/cjs/src/access.js +16 -1
  2. package/dist/cjs/src/auth/oidc-clientcredentials-provider.js +4 -2
  3. package/dist/cjs/src/auth/oidc-externaljwt-provider.js +5 -3
  4. package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +19 -3
  5. package/dist/cjs/src/auth/oidc.js +9 -8
  6. package/dist/cjs/src/auth/providers.js +7 -1
  7. package/dist/cjs/src/index.js +4 -2
  8. package/dist/cjs/src/opentdf.js +66 -12
  9. package/dist/cjs/src/platform/authorization/v2/authorization_pb.js +112 -0
  10. package/dist/cjs/src/platform/buf/validate/validate_pb.js +114 -170
  11. package/dist/cjs/src/platform/common/common_pb.js +16 -5
  12. package/dist/cjs/src/platform/entity/entity_pb.js +51 -0
  13. package/dist/cjs/src/platform/entityresolution/entity_resolution_pb.js +1 -1
  14. package/dist/cjs/src/platform/entityresolution/v2/entity_resolution_pb.js +49 -0
  15. package/dist/cjs/src/platform/google/api/annotations_pb.js +1 -1
  16. package/dist/cjs/src/platform/google/api/http_pb.js +3 -3
  17. package/dist/cjs/src/platform/kas/kas_pb.js +2 -2
  18. package/dist/cjs/src/platform/policy/attributes/attributes_pb.js +12 -2
  19. package/dist/cjs/src/platform/policy/kasregistry/key_access_server_registry_pb.js +57 -4
  20. package/dist/cjs/src/platform/policy/keymanagement/key_management_pb.js +2 -2
  21. package/dist/cjs/src/platform/policy/namespaces/namespaces_pb.js +31 -4
  22. package/dist/cjs/src/platform/policy/objects_pb.js +116 -42
  23. package/dist/cjs/src/platform/policy/obligations/obligations_pb.js +159 -0
  24. package/dist/cjs/src/platform/policy/registeredresources/registered_resources_pb.js +20 -15
  25. package/dist/cjs/src/platform/policy/resourcemapping/resource_mapping_pb.js +2 -3
  26. package/dist/cjs/src/platform/policy/selectors_pb.js +1 -1
  27. package/dist/cjs/src/platform/policy/subjectmapping/subject_mapping_pb.js +2 -3
  28. package/dist/cjs/src/platform/policy/unsafe/unsafe_pb.js +2 -4
  29. package/dist/cjs/src/platform.js +16 -3
  30. package/dist/cjs/src/policy/api.js +27 -7
  31. package/dist/cjs/src/policy/granter.js +75 -48
  32. package/dist/cjs/src/seekable.js +32 -1
  33. package/dist/cjs/src/utils.js +57 -3
  34. package/dist/cjs/tdf3/src/assertions.js +39 -2
  35. package/dist/cjs/tdf3/src/client/builders.js +13 -1
  36. package/dist/cjs/tdf3/src/client/index.js +200 -53
  37. package/dist/cjs/tdf3/src/client/validation.js +3 -3
  38. package/dist/cjs/tdf3/src/tdf.js +20 -2
  39. package/dist/cjs/tdf3/src/utils/unwrap.js +2 -2
  40. package/dist/types/src/access.d.ts +15 -0
  41. package/dist/types/src/access.d.ts.map +1 -1
  42. package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts +1 -1
  43. package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts.map +1 -1
  44. package/dist/types/src/auth/oidc-externaljwt-provider.d.ts +1 -1
  45. package/dist/types/src/auth/oidc-externaljwt-provider.d.ts.map +1 -1
  46. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts +15 -1
  47. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts.map +1 -1
  48. package/dist/types/src/auth/oidc.d.ts +4 -0
  49. package/dist/types/src/auth/oidc.d.ts.map +1 -1
  50. package/dist/types/src/auth/providers.d.ts.map +1 -1
  51. package/dist/types/src/index.d.ts +1 -0
  52. package/dist/types/src/index.d.ts.map +1 -1
  53. package/dist/types/src/opentdf.d.ts +126 -6
  54. package/dist/types/src/opentdf.d.ts.map +1 -1
  55. package/dist/types/src/platform/authorization/v2/authorization_pb.d.ts +439 -0
  56. package/dist/types/src/platform/authorization/v2/authorization_pb.d.ts.map +1 -0
  57. package/dist/types/src/platform/buf/validate/validate_pb.d.ts +495 -370
  58. package/dist/types/src/platform/buf/validate/validate_pb.d.ts.map +1 -1
  59. package/dist/types/src/platform/common/common_pb.d.ts +36 -0
  60. package/dist/types/src/platform/common/common_pb.d.ts.map +1 -1
  61. package/dist/types/src/platform/entity/entity_pb.d.ts +130 -0
  62. package/dist/types/src/platform/entity/entity_pb.d.ts.map +1 -0
  63. package/dist/types/src/platform/entityresolution/entity_resolution_pb.d.ts +4 -0
  64. package/dist/types/src/platform/entityresolution/entity_resolution_pb.d.ts.map +1 -1
  65. package/dist/types/src/platform/entityresolution/v2/entity_resolution_pb.d.ts +136 -0
  66. package/dist/types/src/platform/entityresolution/v2/entity_resolution_pb.d.ts.map +1 -0
  67. package/dist/types/src/platform/google/api/http_pb.d.ts.map +1 -1
  68. package/dist/types/src/platform/kas/kas_pb.d.ts +5 -0
  69. package/dist/types/src/platform/kas/kas_pb.d.ts.map +1 -1
  70. package/dist/types/src/platform/policy/attributes/attributes_pb.d.ts +44 -13
  71. package/dist/types/src/platform/policy/attributes/attributes_pb.d.ts.map +1 -1
  72. package/dist/types/src/platform/policy/kasregistry/key_access_server_registry_pb.d.ts +329 -24
  73. package/dist/types/src/platform/policy/kasregistry/key_access_server_registry_pb.d.ts.map +1 -1
  74. package/dist/types/src/platform/policy/keymanagement/key_management_pb.d.ts +20 -1
  75. package/dist/types/src/platform/policy/keymanagement/key_management_pb.d.ts.map +1 -1
  76. package/dist/types/src/platform/policy/namespaces/namespaces_pb.d.ts +143 -5
  77. package/dist/types/src/platform/policy/namespaces/namespaces_pb.d.ts.map +1 -1
  78. package/dist/types/src/platform/policy/objects_pb.d.ts +382 -33
  79. package/dist/types/src/platform/policy/objects_pb.d.ts.map +1 -1
  80. package/dist/types/src/platform/policy/obligations/obligations_pb.d.ts +670 -0
  81. package/dist/types/src/platform/policy/obligations/obligations_pb.d.ts.map +1 -0
  82. package/dist/types/src/platform/policy/registeredresources/registered_resources_pb.d.ts +67 -0
  83. package/dist/types/src/platform/policy/registeredresources/registered_resources_pb.d.ts.map +1 -1
  84. package/dist/types/src/platform/policy/resourcemapping/resource_mapping_pb.d.ts.map +1 -1
  85. package/dist/types/src/platform/policy/selectors_pb.d.ts +18 -0
  86. package/dist/types/src/platform/policy/selectors_pb.d.ts.map +1 -1
  87. package/dist/types/src/platform/policy/subjectmapping/subject_mapping_pb.d.ts.map +1 -1
  88. package/dist/types/src/platform/policy/unsafe/unsafe_pb.d.ts +18 -4
  89. package/dist/types/src/platform/policy/unsafe/unsafe_pb.d.ts.map +1 -1
  90. package/dist/types/src/platform.d.ts +16 -0
  91. package/dist/types/src/platform.d.ts.map +1 -1
  92. package/dist/types/src/policy/api.d.ts +2 -0
  93. package/dist/types/src/policy/api.d.ts.map +1 -1
  94. package/dist/types/src/policy/granter.d.ts +11 -6
  95. package/dist/types/src/policy/granter.d.ts.map +1 -1
  96. package/dist/types/src/seekable.d.ts +31 -0
  97. package/dist/types/src/seekable.d.ts.map +1 -1
  98. package/dist/types/src/utils.d.ts +56 -2
  99. package/dist/types/src/utils.d.ts.map +1 -1
  100. package/dist/types/tdf3/src/assertions.d.ts +4 -0
  101. package/dist/types/tdf3/src/assertions.d.ts.map +1 -1
  102. package/dist/types/tdf3/src/client/builders.d.ts +12 -0
  103. package/dist/types/tdf3/src/client/builders.d.ts.map +1 -1
  104. package/dist/types/tdf3/src/client/index.d.ts +11 -3
  105. package/dist/types/tdf3/src/client/index.d.ts.map +1 -1
  106. package/dist/types/tdf3/src/client/validation.d.ts +3 -3
  107. package/dist/types/tdf3/src/client/validation.d.ts.map +1 -1
  108. package/dist/types/tdf3/src/tdf.d.ts +2 -1
  109. package/dist/types/tdf3/src/tdf.d.ts.map +1 -1
  110. package/dist/types/tdf3/src/utils/unwrap.d.ts.map +1 -1
  111. package/dist/web/src/access.js +16 -1
  112. package/dist/web/src/auth/oidc-clientcredentials-provider.js +4 -2
  113. package/dist/web/src/auth/oidc-externaljwt-provider.js +5 -3
  114. package/dist/web/src/auth/oidc-refreshtoken-provider.js +19 -3
  115. package/dist/web/src/auth/oidc.js +9 -8
  116. package/dist/web/src/auth/providers.js +7 -1
  117. package/dist/web/src/index.js +2 -1
  118. package/dist/web/src/opentdf.js +66 -12
  119. package/dist/web/src/platform/authorization/v2/authorization_pb.js +109 -0
  120. package/dist/web/src/platform/buf/validate/validate_pb.js +113 -169
  121. package/dist/web/src/platform/common/common_pb.js +15 -4
  122. package/dist/web/src/platform/entity/entity_pb.js +48 -0
  123. package/dist/web/src/platform/entityresolution/entity_resolution_pb.js +1 -1
  124. package/dist/web/src/platform/entityresolution/v2/entity_resolution_pb.js +46 -0
  125. package/dist/web/src/platform/google/api/annotations_pb.js +1 -1
  126. package/dist/web/src/platform/google/api/http_pb.js +3 -3
  127. package/dist/web/src/platform/kas/kas_pb.js +2 -2
  128. package/dist/web/src/platform/policy/attributes/attributes_pb.js +12 -2
  129. package/dist/web/src/platform/policy/kasregistry/key_access_server_registry_pb.js +55 -3
  130. package/dist/web/src/platform/policy/keymanagement/key_management_pb.js +2 -2
  131. package/dist/web/src/platform/policy/namespaces/namespaces_pb.js +30 -3
  132. package/dist/web/src/platform/policy/objects_pb.js +114 -41
  133. package/dist/web/src/platform/policy/obligations/obligations_pb.js +156 -0
  134. package/dist/web/src/platform/policy/registeredresources/registered_resources_pb.js +19 -14
  135. package/dist/web/src/platform/policy/resourcemapping/resource_mapping_pb.js +2 -3
  136. package/dist/web/src/platform/policy/selectors_pb.js +1 -1
  137. package/dist/web/src/platform/policy/subjectmapping/subject_mapping_pb.js +2 -3
  138. package/dist/web/src/platform/policy/unsafe/unsafe_pb.js +2 -4
  139. package/dist/web/src/platform.js +16 -3
  140. package/dist/web/src/policy/api.js +26 -7
  141. package/dist/web/src/policy/granter.js +75 -48
  142. package/dist/web/src/seekable.js +32 -1
  143. package/dist/web/src/utils.js +57 -3
  144. package/dist/web/tdf3/src/assertions.js +38 -2
  145. package/dist/web/tdf3/src/client/builders.js +13 -1
  146. package/dist/web/tdf3/src/client/index.js +202 -56
  147. package/dist/web/tdf3/src/client/validation.js +3 -3
  148. package/dist/web/tdf3/src/tdf.js +20 -2
  149. package/dist/web/tdf3/src/utils/unwrap.js +2 -2
  150. package/package.json +7 -5
  151. package/src/access.ts +15 -0
  152. package/src/auth/oidc-clientcredentials-provider.ts +4 -0
  153. package/src/auth/oidc-externaljwt-provider.ts +5 -1
  154. package/src/auth/oidc-refreshtoken-provider.ts +19 -1
  155. package/src/auth/oidc.ts +12 -7
  156. package/src/auth/providers.ts +6 -0
  157. package/src/index.ts +1 -0
  158. package/src/opentdf.ts +149 -72
  159. package/src/platform/authorization/v2/authorization_pb.ts +503 -0
  160. package/src/platform/buf/validate/validate_pb.ts +529 -401
  161. package/src/platform/common/common_pb.ts +48 -3
  162. package/src/platform/entity/entity_pb.ts +154 -0
  163. package/src/platform/entityresolution/entity_resolution_pb.ts +4 -0
  164. package/src/platform/entityresolution/v2/entity_resolution_pb.ts +170 -0
  165. package/src/platform/google/api/annotations_pb.ts +1 -1
  166. package/src/platform/google/api/http_pb.ts +2 -2
  167. package/src/platform/kas/kas_pb.ts +6 -1
  168. package/src/platform/policy/attributes/attributes_pb.ts +46 -16
  169. package/src/platform/policy/kasregistry/key_access_server_registry_pb.ts +371 -27
  170. package/src/platform/policy/keymanagement/key_management_pb.ts +24 -2
  171. package/src/platform/policy/namespaces/namespaces_pb.ts +163 -7
  172. package/src/platform/policy/objects_pb.ts +474 -59
  173. package/src/platform/policy/obligations/obligations_pb.ts +788 -0
  174. package/src/platform/policy/registeredresources/registered_resources_pb.ts +80 -13
  175. package/src/platform/policy/resourcemapping/resource_mapping_pb.ts +1 -2
  176. package/src/platform/policy/selectors_pb.ts +18 -0
  177. package/src/platform/policy/subjectmapping/subject_mapping_pb.ts +1 -2
  178. package/src/platform/policy/unsafe/unsafe_pb.ts +21 -6
  179. package/src/platform.ts +19 -5
  180. package/src/policy/api.ts +37 -6
  181. package/src/policy/granter.ts +82 -56
  182. package/src/seekable.ts +31 -0
  183. package/src/utils.ts +56 -2
  184. package/tdf3/src/assertions.ts +52 -1
  185. package/tdf3/src/client/builders.ts +15 -0
  186. package/tdf3/src/client/index.ts +279 -73
  187. package/tdf3/src/client/validation.ts +2 -2
  188. package/tdf3/src/tdf.ts +26 -2
  189. package/tdf3/src/utils/unwrap.ts +2 -1
@@ -17,7 +17,7 @@ import type { Message } from "@bufbuild/protobuf";
17
17
  * Describes the file policy/registeredresources/registered_resources.proto.
18
18
  */
19
19
  export const file_policy_registeredresources_registered_resources: GenFile = /*@__PURE__*/
20
- fileDesc("CjVwb2xpY3kvcmVnaXN0ZXJlZHJlc291cmNlcy9yZWdpc3RlcmVkX3Jlc291cmNlcy5wcm90bxIacG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMiwQMKH0NyZWF0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlcXVlc3QSogIKBG5hbWUYASABKAlCkwK6SI8CugGDAgoOcnJfbmFtZV9mb3JtYXQSswFSZWdpc3RlcmVkIFJlc291cmNlIE5hbWUgbXVzdCBiZSBhbiBhbHBoYW51bWVyaWMgc3RyaW5nLCBhbGxvd2luZyBoeXBoZW5zIGFuZCB1bmRlcnNjb3JlcyBidXQgbm90IGFzIHRoZSBmaXJzdCBvciBsYXN0IGNoYXJhY3Rlci4gVGhlIHN0b3JlZCBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLho7dGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJynIAQFyAxj9ARJOCgZ2YWx1ZXMYAiADKAlCPrpIO5IBOAgAGAEiMnIwGP0BMiteW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZSJQCiBDcmVhdGVSZWdpc3RlcmVkUmVzb3VyY2VSZXNwb25zZRIsCghyZXNvdXJjZRgBIAEoCzIaLnBvbGljeS5SZWdpc3RlcmVkUmVzb3VyY2UiigMKHEdldFJlZ2lzdGVyZWRSZXNvdXJjZVJlcXVlc3QSFgoCaWQYASABKAlCCLpIBXIDsAEBSAASvAIKBG5hbWUYAiABKAlCqwK6SKcCugGbAgoOcnJfbmFtZV9mb3JtYXQSswFSZWdpc3RlcmVkIFJlc291cmNlIE5hbWUgbXVzdCBiZSBhbiBhbHBoYW51bWVyaWMgc3RyaW5nLCBhbGxvd2luZyBoeXBoZW5zIGFuZCB1bmRlcnNjb3JlcyBidXQgbm90IGFzIHRoZSBmaXJzdCBvciBsYXN0IGNoYXJhY3Rlci4gVGhlIHN0b3JlZCBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpTc2l6ZSh0aGlzKSA+IDAgPyB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKSA6IHRydWXIAQByAxj9AUgAQhMKCmlkZW50aWZpZXISBbpIAggBIk0KHUdldFJlZ2lzdGVyZWRSZXNvdXJjZVJlc3BvbnNlEiwKCHJlc291cmNlGAEgASgLMhoucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZSJJCh5MaXN0UmVnaXN0ZXJlZFJlc291cmNlc1JlcXVlc3QSJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdCJ6Ch9MaXN0UmVnaXN0ZXJlZFJlc291cmNlc1Jlc3BvbnNlEi0KCXJlc291cmNlcxgBIAMoCzIaLnBvbGljeS5SZWdpc3RlcmVkUmVzb3VyY2USKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2Ui3QMKH1VwZGF0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEroCCgRuYW1lGAIgASgJQqsCukinAroBmwIKDnJyX25hbWVfZm9ybWF0ErMBUmVnaXN0ZXJlZCBSZXNvdXJjZSBOYW1lIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgYnV0IG5vdCBhcyB0aGUgZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIuIFRoZSBzdG9yZWQgbmFtZSB3aWxsIGJlIG5vcm1hbGl6ZWQgdG8gbG93ZXIgY2FzZS4aU3NpemUodGhpcykgPiAwID8gdGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJykgOiB0cnVlyAEAcgMY/QESKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlEjwKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchhlIAEoDjIaLmNvbW1vbi5NZXRhZGF0YVVwZGF0ZUVudW0iUAogVXBkYXRlUmVnaXN0ZXJlZFJlc291cmNlUmVzcG9uc2USLAoIcmVzb3VyY2UYASABKAsyGi5wb2xpY3kuUmVnaXN0ZXJlZFJlc291cmNlIjcKH0RlbGV0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIlAKIERlbGV0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlc3BvbnNlEiwKCHJlc291cmNlGAEgASgLMhoucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZSKZAwokQ3JlYXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXF1ZXN0Eh0KC3Jlc291cmNlX2lkGAEgASgJQgi6SAVyA7ABARKmAgoFdmFsdWUYAiABKAlClgK6SJICugGGAgoPcnJfdmFsdWVfZm9ybWF0ErUBUmVnaXN0ZXJlZCBSZXNvdXJjZSBWYWx1ZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIHZhbHVlIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLho7dGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJynIAQFyAxj9ARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUiVwolQ3JlYXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXNwb25zZRIuCgV2YWx1ZRgBIAEoCzIfLnBvbGljeS5SZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZSJrCiFHZXRSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZVJlcXVlc3QSFgoCaWQYASABKAlCCLpIBXIDsAEBSAASGQoDZnFuGAIgASgJQgq6SAdyBRABiAEBSABCEwoKaWRlbnRpZmllchIFukgCCAEiVAoiR2V0UmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXNwb25zZRIuCgV2YWx1ZRgBIAEoCzIfLnBvbGljeS5SZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZSJNCihHZXRSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZXNCeUZRTnNSZXF1ZXN0EiEKBGZxbnMYASADKAlCE7pIEJIBDQgBGAEiB3IFEAGIAQEi7wEKKUdldFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlc0J5RlFOc1Jlc3BvbnNlEm0KDWZxbl92YWx1ZV9tYXAYASADKAsyVi5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5HZXRSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZXNCeUZRTnNSZXNwb25zZS5GcW5WYWx1ZU1hcEVudHJ5GlMKEEZxblZhbHVlTWFwRW50cnkSCwoDa2V5GAEgASgJEi4KBXZhbHVlGAIgASgLMh8ucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlOgI4ASKaAgojTGlzdFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlc1JlcXVlc3QSyQEKC3Jlc291cmNlX2lkGAEgASgJQrMBukivAboBqwEKFG9wdGlvbmFsX3V1aWRfZm9ybWF0EiNPcHRpb25hbCBmaWVsZCBtdXN0IGJlIGEgdmFsaWQgVVVJRBpuc2l6ZSh0aGlzKSA9PSAwIHx8IHRoaXMubWF0Y2hlcygnWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JykSJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdCKBAQokTGlzdFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlc1Jlc3BvbnNlEi8KBnZhbHVlcxgBIAMoCzIfLnBvbGljeS5SZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZRIoCgpwYWdpbmF0aW9uGAogASgLMhQucG9saWN5LlBhZ2VSZXNwb25zZSLmAwokVXBkYXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARK+AgoFdmFsdWUYAiABKAlCrgK6SKoCugGeAgoPcnJfdmFsdWVfZm9ybWF0ErUBUmVnaXN0ZXJlZCBSZXNvdXJjZSBWYWx1ZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIHZhbHVlIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpTc2l6ZSh0aGlzKSA+IDAgPyB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKSA6IHRydWXIAQByAxj9ARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUSPAoYbWV0YWRhdGFfdXBkYXRlX2JlaGF2aW9yGGUgASgOMhouY29tbW9uLk1ldGFkYXRhVXBkYXRlRW51bSJXCiVVcGRhdGVSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZVJlc3BvbnNlEi4KBXZhbHVlGAEgASgLMh8ucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlIjwKJERlbGV0ZVJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiVwolRGVsZXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXNwb25zZRIuCgV2YWx1ZRgBIAEoCzIfLnBvbGljeS5SZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZTKIDgoaUmVnaXN0ZXJlZFJlc291cmNlc1NlcnZpY2USlwEKGENyZWF0ZVJlZ2lzdGVyZWRSZXNvdXJjZRI7LnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkNyZWF0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlcXVlc3QaPC5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5DcmVhdGVSZWdpc3RlcmVkUmVzb3VyY2VSZXNwb25zZSIAEo4BChVHZXRSZWdpc3RlcmVkUmVzb3VyY2USOC5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5HZXRSZWdpc3RlcmVkUmVzb3VyY2VSZXF1ZXN0GjkucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuR2V0UmVnaXN0ZXJlZFJlc291cmNlUmVzcG9uc2UiABKUAQoXTGlzdFJlZ2lzdGVyZWRSZXNvdXJjZXMSOi5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5MaXN0UmVnaXN0ZXJlZFJlc291cmNlc1JlcXVlc3QaOy5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5MaXN0UmVnaXN0ZXJlZFJlc291cmNlc1Jlc3BvbnNlIgASlwEKGFVwZGF0ZVJlZ2lzdGVyZWRSZXNvdXJjZRI7LnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLlVwZGF0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlcXVlc3QaPC5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5VcGRhdGVSZWdpc3RlcmVkUmVzb3VyY2VSZXNwb25zZSIAEpcBChhEZWxldGVSZWdpc3RlcmVkUmVzb3VyY2USOy5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5EZWxldGVSZWdpc3RlcmVkUmVzb3VyY2VSZXF1ZXN0GjwucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuRGVsZXRlUmVnaXN0ZXJlZFJlc291cmNlUmVzcG9uc2UiABKmAQodQ3JlYXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWUSQC5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5DcmVhdGVSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZVJlcXVlc3QaQS5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5DcmVhdGVSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZVJlc3BvbnNlIgASnQEKGkdldFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlEj0ucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuR2V0UmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXF1ZXN0Gj4ucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuR2V0UmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXNwb25zZSIAErIBCiFHZXRSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZXNCeUZRTnMSRC5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5HZXRSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZXNCeUZRTnNSZXF1ZXN0GkUucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuR2V0UmVnaXN0ZXJlZFJlc291cmNlVmFsdWVzQnlGUU5zUmVzcG9uc2UiABKjAQocTGlzdFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlcxI/LnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkxpc3RSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZXNSZXF1ZXN0GkAucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuTGlzdFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlc1Jlc3BvbnNlIgASpgEKHVVwZGF0ZVJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlEkAucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuVXBkYXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXF1ZXN0GkEucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuVXBkYXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXNwb25zZSIAEqYBCh1EZWxldGVSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZRJALnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkRlbGV0ZVJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlUmVxdWVzdBpBLnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkRlbGV0ZVJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlUmVzcG9uc2UiAGIGcHJvdG8z", [file_buf_validate_validate, file_common_common, file_policy_objects, file_policy_selectors]);
20
+ fileDesc("CjVwb2xpY3kvcmVnaXN0ZXJlZHJlc291cmNlcy9yZWdpc3RlcmVkX3Jlc291cmNlcy5wcm90bxIacG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMiwQMKH0NyZWF0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlcXVlc3QSogIKBG5hbWUYASABKAlCkwK6SI8CugGDAgoOcnJfbmFtZV9mb3JtYXQSswFSZWdpc3RlcmVkIFJlc291cmNlIE5hbWUgbXVzdCBiZSBhbiBhbHBoYW51bWVyaWMgc3RyaW5nLCBhbGxvd2luZyBoeXBoZW5zIGFuZCB1bmRlcnNjb3JlcyBidXQgbm90IGFzIHRoZSBmaXJzdCBvciBsYXN0IGNoYXJhY3Rlci4gVGhlIHN0b3JlZCBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLho7dGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJynIAQFyAxj9ARJOCgZ2YWx1ZXMYAiADKAlCPrpIO5IBOAgAGAEiMnIwGP0BMiteW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZSJQCiBDcmVhdGVSZWdpc3RlcmVkUmVzb3VyY2VSZXNwb25zZRIsCghyZXNvdXJjZRgBIAEoCzIaLnBvbGljeS5SZWdpc3RlcmVkUmVzb3VyY2UiigMKHEdldFJlZ2lzdGVyZWRSZXNvdXJjZVJlcXVlc3QSFgoCaWQYASABKAlCCLpIBXIDsAEBSAASvAIKBG5hbWUYAiABKAlCqwK6SKcCugGbAgoOcnJfbmFtZV9mb3JtYXQSswFSZWdpc3RlcmVkIFJlc291cmNlIE5hbWUgbXVzdCBiZSBhbiBhbHBoYW51bWVyaWMgc3RyaW5nLCBhbGxvd2luZyBoeXBoZW5zIGFuZCB1bmRlcnNjb3JlcyBidXQgbm90IGFzIHRoZSBmaXJzdCBvciBsYXN0IGNoYXJhY3Rlci4gVGhlIHN0b3JlZCBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpTc2l6ZSh0aGlzKSA+IDAgPyB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKSA6IHRydWXIAQByAxj9AUgAQhMKCmlkZW50aWZpZXISBbpIAggBIk0KHUdldFJlZ2lzdGVyZWRSZXNvdXJjZVJlc3BvbnNlEiwKCHJlc291cmNlGAEgASgLMhoucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZSJJCh5MaXN0UmVnaXN0ZXJlZFJlc291cmNlc1JlcXVlc3QSJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdCJ6Ch9MaXN0UmVnaXN0ZXJlZFJlc291cmNlc1Jlc3BvbnNlEi0KCXJlc291cmNlcxgBIAMoCzIaLnBvbGljeS5SZWdpc3RlcmVkUmVzb3VyY2USKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2Ui3QMKH1VwZGF0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEroCCgRuYW1lGAIgASgJQqsCukinAroBmwIKDnJyX25hbWVfZm9ybWF0ErMBUmVnaXN0ZXJlZCBSZXNvdXJjZSBOYW1lIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgYnV0IG5vdCBhcyB0aGUgZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIuIFRoZSBzdG9yZWQgbmFtZSB3aWxsIGJlIG5vcm1hbGl6ZWQgdG8gbG93ZXIgY2FzZS4aU3NpemUodGhpcykgPiAwID8gdGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJykgOiB0cnVlyAEAcgMY/QESKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlEjwKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchhlIAEoDjIaLmNvbW1vbi5NZXRhZGF0YVVwZGF0ZUVudW0iUAogVXBkYXRlUmVnaXN0ZXJlZFJlc291cmNlUmVzcG9uc2USLAoIcmVzb3VyY2UYASABKAsyGi5wb2xpY3kuUmVnaXN0ZXJlZFJlc291cmNlIjcKH0RlbGV0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIlAKIERlbGV0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlc3BvbnNlEiwKCHJlc291cmNlGAEgASgLMhoucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZSLyAwoUQWN0aW9uQXR0cmlidXRlVmFsdWUSHQoJYWN0aW9uX2lkGAEgASgJQgi6SAVyA7ABAUgAEqYCCgthY3Rpb25fbmFtZRgCIAEoCUKOArpIigK6AYECChJhY3Rpb25fbmFtZV9mb3JtYXQSrQFBY3Rpb24gbmFtZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIGFjdGlvbiBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLho7dGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJylyAxj9AUgAEiYKEmF0dHJpYnV0ZV92YWx1ZV9pZBgDIAEoCUIIukgFcgOwAQFIARIpChNhdHRyaWJ1dGVfdmFsdWVfZnFuGAQgASgJQgq6SAdyBRABiAEBSAFCGgoRYWN0aW9uX2lkZW50aWZpZXISBbpIAggBQiMKGmF0dHJpYnV0ZV92YWx1ZV9pZGVudGlmaWVyEgW6SAIIASLsAwokQ3JlYXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXF1ZXN0Eh0KC3Jlc291cmNlX2lkGAEgASgJQgi6SAVyA7ABARKmAgoFdmFsdWUYAiABKAlClgK6SJICugGGAgoPcnJfdmFsdWVfZm9ybWF0ErUBUmVnaXN0ZXJlZCBSZXNvdXJjZSBWYWx1ZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIHZhbHVlIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLho7dGhpcy5tYXRjaGVzKCdeW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJynIAQFyAxj9ARJRChdhY3Rpb25fYXR0cmlidXRlX3ZhbHVlcxgDIAMoCzIwLnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkFjdGlvbkF0dHJpYnV0ZVZhbHVlEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZSJXCiVDcmVhdGVSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZVJlc3BvbnNlEi4KBXZhbHVlGAEgASgLMh8ucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlImsKIUdldFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlUmVxdWVzdBIWCgJpZBgBIAEoCUIIukgFcgOwAQFIABIZCgNmcW4YAiABKAlCCrpIB3IFEAGIAQFIAEITCgppZGVudGlmaWVyEgW6SAIIASJUCiJHZXRSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZVJlc3BvbnNlEi4KBXZhbHVlGAEgASgLMh8ucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlIk0KKEdldFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlc0J5RlFOc1JlcXVlc3QSIQoEZnFucxgBIAMoCUITukgQkgENCAEYASIHcgUQAYgBASLvAQopR2V0UmVnaXN0ZXJlZFJlc291cmNlVmFsdWVzQnlGUU5zUmVzcG9uc2USbQoNZnFuX3ZhbHVlX21hcBgBIAMoCzJWLnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkdldFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlc0J5RlFOc1Jlc3BvbnNlLkZxblZhbHVlTWFwRW50cnkaUwoQRnFuVmFsdWVNYXBFbnRyeRILCgNrZXkYASABKAkSLgoFdmFsdWUYAiABKAsyHy5wb2xpY3kuUmVnaXN0ZXJlZFJlc291cmNlVmFsdWU6AjgBIpoCCiNMaXN0UmVnaXN0ZXJlZFJlc291cmNlVmFsdWVzUmVxdWVzdBLJAQoLcmVzb3VyY2VfaWQYASABKAlCswG6SK8BugGrAQoUb3B0aW9uYWxfdXVpZF9mb3JtYXQSI09wdGlvbmFsIGZpZWxkIG11c3QgYmUgYSB2YWxpZCBVVUlEGm5zaXplKHRoaXMpID09IDAgfHwgdGhpcy5tYXRjaGVzKCdbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0nKRInCgpwYWdpbmF0aW9uGAogASgLMhMucG9saWN5LlBhZ2VSZXF1ZXN0IoEBCiRMaXN0UmVnaXN0ZXJlZFJlc291cmNlVmFsdWVzUmVzcG9uc2USLwoGdmFsdWVzGAEgAygLMh8ucG9saWN5LlJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlEigKCnBhZ2luYXRpb24YCiABKAsyFC5wb2xpY3kuUGFnZVJlc3BvbnNlIrkECiRVcGRhdGVSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEr4CCgV2YWx1ZRgCIAEoCUKuArpIqgK6AZ4CCg9ycl92YWx1ZV9mb3JtYXQStQFSZWdpc3RlcmVkIFJlc291cmNlIFZhbHVlIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgYnV0IG5vdCBhcyB0aGUgZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIuIFRoZSBzdG9yZWQgdmFsdWUgd2lsbCBiZSBub3JtYWxpemVkIHRvIGxvd2VyIGNhc2UuGlNzaXplKHRoaXMpID4gMCA/IHRoaXMubWF0Y2hlcygnXlthLXpBLVowLTldKD86W2EtekEtWjAtOV8tXSpbYS16QS1aMC05XSk/JCcpIDogdHJ1ZcgBAHIDGP0BElEKF2FjdGlvbl9hdHRyaWJ1dGVfdmFsdWVzGAMgAygLMjAucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuQWN0aW9uQXR0cmlidXRlVmFsdWUSKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlEjwKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchhlIAEoDjIaLmNvbW1vbi5NZXRhZGF0YVVwZGF0ZUVudW0iVwolVXBkYXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXNwb25zZRIuCgV2YWx1ZRgBIAEoCzIfLnBvbGljeS5SZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZSI8CiREZWxldGVSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIlcKJURlbGV0ZVJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlUmVzcG9uc2USLgoFdmFsdWUYASABKAsyHy5wb2xpY3kuUmVnaXN0ZXJlZFJlc291cmNlVmFsdWUyiA4KGlJlZ2lzdGVyZWRSZXNvdXJjZXNTZXJ2aWNlEpcBChhDcmVhdGVSZWdpc3RlcmVkUmVzb3VyY2USOy5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5DcmVhdGVSZWdpc3RlcmVkUmVzb3VyY2VSZXF1ZXN0GjwucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuQ3JlYXRlUmVnaXN0ZXJlZFJlc291cmNlUmVzcG9uc2UiABKOAQoVR2V0UmVnaXN0ZXJlZFJlc291cmNlEjgucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuR2V0UmVnaXN0ZXJlZFJlc291cmNlUmVxdWVzdBo5LnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkdldFJlZ2lzdGVyZWRSZXNvdXJjZVJlc3BvbnNlIgASlAEKF0xpc3RSZWdpc3RlcmVkUmVzb3VyY2VzEjoucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuTGlzdFJlZ2lzdGVyZWRSZXNvdXJjZXNSZXF1ZXN0GjsucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuTGlzdFJlZ2lzdGVyZWRSZXNvdXJjZXNSZXNwb25zZSIAEpcBChhVcGRhdGVSZWdpc3RlcmVkUmVzb3VyY2USOy5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5VcGRhdGVSZWdpc3RlcmVkUmVzb3VyY2VSZXF1ZXN0GjwucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuVXBkYXRlUmVnaXN0ZXJlZFJlc291cmNlUmVzcG9uc2UiABKXAQoYRGVsZXRlUmVnaXN0ZXJlZFJlc291cmNlEjsucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuRGVsZXRlUmVnaXN0ZXJlZFJlc291cmNlUmVxdWVzdBo8LnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkRlbGV0ZVJlZ2lzdGVyZWRSZXNvdXJjZVJlc3BvbnNlIgASpgEKHUNyZWF0ZVJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlEkAucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuQ3JlYXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXF1ZXN0GkEucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuQ3JlYXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWVSZXNwb25zZSIAEp0BChpHZXRSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZRI9LnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkdldFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlUmVxdWVzdBo+LnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkdldFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlUmVzcG9uc2UiABKyAQohR2V0UmVnaXN0ZXJlZFJlc291cmNlVmFsdWVzQnlGUU5zEkQucG9saWN5LnJlZ2lzdGVyZWRyZXNvdXJjZXMuR2V0UmVnaXN0ZXJlZFJlc291cmNlVmFsdWVzQnlGUU5zUmVxdWVzdBpFLnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkdldFJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlc0J5RlFOc1Jlc3BvbnNlIgASowEKHExpc3RSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZXMSPy5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5MaXN0UmVnaXN0ZXJlZFJlc291cmNlVmFsdWVzUmVxdWVzdBpALnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLkxpc3RSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZXNSZXNwb25zZSIAEqYBCh1VcGRhdGVSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZRJALnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLlVwZGF0ZVJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlUmVxdWVzdBpBLnBvbGljeS5yZWdpc3RlcmVkcmVzb3VyY2VzLlVwZGF0ZVJlZ2lzdGVyZWRSZXNvdXJjZVZhbHVlUmVzcG9uc2UiABKmAQodRGVsZXRlUmVnaXN0ZXJlZFJlc291cmNlVmFsdWUSQC5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5EZWxldGVSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZVJlcXVlc3QaQS5wb2xpY3kucmVnaXN0ZXJlZHJlc291cmNlcy5EZWxldGVSZWdpc3RlcmVkUmVzb3VyY2VWYWx1ZVJlc3BvbnNlIgBiBnByb3RvMw", [file_buf_validate_validate, file_common_common, file_policy_objects, file_policy_selectors]);
21
21
 
22
22
  /**
23
23
  * @generated from message policy.registeredresources.CreateRegisteredResourceRequest
@@ -251,6 +251,56 @@ export type DeleteRegisteredResourceResponse = Message<"policy.registeredresourc
251
251
  export const DeleteRegisteredResourceResponseSchema: GenMessage<DeleteRegisteredResourceResponse> = /*@__PURE__*/
252
252
  messageDesc(file_policy_registeredresources_registered_resources, 9);
253
253
 
254
+ /**
255
+ * @generated from message policy.registeredresources.ActionAttributeValue
256
+ */
257
+ export type ActionAttributeValue = Message<"policy.registeredresources.ActionAttributeValue"> & {
258
+ /**
259
+ * Required
260
+ *
261
+ * @generated from oneof policy.registeredresources.ActionAttributeValue.action_identifier
262
+ */
263
+ actionIdentifier: {
264
+ /**
265
+ * @generated from field: string action_id = 1;
266
+ */
267
+ value: string;
268
+ case: "actionId";
269
+ } | {
270
+ /**
271
+ * @generated from field: string action_name = 2;
272
+ */
273
+ value: string;
274
+ case: "actionName";
275
+ } | { case: undefined; value?: undefined };
276
+
277
+ /**
278
+ * Required
279
+ *
280
+ * @generated from oneof policy.registeredresources.ActionAttributeValue.attribute_value_identifier
281
+ */
282
+ attributeValueIdentifier: {
283
+ /**
284
+ * @generated from field: string attribute_value_id = 3;
285
+ */
286
+ value: string;
287
+ case: "attributeValueId";
288
+ } | {
289
+ /**
290
+ * @generated from field: string attribute_value_fqn = 4;
291
+ */
292
+ value: string;
293
+ case: "attributeValueFqn";
294
+ } | { case: undefined; value?: undefined };
295
+ };
296
+
297
+ /**
298
+ * Describes the message policy.registeredresources.ActionAttributeValue.
299
+ * Use `create(ActionAttributeValueSchema)` to create a new message.
300
+ */
301
+ export const ActionAttributeValueSchema: GenMessage<ActionAttributeValue> = /*@__PURE__*/
302
+ messageDesc(file_policy_registeredresources_registered_resources, 10);
303
+
254
304
  /**
255
305
  * @generated from message policy.registeredresources.CreateRegisteredResourceValueRequest
256
306
  */
@@ -269,6 +319,15 @@ export type CreateRegisteredResourceValueRequest = Message<"policy.registeredres
269
319
  */
270
320
  value: string;
271
321
 
322
+ /**
323
+ * Optional
324
+ * The associated Action <> AttributeValue combinations to be utilized in authorization/entitlement decisioning
325
+ * (i.e. action read -> attribute value https://example.com/attr/department/value/marketing)
326
+ *
327
+ * @generated from field: repeated policy.registeredresources.ActionAttributeValue action_attribute_values = 3;
328
+ */
329
+ actionAttributeValues: ActionAttributeValue[];
330
+
272
331
  /**
273
332
  * Optional
274
333
  * Common metadata
@@ -283,7 +342,7 @@ export type CreateRegisteredResourceValueRequest = Message<"policy.registeredres
283
342
  * Use `create(CreateRegisteredResourceValueRequestSchema)` to create a new message.
284
343
  */
285
344
  export const CreateRegisteredResourceValueRequestSchema: GenMessage<CreateRegisteredResourceValueRequest> = /*@__PURE__*/
286
- messageDesc(file_policy_registeredresources_registered_resources, 10);
345
+ messageDesc(file_policy_registeredresources_registered_resources, 11);
287
346
 
288
347
  /**
289
348
  * @generated from message policy.registeredresources.CreateRegisteredResourceValueResponse
@@ -300,7 +359,7 @@ export type CreateRegisteredResourceValueResponse = Message<"policy.registeredre
300
359
  * Use `create(CreateRegisteredResourceValueResponseSchema)` to create a new message.
301
360
  */
302
361
  export const CreateRegisteredResourceValueResponseSchema: GenMessage<CreateRegisteredResourceValueResponse> = /*@__PURE__*/
303
- messageDesc(file_policy_registeredresources_registered_resources, 11);
362
+ messageDesc(file_policy_registeredresources_registered_resources, 12);
304
363
 
305
364
  /**
306
365
  * @generated from message policy.registeredresources.GetRegisteredResourceValueRequest
@@ -329,7 +388,7 @@ export type GetRegisteredResourceValueRequest = Message<"policy.registeredresour
329
388
  * Use `create(GetRegisteredResourceValueRequestSchema)` to create a new message.
330
389
  */
331
390
  export const GetRegisteredResourceValueRequestSchema: GenMessage<GetRegisteredResourceValueRequest> = /*@__PURE__*/
332
- messageDesc(file_policy_registeredresources_registered_resources, 12);
391
+ messageDesc(file_policy_registeredresources_registered_resources, 13);
333
392
 
334
393
  /**
335
394
  * @generated from message policy.registeredresources.GetRegisteredResourceValueResponse
@@ -346,7 +405,7 @@ export type GetRegisteredResourceValueResponse = Message<"policy.registeredresou
346
405
  * Use `create(GetRegisteredResourceValueResponseSchema)` to create a new message.
347
406
  */
348
407
  export const GetRegisteredResourceValueResponseSchema: GenMessage<GetRegisteredResourceValueResponse> = /*@__PURE__*/
349
- messageDesc(file_policy_registeredresources_registered_resources, 13);
408
+ messageDesc(file_policy_registeredresources_registered_resources, 14);
350
409
 
351
410
  /**
352
411
  * @generated from message policy.registeredresources.GetRegisteredResourceValuesByFQNsRequest
@@ -365,7 +424,7 @@ export type GetRegisteredResourceValuesByFQNsRequest = Message<"policy.registere
365
424
  * Use `create(GetRegisteredResourceValuesByFQNsRequestSchema)` to create a new message.
366
425
  */
367
426
  export const GetRegisteredResourceValuesByFQNsRequestSchema: GenMessage<GetRegisteredResourceValuesByFQNsRequest> = /*@__PURE__*/
368
- messageDesc(file_policy_registeredresources_registered_resources, 14);
427
+ messageDesc(file_policy_registeredresources_registered_resources, 15);
369
428
 
370
429
  /**
371
430
  * @generated from message policy.registeredresources.GetRegisteredResourceValuesByFQNsResponse
@@ -382,7 +441,7 @@ export type GetRegisteredResourceValuesByFQNsResponse = Message<"policy.register
382
441
  * Use `create(GetRegisteredResourceValuesByFQNsResponseSchema)` to create a new message.
383
442
  */
384
443
  export const GetRegisteredResourceValuesByFQNsResponseSchema: GenMessage<GetRegisteredResourceValuesByFQNsResponse> = /*@__PURE__*/
385
- messageDesc(file_policy_registeredresources_registered_resources, 15);
444
+ messageDesc(file_policy_registeredresources_registered_resources, 16);
386
445
 
387
446
  /**
388
447
  * @generated from message policy.registeredresources.ListRegisteredResourceValuesRequest
@@ -408,7 +467,7 @@ export type ListRegisteredResourceValuesRequest = Message<"policy.registeredreso
408
467
  * Use `create(ListRegisteredResourceValuesRequestSchema)` to create a new message.
409
468
  */
410
469
  export const ListRegisteredResourceValuesRequestSchema: GenMessage<ListRegisteredResourceValuesRequest> = /*@__PURE__*/
411
- messageDesc(file_policy_registeredresources_registered_resources, 16);
470
+ messageDesc(file_policy_registeredresources_registered_resources, 17);
412
471
 
413
472
  /**
414
473
  * @generated from message policy.registeredresources.ListRegisteredResourceValuesResponse
@@ -430,7 +489,7 @@ export type ListRegisteredResourceValuesResponse = Message<"policy.registeredres
430
489
  * Use `create(ListRegisteredResourceValuesResponseSchema)` to create a new message.
431
490
  */
432
491
  export const ListRegisteredResourceValuesResponseSchema: GenMessage<ListRegisteredResourceValuesResponse> = /*@__PURE__*/
433
- messageDesc(file_policy_registeredresources_registered_resources, 17);
492
+ messageDesc(file_policy_registeredresources_registered_resources, 18);
434
493
 
435
494
  /**
436
495
  * @generated from message policy.registeredresources.UpdateRegisteredResourceValueRequest
@@ -450,6 +509,14 @@ export type UpdateRegisteredResourceValueRequest = Message<"policy.registeredres
450
509
  */
451
510
  value: string;
452
511
 
512
+ /**
513
+ * Optional
514
+ * Action Attribute Values provided here will replace all existing records in the database. To delete all action attribute values, set this field to an empty list.
515
+ *
516
+ * @generated from field: repeated policy.registeredresources.ActionAttributeValue action_attribute_values = 3;
517
+ */
518
+ actionAttributeValues: ActionAttributeValue[];
519
+
453
520
  /**
454
521
  * Optional
455
522
  * Common metadata
@@ -469,7 +536,7 @@ export type UpdateRegisteredResourceValueRequest = Message<"policy.registeredres
469
536
  * Use `create(UpdateRegisteredResourceValueRequestSchema)` to create a new message.
470
537
  */
471
538
  export const UpdateRegisteredResourceValueRequestSchema: GenMessage<UpdateRegisteredResourceValueRequest> = /*@__PURE__*/
472
- messageDesc(file_policy_registeredresources_registered_resources, 18);
539
+ messageDesc(file_policy_registeredresources_registered_resources, 19);
473
540
 
474
541
  /**
475
542
  * @generated from message policy.registeredresources.UpdateRegisteredResourceValueResponse
@@ -486,7 +553,7 @@ export type UpdateRegisteredResourceValueResponse = Message<"policy.registeredre
486
553
  * Use `create(UpdateRegisteredResourceValueResponseSchema)` to create a new message.
487
554
  */
488
555
  export const UpdateRegisteredResourceValueResponseSchema: GenMessage<UpdateRegisteredResourceValueResponse> = /*@__PURE__*/
489
- messageDesc(file_policy_registeredresources_registered_resources, 19);
556
+ messageDesc(file_policy_registeredresources_registered_resources, 20);
490
557
 
491
558
  /**
492
559
  * @generated from message policy.registeredresources.DeleteRegisteredResourceValueRequest
@@ -505,7 +572,7 @@ export type DeleteRegisteredResourceValueRequest = Message<"policy.registeredres
505
572
  * Use `create(DeleteRegisteredResourceValueRequestSchema)` to create a new message.
506
573
  */
507
574
  export const DeleteRegisteredResourceValueRequestSchema: GenMessage<DeleteRegisteredResourceValueRequest> = /*@__PURE__*/
508
- messageDesc(file_policy_registeredresources_registered_resources, 20);
575
+ messageDesc(file_policy_registeredresources_registered_resources, 21);
509
576
 
510
577
  /**
511
578
  * @generated from message policy.registeredresources.DeleteRegisteredResourceValueResponse
@@ -522,7 +589,7 @@ export type DeleteRegisteredResourceValueResponse = Message<"policy.registeredre
522
589
  * Use `create(DeleteRegisteredResourceValueResponseSchema)` to create a new message.
523
590
  */
524
591
  export const DeleteRegisteredResourceValueResponseSchema: GenMessage<DeleteRegisteredResourceValueResponse> = /*@__PURE__*/
525
- messageDesc(file_policy_registeredresources_registered_resources, 21);
592
+ messageDesc(file_policy_registeredresources_registered_resources, 22);
526
593
 
527
594
  /**
528
595
  * Registered Resources
@@ -5,7 +5,6 @@
5
5
  import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
6
6
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1";
7
7
  import { file_buf_validate_validate } from "../../buf/validate/validate_pb.js";
8
- import { file_google_api_annotations } from "../../google/api/annotations_pb.js";
9
8
  import type { MetadataMutable, MetadataUpdateEnum } from "../../common/common_pb.js";
10
9
  import { file_common_common } from "../../common/common_pb.js";
11
10
  import type { ResourceMapping, ResourceMappingGroup } from "../objects_pb.js";
@@ -18,7 +17,7 @@ import type { Message } from "@bufbuild/protobuf";
18
17
  * Describes the file policy/resourcemapping/resource_mapping.proto.
19
18
  */
20
19
  export const file_policy_resourcemapping_resource_mapping: GenFile = /*@__PURE__*/
21
- fileDesc("Ci1wb2xpY3kvcmVzb3VyY2VtYXBwaW5nL3Jlc291cmNlX21hcHBpbmcucHJvdG8SFnBvbGljeS5yZXNvdXJjZW1hcHBpbmcimAIKIExpc3RSZXNvdXJjZU1hcHBpbmdHcm91cHNSZXF1ZXN0EsoBCgxuYW1lc3BhY2VfaWQYASABKAlCswG6SK8BugGrAQoUb3B0aW9uYWxfdXVpZF9mb3JtYXQSI09wdGlvbmFsIGZpZWxkIG11c3QgYmUgYSB2YWxpZCBVVUlEGm5zaXplKHRoaXMpID09IDAgfHwgdGhpcy5tYXRjaGVzKCdbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0nKRInCgpwYWdpbmF0aW9uGAogASgLMhMucG9saWN5LlBhZ2VSZXF1ZXN0IowBCiFMaXN0UmVzb3VyY2VNYXBwaW5nR3JvdXBzUmVzcG9uc2USPQoXcmVzb3VyY2VfbWFwcGluZ19ncm91cHMYASADKAsyHC5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nR3JvdXASKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2UiNgoeR2V0UmVzb3VyY2VNYXBwaW5nR3JvdXBSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJfCh9HZXRSZXNvdXJjZU1hcHBpbmdHcm91cFJlc3BvbnNlEjwKFnJlc291cmNlX21hcHBpbmdfZ3JvdXAYASABKAsyHC5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nR3JvdXAihAEKIUNyZWF0ZVJlc291cmNlTWFwcGluZ0dyb3VwUmVxdWVzdBIeCgxuYW1lc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEhQKBG5hbWUYAiABKAlCBrpIA8gBARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUiYgoiQ3JlYXRlUmVzb3VyY2VNYXBwaW5nR3JvdXBSZXNwb25zZRI8ChZyZXNvdXJjZV9tYXBwaW5nX2dyb3VwGAEgASgLMhwucG9saWN5LlJlc291cmNlTWFwcGluZ0dyb3VwIqYFCiFVcGRhdGVSZXNvdXJjZU1hcHBpbmdHcm91cFJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEsoBCgxuYW1lc3BhY2VfaWQYAiABKAlCswG6SK8BugGrAQoUb3B0aW9uYWxfdXVpZF9mb3JtYXQSI09wdGlvbmFsIGZpZWxkIG11c3QgYmUgYSB2YWxpZCBVVUlEGm5zaXplKHRoaXMpID09IDAgfHwgdGhpcy5tYXRjaGVzKCdbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0nKRK0AgoEbmFtZRgDIAEoCUKlArpIoQK6AZgCChRvcHRpb25hbF9uYW1lX2Zvcm1hdBKvAU9wdGlvbmFsIGZpZWxkIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgYnV0IG5vdCBhcyB0aGUgZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIuIFRoZSBzdG9yZWQgZ3JvdXAgbmFtZSB3aWxsIGJlIG5vcm1hbGl6ZWQgdG8gbG93ZXIgY2FzZS4aTnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKXIDGP0BEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZRI8ChhtZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IYZSABKA4yGi5jb21tb24uTWV0YWRhdGFVcGRhdGVFbnVtImIKIlVwZGF0ZVJlc291cmNlTWFwcGluZ0dyb3VwUmVzcG9uc2USPAoWcmVzb3VyY2VfbWFwcGluZ19ncm91cBgBIAEoCzIcLnBvbGljeS5SZXNvdXJjZU1hcHBpbmdHcm91cCI5CiFEZWxldGVSZXNvdXJjZU1hcHBpbmdHcm91cFJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBImIKIkRlbGV0ZVJlc291cmNlTWFwcGluZ0dyb3VwUmVzcG9uc2USPAoWcmVzb3VyY2VfbWFwcGluZ19ncm91cBgBIAEoCzIcLnBvbGljeS5SZXNvdXJjZU1hcHBpbmdHcm91cCKPAgobTGlzdFJlc291cmNlTWFwcGluZ3NSZXF1ZXN0EsYBCghncm91cF9pZBgBIAEoCUKzAbpIrwG6AasBChRvcHRpb25hbF91dWlkX2Zvcm1hdBIjT3B0aW9uYWwgZmllbGQgbXVzdCBiZSBhIHZhbGlkIFVVSUQabnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ1swLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfScpEicKCnBhZ2luYXRpb24YCiABKAsyEy5wb2xpY3kuUGFnZVJlcXVlc3QifAocTGlzdFJlc291cmNlTWFwcGluZ3NSZXNwb25zZRIyChFyZXNvdXJjZV9tYXBwaW5ncxgBIAMoCzIXLnBvbGljeS5SZXNvdXJjZU1hcHBpbmcSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2UiygIKJkxpc3RSZXNvdXJjZU1hcHBpbmdzQnlHcm91cEZxbnNSZXF1ZXN0Ep8CCgRmcW5zGAEgAygJQpACukiMApIBiAIIASKDAroB/wEKGHJlc291cmNlbWFwcGluZ2dyb3VwX2ZxbhJYUmVzb3VyY2UgTWFwcGluZyBHcm91cCBGUU4gbXVzdCBiZSBpbiB0aGUgZm9ybWF0ICdodHRwczovLzxuYW1lc3BhY2U+L3Jlc20vPGdyb3VwIG5hbWU+JxqIAXRoaXMubWF0Y2hlcygnXmh0dHBzOi8vKFthLXpBLVowLTldKFthLXpBLVowLTlcXC1dezAsNjF9W2EtekEtWjAtOV0pP1xcLikrW2EtekEtWl17Mix9L3Jlc20vW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJykicQoXUmVzb3VyY2VNYXBwaW5nc0J5R3JvdXASKwoFZ3JvdXAYASABKAsyHC5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nR3JvdXASKQoIbWFwcGluZ3MYAiADKAsyFy5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nIqACCidMaXN0UmVzb3VyY2VNYXBwaW5nc0J5R3JvdXBGcW5zUmVzcG9uc2USggEKG2Zxbl9yZXNvdXJjZV9tYXBwaW5nX2dyb3VwcxgBIAMoCzJdLnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuTGlzdFJlc291cmNlTWFwcGluZ3NCeUdyb3VwRnFuc1Jlc3BvbnNlLkZxblJlc291cmNlTWFwcGluZ0dyb3Vwc0VudHJ5GnAKHUZxblJlc291cmNlTWFwcGluZ0dyb3Vwc0VudHJ5EgsKA2tleRgBIAEoCRI+CgV2YWx1ZRgCIAEoCzIvLnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuUmVzb3VyY2VNYXBwaW5nc0J5R3JvdXA6AjgBIjEKGUdldFJlc291cmNlTWFwcGluZ1JlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIk8KGkdldFJlc291cmNlTWFwcGluZ1Jlc3BvbnNlEjEKEHJlc291cmNlX21hcHBpbmcYASABKAsyFy5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nItQCChxDcmVhdGVSZXNvdXJjZU1hcHBpbmdSZXF1ZXN0EiQKEmF0dHJpYnV0ZV92YWx1ZV9pZBgBIAEoCUIIukgFcgOwAQESGgoFdGVybXMYAiADKAlCC7pICJIBBQgBEOgHEsYBCghncm91cF9pZBgDIAEoCUKzAbpIrwG6AasBChRvcHRpb25hbF91dWlkX2Zvcm1hdBIjT3B0aW9uYWwgZmllbGQgbXVzdCBiZSBhIHZhbGlkIFVVSUQabnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ1swLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfScpEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZSJSCh1DcmVhdGVSZXNvdXJjZU1hcHBpbmdSZXNwb25zZRIxChByZXNvdXJjZV9tYXBwaW5nGAEgASgLMhcucG9saWN5LlJlc291cmNlTWFwcGluZyLTBAocVXBkYXRlUmVzb3VyY2VNYXBwaW5nUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQES0AEKEmF0dHJpYnV0ZV92YWx1ZV9pZBgEIAEoCUKzAbpIrwG6AasBChRvcHRpb25hbF91dWlkX2Zvcm1hdBIjT3B0aW9uYWwgZmllbGQgbXVzdCBiZSBhIHZhbGlkIFVVSUQabnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ1swLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfScpEhgKBXRlcm1zGAUgAygJQgm6SAaSAQMQ6AcSxgEKCGdyb3VwX2lkGAYgASgJQrMBukivAboBqwEKFG9wdGlvbmFsX3V1aWRfZm9ybWF0EiNPcHRpb25hbCBmaWVsZCBtdXN0IGJlIGEgdmFsaWQgVVVJRBpuc2l6ZSh0aGlzKSA9PSAwIHx8IHRoaXMubWF0Y2hlcygnWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JykSKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlEjwKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchhlIAEoDjIaLmNvbW1vbi5NZXRhZGF0YVVwZGF0ZUVudW0iUgodVXBkYXRlUmVzb3VyY2VNYXBwaW5nUmVzcG9uc2USMQoQcmVzb3VyY2VfbWFwcGluZxgBIAEoCzIXLnBvbGljeS5SZXNvdXJjZU1hcHBpbmciNAocRGVsZXRlUmVzb3VyY2VNYXBwaW5nUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiUgodRGVsZXRlUmVzb3VyY2VNYXBwaW5nUmVzcG9uc2USMQoQcmVzb3VyY2VfbWFwcGluZxgBIAEoCzIXLnBvbGljeS5SZXNvdXJjZU1hcHBpbmcyzA8KFlJlc291cmNlTWFwcGluZ1NlcnZpY2UStQEKGUxpc3RSZXNvdXJjZU1hcHBpbmdHcm91cHMSOC5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkxpc3RSZXNvdXJjZU1hcHBpbmdHcm91cHNSZXF1ZXN0GjkucG9saWN5LnJlc291cmNlbWFwcGluZy5MaXN0UmVzb3VyY2VNYXBwaW5nR3JvdXBzUmVzcG9uc2UiI5ACAYLT5JMCGhIYL3Jlc291cmNlLW1hcHBpbmctZ3JvdXBzErQBChdHZXRSZXNvdXJjZU1hcHBpbmdHcm91cBI2LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuR2V0UmVzb3VyY2VNYXBwaW5nR3JvdXBSZXF1ZXN0GjcucG9saWN5LnJlc291cmNlbWFwcGluZy5HZXRSZXNvdXJjZU1hcHBpbmdHcm91cFJlc3BvbnNlIiiQAgGC0+STAh8SHS9yZXNvdXJjZS1tYXBwaW5nLWdyb3Vwcy97aWR9ErgBChpDcmVhdGVSZXNvdXJjZU1hcHBpbmdHcm91cBI5LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuQ3JlYXRlUmVzb3VyY2VNYXBwaW5nR3JvdXBSZXF1ZXN0GjoucG9saWN5LnJlc291cmNlbWFwcGluZy5DcmVhdGVSZXNvdXJjZU1hcHBpbmdHcm91cFJlc3BvbnNlIiOC0+STAh06ASoiGC9yZXNvdXJjZS1tYXBwaW5nLWdyb3VwcxK9AQoaVXBkYXRlUmVzb3VyY2VNYXBwaW5nR3JvdXASOS5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLlVwZGF0ZVJlc291cmNlTWFwcGluZ0dyb3VwUmVxdWVzdBo6LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuVXBkYXRlUmVzb3VyY2VNYXBwaW5nR3JvdXBSZXNwb25zZSIogtPkkwIiOgEqMh0vcmVzb3VyY2UtbWFwcGluZy1ncm91cHMve2lkfRK6AQoaRGVsZXRlUmVzb3VyY2VNYXBwaW5nR3JvdXASOS5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkRlbGV0ZVJlc291cmNlTWFwcGluZ0dyb3VwUmVxdWVzdBo6LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuRGVsZXRlUmVzb3VyY2VNYXBwaW5nR3JvdXBSZXNwb25zZSIlgtPkkwIfKh0vcmVzb3VyY2UtbWFwcGluZy1ncm91cHMve2lkfRKgAQoUTGlzdFJlc291cmNlTWFwcGluZ3MSMy5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkxpc3RSZXNvdXJjZU1hcHBpbmdzUmVxdWVzdBo0LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuTGlzdFJlc291cmNlTWFwcGluZ3NSZXNwb25zZSIdkAIBgtPkkwIUEhIvcmVzb3VyY2UtbWFwcGluZ3MSzAEKH0xpc3RSZXNvdXJjZU1hcHBpbmdzQnlHcm91cEZxbnMSPi5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkxpc3RSZXNvdXJjZU1hcHBpbmdzQnlHcm91cEZxbnNSZXF1ZXN0Gj8ucG9saWN5LnJlc291cmNlbWFwcGluZy5MaXN0UmVzb3VyY2VNYXBwaW5nc0J5R3JvdXBGcW5zUmVzcG9uc2UiKJACAYLT5JMCHxIdL3Jlc291cmNlLW1hcHBpbmdzL2dyb3VwLWZxbnMSnwEKEkdldFJlc291cmNlTWFwcGluZxIxLnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuR2V0UmVzb3VyY2VNYXBwaW5nUmVxdWVzdBoyLnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuR2V0UmVzb3VyY2VNYXBwaW5nUmVzcG9uc2UiIpACAYLT5JMCGRIXL3Jlc291cmNlLW1hcHBpbmdzL3tpZH0SowEKFUNyZWF0ZVJlc291cmNlTWFwcGluZxI0LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuQ3JlYXRlUmVzb3VyY2VNYXBwaW5nUmVxdWVzdBo1LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuQ3JlYXRlUmVzb3VyY2VNYXBwaW5nUmVzcG9uc2UiHYLT5JMCFzoBKiISL3Jlc291cmNlLW1hcHBpbmdzEqgBChVVcGRhdGVSZXNvdXJjZU1hcHBpbmcSNC5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLlVwZGF0ZVJlc291cmNlTWFwcGluZ1JlcXVlc3QaNS5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLlVwZGF0ZVJlc291cmNlTWFwcGluZ1Jlc3BvbnNlIiKC0+STAhw6ASoyFy9yZXNvdXJjZS1tYXBwaW5ncy97aWR9EqUBChVEZWxldGVSZXNvdXJjZU1hcHBpbmcSNC5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkRlbGV0ZVJlc291cmNlTWFwcGluZ1JlcXVlc3QaNS5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkRlbGV0ZVJlc291cmNlTWFwcGluZ1Jlc3BvbnNlIh+C0+STAhkqFy9yZXNvdXJjZS1tYXBwaW5ncy97aWR9YgZwcm90bzM", [file_buf_validate_validate, file_google_api_annotations, file_common_common, file_policy_objects, file_policy_selectors]);
20
+ fileDesc("Ci1wb2xpY3kvcmVzb3VyY2VtYXBwaW5nL3Jlc291cmNlX21hcHBpbmcucHJvdG8SFnBvbGljeS5yZXNvdXJjZW1hcHBpbmcimAIKIExpc3RSZXNvdXJjZU1hcHBpbmdHcm91cHNSZXF1ZXN0EsoBCgxuYW1lc3BhY2VfaWQYASABKAlCswG6SK8BugGrAQoUb3B0aW9uYWxfdXVpZF9mb3JtYXQSI09wdGlvbmFsIGZpZWxkIG11c3QgYmUgYSB2YWxpZCBVVUlEGm5zaXplKHRoaXMpID09IDAgfHwgdGhpcy5tYXRjaGVzKCdbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0nKRInCgpwYWdpbmF0aW9uGAogASgLMhMucG9saWN5LlBhZ2VSZXF1ZXN0IowBCiFMaXN0UmVzb3VyY2VNYXBwaW5nR3JvdXBzUmVzcG9uc2USPQoXcmVzb3VyY2VfbWFwcGluZ19ncm91cHMYASADKAsyHC5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nR3JvdXASKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2UiNgoeR2V0UmVzb3VyY2VNYXBwaW5nR3JvdXBSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJfCh9HZXRSZXNvdXJjZU1hcHBpbmdHcm91cFJlc3BvbnNlEjwKFnJlc291cmNlX21hcHBpbmdfZ3JvdXAYASABKAsyHC5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nR3JvdXAihAEKIUNyZWF0ZVJlc291cmNlTWFwcGluZ0dyb3VwUmVxdWVzdBIeCgxuYW1lc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEhQKBG5hbWUYAiABKAlCBrpIA8gBARIpCghtZXRhZGF0YRhkIAEoCzIXLmNvbW1vbi5NZXRhZGF0YU11dGFibGUiYgoiQ3JlYXRlUmVzb3VyY2VNYXBwaW5nR3JvdXBSZXNwb25zZRI8ChZyZXNvdXJjZV9tYXBwaW5nX2dyb3VwGAEgASgLMhwucG9saWN5LlJlc291cmNlTWFwcGluZ0dyb3VwIqYFCiFVcGRhdGVSZXNvdXJjZU1hcHBpbmdHcm91cFJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEsoBCgxuYW1lc3BhY2VfaWQYAiABKAlCswG6SK8BugGrAQoUb3B0aW9uYWxfdXVpZF9mb3JtYXQSI09wdGlvbmFsIGZpZWxkIG11c3QgYmUgYSB2YWxpZCBVVUlEGm5zaXplKHRoaXMpID09IDAgfHwgdGhpcy5tYXRjaGVzKCdbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0nKRK0AgoEbmFtZRgDIAEoCUKlArpIoQK6AZgCChRvcHRpb25hbF9uYW1lX2Zvcm1hdBKvAU9wdGlvbmFsIGZpZWxkIG11c3QgYmUgYW4gYWxwaGFudW1lcmljIHN0cmluZywgYWxsb3dpbmcgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgYnV0IG5vdCBhcyB0aGUgZmlyc3Qgb3IgbGFzdCBjaGFyYWN0ZXIuIFRoZSBzdG9yZWQgZ3JvdXAgbmFtZSB3aWxsIGJlIG5vcm1hbGl6ZWQgdG8gbG93ZXIgY2FzZS4aTnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKXIDGP0BEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZRI8ChhtZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IYZSABKA4yGi5jb21tb24uTWV0YWRhdGFVcGRhdGVFbnVtImIKIlVwZGF0ZVJlc291cmNlTWFwcGluZ0dyb3VwUmVzcG9uc2USPAoWcmVzb3VyY2VfbWFwcGluZ19ncm91cBgBIAEoCzIcLnBvbGljeS5SZXNvdXJjZU1hcHBpbmdHcm91cCI5CiFEZWxldGVSZXNvdXJjZU1hcHBpbmdHcm91cFJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBImIKIkRlbGV0ZVJlc291cmNlTWFwcGluZ0dyb3VwUmVzcG9uc2USPAoWcmVzb3VyY2VfbWFwcGluZ19ncm91cBgBIAEoCzIcLnBvbGljeS5SZXNvdXJjZU1hcHBpbmdHcm91cCKPAgobTGlzdFJlc291cmNlTWFwcGluZ3NSZXF1ZXN0EsYBCghncm91cF9pZBgBIAEoCUKzAbpIrwG6AasBChRvcHRpb25hbF91dWlkX2Zvcm1hdBIjT3B0aW9uYWwgZmllbGQgbXVzdCBiZSBhIHZhbGlkIFVVSUQabnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ1swLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfScpEicKCnBhZ2luYXRpb24YCiABKAsyEy5wb2xpY3kuUGFnZVJlcXVlc3QifAocTGlzdFJlc291cmNlTWFwcGluZ3NSZXNwb25zZRIyChFyZXNvdXJjZV9tYXBwaW5ncxgBIAMoCzIXLnBvbGljeS5SZXNvdXJjZU1hcHBpbmcSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2UiygIKJkxpc3RSZXNvdXJjZU1hcHBpbmdzQnlHcm91cEZxbnNSZXF1ZXN0Ep8CCgRmcW5zGAEgAygJQpACukiMApIBiAIIASKDAroB/wEKGHJlc291cmNlbWFwcGluZ2dyb3VwX2ZxbhJYUmVzb3VyY2UgTWFwcGluZyBHcm91cCBGUU4gbXVzdCBiZSBpbiB0aGUgZm9ybWF0ICdodHRwczovLzxuYW1lc3BhY2U+L3Jlc20vPGdyb3VwIG5hbWU+JxqIAXRoaXMubWF0Y2hlcygnXmh0dHBzOi8vKFthLXpBLVowLTldKFthLXpBLVowLTlcXC1dezAsNjF9W2EtekEtWjAtOV0pP1xcLikrW2EtekEtWl17Mix9L3Jlc20vW2EtekEtWjAtOV0oPzpbYS16QS1aMC05Xy1dKlthLXpBLVowLTldKT8kJykicQoXUmVzb3VyY2VNYXBwaW5nc0J5R3JvdXASKwoFZ3JvdXAYASABKAsyHC5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nR3JvdXASKQoIbWFwcGluZ3MYAiADKAsyFy5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nIqACCidMaXN0UmVzb3VyY2VNYXBwaW5nc0J5R3JvdXBGcW5zUmVzcG9uc2USggEKG2Zxbl9yZXNvdXJjZV9tYXBwaW5nX2dyb3VwcxgBIAMoCzJdLnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuTGlzdFJlc291cmNlTWFwcGluZ3NCeUdyb3VwRnFuc1Jlc3BvbnNlLkZxblJlc291cmNlTWFwcGluZ0dyb3Vwc0VudHJ5GnAKHUZxblJlc291cmNlTWFwcGluZ0dyb3Vwc0VudHJ5EgsKA2tleRgBIAEoCRI+CgV2YWx1ZRgCIAEoCzIvLnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuUmVzb3VyY2VNYXBwaW5nc0J5R3JvdXA6AjgBIjEKGUdldFJlc291cmNlTWFwcGluZ1JlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIk8KGkdldFJlc291cmNlTWFwcGluZ1Jlc3BvbnNlEjEKEHJlc291cmNlX21hcHBpbmcYASABKAsyFy5wb2xpY3kuUmVzb3VyY2VNYXBwaW5nItQCChxDcmVhdGVSZXNvdXJjZU1hcHBpbmdSZXF1ZXN0EiQKEmF0dHJpYnV0ZV92YWx1ZV9pZBgBIAEoCUIIukgFcgOwAQESGgoFdGVybXMYAiADKAlCC7pICJIBBQgBEOgHEsYBCghncm91cF9pZBgDIAEoCUKzAbpIrwG6AasBChRvcHRpb25hbF91dWlkX2Zvcm1hdBIjT3B0aW9uYWwgZmllbGQgbXVzdCBiZSBhIHZhbGlkIFVVSUQabnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ1swLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfScpEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZSJSCh1DcmVhdGVSZXNvdXJjZU1hcHBpbmdSZXNwb25zZRIxChByZXNvdXJjZV9tYXBwaW5nGAEgASgLMhcucG9saWN5LlJlc291cmNlTWFwcGluZyLTBAocVXBkYXRlUmVzb3VyY2VNYXBwaW5nUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQES0AEKEmF0dHJpYnV0ZV92YWx1ZV9pZBgEIAEoCUKzAbpIrwG6AasBChRvcHRpb25hbF91dWlkX2Zvcm1hdBIjT3B0aW9uYWwgZmllbGQgbXVzdCBiZSBhIHZhbGlkIFVVSUQabnNpemUodGhpcykgPT0gMCB8fCB0aGlzLm1hdGNoZXMoJ1swLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfScpEhgKBXRlcm1zGAUgAygJQgm6SAaSAQMQ6AcSxgEKCGdyb3VwX2lkGAYgASgJQrMBukivAboBqwEKFG9wdGlvbmFsX3V1aWRfZm9ybWF0EiNPcHRpb25hbCBmaWVsZCBtdXN0IGJlIGEgdmFsaWQgVVVJRBpuc2l6ZSh0aGlzKSA9PSAwIHx8IHRoaXMubWF0Y2hlcygnWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JykSKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlEjwKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchhlIAEoDjIaLmNvbW1vbi5NZXRhZGF0YVVwZGF0ZUVudW0iUgodVXBkYXRlUmVzb3VyY2VNYXBwaW5nUmVzcG9uc2USMQoQcmVzb3VyY2VfbWFwcGluZxgBIAEoCzIXLnBvbGljeS5SZXNvdXJjZU1hcHBpbmciNAocRGVsZXRlUmVzb3VyY2VNYXBwaW5nUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiUgodRGVsZXRlUmVzb3VyY2VNYXBwaW5nUmVzcG9uc2USMQoQcmVzb3VyY2VfbWFwcGluZxgBIAEoCzIXLnBvbGljeS5SZXNvdXJjZU1hcHBpbmcy2wwKFlJlc291cmNlTWFwcGluZ1NlcnZpY2USlQEKGUxpc3RSZXNvdXJjZU1hcHBpbmdHcm91cHMSOC5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkxpc3RSZXNvdXJjZU1hcHBpbmdHcm91cHNSZXF1ZXN0GjkucG9saWN5LnJlc291cmNlbWFwcGluZy5MaXN0UmVzb3VyY2VNYXBwaW5nR3JvdXBzUmVzcG9uc2UiA5ACARKPAQoXR2V0UmVzb3VyY2VNYXBwaW5nR3JvdXASNi5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkdldFJlc291cmNlTWFwcGluZ0dyb3VwUmVxdWVzdBo3LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuR2V0UmVzb3VyY2VNYXBwaW5nR3JvdXBSZXNwb25zZSIDkAIBEpUBChpDcmVhdGVSZXNvdXJjZU1hcHBpbmdHcm91cBI5LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuQ3JlYXRlUmVzb3VyY2VNYXBwaW5nR3JvdXBSZXF1ZXN0GjoucG9saWN5LnJlc291cmNlbWFwcGluZy5DcmVhdGVSZXNvdXJjZU1hcHBpbmdHcm91cFJlc3BvbnNlIgASlQEKGlVwZGF0ZVJlc291cmNlTWFwcGluZ0dyb3VwEjkucG9saWN5LnJlc291cmNlbWFwcGluZy5VcGRhdGVSZXNvdXJjZU1hcHBpbmdHcm91cFJlcXVlc3QaOi5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLlVwZGF0ZVJlc291cmNlTWFwcGluZ0dyb3VwUmVzcG9uc2UiABKVAQoaRGVsZXRlUmVzb3VyY2VNYXBwaW5nR3JvdXASOS5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkRlbGV0ZVJlc291cmNlTWFwcGluZ0dyb3VwUmVxdWVzdBo6LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuRGVsZXRlUmVzb3VyY2VNYXBwaW5nR3JvdXBSZXNwb25zZSIAEoYBChRMaXN0UmVzb3VyY2VNYXBwaW5ncxIzLnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuTGlzdFJlc291cmNlTWFwcGluZ3NSZXF1ZXN0GjQucG9saWN5LnJlc291cmNlbWFwcGluZy5MaXN0UmVzb3VyY2VNYXBwaW5nc1Jlc3BvbnNlIgOQAgESpwEKH0xpc3RSZXNvdXJjZU1hcHBpbmdzQnlHcm91cEZxbnMSPi5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkxpc3RSZXNvdXJjZU1hcHBpbmdzQnlHcm91cEZxbnNSZXF1ZXN0Gj8ucG9saWN5LnJlc291cmNlbWFwcGluZy5MaXN0UmVzb3VyY2VNYXBwaW5nc0J5R3JvdXBGcW5zUmVzcG9uc2UiA5ACARKAAQoSR2V0UmVzb3VyY2VNYXBwaW5nEjEucG9saWN5LnJlc291cmNlbWFwcGluZy5HZXRSZXNvdXJjZU1hcHBpbmdSZXF1ZXN0GjIucG9saWN5LnJlc291cmNlbWFwcGluZy5HZXRSZXNvdXJjZU1hcHBpbmdSZXNwb25zZSIDkAIBEoYBChVDcmVhdGVSZXNvdXJjZU1hcHBpbmcSNC5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkNyZWF0ZVJlc291cmNlTWFwcGluZ1JlcXVlc3QaNS5wb2xpY3kucmVzb3VyY2VtYXBwaW5nLkNyZWF0ZVJlc291cmNlTWFwcGluZ1Jlc3BvbnNlIgAShgEKFVVwZGF0ZVJlc291cmNlTWFwcGluZxI0LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuVXBkYXRlUmVzb3VyY2VNYXBwaW5nUmVxdWVzdBo1LnBvbGljeS5yZXNvdXJjZW1hcHBpbmcuVXBkYXRlUmVzb3VyY2VNYXBwaW5nUmVzcG9uc2UiABKGAQoVRGVsZXRlUmVzb3VyY2VNYXBwaW5nEjQucG9saWN5LnJlc291cmNlbWFwcGluZy5EZWxldGVSZXNvdXJjZU1hcHBpbmdSZXF1ZXN0GjUucG9saWN5LnJlc291cmNlbWFwcGluZy5EZWxldGVSZXNvdXJjZU1hcHBpbmdSZXNwb25zZSIAYgZwcm90bzM", [file_buf_validate_validate, file_common_common, file_policy_objects, file_policy_selectors]);
22
21
 
23
22
  /**
24
23
  * @generated from message policy.resourcemapping.ListResourceMappingGroupsRequest
@@ -13,6 +13,8 @@ export const file_policy_selectors: GenFile = /*@__PURE__*/
13
13
  fileDesc("ChZwb2xpY3kvc2VsZWN0b3JzLnByb3RvEgZwb2xpY3ki4gIKGkF0dHJpYnV0ZU5hbWVzcGFjZVNlbGVjdG9yEk0KD3dpdGhfYXR0cmlidXRlcxgKIAEoCzI0LnBvbGljeS5BdHRyaWJ1dGVOYW1lc3BhY2VTZWxlY3Rvci5BdHRyaWJ1dGVTZWxlY3Rvchr0AQoRQXR0cmlidXRlU2VsZWN0b3ISHgoWd2l0aF9rZXlfYWNjZXNzX2dyYW50cxgBIAEoCBJXCgt3aXRoX3ZhbHVlcxgKIAEoCzJCLnBvbGljeS5BdHRyaWJ1dGVOYW1lc3BhY2VTZWxlY3Rvci5BdHRyaWJ1dGVTZWxlY3Rvci5WYWx1ZVNlbGVjdG9yGmYKDVZhbHVlU2VsZWN0b3ISHgoWd2l0aF9rZXlfYWNjZXNzX2dyYW50cxgBIAEoCBIZChF3aXRoX3N1YmplY3RfbWFwcxgCIAEoCBIaChJ3aXRoX3Jlc291cmNlX21hcHMYAyABKAgi0QIKG0F0dHJpYnV0ZURlZmluaXRpb25TZWxlY3RvchIeChZ3aXRoX2tleV9hY2Nlc3NfZ3JhbnRzGAEgASgIEk0KDndpdGhfbmFtZXNwYWNlGAogASgLMjUucG9saWN5LkF0dHJpYnV0ZURlZmluaXRpb25TZWxlY3Rvci5OYW1lc3BhY2VTZWxlY3RvchJGCgt3aXRoX3ZhbHVlcxgLIAEoCzIxLnBvbGljeS5BdHRyaWJ1dGVEZWZpbml0aW9uU2VsZWN0b3IuVmFsdWVTZWxlY3RvchoTChFOYW1lc3BhY2VTZWxlY3RvchpmCg1WYWx1ZVNlbGVjdG9yEh4KFndpdGhfa2V5X2FjY2Vzc19ncmFudHMYASABKAgSGQoRd2l0aF9zdWJqZWN0X21hcHMYAiABKAgSGgoSd2l0aF9yZXNvdXJjZV9tYXBzGAMgASgIIuACChZBdHRyaWJ1dGVWYWx1ZVNlbGVjdG9yEh4KFndpdGhfa2V5X2FjY2Vzc19ncmFudHMYASABKAgSGQoRd2l0aF9zdWJqZWN0X21hcHMYAiABKAgSGgoSd2l0aF9yZXNvdXJjZV9tYXBzGAMgASgIEkgKDndpdGhfYXR0cmlidXRlGAogASgLMjAucG9saWN5LkF0dHJpYnV0ZVZhbHVlU2VsZWN0b3IuQXR0cmlidXRlU2VsZWN0b3IapAEKEUF0dHJpYnV0ZVNlbGVjdG9yEh4KFndpdGhfa2V5X2FjY2Vzc19ncmFudHMYASABKAgSWgoOd2l0aF9uYW1lc3BhY2UYCiABKAsyQi5wb2xpY3kuQXR0cmlidXRlVmFsdWVTZWxlY3Rvci5BdHRyaWJ1dGVTZWxlY3Rvci5OYW1lc3BhY2VTZWxlY3RvchoTChFOYW1lc3BhY2VTZWxlY3RvciIsCgtQYWdlUmVxdWVzdBINCgVsaW1pdBgBIAEoBRIOCgZvZmZzZXQYAiABKAUiSgoMUGFnZVJlc3BvbnNlEhYKDmN1cnJlbnRfb2Zmc2V0GAEgASgFEhMKC25leHRfb2Zmc2V0GAIgASgFEg0KBXRvdGFsGAMgASgFYgZwcm90bzM");
14
14
 
15
15
  /**
16
+ * Deprecated: never utilized
17
+ *
16
18
  * @generated from message policy.AttributeNamespaceSelector
17
19
  */
18
20
  export type AttributeNamespaceSelector = Message<"policy.AttributeNamespaceSelector"> & {
@@ -30,6 +32,8 @@ export const AttributeNamespaceSelectorSchema: GenMessage<AttributeNamespaceSele
30
32
  messageDesc(file_policy_selectors, 0);
31
33
 
32
34
  /**
35
+ * Deprecated
36
+ *
33
37
  * @generated from message policy.AttributeNamespaceSelector.AttributeSelector
34
38
  */
35
39
  export type AttributeNamespaceSelector_AttributeSelector = Message<"policy.AttributeNamespaceSelector.AttributeSelector"> & {
@@ -56,6 +60,8 @@ export const AttributeNamespaceSelector_AttributeSelectorSchema: GenMessage<Attr
56
60
  */
57
61
  export type AttributeNamespaceSelector_AttributeSelector_ValueSelector = Message<"policy.AttributeNamespaceSelector.AttributeSelector.ValueSelector"> & {
58
62
  /**
63
+ * Deprecated
64
+ *
59
65
  * @generated from field: bool with_key_access_grants = 1;
60
66
  */
61
67
  withKeyAccessGrants: boolean;
@@ -79,10 +85,14 @@ export const AttributeNamespaceSelector_AttributeSelector_ValueSelectorSchema: G
79
85
  messageDesc(file_policy_selectors, 0, 0, 0);
80
86
 
81
87
  /**
88
+ * Deprecated: never utilized
89
+ *
82
90
  * @generated from message policy.AttributeDefinitionSelector
83
91
  */
84
92
  export type AttributeDefinitionSelector = Message<"policy.AttributeDefinitionSelector"> & {
85
93
  /**
94
+ * Deprecated
95
+ *
86
96
  * @generated from field: bool with_key_access_grants = 1;
87
97
  */
88
98
  withKeyAccessGrants: boolean;
@@ -123,6 +133,8 @@ export const AttributeDefinitionSelector_NamespaceSelectorSchema: GenMessage<Att
123
133
  */
124
134
  export type AttributeDefinitionSelector_ValueSelector = Message<"policy.AttributeDefinitionSelector.ValueSelector"> & {
125
135
  /**
136
+ * Deprecated
137
+ *
126
138
  * @generated from field: bool with_key_access_grants = 1;
127
139
  */
128
140
  withKeyAccessGrants: boolean;
@@ -146,10 +158,14 @@ export const AttributeDefinitionSelector_ValueSelectorSchema: GenMessage<Attribu
146
158
  messageDesc(file_policy_selectors, 1, 1);
147
159
 
148
160
  /**
161
+ * Deprecated: never utilized
162
+ *
149
163
  * @generated from message policy.AttributeValueSelector
150
164
  */
151
165
  export type AttributeValueSelector = Message<"policy.AttributeValueSelector"> & {
152
166
  /**
167
+ * Deprecated
168
+ *
153
169
  * @generated from field: bool with_key_access_grants = 1;
154
170
  */
155
171
  withKeyAccessGrants: boolean;
@@ -182,6 +198,8 @@ export const AttributeValueSelectorSchema: GenMessage<AttributeValueSelector> =
182
198
  */
183
199
  export type AttributeValueSelector_AttributeSelector = Message<"policy.AttributeValueSelector.AttributeSelector"> & {
184
200
  /**
201
+ * Deprecated
202
+ *
185
203
  * @generated from field: bool with_key_access_grants = 1;
186
204
  */
187
205
  withKeyAccessGrants: boolean;
@@ -5,7 +5,6 @@
5
5
  import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
6
6
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1";
7
7
  import { file_buf_validate_validate } from "../../buf/validate/validate_pb.js";
8
- import { file_google_api_annotations } from "../../google/api/annotations_pb.js";
9
8
  import type { MetadataMutable, MetadataUpdateEnum } from "../../common/common_pb.js";
10
9
  import { file_common_common } from "../../common/common_pb.js";
11
10
  import type { Action, SubjectConditionSet, SubjectMapping, SubjectProperty, SubjectSet } from "../objects_pb.js";
@@ -18,7 +17,7 @@ import type { Message } from "@bufbuild/protobuf";
18
17
  * Describes the file policy/subjectmapping/subject_mapping.proto.
19
18
  */
20
19
  export const file_policy_subjectmapping_subject_mapping: GenFile = /*@__PURE__*/
21
- fileDesc("Citwb2xpY3kvc3ViamVjdG1hcHBpbmcvc3ViamVjdF9tYXBwaW5nLnByb3RvEhVwb2xpY3kuc3ViamVjdG1hcHBpbmciXAobTWF0Y2hTdWJqZWN0TWFwcGluZ3NSZXF1ZXN0Ej0KEnN1YmplY3RfcHJvcGVydGllcxgBIAMoCzIXLnBvbGljeS5TdWJqZWN0UHJvcGVydHlCCLpIBZIBAggBIlAKHE1hdGNoU3ViamVjdE1hcHBpbmdzUmVzcG9uc2USMAoQc3ViamVjdF9tYXBwaW5ncxgBIAMoCzIWLnBvbGljeS5TdWJqZWN0TWFwcGluZyIwChhHZXRTdWJqZWN0TWFwcGluZ1JlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIkwKGUdldFN1YmplY3RNYXBwaW5nUmVzcG9uc2USLwoPc3ViamVjdF9tYXBwaW5nGAEgASgLMhYucG9saWN5LlN1YmplY3RNYXBwaW5nIkUKGkxpc3RTdWJqZWN0TWFwcGluZ3NSZXF1ZXN0EicKCnBhZ2luYXRpb24YCiABKAsyEy5wb2xpY3kuUGFnZVJlcXVlc3QieQobTGlzdFN1YmplY3RNYXBwaW5nc1Jlc3BvbnNlEjAKEHN1YmplY3RfbWFwcGluZ3MYASADKAsyFi5wb2xpY3kuU3ViamVjdE1hcHBpbmcSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2Ui0AMKG0NyZWF0ZVN1YmplY3RNYXBwaW5nUmVxdWVzdBIkChJhdHRyaWJ1dGVfdmFsdWVfaWQYASABKAlCCLpIBXIDsAEBEikKB2FjdGlvbnMYAiADKAsyDi5wb2xpY3kuQWN0aW9uQgi6SAWSAQIIARLfAQohZXhpc3Rpbmdfc3ViamVjdF9jb25kaXRpb25fc2V0X2lkGAMgASgJQrMBukivAboBqwEKFG9wdGlvbmFsX3V1aWRfZm9ybWF0EiNPcHRpb25hbCBmaWVsZCBtdXN0IGJlIGEgdmFsaWQgVVVJRBpuc2l6ZSh0aGlzKSA9PSAwIHx8IHRoaXMubWF0Y2hlcygnWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JykSUwoZbmV3X3N1YmplY3RfY29uZGl0aW9uX3NldBgEIAEoCzIwLnBvbGljeS5zdWJqZWN0bWFwcGluZy5TdWJqZWN0Q29uZGl0aW9uU2V0Q3JlYXRlEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZSJPChxDcmVhdGVTdWJqZWN0TWFwcGluZ1Jlc3BvbnNlEi8KD3N1YmplY3RfbWFwcGluZxgBIAEoCzIWLnBvbGljeS5TdWJqZWN0TWFwcGluZyKWAwobVXBkYXRlU3ViamVjdE1hcHBpbmdSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARLWAQoYc3ViamVjdF9jb25kaXRpb25fc2V0X2lkGAIgASgJQrMBukivAboBqwEKFG9wdGlvbmFsX3V1aWRfZm9ybWF0EiNPcHRpb25hbCBmaWVsZCBtdXN0IGJlIGEgdmFsaWQgVVVJRBpuc2l6ZSh0aGlzKSA9PSAwIHx8IHRoaXMubWF0Y2hlcygnWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JykSHwoHYWN0aW9ucxgDIAMoCzIOLnBvbGljeS5BY3Rpb24SKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlEjwKGG1ldGFkYXRhX3VwZGF0ZV9iZWhhdmlvchhlIAEoDjIaLmNvbW1vbi5NZXRhZGF0YVVwZGF0ZUVudW0iTwocVXBkYXRlU3ViamVjdE1hcHBpbmdSZXNwb25zZRIvCg9zdWJqZWN0X21hcHBpbmcYASABKAsyFi5wb2xpY3kuU3ViamVjdE1hcHBpbmciMwobRGVsZXRlU3ViamVjdE1hcHBpbmdSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJPChxEZWxldGVTdWJqZWN0TWFwcGluZ1Jlc3BvbnNlEi8KD3N1YmplY3RfbWFwcGluZxgBIAEoCzIWLnBvbGljeS5TdWJqZWN0TWFwcGluZyI1Ch1HZXRTdWJqZWN0Q29uZGl0aW9uU2V0UmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEimQEKHkdldFN1YmplY3RDb25kaXRpb25TZXRSZXNwb25zZRI6ChVzdWJqZWN0X2NvbmRpdGlvbl9zZXQYASABKAsyGy5wb2xpY3kuU3ViamVjdENvbmRpdGlvblNldBI7Chthc3NvY2lhdGVkX3N1YmplY3RfbWFwcGluZ3MYAiADKAsyFi5wb2xpY3kuU3ViamVjdE1hcHBpbmciSgofTGlzdFN1YmplY3RDb25kaXRpb25TZXRzUmVxdWVzdBInCgpwYWdpbmF0aW9uGAogASgLMhMucG9saWN5LlBhZ2VSZXF1ZXN0IokBCiBMaXN0U3ViamVjdENvbmRpdGlvblNldHNSZXNwb25zZRI7ChZzdWJqZWN0X2NvbmRpdGlvbl9zZXRzGAEgAygLMhsucG9saWN5LlN1YmplY3RDb25kaXRpb25TZXQSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2UiegoZU3ViamVjdENvbmRpdGlvblNldENyZWF0ZRIyCgxzdWJqZWN0X3NldHMYASADKAsyEi5wb2xpY3kuU3ViamVjdFNldEIIukgFkgECCAESKQoIbWV0YWRhdGEYZCABKAsyFy5jb21tb24uTWV0YWRhdGFNdXRhYmxlInMKIENyZWF0ZVN1YmplY3RDb25kaXRpb25TZXRSZXF1ZXN0Ek8KFXN1YmplY3RfY29uZGl0aW9uX3NldBgBIAEoCzIwLnBvbGljeS5zdWJqZWN0bWFwcGluZy5TdWJqZWN0Q29uZGl0aW9uU2V0Q3JlYXRlIl8KIUNyZWF0ZVN1YmplY3RDb25kaXRpb25TZXRSZXNwb25zZRI6ChVzdWJqZWN0X2NvbmRpdGlvbl9zZXQYASABKAsyGy5wb2xpY3kuU3ViamVjdENvbmRpdGlvblNldCLLAQogVXBkYXRlU3ViamVjdENvbmRpdGlvblNldFJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEigKDHN1YmplY3Rfc2V0cxgCIAMoCzISLnBvbGljeS5TdWJqZWN0U2V0EikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZRI8ChhtZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IYZSABKA4yGi5jb21tb24uTWV0YWRhdGFVcGRhdGVFbnVtIl8KIVVwZGF0ZVN1YmplY3RDb25kaXRpb25TZXRSZXNwb25zZRI6ChVzdWJqZWN0X2NvbmRpdGlvbl9zZXQYASABKAsyGy5wb2xpY3kuU3ViamVjdENvbmRpdGlvblNldCI4CiBEZWxldGVTdWJqZWN0Q29uZGl0aW9uU2V0UmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiXwohRGVsZXRlU3ViamVjdENvbmRpdGlvblNldFJlc3BvbnNlEjoKFXN1YmplY3RfY29uZGl0aW9uX3NldBgBIAEoCzIbLnBvbGljeS5TdWJqZWN0Q29uZGl0aW9uU2V0Ii4KLERlbGV0ZUFsbFVubWFwcGVkU3ViamVjdENvbmRpdGlvblNldHNSZXF1ZXN0ImwKLURlbGV0ZUFsbFVubWFwcGVkU3ViamVjdENvbmRpdGlvblNldHNSZXNwb25zZRI7ChZzdWJqZWN0X2NvbmRpdGlvbl9zZXRzGAEgAygLMhsucG9saWN5LlN1YmplY3RDb25kaXRpb25TZXQy1hAKFVN1YmplY3RNYXBwaW5nU2VydmljZRK0AQoUTWF0Y2hTdWJqZWN0TWFwcGluZ3MSMi5wb2xpY3kuc3ViamVjdG1hcHBpbmcuTWF0Y2hTdWJqZWN0TWFwcGluZ3NSZXF1ZXN0GjMucG9saWN5LnN1YmplY3RtYXBwaW5nLk1hdGNoU3ViamVjdE1hcHBpbmdzUmVzcG9uc2UiM4LT5JMCLToSc3ViamVjdF9wcm9wZXJ0aWVzIhcvc3ViamVjdC1tYXBwaW5ncy9tYXRjaBKaAQoTTGlzdFN1YmplY3RNYXBwaW5ncxIxLnBvbGljeS5zdWJqZWN0bWFwcGluZy5MaXN0U3ViamVjdE1hcHBpbmdzUmVxdWVzdBoyLnBvbGljeS5zdWJqZWN0bWFwcGluZy5MaXN0U3ViamVjdE1hcHBpbmdzUmVzcG9uc2UiHJACAYLT5JMCExIRL3N1YmplY3QtbWFwcGluZ3MSmQEKEUdldFN1YmplY3RNYXBwaW5nEi8ucG9saWN5LnN1YmplY3RtYXBwaW5nLkdldFN1YmplY3RNYXBwaW5nUmVxdWVzdBowLnBvbGljeS5zdWJqZWN0bWFwcGluZy5HZXRTdWJqZWN0TWFwcGluZ1Jlc3BvbnNlIiGQAgGC0+STAhgSFi9zdWJqZWN0LW1hcHBpbmdzL3tpZH0SnQEKFENyZWF0ZVN1YmplY3RNYXBwaW5nEjIucG9saWN5LnN1YmplY3RtYXBwaW5nLkNyZWF0ZVN1YmplY3RNYXBwaW5nUmVxdWVzdBozLnBvbGljeS5zdWJqZWN0bWFwcGluZy5DcmVhdGVTdWJqZWN0TWFwcGluZ1Jlc3BvbnNlIhyC0+STAhY6ASoiES9zdWJqZWN0LW1hcHBpbmdzEqIBChRVcGRhdGVTdWJqZWN0TWFwcGluZxIyLnBvbGljeS5zdWJqZWN0bWFwcGluZy5VcGRhdGVTdWJqZWN0TWFwcGluZ1JlcXVlc3QaMy5wb2xpY3kuc3ViamVjdG1hcHBpbmcuVXBkYXRlU3ViamVjdE1hcHBpbmdSZXNwb25zZSIhgtPkkwIbOgEqMhYvc3ViamVjdC1tYXBwaW5ncy97aWR9Ep8BChREZWxldGVTdWJqZWN0TWFwcGluZxIyLnBvbGljeS5zdWJqZWN0bWFwcGluZy5EZWxldGVTdWJqZWN0TWFwcGluZ1JlcXVlc3QaMy5wb2xpY3kuc3ViamVjdG1hcHBpbmcuRGVsZXRlU3ViamVjdE1hcHBpbmdSZXNwb25zZSIegtPkkwIYKhYvc3ViamVjdC1tYXBwaW5ncy97aWR9Eq8BChhMaXN0U3ViamVjdENvbmRpdGlvblNldHMSNi5wb2xpY3kuc3ViamVjdG1hcHBpbmcuTGlzdFN1YmplY3RDb25kaXRpb25TZXRzUmVxdWVzdBo3LnBvbGljeS5zdWJqZWN0bWFwcGluZy5MaXN0U3ViamVjdENvbmRpdGlvblNldHNSZXNwb25zZSIikAIBgtPkkwIZEhcvc3ViamVjdC1jb25kaXRpb24tc2V0cxKuAQoWR2V0U3ViamVjdENvbmRpdGlvblNldBI0LnBvbGljeS5zdWJqZWN0bWFwcGluZy5HZXRTdWJqZWN0Q29uZGl0aW9uU2V0UmVxdWVzdBo1LnBvbGljeS5zdWJqZWN0bWFwcGluZy5HZXRTdWJqZWN0Q29uZGl0aW9uU2V0UmVzcG9uc2UiJ5ACAYLT5JMCHhIcL3N1YmplY3QtY29uZGl0aW9uLXNldHMve2lkfRKyAQoZQ3JlYXRlU3ViamVjdENvbmRpdGlvblNldBI3LnBvbGljeS5zdWJqZWN0bWFwcGluZy5DcmVhdGVTdWJqZWN0Q29uZGl0aW9uU2V0UmVxdWVzdBo4LnBvbGljeS5zdWJqZWN0bWFwcGluZy5DcmVhdGVTdWJqZWN0Q29uZGl0aW9uU2V0UmVzcG9uc2UiIoLT5JMCHDoBKiIXL3N1YmplY3QtY29uZGl0aW9uLXNldHMStwEKGVVwZGF0ZVN1YmplY3RDb25kaXRpb25TZXQSNy5wb2xpY3kuc3ViamVjdG1hcHBpbmcuVXBkYXRlU3ViamVjdENvbmRpdGlvblNldFJlcXVlc3QaOC5wb2xpY3kuc3ViamVjdG1hcHBpbmcuVXBkYXRlU3ViamVjdENvbmRpdGlvblNldFJlc3BvbnNlIieC0+STAiE6ASoyHC9zdWJqZWN0LWNvbmRpdGlvbi1zZXRzL3tpZH0StAEKGURlbGV0ZVN1YmplY3RDb25kaXRpb25TZXQSNy5wb2xpY3kuc3ViamVjdG1hcHBpbmcuRGVsZXRlU3ViamVjdENvbmRpdGlvblNldFJlcXVlc3QaOC5wb2xpY3kuc3ViamVjdG1hcHBpbmcuRGVsZXRlU3ViamVjdENvbmRpdGlvblNldFJlc3BvbnNlIiSC0+STAh4qHC9zdWJqZWN0LWNvbmRpdGlvbi1zZXRzL3tpZH0S3AEKJURlbGV0ZUFsbFVubWFwcGVkU3ViamVjdENvbmRpdGlvblNldHMSQy5wb2xpY3kuc3ViamVjdG1hcHBpbmcuRGVsZXRlQWxsVW5tYXBwZWRTdWJqZWN0Q29uZGl0aW9uU2V0c1JlcXVlc3QaRC5wb2xpY3kuc3ViamVjdG1hcHBpbmcuRGVsZXRlQWxsVW5tYXBwZWRTdWJqZWN0Q29uZGl0aW9uU2V0c1Jlc3BvbnNlIiiC0+STAiIqIC9zdWJqZWN0LWNvbmRpdGlvbi1zZXRzL3VubWFwcGVkYgZwcm90bzM", [file_buf_validate_validate, file_google_api_annotations, file_common_common, file_policy_objects, file_policy_selectors]);
20
+ fileDesc("Citwb2xpY3kvc3ViamVjdG1hcHBpbmcvc3ViamVjdF9tYXBwaW5nLnByb3RvEhVwb2xpY3kuc3ViamVjdG1hcHBpbmciXAobTWF0Y2hTdWJqZWN0TWFwcGluZ3NSZXF1ZXN0Ej0KEnN1YmplY3RfcHJvcGVydGllcxgBIAMoCzIXLnBvbGljeS5TdWJqZWN0UHJvcGVydHlCCLpIBZIBAggBIlAKHE1hdGNoU3ViamVjdE1hcHBpbmdzUmVzcG9uc2USMAoQc3ViamVjdF9tYXBwaW5ncxgBIAMoCzIWLnBvbGljeS5TdWJqZWN0TWFwcGluZyIwChhHZXRTdWJqZWN0TWFwcGluZ1JlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIkwKGUdldFN1YmplY3RNYXBwaW5nUmVzcG9uc2USLwoPc3ViamVjdF9tYXBwaW5nGAEgASgLMhYucG9saWN5LlN1YmplY3RNYXBwaW5nIkUKGkxpc3RTdWJqZWN0TWFwcGluZ3NSZXF1ZXN0EicKCnBhZ2luYXRpb24YCiABKAsyEy5wb2xpY3kuUGFnZVJlcXVlc3QieQobTGlzdFN1YmplY3RNYXBwaW5nc1Jlc3BvbnNlEjAKEHN1YmplY3RfbWFwcGluZ3MYASADKAsyFi5wb2xpY3kuU3ViamVjdE1hcHBpbmcSKAoKcGFnaW5hdGlvbhgKIAEoCzIULnBvbGljeS5QYWdlUmVzcG9uc2Ui1wQKG0NyZWF0ZVN1YmplY3RNYXBwaW5nUmVxdWVzdBIkChJhdHRyaWJ1dGVfdmFsdWVfaWQYASABKAlCCLpIBXIDsAEBEq8BCgdhY3Rpb25zGAIgAygLMg4ucG9saWN5LkFjdGlvbkKNAbpIiQG6AYABChthY3Rpb25fbmFtZV9vcl9pZF9ub3RfZW1wdHkSL0FjdGlvbiBuYW1lIG9yIElEIG11c3Qgbm90IGJlIGVtcHR5IGlmIHByb3ZpZGVkGjB0aGlzLmFsbChpdGVtLCBpdGVtLm5hbWUgIT0gJycgfHwgaXRlbS5pZCAhPSAnJymSAQIIARLfAQohZXhpc3Rpbmdfc3ViamVjdF9jb25kaXRpb25fc2V0X2lkGAMgASgJQrMBukivAboBqwEKFG9wdGlvbmFsX3V1aWRfZm9ybWF0EiNPcHRpb25hbCBmaWVsZCBtdXN0IGJlIGEgdmFsaWQgVVVJRBpuc2l6ZSh0aGlzKSA9PSAwIHx8IHRoaXMubWF0Y2hlcygnWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JykSUwoZbmV3X3N1YmplY3RfY29uZGl0aW9uX3NldBgEIAEoCzIwLnBvbGljeS5zdWJqZWN0bWFwcGluZy5TdWJqZWN0Q29uZGl0aW9uU2V0Q3JlYXRlEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZSJPChxDcmVhdGVTdWJqZWN0TWFwcGluZ1Jlc3BvbnNlEi8KD3N1YmplY3RfbWFwcGluZxgBIAEoCzIWLnBvbGljeS5TdWJqZWN0TWFwcGluZyK2BAobVXBkYXRlU3ViamVjdE1hcHBpbmdSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARLWAQoYc3ViamVjdF9jb25kaXRpb25fc2V0X2lkGAIgASgJQrMBukivAboBqwEKFG9wdGlvbmFsX3V1aWRfZm9ybWF0EiNPcHRpb25hbCBmaWVsZCBtdXN0IGJlIGEgdmFsaWQgVVVJRBpuc2l6ZSh0aGlzKSA9PSAwIHx8IHRoaXMubWF0Y2hlcygnWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JykSvgEKB2FjdGlvbnMYAyADKAsyDi5wb2xpY3kuQWN0aW9uQpwBukiYAboBlAEKG2FjdGlvbl9uYW1lX29yX2lkX25vdF9lbXB0eRIvQWN0aW9uIG5hbWUgb3IgSUQgbXVzdCBub3QgYmUgZW1wdHkgaWYgcHJvdmlkZWQaRHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5hbGwoaXRlbSwgaXRlbS5uYW1lICE9ICcnIHx8IGl0ZW0uaWQgIT0gJycpEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZRI8ChhtZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IYZSABKA4yGi5jb21tb24uTWV0YWRhdGFVcGRhdGVFbnVtIk8KHFVwZGF0ZVN1YmplY3RNYXBwaW5nUmVzcG9uc2USLwoPc3ViamVjdF9tYXBwaW5nGAEgASgLMhYucG9saWN5LlN1YmplY3RNYXBwaW5nIjMKG0RlbGV0ZVN1YmplY3RNYXBwaW5nUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiTwocRGVsZXRlU3ViamVjdE1hcHBpbmdSZXNwb25zZRIvCg9zdWJqZWN0X21hcHBpbmcYASABKAsyFi5wb2xpY3kuU3ViamVjdE1hcHBpbmciNQodR2V0U3ViamVjdENvbmRpdGlvblNldFJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIpkBCh5HZXRTdWJqZWN0Q29uZGl0aW9uU2V0UmVzcG9uc2USOgoVc3ViamVjdF9jb25kaXRpb25fc2V0GAEgASgLMhsucG9saWN5LlN1YmplY3RDb25kaXRpb25TZXQSOwobYXNzb2NpYXRlZF9zdWJqZWN0X21hcHBpbmdzGAIgAygLMhYucG9saWN5LlN1YmplY3RNYXBwaW5nIkoKH0xpc3RTdWJqZWN0Q29uZGl0aW9uU2V0c1JlcXVlc3QSJwoKcGFnaW5hdGlvbhgKIAEoCzITLnBvbGljeS5QYWdlUmVxdWVzdCKJAQogTGlzdFN1YmplY3RDb25kaXRpb25TZXRzUmVzcG9uc2USOwoWc3ViamVjdF9jb25kaXRpb25fc2V0cxgBIAMoCzIbLnBvbGljeS5TdWJqZWN0Q29uZGl0aW9uU2V0EigKCnBhZ2luYXRpb24YCiABKAsyFC5wb2xpY3kuUGFnZVJlc3BvbnNlInoKGVN1YmplY3RDb25kaXRpb25TZXRDcmVhdGUSMgoMc3ViamVjdF9zZXRzGAEgAygLMhIucG9saWN5LlN1YmplY3RTZXRCCLpIBZIBAggBEikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZSJ7CiBDcmVhdGVTdWJqZWN0Q29uZGl0aW9uU2V0UmVxdWVzdBJXChVzdWJqZWN0X2NvbmRpdGlvbl9zZXQYASABKAsyMC5wb2xpY3kuc3ViamVjdG1hcHBpbmcuU3ViamVjdENvbmRpdGlvblNldENyZWF0ZUIGukgDyAEBIl8KIUNyZWF0ZVN1YmplY3RDb25kaXRpb25TZXRSZXNwb25zZRI6ChVzdWJqZWN0X2NvbmRpdGlvbl9zZXQYASABKAsyGy5wb2xpY3kuU3ViamVjdENvbmRpdGlvblNldCLLAQogVXBkYXRlU3ViamVjdENvbmRpdGlvblNldFJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEigKDHN1YmplY3Rfc2V0cxgCIAMoCzISLnBvbGljeS5TdWJqZWN0U2V0EikKCG1ldGFkYXRhGGQgASgLMhcuY29tbW9uLk1ldGFkYXRhTXV0YWJsZRI8ChhtZXRhZGF0YV91cGRhdGVfYmVoYXZpb3IYZSABKA4yGi5jb21tb24uTWV0YWRhdGFVcGRhdGVFbnVtIl8KIVVwZGF0ZVN1YmplY3RDb25kaXRpb25TZXRSZXNwb25zZRI6ChVzdWJqZWN0X2NvbmRpdGlvbl9zZXQYASABKAsyGy5wb2xpY3kuU3ViamVjdENvbmRpdGlvblNldCI4CiBEZWxldGVTdWJqZWN0Q29uZGl0aW9uU2V0UmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiXwohRGVsZXRlU3ViamVjdENvbmRpdGlvblNldFJlc3BvbnNlEjoKFXN1YmplY3RfY29uZGl0aW9uX3NldBgBIAEoCzIbLnBvbGljeS5TdWJqZWN0Q29uZGl0aW9uU2V0Ii4KLERlbGV0ZUFsbFVubWFwcGVkU3ViamVjdENvbmRpdGlvblNldHNSZXF1ZXN0ImwKLURlbGV0ZUFsbFVubWFwcGVkU3ViamVjdENvbmRpdGlvblNldHNSZXNwb25zZRI7ChZzdWJqZWN0X2NvbmRpdGlvbl9zZXRzGAEgAygLMhsucG9saWN5LlN1YmplY3RDb25kaXRpb25TZXQyuA0KFVN1YmplY3RNYXBwaW5nU2VydmljZRKBAQoUTWF0Y2hTdWJqZWN0TWFwcGluZ3MSMi5wb2xpY3kuc3ViamVjdG1hcHBpbmcuTWF0Y2hTdWJqZWN0TWFwcGluZ3NSZXF1ZXN0GjMucG9saWN5LnN1YmplY3RtYXBwaW5nLk1hdGNoU3ViamVjdE1hcHBpbmdzUmVzcG9uc2UiABKBAQoTTGlzdFN1YmplY3RNYXBwaW5ncxIxLnBvbGljeS5zdWJqZWN0bWFwcGluZy5MaXN0U3ViamVjdE1hcHBpbmdzUmVxdWVzdBoyLnBvbGljeS5zdWJqZWN0bWFwcGluZy5MaXN0U3ViamVjdE1hcHBpbmdzUmVzcG9uc2UiA5ACARJ7ChFHZXRTdWJqZWN0TWFwcGluZxIvLnBvbGljeS5zdWJqZWN0bWFwcGluZy5HZXRTdWJqZWN0TWFwcGluZ1JlcXVlc3QaMC5wb2xpY3kuc3ViamVjdG1hcHBpbmcuR2V0U3ViamVjdE1hcHBpbmdSZXNwb25zZSIDkAIBEoEBChRDcmVhdGVTdWJqZWN0TWFwcGluZxIyLnBvbGljeS5zdWJqZWN0bWFwcGluZy5DcmVhdGVTdWJqZWN0TWFwcGluZ1JlcXVlc3QaMy5wb2xpY3kuc3ViamVjdG1hcHBpbmcuQ3JlYXRlU3ViamVjdE1hcHBpbmdSZXNwb25zZSIAEoEBChRVcGRhdGVTdWJqZWN0TWFwcGluZxIyLnBvbGljeS5zdWJqZWN0bWFwcGluZy5VcGRhdGVTdWJqZWN0TWFwcGluZ1JlcXVlc3QaMy5wb2xpY3kuc3ViamVjdG1hcHBpbmcuVXBkYXRlU3ViamVjdE1hcHBpbmdSZXNwb25zZSIAEoEBChREZWxldGVTdWJqZWN0TWFwcGluZxIyLnBvbGljeS5zdWJqZWN0bWFwcGluZy5EZWxldGVTdWJqZWN0TWFwcGluZ1JlcXVlc3QaMy5wb2xpY3kuc3ViamVjdG1hcHBpbmcuRGVsZXRlU3ViamVjdE1hcHBpbmdSZXNwb25zZSIAEpABChhMaXN0U3ViamVjdENvbmRpdGlvblNldHMSNi5wb2xpY3kuc3ViamVjdG1hcHBpbmcuTGlzdFN1YmplY3RDb25kaXRpb25TZXRzUmVxdWVzdBo3LnBvbGljeS5zdWJqZWN0bWFwcGluZy5MaXN0U3ViamVjdENvbmRpdGlvblNldHNSZXNwb25zZSIDkAIBEooBChZHZXRTdWJqZWN0Q29uZGl0aW9uU2V0EjQucG9saWN5LnN1YmplY3RtYXBwaW5nLkdldFN1YmplY3RDb25kaXRpb25TZXRSZXF1ZXN0GjUucG9saWN5LnN1YmplY3RtYXBwaW5nLkdldFN1YmplY3RDb25kaXRpb25TZXRSZXNwb25zZSIDkAIBEpABChlDcmVhdGVTdWJqZWN0Q29uZGl0aW9uU2V0EjcucG9saWN5LnN1YmplY3RtYXBwaW5nLkNyZWF0ZVN1YmplY3RDb25kaXRpb25TZXRSZXF1ZXN0GjgucG9saWN5LnN1YmplY3RtYXBwaW5nLkNyZWF0ZVN1YmplY3RDb25kaXRpb25TZXRSZXNwb25zZSIAEpABChlVcGRhdGVTdWJqZWN0Q29uZGl0aW9uU2V0EjcucG9saWN5LnN1YmplY3RtYXBwaW5nLlVwZGF0ZVN1YmplY3RDb25kaXRpb25TZXRSZXF1ZXN0GjgucG9saWN5LnN1YmplY3RtYXBwaW5nLlVwZGF0ZVN1YmplY3RDb25kaXRpb25TZXRSZXNwb25zZSIAEpABChlEZWxldGVTdWJqZWN0Q29uZGl0aW9uU2V0EjcucG9saWN5LnN1YmplY3RtYXBwaW5nLkRlbGV0ZVN1YmplY3RDb25kaXRpb25TZXRSZXF1ZXN0GjgucG9saWN5LnN1YmplY3RtYXBwaW5nLkRlbGV0ZVN1YmplY3RDb25kaXRpb25TZXRSZXNwb25zZSIAErQBCiVEZWxldGVBbGxVbm1hcHBlZFN1YmplY3RDb25kaXRpb25TZXRzEkMucG9saWN5LnN1YmplY3RtYXBwaW5nLkRlbGV0ZUFsbFVubWFwcGVkU3ViamVjdENvbmRpdGlvblNldHNSZXF1ZXN0GkQucG9saWN5LnN1YmplY3RtYXBwaW5nLkRlbGV0ZUFsbFVubWFwcGVkU3ViamVjdENvbmRpdGlvblNldHNSZXNwb25zZSIAYgZwcm90bzM", [file_buf_validate_validate, file_common_common, file_policy_objects, file_policy_selectors]);
22
21
 
23
22
  /**
24
23
  * MatchSubjectMappingsRequest liberally returns a list of SubjectMappings based on the provided SubjectProperties.
@@ -5,8 +5,7 @@
5
5
  import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
6
6
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1";
7
7
  import { file_buf_validate_validate } from "../../buf/validate/validate_pb.js";
8
- import { file_google_api_annotations } from "../../google/api/annotations_pb.js";
9
- import type { Attribute, AttributeRuleTypeEnum, Key, Namespace, Value } from "../objects_pb.js";
8
+ import type { Attribute, AttributeRuleTypeEnum, KasKey, Namespace, Value } from "../objects_pb.js";
10
9
  import { file_policy_objects } from "../objects_pb.js";
11
10
  import type { Message } from "@bufbuild/protobuf";
12
11
 
@@ -14,7 +13,7 @@ import type { Message } from "@bufbuild/protobuf";
14
13
  * Describes the file policy/unsafe/unsafe.proto.
15
14
  */
16
15
  export const file_policy_unsafe_unsafe: GenFile = /*@__PURE__*/
17
- fileDesc("Chpwb2xpY3kvdW5zYWZlL3Vuc2FmZS5wcm90bxINcG9saWN5LnVuc2FmZSLhBAocVW5zYWZlVXBkYXRlTmFtZXNwYWNlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESqgQKBG5hbWUYAiABKAlCmwS6SJcEugGOBAoVbmFtZXNwYWNlX25hbWVfZm9ybWF0EqEDTmFtZXNwYWNlIG11c3QgYmUgYSB2YWxpZCBob3N0bmFtZS4gSXQgc2hvdWxkIGluY2x1ZGUgYXQgbGVhc3Qgb25lIGRvdCwgd2l0aCBlYWNoIHNlZ21lbnQgKGxhYmVsKSBzdGFydGluZyBhbmQgZW5kaW5nIHdpdGggYW4gYWxwaGFudW1lcmljIGNoYXJhY3Rlci4gRWFjaCBsYWJlbCBtdXN0IGJlIDEgdG8gNjMgY2hhcmFjdGVycyBsb25nLCBhbGxvd2luZyBoeXBoZW5zIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgdG9wLWxldmVsIGRvbWFpbiAodGhlIGxhc3Qgc2VnbWVudCBhZnRlciB0aGUgZmluYWwgZG90KSBtdXN0IGNvbnNpc3Qgb2YgYXQgbGVhc3QgdHdvIGFscGhhYmV0aWMgY2hhcmFjdGVycy4gVGhlIHN0b3JlZCBuYW1lc3BhY2Ugd2lsbCBiZSBub3JtYWxpemVkIHRvIGxvd2VyIGNhc2UuGlF0aGlzLm1hdGNoZXMoJ14oW2EtekEtWjAtOV0oW2EtekEtWjAtOVxcLV17MCw2MX1bYS16QS1aMC05XSk/XFwuKStbYS16QS1aXXsyLH0kJylyAxj9ASJFCh1VbnNhZmVVcGRhdGVOYW1lc3BhY2VSZXNwb25zZRIkCgluYW1lc3BhY2UYASABKAsyES5wb2xpY3kuTmFtZXNwYWNlIjgKIFVuc2FmZVJlYWN0aXZhdGVOYW1lc3BhY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJJCiFVbnNhZmVSZWFjdGl2YXRlTmFtZXNwYWNlUmVzcG9uc2USJAoJbmFtZXNwYWNlGAEgASgLMhEucG9saWN5Lk5hbWVzcGFjZSJJChxVbnNhZmVEZWxldGVOYW1lc3BhY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARITCgNmcW4YAiABKAlCBrpIA8gBASJFCh1VbnNhZmVEZWxldGVOYW1lc3BhY2VSZXNwb25zZRIkCgluYW1lc3BhY2UYASABKAsyES5wb2xpY3kuTmFtZXNwYWNlIsUDChxVbnNhZmVVcGRhdGVBdHRyaWJ1dGVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARLBAgoEbmFtZRgCIAEoCUKyArpIrgK6AaICChVhdHRyaWJ1dGVfbmFtZV9mb3JtYXQSswFBdHRyaWJ1dGUgbmFtZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIGF0dHJpYnV0ZSBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpTc2l6ZSh0aGlzKSA+IDAgPyB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKSA6IHRydWXIAQByAxj9ARI1CgRydWxlGAMgASgOMh0ucG9saWN5LkF0dHJpYnV0ZVJ1bGVUeXBlRW51bUIIukgFggECEAESFAoMdmFsdWVzX29yZGVyGAQgAygJIkUKHVVuc2FmZVVwZGF0ZUF0dHJpYnV0ZVJlc3BvbnNlEiQKCWF0dHJpYnV0ZRgBIAEoCzIRLnBvbGljeS5BdHRyaWJ1dGUiOAogVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIkkKIVVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVSZXNwb25zZRIkCglhdHRyaWJ1dGUYASABKAsyES5wb2xpY3kuQXR0cmlidXRlIkkKHFVuc2FmZURlbGV0ZUF0dHJpYnV0ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEhMKA2ZxbhgCIAEoCUIGukgDyAEBIkUKHVVuc2FmZURlbGV0ZUF0dHJpYnV0ZVJlc3BvbnNlEiQKCWF0dHJpYnV0ZRgBIAEoCzIRLnBvbGljeS5BdHRyaWJ1dGUi3AIKIVVuc2FmZVVwZGF0ZUF0dHJpYnV0ZVZhbHVlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESoAIKBXZhbHVlGAIgASgJQpACukiMAroBgwIKDHZhbHVlX2Zvcm1hdBK1AUF0dHJpYnV0ZSBWYWx1ZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIGF0dHJpYnV0ZSB2YWx1ZSB3aWxsIGJlIG5vcm1hbGl6ZWQgdG8gbG93ZXIgY2FzZS4aO3RoaXMubWF0Y2hlcygnXlthLXpBLVowLTldKD86W2EtekEtWjAtOV8tXSpbYS16QS1aMC05XSk/JCcpcgMY/QEiQgoiVW5zYWZlVXBkYXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSI9CiVVbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJGCiZVbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSJOCiFVbnNhZmVEZWxldGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEhMKA2ZxbhgCIAEoCUIGukgDyAEBIkIKIlVuc2FmZURlbGV0ZUF0dHJpYnV0ZVZhbHVlUmVzcG9uc2USHAoFdmFsdWUYASABKAsyDS5wb2xpY3kuVmFsdWUiMQoZVW5zYWZlRGVsZXRlS2FzS2V5UmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQEiNgoaVW5zYWZlRGVsZXRlS2FzS2V5UmVzcG9uc2USGAoDa2V5GAEgASgLMgsucG9saWN5LktleTLJDAoNVW5zYWZlU2VydmljZRKTAQoVVW5zYWZlVXBkYXRlTmFtZXNwYWNlEisucG9saWN5LnVuc2FmZS5VbnNhZmVVcGRhdGVOYW1lc3BhY2VSZXF1ZXN0GiwucG9saWN5LnVuc2FmZS5VbnNhZmVVcGRhdGVOYW1lc3BhY2VSZXNwb25zZSIfgtPkkwIZMhcvdW5zYWZlL25hbWVzcGFjZXMve2lkfRKqAQoZVW5zYWZlUmVhY3RpdmF0ZU5hbWVzcGFjZRIvLnBvbGljeS51bnNhZmUuVW5zYWZlUmVhY3RpdmF0ZU5hbWVzcGFjZVJlcXVlc3QaMC5wb2xpY3kudW5zYWZlLlVuc2FmZVJlYWN0aXZhdGVOYW1lc3BhY2VSZXNwb25zZSIqgtPkkwIkIiIvdW5zYWZlL25hbWVzcGFjZXMve2lkfS9yZWFjdGl2YXRlEpMBChVVbnNhZmVEZWxldGVOYW1lc3BhY2USKy5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZU5hbWVzcGFjZVJlcXVlc3QaLC5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZU5hbWVzcGFjZVJlc3BvbnNlIh+C0+STAhkqFy91bnNhZmUvbmFtZXNwYWNlcy97aWR9EpMBChVVbnNhZmVVcGRhdGVBdHRyaWJ1dGUSKy5wb2xpY3kudW5zYWZlLlVuc2FmZVVwZGF0ZUF0dHJpYnV0ZVJlcXVlc3QaLC5wb2xpY3kudW5zYWZlLlVuc2FmZVVwZGF0ZUF0dHJpYnV0ZVJlc3BvbnNlIh+C0+STAhkyFy91bnNhZmUvYXR0cmlidXRlcy97aWR9EqoBChlVbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlEi8ucG9saWN5LnVuc2FmZS5VbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlUmVxdWVzdBowLnBvbGljeS51bnNhZmUuVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZVJlc3BvbnNlIiqC0+STAiQiIi91bnNhZmUvYXR0cmlidXRlcy97aWR9L3JlYWN0aXZhdGUSkwEKFVVuc2FmZURlbGV0ZUF0dHJpYnV0ZRIrLnBvbGljeS51bnNhZmUuVW5zYWZlRGVsZXRlQXR0cmlidXRlUmVxdWVzdBosLnBvbGljeS51bnNhZmUuVW5zYWZlRGVsZXRlQXR0cmlidXRlUmVzcG9uc2UiH4LT5JMCGSoXL3Vuc2FmZS9hdHRyaWJ1dGVzL3tpZH0SqQEKGlVuc2FmZVVwZGF0ZUF0dHJpYnV0ZVZhbHVlEjAucG9saWN5LnVuc2FmZS5VbnNhZmVVcGRhdGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QaMS5wb2xpY3kudW5zYWZlLlVuc2FmZVVwZGF0ZUF0dHJpYnV0ZVZhbHVlUmVzcG9uc2UiJoLT5JMCIDIeL3Vuc2FmZS9hdHRyaWJ1dGVzL3ZhbHVlcy97aWR9EsABCh5VbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlVmFsdWUSNC5wb2xpY3kudW5zYWZlLlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QaNS5wb2xpY3kudW5zYWZlLlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlIjGC0+STAisiKS91bnNhZmUvYXR0cmlidXRlcy92YWx1ZXMve2lkfS9yZWFjdGl2YXRlEqkBChpVbnNhZmVEZWxldGVBdHRyaWJ1dGVWYWx1ZRIwLnBvbGljeS51bnNhZmUuVW5zYWZlRGVsZXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0GjEucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlIiaC0+STAiAqHi91bnNhZmUvYXR0cmlidXRlcy92YWx1ZXMve2lkfRJrChJVbnNhZmVEZWxldGVLYXNLZXkSKC5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZUthc0tleVJlcXVlc3QaKS5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZUthc0tleVJlc3BvbnNlIgBiBnByb3RvMw", [file_buf_validate_validate, file_google_api_annotations, file_policy_objects]);
16
+ fileDesc("Chpwb2xpY3kvdW5zYWZlL3Vuc2FmZS5wcm90bxINcG9saWN5LnVuc2FmZSLhBAocVW5zYWZlVXBkYXRlTmFtZXNwYWNlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESqgQKBG5hbWUYAiABKAlCmwS6SJcEugGOBAoVbmFtZXNwYWNlX25hbWVfZm9ybWF0EqEDTmFtZXNwYWNlIG11c3QgYmUgYSB2YWxpZCBob3N0bmFtZS4gSXQgc2hvdWxkIGluY2x1ZGUgYXQgbGVhc3Qgb25lIGRvdCwgd2l0aCBlYWNoIHNlZ21lbnQgKGxhYmVsKSBzdGFydGluZyBhbmQgZW5kaW5nIHdpdGggYW4gYWxwaGFudW1lcmljIGNoYXJhY3Rlci4gRWFjaCBsYWJlbCBtdXN0IGJlIDEgdG8gNjMgY2hhcmFjdGVycyBsb25nLCBhbGxvd2luZyBoeXBoZW5zIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgdG9wLWxldmVsIGRvbWFpbiAodGhlIGxhc3Qgc2VnbWVudCBhZnRlciB0aGUgZmluYWwgZG90KSBtdXN0IGNvbnNpc3Qgb2YgYXQgbGVhc3QgdHdvIGFscGhhYmV0aWMgY2hhcmFjdGVycy4gVGhlIHN0b3JlZCBuYW1lc3BhY2Ugd2lsbCBiZSBub3JtYWxpemVkIHRvIGxvd2VyIGNhc2UuGlF0aGlzLm1hdGNoZXMoJ14oW2EtekEtWjAtOV0oW2EtekEtWjAtOVxcLV17MCw2MX1bYS16QS1aMC05XSk/XFwuKStbYS16QS1aXXsyLH0kJylyAxj9ASJFCh1VbnNhZmVVcGRhdGVOYW1lc3BhY2VSZXNwb25zZRIkCgluYW1lc3BhY2UYASABKAsyES5wb2xpY3kuTmFtZXNwYWNlIjgKIFVuc2FmZVJlYWN0aXZhdGVOYW1lc3BhY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJJCiFVbnNhZmVSZWFjdGl2YXRlTmFtZXNwYWNlUmVzcG9uc2USJAoJbmFtZXNwYWNlGAEgASgLMhEucG9saWN5Lk5hbWVzcGFjZSJJChxVbnNhZmVEZWxldGVOYW1lc3BhY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARITCgNmcW4YAiABKAlCBrpIA8gBASJFCh1VbnNhZmVEZWxldGVOYW1lc3BhY2VSZXNwb25zZRIkCgluYW1lc3BhY2UYASABKAsyES5wb2xpY3kuTmFtZXNwYWNlIsUDChxVbnNhZmVVcGRhdGVBdHRyaWJ1dGVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABARLBAgoEbmFtZRgCIAEoCUKyArpIrgK6AaICChVhdHRyaWJ1dGVfbmFtZV9mb3JtYXQSswFBdHRyaWJ1dGUgbmFtZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIGF0dHJpYnV0ZSBuYW1lIHdpbGwgYmUgbm9ybWFsaXplZCB0byBsb3dlciBjYXNlLhpTc2l6ZSh0aGlzKSA+IDAgPyB0aGlzLm1hdGNoZXMoJ15bYS16QS1aMC05XSg/OlthLXpBLVowLTlfLV0qW2EtekEtWjAtOV0pPyQnKSA6IHRydWXIAQByAxj9ARI1CgRydWxlGAMgASgOMh0ucG9saWN5LkF0dHJpYnV0ZVJ1bGVUeXBlRW51bUIIukgFggECEAESFAoMdmFsdWVzX29yZGVyGAQgAygJIkUKHVVuc2FmZVVwZGF0ZUF0dHJpYnV0ZVJlc3BvbnNlEiQKCWF0dHJpYnV0ZRgBIAEoCzIRLnBvbGljeS5BdHRyaWJ1dGUiOAogVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBIkkKIVVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVSZXNwb25zZRIkCglhdHRyaWJ1dGUYASABKAsyES5wb2xpY3kuQXR0cmlidXRlIkkKHFVuc2FmZURlbGV0ZUF0dHJpYnV0ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEhMKA2ZxbhgCIAEoCUIGukgDyAEBIkUKHVVuc2FmZURlbGV0ZUF0dHJpYnV0ZVJlc3BvbnNlEiQKCWF0dHJpYnV0ZRgBIAEoCzIRLnBvbGljeS5BdHRyaWJ1dGUi3AIKIVVuc2FmZVVwZGF0ZUF0dHJpYnV0ZVZhbHVlUmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESoAIKBXZhbHVlGAIgASgJQpACukiMAroBgwIKDHZhbHVlX2Zvcm1hdBK1AUF0dHJpYnV0ZSBWYWx1ZSBtdXN0IGJlIGFuIGFscGhhbnVtZXJpYyBzdHJpbmcsIGFsbG93aW5nIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzIGJ1dCBub3QgYXMgdGhlIGZpcnN0IG9yIGxhc3QgY2hhcmFjdGVyLiBUaGUgc3RvcmVkIGF0dHJpYnV0ZSB2YWx1ZSB3aWxsIGJlIG5vcm1hbGl6ZWQgdG8gbG93ZXIgY2FzZS4aO3RoaXMubWF0Y2hlcygnXlthLXpBLVowLTldKD86W2EtekEtWjAtOV8tXSpbYS16QS1aMC05XSk/JCcpcgMY/QEiQgoiVW5zYWZlVXBkYXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSI9CiVVbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlVmFsdWVSZXF1ZXN0EhQKAmlkGAEgASgJQgi6SAVyA7ABASJGCiZVbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZRIcCgV2YWx1ZRgBIAEoCzINLnBvbGljeS5WYWx1ZSJOCiFVbnNhZmVEZWxldGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QSFAoCaWQYASABKAlCCLpIBXIDsAEBEhMKA2ZxbhgCIAEoCUIGukgDyAEBIkIKIlVuc2FmZURlbGV0ZUF0dHJpYnV0ZVZhbHVlUmVzcG9uc2USHAoFdmFsdWUYASABKAsyDS5wb2xpY3kuVmFsdWUiXwoZVW5zYWZlRGVsZXRlS2FzS2V5UmVxdWVzdBIUCgJpZBgBIAEoCUIIukgFcgOwAQESEwoDa2lkGAIgASgJQga6SAPIAQESFwoHa2FzX3VyaRgDIAEoCUIGukgDyAEBIjkKGlVuc2FmZURlbGV0ZUthc0tleVJlc3BvbnNlEhsKA2tleRgBIAEoCzIOLnBvbGljeS5LYXNLZXky+AkKDVVuc2FmZVNlcnZpY2USdAoVVW5zYWZlVXBkYXRlTmFtZXNwYWNlEisucG9saWN5LnVuc2FmZS5VbnNhZmVVcGRhdGVOYW1lc3BhY2VSZXF1ZXN0GiwucG9saWN5LnVuc2FmZS5VbnNhZmVVcGRhdGVOYW1lc3BhY2VSZXNwb25zZSIAEoABChlVbnNhZmVSZWFjdGl2YXRlTmFtZXNwYWNlEi8ucG9saWN5LnVuc2FmZS5VbnNhZmVSZWFjdGl2YXRlTmFtZXNwYWNlUmVxdWVzdBowLnBvbGljeS51bnNhZmUuVW5zYWZlUmVhY3RpdmF0ZU5hbWVzcGFjZVJlc3BvbnNlIgASdAoVVW5zYWZlRGVsZXRlTmFtZXNwYWNlEisucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVOYW1lc3BhY2VSZXF1ZXN0GiwucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVOYW1lc3BhY2VSZXNwb25zZSIAEnQKFVVuc2FmZVVwZGF0ZUF0dHJpYnV0ZRIrLnBvbGljeS51bnNhZmUuVW5zYWZlVXBkYXRlQXR0cmlidXRlUmVxdWVzdBosLnBvbGljeS51bnNhZmUuVW5zYWZlVXBkYXRlQXR0cmlidXRlUmVzcG9uc2UiABKAAQoZVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZRIvLnBvbGljeS51bnNhZmUuVW5zYWZlUmVhY3RpdmF0ZUF0dHJpYnV0ZVJlcXVlc3QaMC5wb2xpY3kudW5zYWZlLlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVSZXNwb25zZSIAEnQKFVVuc2FmZURlbGV0ZUF0dHJpYnV0ZRIrLnBvbGljeS51bnNhZmUuVW5zYWZlRGVsZXRlQXR0cmlidXRlUmVxdWVzdBosLnBvbGljeS51bnNhZmUuVW5zYWZlRGVsZXRlQXR0cmlidXRlUmVzcG9uc2UiABKDAQoaVW5zYWZlVXBkYXRlQXR0cmlidXRlVmFsdWUSMC5wb2xpY3kudW5zYWZlLlVuc2FmZVVwZGF0ZUF0dHJpYnV0ZVZhbHVlUmVxdWVzdBoxLnBvbGljeS51bnNhZmUuVW5zYWZlVXBkYXRlQXR0cmlidXRlVmFsdWVSZXNwb25zZSIAEo8BCh5VbnNhZmVSZWFjdGl2YXRlQXR0cmlidXRlVmFsdWUSNC5wb2xpY3kudW5zYWZlLlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QaNS5wb2xpY3kudW5zYWZlLlVuc2FmZVJlYWN0aXZhdGVBdHRyaWJ1dGVWYWx1ZVJlc3BvbnNlIgASgwEKGlVuc2FmZURlbGV0ZUF0dHJpYnV0ZVZhbHVlEjAucG9saWN5LnVuc2FmZS5VbnNhZmVEZWxldGVBdHRyaWJ1dGVWYWx1ZVJlcXVlc3QaMS5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZUF0dHJpYnV0ZVZhbHVlUmVzcG9uc2UiABJrChJVbnNhZmVEZWxldGVLYXNLZXkSKC5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZUthc0tleVJlcXVlc3QaKS5wb2xpY3kudW5zYWZlLlVuc2FmZURlbGV0ZUthc0tleVJlc3BvbnNlIgBiBnByb3RvMw", [file_buf_validate_validate, file_policy_objects]);
18
17
 
19
18
  /**
20
19
  * WARNING!!
@@ -446,6 +445,7 @@ export const UnsafeDeleteAttributeValueResponseSchema: GenMessage<UnsafeDeleteAt
446
445
 
447
446
  /**
448
447
  * WARNING!!
448
+ * Deleting a key will make it so that ANY TDF that was encrypted with this key cannot be decrypted by the platform.
449
449
  *
450
450
  * @generated from message policy.unsafe.UnsafeDeleteKasKeyRequest
451
451
  */
@@ -457,6 +457,22 @@ export type UnsafeDeleteKasKeyRequest = Message<"policy.unsafe.UnsafeDeleteKasKe
457
457
  * @generated from field: string id = 1;
458
458
  */
459
459
  id: string;
460
+
461
+ /**
462
+ * Required
463
+ * The key id assigned to this key (Ex: "key-1")
464
+ *
465
+ * @generated from field: string kid = 2;
466
+ */
467
+ kid: string;
468
+
469
+ /**
470
+ * Required
471
+ * The kas uri for which this key belongs (Ex: "https://kas.example.com:8080")
472
+ *
473
+ * @generated from field: string kas_uri = 3;
474
+ */
475
+ kasUri: string;
460
476
  };
461
477
 
462
478
  /**
@@ -471,9 +487,9 @@ export const UnsafeDeleteKasKeyRequestSchema: GenMessage<UnsafeDeleteKasKeyReque
471
487
  */
472
488
  export type UnsafeDeleteKasKeyResponse = Message<"policy.unsafe.UnsafeDeleteKasKeyResponse"> & {
473
489
  /**
474
- * @generated from field: policy.Key key = 1;
490
+ * @generated from field: policy.KasKey key = 1;
475
491
  */
476
- key?: Key;
492
+ key?: KasKey;
477
493
  };
478
494
 
479
495
  /**
@@ -486,7 +502,6 @@ export const UnsafeDeleteKasKeyResponseSchema: GenMessage<UnsafeDeleteKasKeyResp
486
502
  /**
487
503
  * /
488
504
  * / Unsafe Service
489
- * / IN FLIGHT AND NOT YET IMPLEMENTED!
490
505
  * /
491
506
  *
492
507
  * @generated from service policy.unsafe.UnsafeService
package/src/platform.ts CHANGED
@@ -33,11 +33,11 @@ export interface PlatformServices {
33
33
  }
34
34
 
35
35
  export interface PlatformClientOptions {
36
- // Optional authentication provider for generating auth interceptor.
36
+ /** Optional authentication provider for generating auth interceptor. */
37
37
  authProvider?: AuthProvider;
38
- // Array of custom interceptors to apply to rpc requests.
38
+ /** Array of custom interceptors to apply to rpc requests. */
39
39
  interceptors?: Interceptor[];
40
- // Base URL of the platform API.
40
+ /** Base URL of the platform API. */
41
41
  platformUrl: string;
42
42
  }
43
43
 
@@ -50,8 +50,22 @@ export interface PlatformClientOptions {
50
50
  *
51
51
  * This client supports authentication via an `AuthProvider` or custom interceptors, which can
52
52
  * be used to add authentication headers or other custom logic to outgoing requests.
53
+ * @example
54
+ * ```
55
+ * import { AuthProviders, OpenTDF } from '@opentdf/sdk';
56
+ * import { PlatformClient } from '@opentdf/sdk/platform';
53
57
  *
58
+ * const authProvider: AuthProvider = await AuthProviders.refreshAuthProvider({...});
59
+ * const platform = new PlatformClient({
60
+ * authProvider,
61
+ * platformUrl: 'https://platform.example.com',
62
+ * });
63
+ *
64
+ * const wellKnownResponse = await platform.v1.wellknown.getWellKnownConfiguration({});
65
+ * console.log('Well-known configuration:', wellKnownResponse.configuration);
66
+ * ```
54
67
  */
68
+
55
69
  export class PlatformClient {
56
70
  readonly v1: PlatformServices;
57
71
 
@@ -96,8 +110,6 @@ export class PlatformClient {
96
110
  * that returns an object containing authentication headers. These headers are then
97
111
  * added to the request before it is sent to the server.
98
112
  *
99
- * @param authProvider - An instance of `AuthProvider` used to generate authentication credentials.
100
- * @returns An `Interceptor` function that modifies requests to include authentication headers.
101
113
  */
102
114
  function createAuthInterceptor(authProvider: AuthProvider): Interceptor {
103
115
  const authInterceptor: Interceptor = (next) => async (req) => {
@@ -107,7 +119,9 @@ function createAuthInterceptor(authProvider: AuthProvider): Interceptor {
107
119
  const token = await authProvider.withCreds({
108
120
  url: pathOnly,
109
121
  method: 'POST',
122
+ // Start with any headers Connect already has
110
123
  headers: {
124
+ ...Object.fromEntries(req.header.entries()),
111
125
  'Content-Type': 'application/json',
112
126
  },
113
127
  });
package/src/policy/api.ts CHANGED
@@ -4,6 +4,8 @@ import { extractRpcErrorMessage, getPlatformUrlFromKasEndpoint } from '../utils.
4
4
  import { PlatformClient } from '../platform.js';
5
5
  import { Value } from './attributes.js';
6
6
  import { GetAttributeValuesByFqnsResponse } from '../platform/policy/attributes/attributes_pb.js';
7
+ import { GetNamespaceResponse } from '../platform/policy/namespaces/namespaces_pb.js';
8
+ import { Certificate } from '../platform/policy/objects_pb.js';
7
9
 
8
10
  // TODO KAS: go over web-sdk and remove policyEndpoint that is only defined to be used here
9
11
  export async function attributeFQNsAsValues(
@@ -18,12 +20,6 @@ export async function attributeFQNsAsValues(
18
20
  try {
19
21
  response = await platform.v1.attributes.getAttributeValuesByFqns({
20
22
  fqns,
21
- withValue: {
22
- withKeyAccessGrants: true,
23
- withAttribute: {
24
- withKeyAccessGrants: true,
25
- },
26
- },
27
23
  });
28
24
  } catch (e) {
29
25
  throw new NetworkError(
@@ -46,3 +42,38 @@ export async function attributeFQNsAsValues(
46
42
  }
47
43
  return values;
48
44
  }
45
+
46
+ // Get root certificates from a namespace
47
+ export async function getRootCertsFromNamespace(
48
+ platformUrl: string,
49
+ authProvider?: AuthProvider,
50
+ namespaceId?: string,
51
+ fqn?: string
52
+ ): Promise<Certificate[]> {
53
+ platformUrl = getPlatformUrlFromKasEndpoint(platformUrl);
54
+
55
+ // Ensure at least one identifier is provided to avoid guaranteed API failure
56
+ if (!namespaceId && !fqn) {
57
+ throw new Error('Either namespaceId or fqn must be provided');
58
+ }
59
+
60
+ const platform = new PlatformClient({ authProvider, platformUrl });
61
+
62
+ let response: GetNamespaceResponse;
63
+ try {
64
+ response = await platform.v1.namespace.getNamespace({
65
+ id: '', // deprecated field, but required
66
+ identifier: namespaceId
67
+ ? { case: 'namespaceId', value: namespaceId }
68
+ : { case: 'fqn', value: fqn! },
69
+ });
70
+ } catch (e) {
71
+ throw new NetworkError(`[${platformUrl}] [GetNamespace] ${extractRpcErrorMessage(e)}`);
72
+ }
73
+
74
+ if (!response.namespace) {
75
+ throw new NetworkError(`[${platformUrl}] [GetNamespace] Namespace not found`);
76
+ }
77
+
78
+ return response.namespace.rootCerts || [];
79
+ }