diff --git a/protos/google/cloud/asset/v1/asset_service.proto b/protos/google/cloud/asset/v1/asset_service.proto index eadaef28..59f517bb 100644 --- a/protos/google/cloud/asset/v1/asset_service.proto +++ b/protos/google/cloud/asset/v1/asset_service.proto @@ -838,6 +838,10 @@ message SearchAllIamPoliciesRequest { // * `resource:(instance1 OR instance2) policy:amy` to find // IAM policy bindings that are set on resources "instance1" or // "instance2" and also specify user "amy". + // * `roles:roles/compute.admin` to find IAM policy bindings that specify the + // Compute Admin role. + // * `memberTypes:user` to find IAM policy bindings that contain the "user" + // member type. string query = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. The page size for search result pagination. Page size is capped at 500 even @@ -851,6 +855,36 @@ message SearchAllIamPoliciesRequest { // previous response. The values of all other method parameters must be // identical to those in the previous call. string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A list of asset types that the IAM policies are attached to. If empty, it + // will search the IAM policies that are attached to all the [searchable asset + // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types). + // + // Regular expressions are also supported. For example: + // + // * "compute.googleapis.com.*" snapshots IAM policies attached to asset type + // starts with "compute.googleapis.com". + // * ".*Instance" snapshots IAM policies attached to asset type ends with + // "Instance". + // * ".*Instance.*" snapshots IAM policies attached to asset type contains + // "Instance". + // + // See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported + // regular expression syntax. If the regular expression does not match any + // supported asset type, an INVALID_ARGUMENT error will be returned. + repeated string asset_types = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A comma-separated list of fields specifying the sorting order of the + // results. The default order is ascending. Add " DESC" after the field name + // to indicate descending order. Redundant space characters are ignored. + // Example: "assetType DESC, resource". + // Only singular primitive fields in the response are sortable: + // * resource + // * assetType + // * project + // All the other fields such as repeated fields (e.g., `folders`) and + // non-primitive fields (e.g., `policy`) are not supported. + string order_by = 7 [(google.api.field_behavior) = OPTIONAL]; } // Search all IAM policies response. diff --git a/protos/google/cloud/asset/v1/assets.proto b/protos/google/cloud/asset/v1/assets.proto index 572ed739..a607784e 100644 --- a/protos/google/cloud/asset/v1/assets.proto +++ b/protos/google/cloud/asset/v1/assets.proto @@ -463,6 +463,14 @@ message IamPolicySearchResult { // * use a field query. Example: `resource:organizations/123` string resource = 1; + // The type of the resource associated with this IAM policy. Example: + // `compute.googleapis.com/Disk`. + // + // To search against the `asset_type`: + // + // * specify the `asset_types` field in your search request. + string asset_type = 5; + // The project that the associated GCP resource belongs to, in the form of // projects/{PROJECT_NUMBER}. If an IAM policy is set on a resource (like VM // instance, Cloud Storage bucket), the project field will indicate the @@ -474,6 +482,28 @@ message IamPolicySearchResult { // * specify the `scope` field as this project in your search request. string project = 2; + // The folder(s) that the IAM policy belongs to, in the form of + // folders/{FOLDER_NUMBER}. This field is available when the IAM policy + // belongs to one or more folders. + // + // To search against `folders`: + // + // * use a field query. Example: `folders:(123 OR 456)` + // * use a free text query. Example: `123` + // * specify the `scope` field as this folder in your search request. + repeated string folders = 6; + + // The organization that the IAM policy belongs to, in the form + // of organizations/{ORGANIZATION_NUMBER}. This field is available when the + // IAM policy belongs to an organization. + // + // To search against `organization`: + // + // * use a field query. Example: `organization:123` + // * use a free text query. Example: `123` + // * specify the `scope` field as this organization in your search request. + string organization = 7; + // The IAM policy directly set on the given resource. Note that the original // IAM policy can contain multiple bindings. This only contains the bindings // that match the given query. For queries that don't contain a constrain on diff --git a/protos/protos.d.ts b/protos/protos.d.ts index e7d67db7..fb2fc4b3 100644 --- a/protos/protos.d.ts +++ b/protos/protos.d.ts @@ -2624,6 +2624,12 @@ export namespace google { /** SearchAllIamPoliciesRequest pageToken */ pageToken?: (string|null); + + /** SearchAllIamPoliciesRequest assetTypes */ + assetTypes?: (string[]|null); + + /** SearchAllIamPoliciesRequest orderBy */ + orderBy?: (string|null); } /** Represents a SearchAllIamPoliciesRequest. */ @@ -2647,6 +2653,12 @@ export namespace google { /** SearchAllIamPoliciesRequest pageToken. */ public pageToken: string; + /** SearchAllIamPoliciesRequest assetTypes. */ + public assetTypes: string[]; + + /** SearchAllIamPoliciesRequest orderBy. */ + public orderBy: string; + /** * Creates a new SearchAllIamPoliciesRequest instance using the specified properties. * @param [properties] Properties to set @@ -4927,9 +4939,18 @@ export namespace google { /** IamPolicySearchResult resource */ resource?: (string|null); + /** IamPolicySearchResult assetType */ + assetType?: (string|null); + /** IamPolicySearchResult project */ project?: (string|null); + /** IamPolicySearchResult folders */ + folders?: (string[]|null); + + /** IamPolicySearchResult organization */ + organization?: (string|null); + /** IamPolicySearchResult policy */ policy?: (google.iam.v1.IPolicy|null); @@ -4949,9 +4970,18 @@ export namespace google { /** IamPolicySearchResult resource. */ public resource: string; + /** IamPolicySearchResult assetType. */ + public assetType: string; + /** IamPolicySearchResult project. */ public project: string; + /** IamPolicySearchResult folders. */ + public folders: string[]; + + /** IamPolicySearchResult organization. */ + public organization: string; + /** IamPolicySearchResult policy. */ public policy?: (google.iam.v1.IPolicy|null); diff --git a/protos/protos.js b/protos/protos.js index 89cf38ad..24b08960 100644 --- a/protos/protos.js +++ b/protos/protos.js @@ -6158,6 +6158,8 @@ * @property {string|null} [query] SearchAllIamPoliciesRequest query * @property {number|null} [pageSize] SearchAllIamPoliciesRequest pageSize * @property {string|null} [pageToken] SearchAllIamPoliciesRequest pageToken + * @property {Array.|null} [assetTypes] SearchAllIamPoliciesRequest assetTypes + * @property {string|null} [orderBy] SearchAllIamPoliciesRequest orderBy */ /** @@ -6169,6 +6171,7 @@ * @param {google.cloud.asset.v1.ISearchAllIamPoliciesRequest=} [properties] Properties to set */ function SearchAllIamPoliciesRequest(properties) { + this.assetTypes = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -6207,6 +6210,22 @@ */ SearchAllIamPoliciesRequest.prototype.pageToken = ""; + /** + * SearchAllIamPoliciesRequest assetTypes. + * @member {Array.} assetTypes + * @memberof google.cloud.asset.v1.SearchAllIamPoliciesRequest + * @instance + */ + SearchAllIamPoliciesRequest.prototype.assetTypes = $util.emptyArray; + + /** + * SearchAllIamPoliciesRequest orderBy. + * @member {string} orderBy + * @memberof google.cloud.asset.v1.SearchAllIamPoliciesRequest + * @instance + */ + SearchAllIamPoliciesRequest.prototype.orderBy = ""; + /** * Creates a new SearchAllIamPoliciesRequest instance using the specified properties. * @function create @@ -6239,6 +6258,11 @@ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.pageSize); if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) writer.uint32(/* id 4, wireType 2 =*/34).string(message.pageToken); + if (message.assetTypes != null && message.assetTypes.length) + for (var i = 0; i < message.assetTypes.length; ++i) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.assetTypes[i]); + if (message.orderBy != null && Object.hasOwnProperty.call(message, "orderBy")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.orderBy); return writer; }; @@ -6285,6 +6309,14 @@ case 4: message.pageToken = reader.string(); break; + case 5: + if (!(message.assetTypes && message.assetTypes.length)) + message.assetTypes = []; + message.assetTypes.push(reader.string()); + break; + case 7: + message.orderBy = reader.string(); + break; default: reader.skipType(tag & 7); break; @@ -6332,6 +6364,16 @@ if (message.pageToken != null && message.hasOwnProperty("pageToken")) if (!$util.isString(message.pageToken)) return "pageToken: string expected"; + if (message.assetTypes != null && message.hasOwnProperty("assetTypes")) { + if (!Array.isArray(message.assetTypes)) + return "assetTypes: array expected"; + for (var i = 0; i < message.assetTypes.length; ++i) + if (!$util.isString(message.assetTypes[i])) + return "assetTypes: string[] expected"; + } + if (message.orderBy != null && message.hasOwnProperty("orderBy")) + if (!$util.isString(message.orderBy)) + return "orderBy: string expected"; return null; }; @@ -6355,6 +6397,15 @@ message.pageSize = object.pageSize | 0; if (object.pageToken != null) message.pageToken = String(object.pageToken); + if (object.assetTypes) { + if (!Array.isArray(object.assetTypes)) + throw TypeError(".google.cloud.asset.v1.SearchAllIamPoliciesRequest.assetTypes: array expected"); + message.assetTypes = []; + for (var i = 0; i < object.assetTypes.length; ++i) + message.assetTypes[i] = String(object.assetTypes[i]); + } + if (object.orderBy != null) + message.orderBy = String(object.orderBy); return message; }; @@ -6371,11 +6422,14 @@ if (!options) options = {}; var object = {}; + if (options.arrays || options.defaults) + object.assetTypes = []; if (options.defaults) { object.scope = ""; object.query = ""; object.pageSize = 0; object.pageToken = ""; + object.orderBy = ""; } if (message.scope != null && message.hasOwnProperty("scope")) object.scope = message.scope; @@ -6385,6 +6439,13 @@ object.pageSize = message.pageSize; if (message.pageToken != null && message.hasOwnProperty("pageToken")) object.pageToken = message.pageToken; + if (message.assetTypes && message.assetTypes.length) { + object.assetTypes = []; + for (var j = 0; j < message.assetTypes.length; ++j) + object.assetTypes[j] = message.assetTypes[j]; + } + if (message.orderBy != null && message.hasOwnProperty("orderBy")) + object.orderBy = message.orderBy; return object; }; @@ -12010,7 +12071,10 @@ * @memberof google.cloud.asset.v1 * @interface IIamPolicySearchResult * @property {string|null} [resource] IamPolicySearchResult resource + * @property {string|null} [assetType] IamPolicySearchResult assetType * @property {string|null} [project] IamPolicySearchResult project + * @property {Array.|null} [folders] IamPolicySearchResult folders + * @property {string|null} [organization] IamPolicySearchResult organization * @property {google.iam.v1.IPolicy|null} [policy] IamPolicySearchResult policy * @property {google.cloud.asset.v1.IamPolicySearchResult.IExplanation|null} [explanation] IamPolicySearchResult explanation */ @@ -12024,6 +12088,7 @@ * @param {google.cloud.asset.v1.IIamPolicySearchResult=} [properties] Properties to set */ function IamPolicySearchResult(properties) { + this.folders = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -12038,6 +12103,14 @@ */ IamPolicySearchResult.prototype.resource = ""; + /** + * IamPolicySearchResult assetType. + * @member {string} assetType + * @memberof google.cloud.asset.v1.IamPolicySearchResult + * @instance + */ + IamPolicySearchResult.prototype.assetType = ""; + /** * IamPolicySearchResult project. * @member {string} project @@ -12046,6 +12119,22 @@ */ IamPolicySearchResult.prototype.project = ""; + /** + * IamPolicySearchResult folders. + * @member {Array.} folders + * @memberof google.cloud.asset.v1.IamPolicySearchResult + * @instance + */ + IamPolicySearchResult.prototype.folders = $util.emptyArray; + + /** + * IamPolicySearchResult organization. + * @member {string} organization + * @memberof google.cloud.asset.v1.IamPolicySearchResult + * @instance + */ + IamPolicySearchResult.prototype.organization = ""; + /** * IamPolicySearchResult policy. * @member {google.iam.v1.IPolicy|null|undefined} policy @@ -12094,6 +12183,13 @@ $root.google.iam.v1.Policy.encode(message.policy, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.explanation != null && Object.hasOwnProperty.call(message, "explanation")) $root.google.cloud.asset.v1.IamPolicySearchResult.Explanation.encode(message.explanation, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.assetType != null && Object.hasOwnProperty.call(message, "assetType")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.assetType); + if (message.folders != null && message.folders.length) + for (var i = 0; i < message.folders.length; ++i) + writer.uint32(/* id 6, wireType 2 =*/50).string(message.folders[i]); + if (message.organization != null && Object.hasOwnProperty.call(message, "organization")) + writer.uint32(/* id 7, wireType 2 =*/58).string(message.organization); return writer; }; @@ -12131,9 +12227,20 @@ case 1: message.resource = reader.string(); break; + case 5: + message.assetType = reader.string(); + break; case 2: message.project = reader.string(); break; + case 6: + if (!(message.folders && message.folders.length)) + message.folders = []; + message.folders.push(reader.string()); + break; + case 7: + message.organization = reader.string(); + break; case 3: message.policy = $root.google.iam.v1.Policy.decode(reader, reader.uint32()); break; @@ -12178,9 +12285,22 @@ if (message.resource != null && message.hasOwnProperty("resource")) if (!$util.isString(message.resource)) return "resource: string expected"; + if (message.assetType != null && message.hasOwnProperty("assetType")) + if (!$util.isString(message.assetType)) + return "assetType: string expected"; if (message.project != null && message.hasOwnProperty("project")) if (!$util.isString(message.project)) return "project: string expected"; + if (message.folders != null && message.hasOwnProperty("folders")) { + if (!Array.isArray(message.folders)) + return "folders: array expected"; + for (var i = 0; i < message.folders.length; ++i) + if (!$util.isString(message.folders[i])) + return "folders: string[] expected"; + } + if (message.organization != null && message.hasOwnProperty("organization")) + if (!$util.isString(message.organization)) + return "organization: string expected"; if (message.policy != null && message.hasOwnProperty("policy")) { var error = $root.google.iam.v1.Policy.verify(message.policy); if (error) @@ -12208,8 +12328,19 @@ var message = new $root.google.cloud.asset.v1.IamPolicySearchResult(); if (object.resource != null) message.resource = String(object.resource); + if (object.assetType != null) + message.assetType = String(object.assetType); if (object.project != null) message.project = String(object.project); + if (object.folders) { + if (!Array.isArray(object.folders)) + throw TypeError(".google.cloud.asset.v1.IamPolicySearchResult.folders: array expected"); + message.folders = []; + for (var i = 0; i < object.folders.length; ++i) + message.folders[i] = String(object.folders[i]); + } + if (object.organization != null) + message.organization = String(object.organization); if (object.policy != null) { if (typeof object.policy !== "object") throw TypeError(".google.cloud.asset.v1.IamPolicySearchResult.policy: object expected"); @@ -12236,11 +12367,15 @@ if (!options) options = {}; var object = {}; + if (options.arrays || options.defaults) + object.folders = []; if (options.defaults) { object.resource = ""; object.project = ""; object.policy = null; object.explanation = null; + object.assetType = ""; + object.organization = ""; } if (message.resource != null && message.hasOwnProperty("resource")) object.resource = message.resource; @@ -12250,6 +12385,15 @@ object.policy = $root.google.iam.v1.Policy.toObject(message.policy, options); if (message.explanation != null && message.hasOwnProperty("explanation")) object.explanation = $root.google.cloud.asset.v1.IamPolicySearchResult.Explanation.toObject(message.explanation, options); + if (message.assetType != null && message.hasOwnProperty("assetType")) + object.assetType = message.assetType; + if (message.folders && message.folders.length) { + object.folders = []; + for (var j = 0; j < message.folders.length; ++j) + object.folders[j] = message.folders[j]; + } + if (message.organization != null && message.hasOwnProperty("organization")) + object.organization = message.organization; return object; }; diff --git a/protos/protos.json b/protos/protos.json index 072c3202..f16023d6 100644 --- a/protos/protos.json +++ b/protos/protos.json @@ -738,6 +738,21 @@ "options": { "(google.api.field_behavior)": "OPTIONAL" } + }, + "assetTypes": { + "rule": "repeated", + "type": "string", + "id": 5, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "orderBy": { + "type": "string", + "id": 7, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } } } }, @@ -1288,10 +1303,23 @@ "type": "string", "id": 1 }, + "assetType": { + "type": "string", + "id": 5 + }, "project": { "type": "string", "id": 2 }, + "folders": { + "rule": "repeated", + "type": "string", + "id": 6 + }, + "organization": { + "type": "string", + "id": 7 + }, "policy": { "type": "google.iam.v1.Policy", "id": 3 diff --git a/src/v1/asset_service_client.ts b/src/v1/asset_service_client.ts index 6b9f6c59..88fb9bab 100644 --- a/src/v1/asset_service_client.ts +++ b/src/v1/asset_service_client.ts @@ -2220,6 +2220,10 @@ export class AssetServiceClient { * * `resource:(instance1 OR instance2) policy:amy` to find * IAM policy bindings that are set on resources "instance1" or * "instance2" and also specify user "amy". + * * `roles:roles/compute.admin` to find IAM policy bindings that specify the + * Compute Admin role. + * * `memberTypes:user` to find IAM policy bindings that contain the "user" + * member type. * @param {number} [request.pageSize] * Optional. The page size for search result pagination. Page size is capped at 500 even * if a larger value is given. If set to zero, server will pick an appropriate @@ -2230,6 +2234,34 @@ export class AssetServiceClient { * this method. `page_token` must be the value of `next_page_token` from the * previous response. The values of all other method parameters must be * identical to those in the previous call. + * @param {string[]} [request.assetTypes] + * Optional. A list of asset types that the IAM policies are attached to. If empty, it + * will search the IAM policies that are attached to all the [searchable asset + * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types). + * + * Regular expressions are also supported. For example: + * + * * "compute.googleapis.com.*" snapshots IAM policies attached to asset type + * starts with "compute.googleapis.com". + * * ".*Instance" snapshots IAM policies attached to asset type ends with + * "Instance". + * * ".*Instance.*" snapshots IAM policies attached to asset type contains + * "Instance". + * + * See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported + * regular expression syntax. If the regular expression does not match any + * supported asset type, an INVALID_ARGUMENT error will be returned. + * @param {string} [request.orderBy] + * Optional. A comma-separated list of fields specifying the sorting order of the + * results. The default order is ascending. Add " DESC" after the field name + * to indicate descending order. Redundant space characters are ignored. + * Example: "assetType DESC, resource". + * Only singular primitive fields in the response are sortable: + * * resource + * * assetType + * * project + * All the other fields such as repeated fields (e.g., `folders`) and + * non-primitive fields (e.g., `policy`) are not supported. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Promise} - The promise which resolves to an array. @@ -2343,6 +2375,10 @@ export class AssetServiceClient { * * `resource:(instance1 OR instance2) policy:amy` to find * IAM policy bindings that are set on resources "instance1" or * "instance2" and also specify user "amy". + * * `roles:roles/compute.admin` to find IAM policy bindings that specify the + * Compute Admin role. + * * `memberTypes:user` to find IAM policy bindings that contain the "user" + * member type. * @param {number} [request.pageSize] * Optional. The page size for search result pagination. Page size is capped at 500 even * if a larger value is given. If set to zero, server will pick an appropriate @@ -2353,6 +2389,34 @@ export class AssetServiceClient { * this method. `page_token` must be the value of `next_page_token` from the * previous response. The values of all other method parameters must be * identical to those in the previous call. + * @param {string[]} [request.assetTypes] + * Optional. A list of asset types that the IAM policies are attached to. If empty, it + * will search the IAM policies that are attached to all the [searchable asset + * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types). + * + * Regular expressions are also supported. For example: + * + * * "compute.googleapis.com.*" snapshots IAM policies attached to asset type + * starts with "compute.googleapis.com". + * * ".*Instance" snapshots IAM policies attached to asset type ends with + * "Instance". + * * ".*Instance.*" snapshots IAM policies attached to asset type contains + * "Instance". + * + * See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported + * regular expression syntax. If the regular expression does not match any + * supported asset type, an INVALID_ARGUMENT error will be returned. + * @param {string} [request.orderBy] + * Optional. A comma-separated list of fields specifying the sorting order of the + * results. The default order is ascending. Add " DESC" after the field name + * to indicate descending order. Redundant space characters are ignored. + * Example: "assetType DESC, resource". + * Only singular primitive fields in the response are sortable: + * * resource + * * assetType + * * project + * All the other fields such as repeated fields (e.g., `folders`) and + * non-primitive fields (e.g., `policy`) are not supported. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Stream} @@ -2444,6 +2508,10 @@ export class AssetServiceClient { * * `resource:(instance1 OR instance2) policy:amy` to find * IAM policy bindings that are set on resources "instance1" or * "instance2" and also specify user "amy". + * * `roles:roles/compute.admin` to find IAM policy bindings that specify the + * Compute Admin role. + * * `memberTypes:user` to find IAM policy bindings that contain the "user" + * member type. * @param {number} [request.pageSize] * Optional. The page size for search result pagination. Page size is capped at 500 even * if a larger value is given. If set to zero, server will pick an appropriate @@ -2454,6 +2522,34 @@ export class AssetServiceClient { * this method. `page_token` must be the value of `next_page_token` from the * previous response. The values of all other method parameters must be * identical to those in the previous call. + * @param {string[]} [request.assetTypes] + * Optional. A list of asset types that the IAM policies are attached to. If empty, it + * will search the IAM policies that are attached to all the [searchable asset + * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types). + * + * Regular expressions are also supported. For example: + * + * * "compute.googleapis.com.*" snapshots IAM policies attached to asset type + * starts with "compute.googleapis.com". + * * ".*Instance" snapshots IAM policies attached to asset type ends with + * "Instance". + * * ".*Instance.*" snapshots IAM policies attached to asset type contains + * "Instance". + * + * See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported + * regular expression syntax. If the regular expression does not match any + * supported asset type, an INVALID_ARGUMENT error will be returned. + * @param {string} [request.orderBy] + * Optional. A comma-separated list of fields specifying the sorting order of the + * results. The default order is ascending. Add " DESC" after the field name + * to indicate descending order. Redundant space characters are ignored. + * Example: "assetType DESC, resource". + * Only singular primitive fields in the response are sortable: + * * resource + * * assetType + * * project + * All the other fields such as repeated fields (e.g., `folders`) and + * non-primitive fields (e.g., `policy`) are not supported. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Object} diff --git a/src/v1/asset_service_client_config.json b/src/v1/asset_service_client_config.json index 7c1413ed..e192e970 100644 --- a/src/v1/asset_service_client_config.json +++ b/src/v1/asset_service_client_config.json @@ -64,13 +64,13 @@ "retry_params_name": "default" }, "SearchAllResources": { - "timeout_millis": 15000, - "retry_codes_name": "idempotent", + "timeout_millis": 30000, + "retry_codes_name": "unavailable", "retry_params_name": "default" }, "SearchAllIamPolicies": { - "timeout_millis": 15000, - "retry_codes_name": "idempotent", + "timeout_millis": 30000, + "retry_codes_name": "unavailable", "retry_params_name": "default" }, "AnalyzeIamPolicy": {