diff --git a/modules/sync/googleapis/googleapis/cas/74763f2e6966616192db178399ffd46586d4e143dbd1c3c968ddfdecbfe731270990443bc671e2c4d8eb318a2dcad5982f683517a9a06d9a34a07a0ed3bed1ef b/modules/sync/googleapis/googleapis/cas/74763f2e6966616192db178399ffd46586d4e143dbd1c3c968ddfdecbfe731270990443bc671e2c4d8eb318a2dcad5982f683517a9a06d9a34a07a0ed3bed1ef new file mode 100644 index 00000000..a123ab84 --- /dev/null +++ b/modules/sync/googleapis/googleapis/cas/74763f2e6966616192db178399ffd46586d4e143dbd1c3c968ddfdecbfe731270990443bc671e2c4d8eb318a2dcad5982f683517a9a06d9a34a07a0ed3bed1ef @@ -0,0 +1,157 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.iam.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/iam/v1/options.proto"; +import "google/iam/v1/policy.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.Iam.V1"; +option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb"; +option java_multiple_files = true; +option java_outer_classname = "IamPolicyProto"; +option java_package = "com.google.iam.v1"; +option php_namespace = "Google\\Cloud\\Iam\\V1"; + +// API Overview +// +// Manages Identity and Access Management (IAM) policies. +// +// Any implementation of an API that offers access control features +// implements the google.iam.v1.IAMPolicy interface. +// +// ## Data model +// +// Access control is applied when a principal (user or service account), takes +// some action on a resource exposed by a service. Resources, identified by +// URI-like names, are the unit of access control specification. Service +// implementations can choose the granularity of access control and the +// supported permissions for their resources. +// For example one database service may allow access control to be +// specified only at the Table level, whereas another might allow access control +// to also be specified at the Column level. +// +// ## Policy Structure +// +// See google.iam.v1.Policy +// +// This is intentionally not a CRUD style API because access control policies +// are created and deleted implicitly with the resources to which they are +// attached. +service IAMPolicy { + option (google.api.default_host) = "iam-meta-api.googleapis.com"; + + // Sets the access control policy on the specified resource. Replaces any + // existing policy. + // + // Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors. + rpc SetIamPolicy(SetIamPolicyRequest) returns (Policy) { + option (google.api.http) = { + post: "/v1/{resource=**}:setIamPolicy" + body: "*" + }; + } + + // Gets the access control policy for a resource. + // Returns an empty policy if the resource exists and does not have a policy + // set. + rpc GetIamPolicy(GetIamPolicyRequest) returns (Policy) { + option (google.api.http) = { + post: "/v1/{resource=**}:getIamPolicy" + body: "*" + }; + } + + // Returns permissions that a caller has on the specified resource. + // If the resource does not exist, this will return an empty set of + // permissions, not a `NOT_FOUND` error. + // + // Note: This operation is designed to be used for building permission-aware + // UIs and command-line tools, not for authorization checking. This operation + // may "fail open" without warning. + rpc TestIamPermissions(TestIamPermissionsRequest) + returns (TestIamPermissionsResponse) { + option (google.api.http) = { + post: "/v1/{resource=**}:testIamPermissions" + body: "*" + }; + } +} + +// Request message for `SetIamPolicy` method. +message SetIamPolicyRequest { + // REQUIRED: The resource for which the policy is being specified. + // See the operation documentation for the appropriate value for this field. + string resource = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference).type = "*" + ]; + + // REQUIRED: The complete policy to be applied to the `resource`. The size of + // the policy is limited to a few 10s of KB. An empty policy is a + // valid policy but certain Cloud Platform services (such as Projects) + // might reject them. + Policy policy = 2 [(google.api.field_behavior) = REQUIRED]; + + // OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + // the fields in the mask will be modified. If no mask is provided, the + // following default mask is used: + // + // `paths: "bindings, etag"` + google.protobuf.FieldMask update_mask = 3; +} + +// Request message for `GetIamPolicy` method. +message GetIamPolicyRequest { + // REQUIRED: The resource for which the policy is being requested. + // See the operation documentation for the appropriate value for this field. + string resource = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference).type = "*" + ]; + + // OPTIONAL: A `GetPolicyOptions` object for specifying options to + // `GetIamPolicy`. + GetPolicyOptions options = 2; +} + +// Request message for `TestIamPermissions` method. +message TestIamPermissionsRequest { + // REQUIRED: The resource for which the policy detail is being requested. + // See the operation documentation for the appropriate value for this field. + string resource = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference).type = "*" + ]; + + // The set of permissions to check for the `resource`. Permissions with + // wildcards (such as '*' or 'storage.*') are not allowed. For more + // information see + // [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + repeated string permissions = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for `TestIamPermissions` method. +message TestIamPermissionsResponse { + // A subset of `TestPermissionsRequest.permissions` that the caller is + // allowed. + repeated string permissions = 1; +} diff --git a/modules/sync/googleapis/googleapis/cas/9bf96d8edcfcc5772652d88035ff8b7d6c15563a64a6deea0c59b84ab69f553545ba8a34962414609a202cad35831ac017245b5f0b9b718732dcc34d47055525 b/modules/sync/googleapis/googleapis/cas/9bf96d8edcfcc5772652d88035ff8b7d6c15563a64a6deea0c59b84ab69f553545ba8a34962414609a202cad35831ac017245b5f0b9b718732dcc34d47055525 new file mode 100644 index 00000000..b5eac03c --- /dev/null +++ b/modules/sync/googleapis/googleapis/cas/9bf96d8edcfcc5772652d88035ff8b7d6c15563a64a6deea0c59b84ab69f553545ba8a34962414609a202cad35831ac017245b5f0b9b718732dcc34d47055525 @@ -0,0 +1,410 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.iam.v1; + +import "google/type/expr.proto"; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Iam.V1"; +option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb"; +option java_multiple_files = true; +option java_outer_classname = "PolicyProto"; +option java_package = "com.google.iam.v1"; +option php_namespace = "Google\\Cloud\\Iam\\V1"; + +// An Identity and Access Management (IAM) policy, which specifies access +// controls for Google Cloud resources. +// +// +// A `Policy` is a collection of `bindings`. A `binding` binds one or more +// `members`, or principals, to a single `role`. Principals can be user +// accounts, service accounts, Google groups, and domains (such as G Suite). A +// `role` is a named list of permissions; each `role` can be an IAM predefined +// role or a user-created custom role. +// +// For some types of Google Cloud resources, a `binding` can also specify a +// `condition`, which is a logical expression that allows access to a resource +// only if the expression evaluates to `true`. A condition can add constraints +// based on attributes of the request, the resource, or both. To learn which +// resources support conditions in their IAM policies, see the +// [IAM +// documentation](https://cloud.google.com/iam/help/conditions/resource-policies). +// +// **JSON example:** +// +// ``` +// { +// "bindings": [ +// { +// "role": "roles/resourcemanager.organizationAdmin", +// "members": [ +// "user:mike@example.com", +// "group:admins@example.com", +// "domain:google.com", +// "serviceAccount:my-project-id@appspot.gserviceaccount.com" +// ] +// }, +// { +// "role": "roles/resourcemanager.organizationViewer", +// "members": [ +// "user:eve@example.com" +// ], +// "condition": { +// "title": "expirable access", +// "description": "Does not grant access after Sep 2020", +// "expression": "request.time < +// timestamp('2020-10-01T00:00:00.000Z')", +// } +// } +// ], +// "etag": "BwWWja0YfJA=", +// "version": 3 +// } +// ``` +// +// **YAML example:** +// +// ``` +// bindings: +// - members: +// - user:mike@example.com +// - group:admins@example.com +// - domain:google.com +// - serviceAccount:my-project-id@appspot.gserviceaccount.com +// role: roles/resourcemanager.organizationAdmin +// - members: +// - user:eve@example.com +// role: roles/resourcemanager.organizationViewer +// condition: +// title: expirable access +// description: Does not grant access after Sep 2020 +// expression: request.time < timestamp('2020-10-01T00:00:00.000Z') +// etag: BwWWja0YfJA= +// version: 3 +// ``` +// +// For a description of IAM and its features, see the +// [IAM documentation](https://cloud.google.com/iam/docs/). +message Policy { + // Specifies the format of the policy. + // + // Valid values are `0`, `1`, and `3`. Requests that specify an invalid value + // are rejected. + // + // Any operation that affects conditional role bindings must specify version + // `3`. This requirement applies to the following operations: + // + // * Getting a policy that includes a conditional role binding + // * Adding a conditional role binding to a policy + // * Changing a conditional role binding in a policy + // * Removing any role binding, with or without a condition, from a policy + // that includes conditions + // + // **Important:** If you use IAM Conditions, you must include the `etag` field + // whenever you call `setIamPolicy`. If you omit this field, then IAM allows + // you to overwrite a version `3` policy with a version `1` policy, and all of + // the conditions in the version `3` policy are lost. + // + // If a policy does not include any conditions, operations on that policy may + // specify any valid version or leave the field unset. + // + // To learn which resources support conditions in their IAM policies, see the + // [IAM + // documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + int32 version = 1; + + // Associates a list of `members`, or principals, with a `role`. Optionally, + // may specify a `condition` that determines how and when the `bindings` are + // applied. Each of the `bindings` must contain at least one principal. + // + // The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 + // of these principals can be Google groups. Each occurrence of a principal + // counts towards these limits. For example, if the `bindings` grant 50 + // different roles to `user:alice@example.com`, and not to any other + // principal, then you can add another 1,450 principals to the `bindings` in + // the `Policy`. + repeated Binding bindings = 4; + + // Specifies cloud audit logging configuration for this policy. + repeated AuditConfig audit_configs = 6; + + // `etag` is used for optimistic concurrency control as a way to help + // prevent simultaneous updates of a policy from overwriting each other. + // It is strongly suggested that systems make use of the `etag` in the + // read-modify-write cycle to perform policy updates in order to avoid race + // conditions: An `etag` is returned in the response to `getIamPolicy`, and + // systems are expected to put that etag in the request to `setIamPolicy` to + // ensure that their change will be applied to the same version of the policy. + // + // **Important:** If you use IAM Conditions, you must include the `etag` field + // whenever you call `setIamPolicy`. If you omit this field, then IAM allows + // you to overwrite a version `3` policy with a version `1` policy, and all of + // the conditions in the version `3` policy are lost. + bytes etag = 3; +} + +// Associates `members`, or principals, with a `role`. +message Binding { + // Role that is assigned to the list of `members`, or principals. + // For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + string role = 1; + + // Specifies the principals requesting access for a Google Cloud resource. + // `members` can have the following values: + // + // * `allUsers`: A special identifier that represents anyone who is + // on the internet; with or without a Google account. + // + // * `allAuthenticatedUsers`: A special identifier that represents anyone + // who is authenticated with a Google account or a service account. + // + // * `user:{emailid}`: An email address that represents a specific Google + // account. For example, `alice@example.com` . + // + // + // * `serviceAccount:{emailid}`: An email address that represents a service + // account. For example, `my-other-app@appspot.gserviceaccount.com`. + // + // * `group:{emailid}`: An email address that represents a Google group. + // For example, `admins@example.com`. + // + // * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + // identifier) representing a user that has been recently deleted. For + // example, `alice@example.com?uid=123456789012345678901`. If the user is + // recovered, this value reverts to `user:{emailid}` and the recovered user + // retains the role in the binding. + // + // * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + // unique identifier) representing a service account that has been recently + // deleted. For example, + // `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. + // If the service account is undeleted, this value reverts to + // `serviceAccount:{emailid}` and the undeleted service account retains the + // role in the binding. + // + // * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique + // identifier) representing a Google group that has been recently + // deleted. For example, `admins@example.com?uid=123456789012345678901`. If + // the group is recovered, this value reverts to `group:{emailid}` and the + // recovered group retains the role in the binding. + // + // + // * `domain:{domain}`: The G Suite domain (primary) that represents all the + // users of that domain. For example, `google.com` or `example.com`. + // + // + repeated string members = 2; + + // The condition that is associated with this binding. + // + // If the condition evaluates to `true`, then this binding applies to the + // current request. + // + // If the condition evaluates to `false`, then this binding does not apply to + // the current request. However, a different role binding might grant the same + // role to one or more of the principals in this binding. + // + // To learn which resources support conditions in their IAM policies, see the + // [IAM + // documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + google.type.Expr condition = 3; +} + +// Specifies the audit configuration for a service. +// The configuration determines which permission types are logged, and what +// identities, if any, are exempted from logging. +// An AuditConfig must have one or more AuditLogConfigs. +// +// If there are AuditConfigs for both `allServices` and a specific service, +// the union of the two AuditConfigs is used for that service: the log_types +// specified in each AuditConfig are enabled, and the exempted_members in each +// AuditLogConfig are exempted. +// +// Example Policy with multiple AuditConfigs: +// +// { +// "audit_configs": [ +// { +// "service": "allServices", +// "audit_log_configs": [ +// { +// "log_type": "DATA_READ", +// "exempted_members": [ +// "user:jose@example.com" +// ] +// }, +// { +// "log_type": "DATA_WRITE" +// }, +// { +// "log_type": "ADMIN_READ" +// } +// ] +// }, +// { +// "service": "sampleservice.googleapis.com", +// "audit_log_configs": [ +// { +// "log_type": "DATA_READ" +// }, +// { +// "log_type": "DATA_WRITE", +// "exempted_members": [ +// "user:aliya@example.com" +// ] +// } +// ] +// } +// ] +// } +// +// For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ +// logging. It also exempts `jose@example.com` from DATA_READ logging, and +// `aliya@example.com` from DATA_WRITE logging. +message AuditConfig { + // Specifies a service that will be enabled for audit logging. + // For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + // `allServices` is a special value that covers all services. + string service = 1; + + // The configuration for logging of each type of permission. + repeated AuditLogConfig audit_log_configs = 3; +} + +// Provides the configuration for logging a type of permissions. +// Example: +// +// { +// "audit_log_configs": [ +// { +// "log_type": "DATA_READ", +// "exempted_members": [ +// "user:jose@example.com" +// ] +// }, +// { +// "log_type": "DATA_WRITE" +// } +// ] +// } +// +// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting +// jose@example.com from DATA_READ logging. +message AuditLogConfig { + // The list of valid permission types for which logging can be configured. + // Admin writes are always logged, and are not configurable. + enum LogType { + // Default case. Should never be this. + LOG_TYPE_UNSPECIFIED = 0; + + // Admin reads. Example: CloudIAM getIamPolicy + ADMIN_READ = 1; + + // Data writes. Example: CloudSQL Users create + DATA_WRITE = 2; + + // Data reads. Example: CloudSQL Users list + DATA_READ = 3; + } + + // The log type that this config enables. + LogType log_type = 1; + + // Specifies the identities that do not cause logging for this type of + // permission. + // Follows the same format of + // [Binding.members][google.iam.v1.Binding.members]. + repeated string exempted_members = 2; +} + +// The difference delta between two policies. +message PolicyDelta { + // The delta for Bindings between two policies. + repeated BindingDelta binding_deltas = 1; + + // The delta for AuditConfigs between two policies. + repeated AuditConfigDelta audit_config_deltas = 2; +} + +// One delta entry for Binding. Each individual change (only one member in each +// entry) to a binding will be a separate entry. +message BindingDelta { + // The type of action performed on a Binding in a policy. + enum Action { + // Unspecified. + ACTION_UNSPECIFIED = 0; + + // Addition of a Binding. + ADD = 1; + + // Removal of a Binding. + REMOVE = 2; + } + + // The action that was performed on a Binding. + // Required + Action action = 1; + + // Role that is assigned to `members`. + // For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + // Required + string role = 2; + + // A single identity requesting access for a Google Cloud resource. + // Follows the same format of Binding.members. + // Required + string member = 3; + + // The condition that is associated with this binding. + google.type.Expr condition = 4; +} + +// One delta entry for AuditConfig. Each individual change (only one +// exempted_member in each entry) to a AuditConfig will be a separate entry. +message AuditConfigDelta { + // The type of action performed on an audit configuration in a policy. + enum Action { + // Unspecified. + ACTION_UNSPECIFIED = 0; + + // Addition of an audit configuration. + ADD = 1; + + // Removal of an audit configuration. + REMOVE = 2; + } + + // The action that was performed on an audit configuration in a policy. + // Required + Action action = 1; + + // Specifies a service that was configured for Cloud Audit Logging. + // For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + // `allServices` is a special value that covers all services. + // Required + string service = 2; + + // A single identity that is exempted from "data access" audit + // logging for the `service` specified above. + // Follows the same format of Binding.members. + string exempted_member = 3; + + // Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always + // enabled, and cannot be configured. + // Required + string log_type = 4; +} diff --git a/modules/sync/googleapis/googleapis/cas/d26c7c2fd95f0873761af33ca4a0c0d92c8577122b6feb74eb3b0a57ebe47a98ab24a209a0e91945ac4c77204e9da0c2de0020b2cedc27bdbcdea6c431eec69b b/modules/sync/googleapis/googleapis/cas/d26c7c2fd95f0873761af33ca4a0c0d92c8577122b6feb74eb3b0a57ebe47a98ab24a209a0e91945ac4c77204e9da0c2de0020b2cedc27bdbcdea6c431eec69b new file mode 100644 index 00000000..cea1af28 --- /dev/null +++ b/modules/sync/googleapis/googleapis/cas/d26c7c2fd95f0873761af33ca4a0c0d92c8577122b6feb74eb3b0a57ebe47a98ab24a209a0e91945ac4c77204e9da0c2de0020b2cedc27bdbcdea6c431eec69b @@ -0,0 +1,50 @@ +shake256:faedd41bb62749fa9e3e87f183fe58065f0d4ccf60e4d347727c04544ccdd08a43f1703d8f2cd31613fe1a767d63c33b280f34df99eda6ad2b25dfec4c4ead81 LICENSE +shake256:a483c3b87b116f15dedc9b0183ce54ba921720bccf1a90dd85362cdca7312af2891689079874a214d1f9c4c8e50050542a8e3d0cc21f13d9fdae14f9dbf284be buf.md +shake256:b5c1d200e09f9de6dd66a0ab1c03cb0935d347d64bd9c73a3d44b10c1de9b396a30780cb623af34c96681e54a931be5903ad1e20c662cc02017f312db2cd55cf buf.yaml +shake256:787fb3dd972f71d2e6c8efa4491ab950d0fc951e4e53360684e36e54cc8825289b56115f2aa2d39e86374364997be90a1b5569a22befaf61ed01a68a2c479b31 google/api/annotations.proto +shake256:7783ab583c3ffb844faac2d757a35bf3e90acb98550f54c6d79a264faa8e6e47e217f377c4e5b77d79472a34a472d9aeedf371f0fb2cc4ba650c86568084aded google/api/client.proto +shake256:9b9c4c5bd72d6d649da60d3d9b24b16a9535411ce73e47d22c475d2e8437095b2f7cbd8823e8ac7a237838e76daed32124651c6b4144302e45ea143bfb68624b google/api/expr/v1alpha1/checked.proto +shake256:de425c43fbee60514d30321f148481e942a53fbb8619b6d96e46f8969affa38e074f4d9194c21eed7bed2a13964fc61687f0daf6d06999126c39958d33793cb5 google/api/expr/v1alpha1/eval.proto +shake256:b44d8c8de74757e48969d9c6495fa2723b773b6c0e10bafbea5d0f23128c9bcb5982dfa5a4d28185a140287f2d18f4ea4f3745636ba2094f2c529738b5e88956 google/api/expr/v1alpha1/explain.proto +shake256:e2fefad26ca4981dc4e48ca80a02b4abc54a8b8c959bc24e67f045ed31b3d2a4b86e959879c0ecde4682b304c8979814ebf92409606cf2b265c4f2a0b36935a0 google/api/expr/v1alpha1/syntax.proto +shake256:136a91d18a0eef68cea1ffb3b953bb36b2ccf16566fee27de0632a9e0102847946335f5a66c6ea22ceba1b1359fbb49381d01ff3eb34b91f813853e4e4a047f3 google/api/expr/v1alpha1/value.proto +shake256:122f61655f22a652ba9b21b958aa2ab9f0271dc5643ac9fd56aba35bc242401434774dcab17d1959731a2a8cea4e5cf5733db85e7ff00fb2c06b376b328a1abb google/api/expr/v1beta1/decl.proto +shake256:104865cd0455f290a67e205a7ff6dc31813149e04ccb8c53628d4af3e27d5f3996c6fcc014370d85e04baa15abee4a58ac62c9b75d018c5d8ee7133b2b642adc google/api/expr/v1beta1/eval.proto +shake256:11074bddc428e42e2ff38c450d8f4c3c79d2da3eba92f0cc824101f518b647be9a3805600303d2776f9fbd47a0c7e4e9687983f7f7422e4c437653e9ca49147d google/api/expr/v1beta1/expr.proto +shake256:7d4d476c25793cb3933057ce4c919940e945c505d9e631a7a7e26f7e065883f65649299928d8128a1dbd5524fd5cf0ae1ddcbb70826428ca91703f0160e8a646 google/api/expr/v1beta1/source.proto +shake256:10e42edbba83eed94ba590703bbd5455ac9fe7316c3b1543d9d8098871a3f5889b73473af8e7b09e891ee98253df588da31b42ac99ecd82a9bdf95eacbad77a3 google/api/expr/v1beta1/value.proto +shake256:6ca503d9098e54b830d80d00d773fced6d397105ff585f3d54754dafc054da2d4b63fe28f0a0237d8f4c463a424dfebb4f4af0cd8ef6d646e1e07ce2bb712151 google/api/field_behavior.proto +shake256:148aff9321abff4590a24298d95b5014c678fe3ef0095f66e01ef629a48592c4ff3caa3e57f0d9796e5c295365a0c925da5f3496e329d4c7be11d0c180a63fc8 google/api/field_info.proto +shake256:d3b1c017f463d0feba5f3ad2542a848dbbb579a529ca5cf87c31998524a130e018ae7f49068e548c8f8d8ad65531ae62d39e20e6295dd1dea602d7f82c566e35 google/api/http.proto +shake256:dd6d973319995ee38cd9a7f2ca4136fcc2016f99340a527716ad5db7a00dfabb235e2a76faa492c7ef3450b2e8bd787166733d406ca325a4b0cc87ff76aa79e9 google/api/httpbody.proto +shake256:84597758baf393c3e41840afb380a7e045c37aaf408242b10d8b81dab81a574266304dc1abaac66d438764b05348e42a576fc48bd0434360184e842e5ea87847 google/api/launch_stage.proto +shake256:c4f77a2faceba9735de7ddc051e60d4723f56465215fa10397ffb91e5cc9b73b622869ecea3bfd3caa6d50559ef2198888dfad80c332c34ef75061c6586b8179 google/api/resource.proto +shake256:fd5415c74cfdf3acc42f2a7f72334be6c442a30fa6aa22799c105da71f6bbd3ed4fc245e3e64d36b838b5411d7694a5783cc8acff004f78c46cabea927f90a91 google/api/routing.proto +shake256:a35ddced9302bb599347345b4152bcde905a1c10d7226cd0f6118770a4ce421794a85be6fb2e8ca5544b2390d840204517829a9ad1b7edcbe5ed65c22daecc4e google/api/visibility.proto +shake256:783e49a0b711efa5b0327edabaaaf3720eb2c9f16b7544f3073c368ab8dfe93c4d20973ce9b125728e8d58a994777d372d05ea2880215285c38f176e6f63494f google/bytestream/bytestream.proto +shake256:fa78a9954d3747c0150d19673e5a58023982572222230e4f90bc0a246e278c6b56e0adc10d83e7cdf526160078c21306c98fa728485882da421af6e496776d3e google/geo/type/viewport.proto +shake256:74763f2e6966616192db178399ffd46586d4e143dbd1c3c968ddfdecbfe731270990443bc671e2c4d8eb318a2dcad5982f683517a9a06d9a34a07a0ed3bed1ef google/iam/v1/iam_policy.proto +shake256:d6de46ab21620d5b0c1366a78325fbb60995234b72f2dfb9296b9420142d962098d424c49ae7f3bb6b20d5ad059b4e8506633c4c5c8e4aff609ddab2406e52fc google/iam/v1/options.proto +shake256:9bf96d8edcfcc5772652d88035ff8b7d6c15563a64a6deea0c59b84ab69f553545ba8a34962414609a202cad35831ac017245b5f0b9b718732dcc34d47055525 google/iam/v1/policy.proto +shake256:075087745ce43e41f9c43d2c9131958f8e8a05722fcfe0e2701b5dcef0aa5a32040c2f9feae97a3377004ed88b02551358f5324432af0e8290f5d19e0a7a6e7f google/longrunning/operations.proto +shake256:9e88d524728053544d09dace4e0ed1a3196f804de186bcd61d0460bbbc1806b1b2312da9fe186f786ce231f8c79823d4643e1e6adb31c4c40a61dd63aea7f394 google/rpc/code.proto +shake256:50f76a3026a61a7a8f2fb9d4aa05f0bda0a5990e273047758e2b1c0495e2b5800d896b50513c39f8bfde8000c45a4347a8e9c279eb9427851bea56b4740d566c google/rpc/context/attribute_context.proto +shake256:fb9b27176689332fcef4b96f6cf1fd8e0ca3567e7d0b46b6ae210cb3aef4649b4d67c6d851f7546f9626a8fac3001d53307fb4a8499f1e1fa39487f9d1d5429b google/rpc/error_details.proto +shake256:f6cab4ab90aa4be34c8a43e90d00252b70c9813443c2135df6924dd98575002152354ccc4a152b8347c97e84d99216a2e13a7346270418f7726302b2c6f7c22f google/rpc/status.proto +shake256:166440440c1bd594766f6a92c2c1cf2aa1f58d348e1f7febcbd0417f3057a1bcc750c157cd0655da714ecc42c23a1bcf27af95636e09cc27e7917569b76936e9 google/type/calendar_period.proto +shake256:67ead0f2a71a03464e81a0655a5ddb0eea3008cfeb06c92c7350c3fac147e72a18457ee746b2fa501bafe165c45e78dadc7cf54536b3b2a8840199658a200dcb google/type/color.proto +shake256:269c0230c83092a8ccaa4f0d9ac9d3edafa744feb84ee71a419e5ea3bb3e5a43197ebd0afe96421b8bdd6af4db3e0508854c3fa09d2b2269318542149428de25 google/type/date.proto +shake256:cc278b6cb6fffadb8f4e85bdc30084c39ebd72245eed3d1444845d797b8f56edaf442f54990dbae7d7d907355844e9a0588fd63b4fe358b1c2b82ada4e68d9b4 google/type/datetime.proto +shake256:18bbe6c9926632870a902c8b13cf7a81ee7e488ddb80e0de77eb65adde31cc4e61c0235e9711b4ab2db92a62bdae9c9361edad92315dde6fb85b599212037b8c google/type/dayofweek.proto +shake256:dbdb8bca1e0d4652556b0f725cb8b75f1d1ebcb3214ec0b7dde2c0fbbdea9d8327e5e13c9c9bdc7e1c45b1c09f370b3c430172de5cb8595dee6982ae12519c37 google/type/decimal.proto +shake256:e414090b3a9b2b57164f6d4496085d37ac301277b77d578b4c637d14e76806e958ae1dddc120171ba6622ff8888f8958ec5414ea89ed856ee04a92b4ff6a231d google/type/expr.proto +shake256:9ee5ea8082fa3866e43f3514444c589ee8bc07d8ba98c9829d5d33a002d8dc7b83a3f17c67fdcbaea1ef4f04104d50fbf4c19ae107024d3ec8f862253a9a2477 google/type/fraction.proto +shake256:7fe215c1c4987ecbfe761c6f8aaea68fc95e7ed311dfa4222cc056cbffbb9cc3cd1662e802fcc9d10e46c3636e7ce7463ff56f5f3fd45596d09d673df39231ae google/type/interval.proto +shake256:4c3c5c425ae8d1c81a3c75e4cdaf803fa73ead53deea4bbb0d1497a987b5a8983dd30d1584b4c1e2d044140a044618afe7eb70fd1ac6a4c920442894ee5be23e google/type/latlng.proto +shake256:3fa2c38707aed3300e70902934a55630bbc40686b1ea24c8b8cca5713add09087c65b6f91a365982d6ef02098a3c852a4196c94dc0c21fba5008b7341eaaad5c google/type/localized_text.proto +shake256:c296ea64cacbb5f333edf4ac50401026dcdc270e5faa0747636aaef8a37ba3e057c6fe2f7cff6adbce319443867d6dcd6ea175bc2e1583eb5a5117383e70cb6d google/type/money.proto +shake256:7ba5652d7b0d41b72a02103b3164d247937b176a3c98744a1f345348c67e5a53a5cd673edf57646b7b12fde5afed40f480432bf5a80f24d3fbe32729192828e1 google/type/month.proto +shake256:890e1c545bc37b30f69f2811f0982504c5aae66f73fdd90efc2aabd504fa254177205a944b41b3bb517acb43c8ab73ca8e922139fb1cd0561a0928ee09c73bc3 google/type/phone_number.proto +shake256:3191b0134da95315759c395e666bf891572d230fcbed1870dc0f078bba50f15ebafd6523a49e9000fa5844ad4afcbbfceafa50e58572425befdb02ce7387a144 google/type/postal_address.proto +shake256:30d772d9165b775d2f3daa757ec7048f15c4ce4bd05f7938395380868b6fdb233f57ad372148eedbaa3419c7e9cb1c5f03daa3ce75b310a74b4760ee3d0b6b49 google/type/quaternion.proto +shake256:05356f4e98446d07e8a42181c3859ed2ea6ddc2dbb8c89d1e70b8487d0279b271e5a8086bc50619634fe376b0945a2731b552d4997b2a2d80d95a2851f1df281 google/type/timeofday.proto diff --git a/modules/sync/googleapis/googleapis/cas/d6de46ab21620d5b0c1366a78325fbb60995234b72f2dfb9296b9420142d962098d424c49ae7f3bb6b20d5ad059b4e8506633c4c5c8e4aff609ddab2406e52fc b/modules/sync/googleapis/googleapis/cas/d6de46ab21620d5b0c1366a78325fbb60995234b72f2dfb9296b9420142d962098d424c49ae7f3bb6b20d5ad059b4e8506633c4c5c8e4aff609ddab2406e52fc new file mode 100644 index 00000000..53370587 --- /dev/null +++ b/modules/sync/googleapis/googleapis/cas/d6de46ab21620d5b0c1366a78325fbb60995234b72f2dfb9296b9420142d962098d424c49ae7f3bb6b20d5ad059b4e8506633c4c5c8e4aff609ddab2406e52fc @@ -0,0 +1,48 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.iam.v1; + +option cc_enable_arenas = true; +option csharp_namespace = "Google.Cloud.Iam.V1"; +option go_package = "cloud.google.com/go/iam/apiv1/iampb;iampb"; +option java_multiple_files = true; +option java_outer_classname = "OptionsProto"; +option java_package = "com.google.iam.v1"; +option php_namespace = "Google\\Cloud\\Iam\\V1"; + +// Encapsulates settings provided to GetIamPolicy. +message GetPolicyOptions { + // Optional. The maximum policy version that will be used to format the + // policy. + // + // Valid values are 0, 1, and 3. Requests specifying an invalid value will be + // rejected. + // + // Requests for policies with any conditional role bindings must specify + // version 3. Policies with no conditional role bindings may specify any valid + // value or leave the field unset. + // + // The policy in the response might use the policy version that you specified, + // or it might use a lower policy version. For example, if you specify version + // 3, but the policy has no conditional role bindings, the response uses + // version 1. + // + // To learn which resources support conditions in their IAM policies, see the + // [IAM + // documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + int32 requested_policy_version = 1; +} diff --git a/modules/sync/googleapis/googleapis/cas/fd5415c74cfdf3acc42f2a7f72334be6c442a30fa6aa22799c105da71f6bbd3ed4fc245e3e64d36b838b5411d7694a5783cc8acff004f78c46cabea927f90a91 b/modules/sync/googleapis/googleapis/cas/fd5415c74cfdf3acc42f2a7f72334be6c442a30fa6aa22799c105da71f6bbd3ed4fc245e3e64d36b838b5411d7694a5783cc8acff004f78c46cabea927f90a91 new file mode 100644 index 00000000..4fcb2acb --- /dev/null +++ b/modules/sync/googleapis/googleapis/cas/fd5415c74cfdf3acc42f2a7f72334be6c442a30fa6aa22799c105da71f6bbd3ed4fc245e3e64d36b838b5411d7694a5783cc8acff004f78c46cabea927f90a91 @@ -0,0 +1,461 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.api; + +import "google/protobuf/descriptor.proto"; + +option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; +option java_multiple_files = true; +option java_outer_classname = "RoutingProto"; +option java_package = "com.google.api"; +option objc_class_prefix = "GAPI"; + +extend google.protobuf.MethodOptions { + // See RoutingRule. + google.api.RoutingRule routing = 72295729; +} + +// Specifies the routing information that should be sent along with the request +// in the form of routing header. +// **NOTE:** All service configuration rules follow the "last one wins" order. +// +// The examples below will apply to an RPC which has the following request type: +// +// Message Definition: +// +// message Request { +// // The name of the Table +// // Values can be of the following formats: +// // - `projects//tables/` +// // - `projects//instances//tables/
` +// // - `region//zones//tables/
` +// string table_name = 1; +// +// // This value specifies routing for replication. +// // It can be in the following formats: +// // - `profiles/` +// // - a legacy `profile_id` that can be any string +// string app_profile_id = 2; +// } +// +// Example message: +// +// { +// table_name: projects/proj_foo/instances/instance_bar/table/table_baz, +// app_profile_id: profiles/prof_qux +// } +// +// The routing header consists of one or multiple key-value pairs. Every key +// and value must be percent-encoded, and joined together in the format of +// `key1=value1&key2=value2`. +// The examples below skip the percent-encoding for readability. +// +// Example 1 +// +// Extracting a field from the request to put into the routing header +// unchanged, with the key equal to the field name. +// +// annotation: +// +// option (google.api.routing) = { +// // Take the `app_profile_id`. +// routing_parameters { +// field: "app_profile_id" +// } +// }; +// +// result: +// +// x-goog-request-params: app_profile_id=profiles/prof_qux +// +// Example 2 +// +// Extracting a field from the request to put into the routing header +// unchanged, with the key different from the field name. +// +// annotation: +// +// option (google.api.routing) = { +// // Take the `app_profile_id`, but name it `routing_id` in the header. +// routing_parameters { +// field: "app_profile_id" +// path_template: "{routing_id=**}" +// } +// }; +// +// result: +// +// x-goog-request-params: routing_id=profiles/prof_qux +// +// Example 3 +// +// Extracting a field from the request to put into the routing +// header, while matching a path template syntax on the field's value. +// +// NB: it is more useful to send nothing than to send garbage for the purpose +// of dynamic routing, since garbage pollutes cache. Thus the matching. +// +// Sub-example 3a +// +// The field matches the template. +// +// annotation: +// +// option (google.api.routing) = { +// // Take the `table_name`, if it's well-formed (with project-based +// // syntax). +// routing_parameters { +// field: "table_name" +// path_template: "{table_name=projects/*/instances/*/**}" +// } +// }; +// +// result: +// +// x-goog-request-params: +// table_name=projects/proj_foo/instances/instance_bar/table/table_baz +// +// Sub-example 3b +// +// The field does not match the template. +// +// annotation: +// +// option (google.api.routing) = { +// // Take the `table_name`, if it's well-formed (with region-based +// // syntax). +// routing_parameters { +// field: "table_name" +// path_template: "{table_name=regions/*/zones/*/**}" +// } +// }; +// +// result: +// +// +// +// Sub-example 3c +// +// Multiple alternative conflictingly named path templates are +// specified. The one that matches is used to construct the header. +// +// annotation: +// +// option (google.api.routing) = { +// // Take the `table_name`, if it's well-formed, whether +// // using the region- or projects-based syntax. +// +// routing_parameters { +// field: "table_name" +// path_template: "{table_name=regions/*/zones/*/**}" +// } +// routing_parameters { +// field: "table_name" +// path_template: "{table_name=projects/*/instances/*/**}" +// } +// }; +// +// result: +// +// x-goog-request-params: +// table_name=projects/proj_foo/instances/instance_bar/table/table_baz +// +// Example 4 +// +// Extracting a single routing header key-value pair by matching a +// template syntax on (a part of) a single request field. +// +// annotation: +// +// option (google.api.routing) = { +// // Take just the project id from the `table_name` field. +// routing_parameters { +// field: "table_name" +// path_template: "{routing_id=projects/*}/**" +// } +// }; +// +// result: +// +// x-goog-request-params: routing_id=projects/proj_foo +// +// Example 5 +// +// Extracting a single routing header key-value pair by matching +// several conflictingly named path templates on (parts of) a single request +// field. The last template to match "wins" the conflict. +// +// annotation: +// +// option (google.api.routing) = { +// // If the `table_name` does not have instances information, +// // take just the project id for routing. +// // Otherwise take project + instance. +// +// routing_parameters { +// field: "table_name" +// path_template: "{routing_id=projects/*}/**" +// } +// routing_parameters { +// field: "table_name" +// path_template: "{routing_id=projects/*/instances/*}/**" +// } +// }; +// +// result: +// +// x-goog-request-params: +// routing_id=projects/proj_foo/instances/instance_bar +// +// Example 6 +// +// Extracting multiple routing header key-value pairs by matching +// several non-conflicting path templates on (parts of) a single request field. +// +// Sub-example 6a +// +// Make the templates strict, so that if the `table_name` does not +// have an instance information, nothing is sent. +// +// annotation: +// +// option (google.api.routing) = { +// // The routing code needs two keys instead of one composite +// // but works only for the tables with the "project-instance" name +// // syntax. +// +// routing_parameters { +// field: "table_name" +// path_template: "{project_id=projects/*}/instances/*/**" +// } +// routing_parameters { +// field: "table_name" +// path_template: "projects/*/{instance_id=instances/*}/**" +// } +// }; +// +// result: +// +// x-goog-request-params: +// project_id=projects/proj_foo&instance_id=instances/instance_bar +// +// Sub-example 6b +// +// Make the templates loose, so that if the `table_name` does not +// have an instance information, just the project id part is sent. +// +// annotation: +// +// option (google.api.routing) = { +// // The routing code wants two keys instead of one composite +// // but will work with just the `project_id` for tables without +// // an instance in the `table_name`. +// +// routing_parameters { +// field: "table_name" +// path_template: "{project_id=projects/*}/**" +// } +// routing_parameters { +// field: "table_name" +// path_template: "projects/*/{instance_id=instances/*}/**" +// } +// }; +// +// result (is the same as 6a for our example message because it has the instance +// information): +// +// x-goog-request-params: +// project_id=projects/proj_foo&instance_id=instances/instance_bar +// +// Example 7 +// +// Extracting multiple routing header key-value pairs by matching +// several path templates on multiple request fields. +// +// NB: note that here there is no way to specify sending nothing if one of the +// fields does not match its template. E.g. if the `table_name` is in the wrong +// format, the `project_id` will not be sent, but the `routing_id` will be. +// The backend routing code has to be aware of that and be prepared to not +// receive a full complement of keys if it expects multiple. +// +// annotation: +// +// option (google.api.routing) = { +// // The routing needs both `project_id` and `routing_id` +// // (from the `app_profile_id` field) for routing. +// +// routing_parameters { +// field: "table_name" +// path_template: "{project_id=projects/*}/**" +// } +// routing_parameters { +// field: "app_profile_id" +// path_template: "{routing_id=**}" +// } +// }; +// +// result: +// +// x-goog-request-params: +// project_id=projects/proj_foo&routing_id=profiles/prof_qux +// +// Example 8 +// +// Extracting a single routing header key-value pair by matching +// several conflictingly named path templates on several request fields. The +// last template to match "wins" the conflict. +// +// annotation: +// +// option (google.api.routing) = { +// // The `routing_id` can be a project id or a region id depending on +// // the table name format, but only if the `app_profile_id` is not set. +// // If `app_profile_id` is set it should be used instead. +// +// routing_parameters { +// field: "table_name" +// path_template: "{routing_id=projects/*}/**" +// } +// routing_parameters { +// field: "table_name" +// path_template: "{routing_id=regions/*}/**" +// } +// routing_parameters { +// field: "app_profile_id" +// path_template: "{routing_id=**}" +// } +// }; +// +// result: +// +// x-goog-request-params: routing_id=profiles/prof_qux +// +// Example 9 +// +// Bringing it all together. +// +// annotation: +// +// option (google.api.routing) = { +// // For routing both `table_location` and a `routing_id` are needed. +// // +// // table_location can be either an instance id or a region+zone id. +// // +// // For `routing_id`, take the value of `app_profile_id` +// // - If it's in the format `profiles/`, send +// // just the `` part. +// // - If it's any other literal, send it as is. +// // If the `app_profile_id` is empty, and the `table_name` starts with +// // the project_id, send that instead. +// +// routing_parameters { +// field: "table_name" +// path_template: "projects/*/{table_location=instances/*}/tables/*" +// } +// routing_parameters { +// field: "table_name" +// path_template: "{table_location=regions/*/zones/*}/tables/*" +// } +// routing_parameters { +// field: "table_name" +// path_template: "{routing_id=projects/*}/**" +// } +// routing_parameters { +// field: "app_profile_id" +// path_template: "{routing_id=**}" +// } +// routing_parameters { +// field: "app_profile_id" +// path_template: "profiles/{routing_id=*}" +// } +// }; +// +// result: +// +// x-goog-request-params: +// table_location=instances/instance_bar&routing_id=prof_qux +message RoutingRule { + // A collection of Routing Parameter specifications. + // **NOTE:** If multiple Routing Parameters describe the same key + // (via the `path_template` field or via the `field` field when + // `path_template` is not provided), "last one wins" rule + // determines which Parameter gets used. + // See the examples for more details. + repeated RoutingParameter routing_parameters = 2; +} + +// A projection from an input message to the GRPC or REST header. +message RoutingParameter { + // A request field to extract the header key-value pair from. + string field = 1; + + // A pattern matching the key-value field. Optional. + // If not specified, the whole field specified in the `field` field will be + // taken as value, and its name used as key. If specified, it MUST contain + // exactly one named segment (along with any number of unnamed segments) The + // pattern will be matched over the field specified in the `field` field, then + // if the match is successful: + // - the name of the single named segment will be used as a header name, + // - the match value of the segment will be used as a header value; + // if the match is NOT successful, nothing will be sent. + // + // Example: + // + // -- This is a field in the request message + // | that the header value will be extracted from. + // | + // | -- This is the key name in the + // | | routing header. + // V | + // field: "table_name" v + // path_template: "projects/*/{table_location=instances/*}/tables/*" + // ^ ^ + // | | + // In the {} brackets is the pattern that -- | + // specifies what to extract from the | + // field as a value to be sent. | + // | + // The string in the field must match the whole pattern -- + // before brackets, inside brackets, after brackets. + // + // When looking at this specific example, we can see that: + // - A key-value pair with the key `table_location` + // and the value matching `instances/*` should be added + // to the x-goog-request-params routing header. + // - The value is extracted from the request message's `table_name` field + // if it matches the full pattern specified: + // `projects/*/instances/*/tables/*`. + // + // **NB:** If the `path_template` field is not provided, the key name is + // equal to the field name, and the whole field should be sent as a value. + // This makes the pattern for the field and the value functionally equivalent + // to `**`, and the configuration + // + // { + // field: "table_name" + // } + // + // is a functionally equivalent shorthand to: + // + // { + // field: "table_name" + // path_template: "{table_name=**}" + // } + // + // See Example 1 for more details. + string path_template = 2; +} diff --git a/modules/sync/googleapis/googleapis/state.json b/modules/sync/googleapis/googleapis/state.json index 41defaf6..16282c7e 100644 --- a/modules/sync/googleapis/googleapis/state.json +++ b/modules/sync/googleapis/googleapis/state.json @@ -20911,6 +20911,30 @@ { "name": "d6a2197c8c9490b22e56ce448cfba49fc10b8b34", "digest": "b3ac4d383db09f92ab0ca85d12bff8c49eddf7031bd3a854c260b6ac4ed6a2bb85b52b3393c316d28f8038bf3b8e70cb3d16470e8cc4423007678fb6d89d36d4" + }, + { + "name": "bf2ce591fdd45d380342426ba64d3165ac504cdd", + "digest": "d26c7c2fd95f0873761af33ca4a0c0d92c8577122b6feb74eb3b0a57ebe47a98ab24a209a0e91945ac4c77204e9da0c2de0020b2cedc27bdbcdea6c431eec69b" + }, + { + "name": "67782cb57b1fd81a4f49edef8243acb02843bf75", + "digest": "d26c7c2fd95f0873761af33ca4a0c0d92c8577122b6feb74eb3b0a57ebe47a98ab24a209a0e91945ac4c77204e9da0c2de0020b2cedc27bdbcdea6c431eec69b" + }, + { + "name": "a7eef0a26c04fe8d6717e0f45b22ec945ca57d13", + "digest": "d26c7c2fd95f0873761af33ca4a0c0d92c8577122b6feb74eb3b0a57ebe47a98ab24a209a0e91945ac4c77204e9da0c2de0020b2cedc27bdbcdea6c431eec69b" + }, + { + "name": "ded7ed1e4cce7c165c56a417572cebea9bc1d82c", + "digest": "d26c7c2fd95f0873761af33ca4a0c0d92c8577122b6feb74eb3b0a57ebe47a98ab24a209a0e91945ac4c77204e9da0c2de0020b2cedc27bdbcdea6c431eec69b" + }, + { + "name": "160d9b37f202881fbf1aa1b52ff51be30202293f", + "digest": "d26c7c2fd95f0873761af33ca4a0c0d92c8577122b6feb74eb3b0a57ebe47a98ab24a209a0e91945ac4c77204e9da0c2de0020b2cedc27bdbcdea6c431eec69b" + }, + { + "name": "c9ff4f1cd26f1fe63e6d1c11a198366b70ebdb84", + "digest": "d26c7c2fd95f0873761af33ca4a0c0d92c8577122b6feb74eb3b0a57ebe47a98ab24a209a0e91945ac4c77204e9da0c2de0020b2cedc27bdbcdea6c431eec69b" } ] } \ No newline at end of file diff --git a/modules/sync/state.json b/modules/sync/state.json index 9099499d..bef22416 100644 --- a/modules/sync/state.json +++ b/modules/sync/state.json @@ -42,7 +42,7 @@ }, { "module_name": "googleapis/googleapis", - "latest_reference": "d6a2197c8c9490b22e56ce448cfba49fc10b8b34" + "latest_reference": "c9ff4f1cd26f1fe63e6d1c11a198366b70ebdb84" }, { "module_name": "googlechrome/lighthouse",