1{
2  "kind": "discovery#restDescription",
3  "discoveryVersion": "v1",
4  "id": "cloudasset:v1p2beta1",
5  "name": "cloudasset",
6  "canonicalName": "Cloud Asset",
7  "version": "v1p2beta1",
8  "revision": "0",
9  "title": "Cloud Asset API",
10  "description": "The cloud asset API manages the history and inventory of cloud resources.",
11  "ownerDomain": "google.com",
12  "ownerName": "Google",
13  "icons": {
14    "x16": "http://www.google.com/images/icons/product/search-16.gif",
15    "x32": "http://www.google.com/images/icons/product/search-32.gif"
16   },
17  "documentationLink": "https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/quickstart-cloud-asset-inventory",
18  "protocol": "rest",
19  "rootUrl": "https://cloudasset.googleapis.com/",
20  "servicePath": "",
21  "baseUrl": "https://cloudasset.googleapis.com/",
22  "batchPath": "batch",
23  "version_module": true,
24  "fullyEncodeReservedExpansion": true,
25  "parameters": {
26    "access_token": {
27      "type": "string",
28      "description": "OAuth access token.",
29      "location": "query"
30    },
31    "alt": {
32      "type": "string",
33      "description": "Data format for response.",
34      "default": "json",
35      "enum": [
36        "json",
37        "media",
38        "proto"
39      ],
40      "enumDescriptions": [
41        "Responses with Content-Type of application/json",
42        "Media download with context-dependent Content-Type",
43        "Responses with Content-Type of application/x-protobuf"
44      ],
45      "location": "query"
46    },
47    "callback": {
48      "type": "string",
49      "description": "JSONP",
50      "location": "query"
51    },
52    "fields": {
53      "type": "string",
54      "description": "Selector specifying which fields to include in a partial response.",
55      "location": "query"
56    },
57    "key": {
58      "type": "string",
59      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
60      "location": "query"
61    },
62    "oauth_token": {
63      "type": "string",
64      "description": "OAuth 2.0 token for the current user.",
65      "location": "query"
66    },
67    "prettyPrint": {
68      "type": "boolean",
69      "description": "Returns response with indentations and line breaks.",
70      "default": "true",
71      "location": "query"
72    },
73    "quotaUser": {
74      "type": "string",
75      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
76      "location": "query"
77    },
78    "upload_protocol": {
79      "type": "string",
80      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
81      "location": "query"
82    },
83    "uploadType": {
84      "type": "string",
85      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
86      "location": "query"
87    },
88    "$.xgafv": {
89      "type": "string",
90      "description": "V1 error format.",
91      "enum": [
92        "1",
93        "2"
94      ],
95      "enumDescriptions": [
96        "v1 error format",
97        "v2 error format"
98      ],
99      "location": "query"
100    }
101  },
102  "auth": {
103    "oauth2": {
104      "scopes": {
105        "https://www.googleapis.com/auth/cloud-platform": {
106          "description": "View and manage your data across Google Cloud Platform services"
107        }
108      }
109    }
110  },
111  "schemas": {
112    "ExportAssetsRequest": {
113      "id": "ExportAssetsRequest",
114      "description": "Export asset request.",
115      "type": "object",
116      "properties": {
117        "readTime": {
118          "description": "Timestamp to take an asset snapshot. This can only be set to a timestamp\nbetween 2018-10-02 UTC (inclusive) and the current time. If not specified,\nthe current time will be used. Due to delays in resource data collection\nand indexing, there is a volatile window during which running the same\nquery may get different results.",
119          "type": "string",
120          "format": "google-datetime"
121        },
122        "assetTypes": {
123          "description": "A list of asset types of which to take a snapshot for. For example:\n\"compute.googleapis.com\/Disk\". If specified, only matching assets will be\nreturned. See [Introduction to Cloud Asset\nInventory](https:\/\/cloud.google.com\/resource-manager\/docs\/cloud-asset-inventory\/overview)\nfor all supported asset types.",
124          "type": "array",
125          "items": {
126            "type": "string"
127          }
128        },
129        "contentType": {
130          "description": "Asset content type. If not specified, no content but the asset name will be\nreturned.",
131          "enumDescriptions": [
132            "Unspecified content type.",
133            "Resource metadata.",
134            "The actual IAM policy set on a resource."
135          ],
136          "type": "string",
137          "enum": [
138            "CONTENT_TYPE_UNSPECIFIED",
139            "RESOURCE",
140            "IAM_POLICY"
141          ]
142        },
143        "outputConfig": {
144          "description": "Required. Output configuration indicating where the results will be output\nto. All results will be in newline delimited JSON format.",
145          "$ref": "OutputConfig"
146        }
147      }
148    },
149    "OutputConfig": {
150      "id": "OutputConfig",
151      "description": "Output configuration for export assets destination.",
152      "type": "object",
153      "properties": {
154        "gcsDestination": {
155          "description": "Destination on Cloud Storage.",
156          "$ref": "GcsDestination"
157        }
158      }
159    },
160    "GcsDestination": {
161      "id": "GcsDestination",
162      "description": "A Cloud Storage location.",
163      "type": "object",
164      "properties": {
165        "uri": {
166          "description": "The uri of the Cloud Storage object. It's the same uri that is used by\ngsutil. For example: \"gs:\/\/bucket_name\/object_name\". See [Viewing and\nEditing Object\nMetadata](https:\/\/cloud.google.com\/storage\/docs\/viewing-editing-metadata)\nfor more information.",
167          "type": "string"
168        }
169      }
170    },
171    "Operation": {
172      "id": "Operation",
173      "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
174      "type": "object",
175      "properties": {
176        "name": {
177          "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should be a resource name ending with `operations\/{unique_id}`.",
178          "type": "string"
179        },
180        "metadata": {
181          "description": "Service-specific metadata associated with the operation.  It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata.  Any method that returns a\nlong-running operation should document the metadata type, if any.",
182          "type": "object",
183          "additionalProperties": {
184            "type": "any",
185            "description": "Properties of the object. Contains field @type with type URL."
186          }
187        },
188        "done": {
189          "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
190          "type": "boolean"
191        },
192        "error": {
193          "description": "The error result of the operation in case of failure or cancellation.",
194          "$ref": "Status"
195        },
196        "response": {
197          "description": "The normal response of the operation in case of success.  If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`.  If the original method is standard\n`Get`\/`Create`\/`Update`, the response should be the resource.  For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name.  For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.",
198          "type": "object",
199          "additionalProperties": {
200            "type": "any",
201            "description": "Properties of the object. Contains field @type with type URL."
202          }
203        }
204      }
205    },
206    "Status": {
207      "id": "Status",
208      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https:\/\/github.com\/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https:\/\/cloud.google.com\/apis\/design\/errors).",
209      "type": "object",
210      "properties": {
211        "code": {
212          "description": "The status code, which should be an enum value of google.rpc.Code.",
213          "type": "integer",
214          "format": "int32"
215        },
216        "message": {
217          "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
218          "type": "string"
219        },
220        "details": {
221          "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use.",
222          "type": "array",
223          "items": {
224            "type": "object",
225            "additionalProperties": {
226              "type": "any",
227              "description": "Properties of the object. Contains field @type with type URL."
228            }
229          }
230        }
231      }
232    },
233    "BatchGetAssetsHistoryResponse": {
234      "id": "BatchGetAssetsHistoryResponse",
235      "description": "Batch get assets history response.",
236      "type": "object",
237      "properties": {
238        "assets": {
239          "description": "A list of assets with valid time windows.",
240          "type": "array",
241          "items": {
242            "$ref": "TemporalAsset"
243          }
244        }
245      }
246    },
247    "TemporalAsset": {
248      "id": "TemporalAsset",
249      "description": "Temporal asset. In addition to the asset, the temporal asset includes the\nstatus of the asset and valid from and to time of it.",
250      "type": "object",
251      "properties": {
252        "window": {
253          "description": "The time window when the asset data and state was observed.",
254          "$ref": "TimeWindow"
255        },
256        "deleted": {
257          "description": "If the asset is deleted or not.",
258          "type": "boolean"
259        },
260        "asset": {
261          "description": "Asset.",
262          "$ref": "Asset"
263        }
264      }
265    },
266    "TimeWindow": {
267      "id": "TimeWindow",
268      "description": "A time window of (start_time, end_time].",
269      "type": "object",
270      "properties": {
271        "startTime": {
272          "description": "Start time of the time window (exclusive).",
273          "type": "string",
274          "format": "google-datetime"
275        },
276        "endTime": {
277          "description": "End time of the time window (inclusive).\nCurrent timestamp if not specified.",
278          "type": "string",
279          "format": "google-datetime"
280        }
281      }
282    },
283    "Asset": {
284      "id": "Asset",
285      "description": "Cloud asset. This includes all Google Cloud Platform resources,\nCloud IAM policies, and other non-GCP assets.",
286      "type": "object",
287      "properties": {
288        "name": {
289          "description": "The full name of the asset. For example:\n`\/\/compute.googleapis.com\/projects\/my_project_123\/zones\/zone1\/instances\/instance1`.\nSee [Resource\nNames](https:\/\/cloud.google.com\/apis\/design\/resource_names#full_resource_name)\nfor more information.",
290          "type": "string"
291        },
292        "assetType": {
293          "description": "Type of the asset. Example: \"compute.googleapis.com\/Disk\".",
294          "type": "string"
295        },
296        "resource": {
297          "description": "Representation of the resource.",
298          "$ref": "Resource"
299        },
300        "iamPolicy": {
301          "description": "Representation of the actual Cloud IAM policy set on a cloud resource. For\neach resource, there must be at most one Cloud IAM policy set on it.",
302          "$ref": "Policy"
303        },
304        "ancestors": {
305          "description": "Asset's ancestry path in Cloud Resource Manager (CRM) hierarchy,\nrepresented as a list of relative resource names. Ancestry path starts with\nthe closest CRM ancestor and ending at a visible root. If the asset is a\nCRM project\/ folder\/organization, this starts from the asset itself.\n\nExample: [\"projects\/123456789\", \"folders\/5432\", \"organizations\/1234\"]",
306          "type": "array",
307          "items": {
308            "type": "string"
309          }
310        }
311      }
312    },
313    "Resource": {
314      "id": "Resource",
315      "description": "Representation of a cloud resource.",
316      "type": "object",
317      "properties": {
318        "version": {
319          "description": "The API version. Example: \"v1\".",
320          "type": "string"
321        },
322        "discoveryDocumentUri": {
323          "description": "The URL of the discovery document containing the resource's JSON schema.\nFor example:\n`\"https:\/\/www.googleapis.com\/discovery\/v1\/apis\/compute\/v1\/rest\"`.\nIt will be left unspecified for resources without a discovery-based API,\nsuch as Cloud Bigtable.",
324          "type": "string"
325        },
326        "discoveryName": {
327          "description": "The JSON schema name listed in the discovery document.\nExample: \"Project\". It will be left unspecified for resources (such as\nCloud Bigtable) without a discovery-based API.",
328          "type": "string"
329        },
330        "resourceUrl": {
331          "description": "The REST URL for accessing the resource. An HTTP GET operation using this\nURL returns the resource itself.\nExample:\n`https:\/\/cloudresourcemanager.googleapis.com\/v1\/projects\/my-project-123`.\nIt will be left unspecified for resources without a REST API.",
332          "type": "string"
333        },
334        "parent": {
335          "description": "The full name of the immediate parent of this resource. See\n[Resource\nNames](https:\/\/cloud.google.com\/apis\/design\/resource_names#full_resource_name)\nfor more information.\n\nFor GCP assets, it is the parent resource defined in the [Cloud IAM policy\nhierarchy](https:\/\/cloud.google.com\/iam\/docs\/overview#policy_hierarchy).\nFor example:\n`\"\/\/cloudresourcemanager.googleapis.com\/projects\/my_project_123\"`.\n\nFor third-party assets, it is up to the users to define.",
336          "type": "string"
337        },
338        "data": {
339          "description": "The content of the resource, in which some sensitive fields are scrubbed\naway and may not be present.",
340          "type": "object",
341          "additionalProperties": {
342            "type": "any",
343            "description": "Properties of the object."
344          }
345        }
346      }
347    },
348    "Policy": {
349      "id": "Policy",
350      "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**JSON Example**\n\n    {\n      \"bindings\": [\n        {\n          \"role\": \"roles\/owner\",\n          \"members\": [\n            \"user:mike@example.com\",\n            \"group:admins@example.com\",\n            \"domain:google.com\",\n            \"serviceAccount:my-other-app@appspot.gserviceaccount.com\"\n          ]\n        },\n        {\n          \"role\": \"roles\/viewer\",\n          \"members\": [\"user:sean@example.com\"]\n        }\n      ]\n    }\n\n**YAML Example**\n\n    bindings:\n    - members:\n      - user:mike@example.com\n      - group:admins@example.com\n      - domain:google.com\n      - serviceAccount:my-other-app@appspot.gserviceaccount.com\n      role: roles\/owner\n    - members:\n      - user:sean@example.com\n      role: roles\/viewer\n\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https:\/\/cloud.google.com\/iam\/docs).",
351      "type": "object",
352      "properties": {
353        "version": {
354          "description": "Deprecated.",
355          "type": "integer",
356          "format": "int32"
357        },
358        "bindings": {
359          "description": "Associates a list of `members` to a `role`.\n`bindings` with no members will result in an error.",
360          "type": "array",
361          "items": {
362            "$ref": "Binding"
363          }
364        },
365        "auditConfigs": {
366          "description": "Specifies cloud audit logging configuration for this policy.",
367          "type": "array",
368          "items": {
369            "$ref": "AuditConfig"
370          }
371        },
372        "etag": {
373          "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten.",
374          "type": "string",
375          "format": "byte"
376        }
377      }
378    },
379    "Binding": {
380      "id": "Binding",
381      "description": "Associates `members` with a `role`.",
382      "type": "object",
383      "properties": {
384        "role": {
385          "description": "Role that is assigned to `members`.\nFor example, `roles\/viewer`, `roles\/editor`, or `roles\/owner`.",
386          "type": "string"
387        },
388        "members": {
389          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@example.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
390          "type": "array",
391          "items": {
392            "type": "string"
393          }
394        },
395        "condition": {
396          "description": "The condition that is associated with this binding.\nNOTE: An unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently.",
397          "$ref": "Expr"
398        }
399      }
400    },
401    "Expr": {
402      "id": "Expr",
403      "description": "Represents an expression text. Example:\n\n    title: \"User account presence\"\n    description: \"Determines whether the request has a user account\"\n    expression: \"size(request.user) > 0\"",
404      "type": "object",
405      "properties": {
406        "expression": {
407          "description": "Textual representation of an expression in\nCommon Expression Language syntax.\n\nThe application context of the containing message determines which\nwell-known feature set of CEL is supported.",
408          "type": "string"
409        },
410        "title": {
411          "description": "An optional title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.",
412          "type": "string"
413        },
414        "description": {
415          "description": "An optional description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.",
416          "type": "string"
417        },
418        "location": {
419          "description": "An optional string indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.",
420          "type": "string"
421        }
422      }
423    },
424    "AuditConfig": {
425      "id": "AuditConfig",
426      "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditLogConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n    {\n      \"audit_configs\": [\n        {\n          \"service\": \"allServices\"\n          \"audit_log_configs\": [\n            {\n              \"log_type\": \"DATA_READ\",\n              \"exempted_members\": [\n                \"user:jose@example.com\"\n              ]\n            },\n            {\n              \"log_type\": \"DATA_WRITE\",\n            },\n            {\n              \"log_type\": \"ADMIN_READ\",\n            }\n          ]\n        },\n        {\n          \"service\": \"sampleservice.googleapis.com\"\n          \"audit_log_configs\": [\n            {\n              \"log_type\": \"DATA_READ\",\n            },\n            {\n              \"log_type\": \"DATA_WRITE\",\n              \"exempted_members\": [\n                \"user:aliya@example.com\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\n\nFor sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts jose@example.com from DATA_READ logging, and\naliya@example.com from DATA_WRITE logging.",
427      "type": "object",
428      "properties": {
429        "service": {
430          "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.",
431          "type": "string"
432        },
433        "auditLogConfigs": {
434          "description": "The configuration for logging of each type of permission.",
435          "type": "array",
436          "items": {
437            "$ref": "AuditLogConfig"
438          }
439        }
440      }
441    },
442    "AuditLogConfig": {
443      "id": "AuditLogConfig",
444      "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n    {\n      \"audit_log_configs\": [\n        {\n          \"log_type\": \"DATA_READ\",\n          \"exempted_members\": [\n            \"user:jose@example.com\"\n          ]\n        },\n        {\n          \"log_type\": \"DATA_WRITE\",\n        }\n      ]\n    }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\njose@example.com from DATA_READ logging.",
445      "type": "object",
446      "properties": {
447        "logType": {
448          "description": "The log type that this config enables.",
449          "enumDescriptions": [
450            "Default case. Should never be this.",
451            "Admin reads. Example: CloudIAM getIamPolicy",
452            "Data writes. Example: CloudSQL Users create",
453            "Data reads. Example: CloudSQL Users list"
454          ],
455          "type": "string",
456          "enum": [
457            "LOG_TYPE_UNSPECIFIED",
458            "ADMIN_READ",
459            "DATA_WRITE",
460            "DATA_READ"
461          ]
462        },
463        "exemptedMembers": {
464          "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.",
465          "type": "array",
466          "items": {
467            "type": "string"
468          }
469        },
470        "ignoreChildExemptions": {
471          "description": "Specifies whether principals can be exempted for the same LogType in\nlower-level resource policies. If true, any lower-level exemptions will\nbe ignored.",
472          "type": "boolean"
473        }
474      }
475    },
476    "CreateFeedRequest": {
477      "id": "CreateFeedRequest",
478      "description": "Create asset feed request.",
479      "type": "object",
480      "properties": {
481        "feedId": {
482          "description": "Required. This is the client-assigned asset feed identifier and it needs to\nbe unique under a specific parent project\/folder\/organization.",
483          "type": "string"
484        },
485        "feed": {
486          "description": "The feed details. The field `name` must be empty and it will be generated\nin the format of:\nprojects\/project_number\/feeds\/feed_id\nfolders\/folder_number\/feeds\/feed_id\norganizations\/organization_number\/feeds\/feed_id",
487          "$ref": "Feed"
488        }
489      }
490    },
491    "Feed": {
492      "id": "Feed",
493      "description": "An asset feed used to export asset updates to a destinations.\nAn asset feed filter controls what updates are exported.\nThe asset feed must be created within a project, organization, or\nfolder. Supported destinations are:\nCloud Pub\/Sub topics.",
494      "type": "object",
495      "properties": {
496        "name": {
497          "description": "Required. The format will be\nprojects\/{project_number}\/feeds\/{client-assigned_feed_identifier} or\nfolders\/{folder_number}\/feeds\/{client-assigned_feed_identifier} or\norganizations\/{organization_number}\/feeds\/{client-assigned_feed_identifier}\n\nThe client-assigned feed identifier must be unique within the parent\nproject\/folder\/organization.",
498          "type": "string"
499        },
500        "assetNames": {
501          "description": "A list of the full names of the assets to receive updates. You must specify\neither or both of asset_names and asset_types. Only asset updates matching\nspecified asset_names and asset_types are exported to the feed. For\nexample:\n`\/\/compute.googleapis.com\/projects\/my_project_123\/zones\/zone1\/instances\/instance1`.\nSee [Resource\nNames](https:\/\/cloud.google.com\/apis\/design\/resource_names#full_resource_name)\nfor more info.",
502          "type": "array",
503          "items": {
504            "type": "string"
505          }
506        },
507        "assetTypes": {
508          "description": "A list of types of the assets to receive updates. You must specify either\nor both of asset_names and asset_types. Only asset updates matching\nspecified asset_names and asset_types are exported to the feed.\nFor example:\n\"compute.googleapis.com\/Disk\" See [Introduction to Cloud Asset\nInventory](https:\/\/cloud.google.com\/resource-manager\/docs\/cloud-asset-inventory\/overview)\nfor all supported asset types.",
509          "type": "array",
510          "items": {
511            "type": "string"
512          }
513        },
514        "contentType": {
515          "description": "Asset content type. If not specified, no content but the asset name and\ntype will be returned.",
516          "enumDescriptions": [
517            "Unspecified content type.",
518            "Resource metadata.",
519            "The actual IAM policy set on a resource."
520          ],
521          "type": "string",
522          "enum": [
523            "CONTENT_TYPE_UNSPECIFIED",
524            "RESOURCE",
525            "IAM_POLICY"
526          ]
527        },
528        "feedOutputConfig": {
529          "description": "Required. Feed output configuration defining where the asset updates are\npublished to.",
530          "$ref": "FeedOutputConfig"
531        }
532      }
533    },
534    "FeedOutputConfig": {
535      "id": "FeedOutputConfig",
536      "description": "Output configuration for asset feed destination.",
537      "type": "object",
538      "properties": {
539        "pubsubDestination": {
540          "description": "Destination on Cloud Pubsub.",
541          "$ref": "PubsubDestination"
542        }
543      }
544    },
545    "PubsubDestination": {
546      "id": "PubsubDestination",
547      "description": "A Cloud Pubsub destination.",
548      "type": "object",
549      "properties": {
550        "topic": {
551          "description": "The name of the Cloud Pub\/Sub topic to publish to.\nFor example: `projects\/PROJECT_ID\/topics\/TOPIC_ID`.",
552          "type": "string"
553        }
554      }
555    },
556    "ListFeedsResponse": {
557      "id": "ListFeedsResponse",
558      "type": "object",
559      "properties": {
560        "feeds": {
561          "description": "A list of feeds.",
562          "type": "array",
563          "items": {
564            "$ref": "Feed"
565          }
566        }
567      }
568    },
569    "UpdateFeedRequest": {
570      "id": "UpdateFeedRequest",
571      "description": "Update asset feed request.",
572      "type": "object",
573      "properties": {
574        "feed": {
575          "description": "The new values of feed details. It must match an existing feed and the\nfield `name` must be in the format of:\nprojects\/project_number\/feeds\/feed_id or\nfolders\/folder_number\/feeds\/feed_id or\norganizations\/organization_number\/feeds\/feed_id.",
576          "$ref": "Feed"
577        },
578        "updateMask": {
579          "description": "Only updates the `feed` fields indicated by this mask.\nThe field mask must not be empty, and it must not contain fields that\nare immutable or only set by the server.",
580          "type": "string",
581          "format": "google-fieldmask"
582        }
583      }
584    },
585    "Empty": {
586      "id": "Empty",
587      "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n    service Foo {\n      rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n    }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
588      "type": "object",
589      "properties": {
590      }
591    }
592  },
593  "resources": {
594    "v1p2beta1": {
595      "methods": {
596        "exportAssets": {
597          "id": "cloudasset.exportAssets",
598          "path": "v1p2beta1/{+parent}:exportAssets",
599          "flatPath": "v1p2beta1/{v1p2beta1Id}/{v1p2beta1Id1}:exportAssets",
600          "httpMethod": "POST",
601          "parameters": {
602            "parent": {
603              "description": "Required. The relative name of the root asset. This can only be an\norganization number (such as \"organizations\/123\"), a project ID (such as\n\"projects\/my-project-id\"), or a project number (such as \"projects\/12345\").",
604              "location": "path",
605              "required": true,
606              "pattern": "^[^\/]+\/[^\/]+$",
607              "type": "string"
608            }
609          },
610          "parameterOrder": [
611            "parent"
612          ],
613          "request": {
614            "$ref": "ExportAssetsRequest"
615          },
616          "response": {
617            "$ref": "Operation"
618          },
619          "scopes": [
620            "https://www.googleapis.com/auth/cloud-platform"
621          ],
622          "description": "Exports assets with time and resource types to a given Cloud Storage\nlocation. The output format is newline-delimited JSON.\nThis API implements the google.longrunning.Operation API allowing you\nto keep track of the export."
623        },
624        "batchGetAssetsHistory": {
625          "id": "cloudasset.batchGetAssetsHistory",
626          "path": "v1p2beta1/{+parent}:batchGetAssetsHistory",
627          "flatPath": "v1p2beta1/{v1p2beta1Id}/{v1p2beta1Id1}:batchGetAssetsHistory",
628          "httpMethod": "GET",
629          "parameters": {
630            "parent": {
631              "description": "Required. The relative name of the root asset. It can only be an\norganization number (such as \"organizations\/123\"), a project ID (such as\n\"projects\/my-project-id\")\", or a project number (such as \"projects\/12345\").",
632              "location": "path",
633              "required": true,
634              "pattern": "^[^\/]+\/[^\/]+$",
635              "type": "string"
636            },
637            "assetNames": {
638              "description": "A list of the full names of the assets. For example:\n`\/\/compute.googleapis.com\/projects\/my_project_123\/zones\/zone1\/instances\/instance1`.\nSee [Resource\nNames](https:\/\/cloud.google.com\/apis\/design\/resource_names#full_resource_name)\nand [Resource Name\nFormat](https:\/\/cloud.google.com\/resource-manager\/docs\/cloud-asset-inventory\/resource-name-format)\nfor more info.\n\nThe request becomes a no-op if the asset name list is empty, and the max\nsize of the asset name list is 100 in one request.",
639              "location": "query",
640              "repeated": true,
641              "type": "string"
642            },
643            "contentType": {
644              "description": "Required. The content type.",
645              "location": "query",
646              "type": "string",
647              "enum": [
648                "CONTENT_TYPE_UNSPECIFIED",
649                "RESOURCE",
650                "IAM_POLICY"
651              ]
652            },
653            "readTimeWindow.startTime": {
654              "description": "Start time of the time window (exclusive).",
655              "location": "query",
656              "type": "string",
657              "format": "google-datetime"
658            },
659            "readTimeWindow.endTime": {
660              "description": "End time of the time window (inclusive).\nCurrent timestamp if not specified.",
661              "location": "query",
662              "type": "string",
663              "format": "google-datetime"
664            }
665          },
666          "parameterOrder": [
667            "parent"
668          ],
669          "response": {
670            "$ref": "BatchGetAssetsHistoryResponse"
671          },
672          "scopes": [
673            "https://www.googleapis.com/auth/cloud-platform"
674          ],
675          "description": "Batch gets the update history of assets that overlap a time window.\nFor RESOURCE content, this API outputs history with asset in both\nnon-delete or deleted status.\nFor IAM_POLICY content, this API outputs history when the asset and its\nattached IAM POLICY both exist. This can create gaps in the output history."
676        }
677      }
678    },
679    "feeds": {
680      "methods": {
681        "create": {
682          "id": "cloudasset.feeds.create",
683          "path": "v1p2beta1/{+parent}/feeds",
684          "flatPath": "v1p2beta1/{v1p2beta1Id}/{v1p2beta1Id1}/feeds",
685          "httpMethod": "POST",
686          "parameters": {
687            "parent": {
688              "description": "Required. The name of the project\/folder\/organization where this feed\nshould be created in. It can only be an organization number (such as\n\"organizations\/123\"), a folder number (such as \"folders\/123\"), a project ID\n(such as \"projects\/my-project-id\")\", or a project number (such as\n\"projects\/12345\").",
689              "location": "path",
690              "required": true,
691              "pattern": "^[^\/]+\/[^\/]+$",
692              "type": "string"
693            }
694          },
695          "parameterOrder": [
696            "parent"
697          ],
698          "request": {
699            "$ref": "CreateFeedRequest"
700          },
701          "response": {
702            "$ref": "Feed"
703          },
704          "scopes": [
705            "https://www.googleapis.com/auth/cloud-platform"
706          ],
707          "description": "Creates a feed in a parent project\/folder\/organization to listen to its\nasset updates."
708        },
709        "get": {
710          "id": "cloudasset.feeds.get",
711          "path": "v1p2beta1/{+name}",
712          "flatPath": "v1p2beta1/{v1p2beta1Id}/{v1p2beta1Id1}/feeds/{feedsId}",
713          "httpMethod": "GET",
714          "parameters": {
715            "name": {
716              "description": "The name of the Feed and it must be in the format of:\nprojects\/project_number\/feeds\/feed_id\nfolders\/folder_number\/feeds\/feed_id\norganizations\/organization_number\/feeds\/feed_id",
717              "location": "path",
718              "required": true,
719              "pattern": "^[^\/]+\/[^\/]+\/feeds\/[^\/]+$",
720              "type": "string"
721            }
722          },
723          "parameterOrder": [
724            "name"
725          ],
726          "response": {
727            "$ref": "Feed"
728          },
729          "scopes": [
730            "https://www.googleapis.com/auth/cloud-platform"
731          ],
732          "description": "Gets details about an asset feed."
733        },
734        "list": {
735          "id": "cloudasset.feeds.list",
736          "path": "v1p2beta1/{+parent}/feeds",
737          "flatPath": "v1p2beta1/{v1p2beta1Id}/{v1p2beta1Id1}/feeds",
738          "httpMethod": "GET",
739          "parameters": {
740            "parent": {
741              "description": "Required. The parent project\/folder\/organization whose feeds are to be\nlisted. It can only be using project\/folder\/organization number (such as\n\"folders\/12345\")\", or a project ID (such as \"projects\/my-project-id\").",
742              "location": "path",
743              "required": true,
744              "pattern": "^[^\/]+\/[^\/]+$",
745              "type": "string"
746            }
747          },
748          "parameterOrder": [
749            "parent"
750          ],
751          "response": {
752            "$ref": "ListFeedsResponse"
753          },
754          "scopes": [
755            "https://www.googleapis.com/auth/cloud-platform"
756          ],
757          "description": "Lists all asset feeds in a parent project\/folder\/organization."
758        },
759        "patch": {
760          "id": "cloudasset.feeds.patch",
761          "path": "v1p2beta1/{+name}",
762          "flatPath": "v1p2beta1/{v1p2beta1Id}/{v1p2beta1Id1}/feeds/{feedsId}",
763          "httpMethod": "PATCH",
764          "parameters": {
765            "name": {
766              "description": "Required. The format will be\nprojects\/{project_number}\/feeds\/{client-assigned_feed_identifier} or\nfolders\/{folder_number}\/feeds\/{client-assigned_feed_identifier} or\norganizations\/{organization_number}\/feeds\/{client-assigned_feed_identifier}\n\nThe client-assigned feed identifier must be unique within the parent\nproject\/folder\/organization.",
767              "location": "path",
768              "required": true,
769              "pattern": "^[^\/]+\/[^\/]+\/feeds\/[^\/]+$",
770              "type": "string"
771            }
772          },
773          "parameterOrder": [
774            "name"
775          ],
776          "request": {
777            "$ref": "UpdateFeedRequest"
778          },
779          "response": {
780            "$ref": "Feed"
781          },
782          "scopes": [
783            "https://www.googleapis.com/auth/cloud-platform"
784          ],
785          "description": "Updates an asset feed configuration."
786        },
787        "delete": {
788          "id": "cloudasset.feeds.delete",
789          "path": "v1p2beta1/{+name}",
790          "flatPath": "v1p2beta1/{v1p2beta1Id}/{v1p2beta1Id1}/feeds/{feedsId}",
791          "httpMethod": "DELETE",
792          "parameters": {
793            "name": {
794              "description": "The name of the feed and it must be in the format of:\nprojects\/project_number\/feeds\/feed_id\nfolders\/folder_number\/feeds\/feed_id\norganizations\/organization_number\/feeds\/feed_id",
795              "location": "path",
796              "required": true,
797              "pattern": "^[^\/]+\/[^\/]+\/feeds\/[^\/]+$",
798              "type": "string"
799            }
800          },
801          "parameterOrder": [
802            "name"
803          ],
804          "response": {
805            "$ref": "Empty"
806          },
807          "scopes": [
808            "https://www.googleapis.com/auth/cloud-platform"
809          ],
810          "description": "Deletes an asset feed."
811        }
812      }
813    }
814  },
815  "basePath": ""
816}