{
  "basePath": "",
  "parameters": {
    "upload_protocol": {
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "type": "string"
    },
    "quotaUser": {
      "location": "query",
      "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.",
      "type": "string"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "location": "query",
      "description": "Returns response with indentations and line breaks.",
      "default": "true"
    },
    "access_token": {
      "location": "query",
      "description": "OAuth access token.",
      "type": "string"
    },
    "oauth_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth 2.0 token for the current user."
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "alt": {
      "default": "json",
      "location": "query",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "type": "string"
    },
    "key": {
      "location": "query",
      "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.",
      "type": "string"
    },
    "$.xgafv": {
      "description": "V1 error format.",
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "enum": [
        "1",
        "2"
      ]
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "type": "string",
      "location": "query"
    }
  },
  "mtlsRootUrl": "https://storageinsights.mtls.googleapis.com/",
  "description": "Provides insights capability on Google Cloud Storage.",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "documentationLink": "https://cloud.google.com/storage/docs/metadata",
  "servicePath": "",
  "protocol": "rest",
  "baseUrl": "https://storageinsights.googleapis.com/",
  "fullyEncodeReservedExpansion": true,
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "schemas": {
    "BucketErrors": {
      "id": "BucketErrors",
      "description": "Provides a summary of the bucket level error statistics.",
      "properties": {
        "validatedCount": {
          "description": "Optional. Count of successfully validated buckets.",
          "type": "string",
          "format": "int64"
        },
        "nonStorageIntelligenceEntitledBucketIds": {
          "description": "Optional. Subset of bucket names that are not subscribed to Storage Intelligence.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "nonStorageIntelligenceEntitledCount": {
          "description": "Optional. Count of buckets that are not subscribed to Storage Intelligence.",
          "format": "int64",
          "type": "string"
        },
        "permissionDeniedCount": {
          "type": "string",
          "format": "int64",
          "description": "Optional. Count of buckets with permission denied errors."
        },
        "internalErrorCount": {
          "description": "Optional. Number of buckets that encountered internal errors during the validation process. These buckets are automatically retried in subsequent validation attempts.",
          "format": "int64",
          "type": "string"
        },
        "nonManagementHubEntitledCount": {
          "format": "int64",
          "type": "string",
          "description": "Optional. Count of buckets that are not subscribed to Storage Intelligence.",
          "deprecated": true
        },
        "permissionDeniedBucketIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional. Subset of bucket names that have permission denied."
        }
      },
      "type": "object"
    },
    "ObjectMetadataReportOptions": {
      "description": "Options for including metadata in an inventory report.",
      "type": "object",
      "id": "ObjectMetadataReportOptions",
      "properties": {
        "storageDestinationOptions": {
          "$ref": "CloudStorageDestinationOptions",
          "description": "Options to store reports in Cloud Storage."
        },
        "storageFilters": {
          "$ref": "CloudStorageFilters",
          "description": "Filters buckets to generate inventory reports for Cloud Storage."
        },
        "metadataFields": {
          "description": "Optional. The metadata fields included in an inventory report.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "Operation": {
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "properties": {
        "name": {
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
          "type": "string"
        },
        "error": {
          "$ref": "Status",
          "description": "The error result of the operation in case of failure or cancellation."
        },
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
          "type": "boolean"
        },
        "metadata": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object",
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any."
        },
        "response": {
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        }
      },
      "type": "object",
      "id": "Operation"
    },
    "ValidationErrorsBeforeIngestion": {
      "id": "ValidationErrorsBeforeIngestion",
      "description": "Summary of validation errors that occurred during the verification phase.",
      "type": "object",
      "properties": {
        "bucketErrors": {
          "description": "Optional. Provides a summary of the bucket level error stats.",
          "$ref": "BucketErrors"
        },
        "projectErrors": {
          "description": "Optional. Provides a summary of the project level error stats.",
          "$ref": "ProjectErrors"
        }
      }
    },
    "SourceFolders": {
      "id": "SourceFolders",
      "type": "object",
      "description": "Specifies a set of folders to include in the dataset",
      "properties": {
        "folderNumbers": {
          "type": "array",
          "description": "Optional. The list of folder numbers to include in the dataset.",
          "items": {
            "format": "int64",
            "type": "string"
          }
        }
      }
    },
    "ProjectErrors": {
      "id": "ProjectErrors",
      "description": "Provides a summary of the project level error statistics.",
      "type": "object",
      "properties": {
        "nonStorageIntelligenceEntitledErrorCount": {
          "format": "int64",
          "type": "string",
          "description": "Optional. Count of projects that are not subscribed to Storage Intelligence."
        },
        "nonManagementHubEntitledProjectNumbers": {
          "items": {
            "type": "string",
            "format": "int64"
          },
          "description": "Optional. Subset of project numbers that are not subscribed to Storage Intelligence.",
          "deprecated": true,
          "type": "array"
        },
        "validatedCount": {
          "type": "string",
          "description": "Optional. Count of successfully validated projects.",
          "format": "int64"
        },
        "outsideOrgProjectNumbers": {
          "description": "Optional. Subset of project numbers which are not in the same organization.",
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "internalErrorCount": {
          "format": "int64",
          "description": "Optional. Number of projects that encountered internal errors during validation and are automatically retried.",
          "type": "string"
        },
        "destinationProjectCheckHasInternalError": {
          "description": "Optional. Indicates whether the destination project check failed due to an internal error. If `true`, the system automatically retries the check.",
          "type": "boolean"
        },
        "nonStorageIntelligenceEntitledProjectNumbers": {
          "items": {
            "format": "int64",
            "type": "string"
          },
          "type": "array",
          "description": "Optional. Subset of project numbers that are not subscribed to Storage Intelligence."
        },
        "outsideOrgErrorCount": {
          "format": "int64",
          "description": "Optional. Count of projects which are not in the same organization.",
          "type": "string"
        },
        "nonManagementHubEntitledErrorCount": {
          "format": "int64",
          "type": "string",
          "description": "Optional. Count of projects that are not subscribed to Storage Intelligence.",
          "deprecated": true
        },
        "destinationProjectOrgError": {
          "description": "Optional. Indicates if the destination project resides within the same organization as the source project.",
          "type": "boolean"
        }
      }
    },
    "ListReportConfigsResponse": {
      "type": "object",
      "id": "ListReportConfigsResponse",
      "properties": {
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "reportConfigs": {
          "items": {
            "$ref": "ReportConfig"
          },
          "type": "array",
          "description": "The list of `ReportConfig`"
        }
      },
      "description": "Response message for `ListReportConfigs`"
    },
    "LocationMetadata": {
      "type": "object",
      "description": "Metadata that helps discover which resources are available in a location.",
      "properties": {
        "reportConfigAvailable": {
          "description": "If true, `storageinsights.googleapis.com/ReportConfig` resource is available at the location.",
          "type": "boolean"
        },
        "datasetConfigAvailable": {
          "description": "If true, `storageinsights.googleapis.com/DatasetConfig` resource is available at the location.",
          "type": "boolean"
        }
      },
      "id": "LocationMetadata"
    },
    "ReportDetail": {
      "type": "object",
      "id": "ReportDetail",
      "description": "Message describing the `ReportDetail` object. `ReportDetail` represents the metadata of the generated inventory report for a report configuration.",
      "properties": {
        "reportPathPrefix": {
          "description": "Prefix of the object name of each report's shard. This has the full prefix except the `extension` and `shard_id`. For example, if the `destination_path` is `{report-config-id}/dt={datetime}`, then the shard object name is `gs://my-insights/1A34-F2E456-12B456-1C3D/dt=2022-05-20T06:35/1A34-F2E456-12B456-1C3D_2022-05-20T06:35_5.csv` and the value of `reportPathPrefix` field is `gs://my-insights/1A34-F2E456-12B456-1C3D/dt=2022-05-20T06:35/1A34-F2E456-12B456-1C3D_2022-05-20T06:35_`.",
          "type": "string"
        },
        "reportMetrics": {
          "$ref": "Metrics",
          "description": "Metrics of the inventory report."
        },
        "status": {
          "$ref": "Status",
          "description": "Status of the inventory report."
        },
        "targetDatetime": {
          "description": "The date and time of the inventory report generation. This field is auto-populated. The time part of `target_datetime` is always `0`.",
          "$ref": "DateTime"
        },
        "shardsCount": {
          "type": "string",
          "format": "int64",
          "description": "Total shards generated for the inventory report."
        },
        "name": {
          "type": "string",
          "description": "Name of resource. Format: `projects/{project_number}/locations/{location}/reportConfigs/{report-config-id}/reportDetails/{report-detail-id}`."
        },
        "snapshotTime": {
          "description": "The snapshot time. All the inventory report data is referenced at this point of time.",
          "type": "string",
          "format": "google-datetime"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Labels as key value pairs"
        }
      }
    },
    "ListOperationsResponse": {
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations.",
      "properties": {
        "operations": {
          "type": "array",
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "Operation"
          }
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "unreachable": {
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListReportDetailsResponse": {
      "description": "Response message for `ListReportDetails`.",
      "id": "ListReportDetailsResponse",
      "properties": {
        "reportDetails": {
          "type": "array",
          "description": "The list of `ReportDetail`",
          "items": {
            "$ref": "ReportDetail"
          }
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached."
        }
      },
      "type": "object"
    },
    "Date": {
      "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
      "id": "Date",
      "properties": {
        "year": {
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
          "type": "integer",
          "format": "int32"
        },
        "month": {
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
          "format": "int32",
          "type": "integer"
        },
        "day": {
          "type": "integer",
          "format": "int32",
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant."
        }
      },
      "type": "object"
    },
    "ListLocationsResponse": {
      "type": "object",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "The standard List next-page token."
        },
        "locations": {
          "items": {
            "$ref": "Location"
          },
          "description": "A list of locations that matches the specified filter in the request.",
          "type": "array"
        }
      },
      "description": "The response message for Locations.ListLocations.",
      "id": "ListLocationsResponse"
    },
    "CloudStorageBucket": {
      "properties": {
        "bucketPrefixRegex": {
          "type": "string",
          "description": "A regex pattern for bucket names matching the regex. Regex should follow the syntax specified in `google/re2` on GitHub."
        },
        "bucketName": {
          "description": "Cloud Storage bucket name.",
          "type": "string"
        }
      },
      "id": "CloudStorageBucket",
      "type": "object",
      "description": "Defines the bucket by its name or a regex pattern to match buckets."
    },
    "LinkDatasetRequest": {
      "type": "object",
      "description": "Request message for `LinkDataset`",
      "id": "LinkDatasetRequest",
      "properties": {}
    },
    "DateTime": {
      "id": "DateTime",
      "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.",
      "properties": {
        "day": {
          "type": "integer",
          "description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.",
          "format": "int32"
        },
        "month": {
          "type": "integer",
          "description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.",
          "format": "int32"
        },
        "seconds": {
          "format": "int32",
          "type": "integer",
          "description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds."
        },
        "year": {
          "format": "int32",
          "type": "integer",
          "description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year."
        },
        "timeZone": {
          "$ref": "TimeZone",
          "description": "Time zone."
        },
        "utcOffset": {
          "type": "string",
          "format": "google-duration",
          "description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }."
        },
        "nanos": {
          "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.",
          "type": "integer",
          "format": "int32"
        },
        "minutes": {
          "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.",
          "format": "int32",
          "type": "integer"
        },
        "hours": {
          "type": "integer",
          "description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.",
          "format": "int32"
        }
      },
      "type": "object"
    },
    "OperationMetadata": {
      "type": "object",
      "description": "Represents the metadata of the long-running operation.",
      "properties": {
        "requestedCancellation": {
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "type": "boolean",
          "readOnly": true
        },
        "target": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Server-defined resource path for the target of the operation."
        },
        "statusMessage": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Human-readable status of the operation, if any."
        },
        "apiVersion": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. API version used to start the operation."
        },
        "verb": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Name of the verb executed by the operation."
        },
        "endTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Operation end time.",
          "readOnly": true
        },
        "createTime": {
          "type": "string",
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. Operation create time."
        }
      },
      "id": "OperationMetadata"
    },
    "DatasetConfigInternalView": {
      "type": "object",
      "id": "DatasetConfigInternalView",
      "properties": {
        "tenantProjectId": {
          "type": "string",
          "description": "The tenant project id of where the dataset is created."
        },
        "bqDatasetInTenantProject": {
          "description": "The name of the internal BigQuery dataset created for insights.",
          "type": "string"
        }
      },
      "description": "Message to encapsulate the identifiers for a BigQuery insights dataset. Next ID: 3"
    },
    "ReportConfig": {
      "description": "Message describing the `ReportConfig` object. `ReportConfig` is the configuration used to generate inventory reports. For information about how to set various fields, see [Create an inventory report configuration](https://cloud.google.com/storage/docs/insights/using-inventory-reports#create-report-config).",
      "id": "ReportConfig",
      "properties": {
        "name": {
          "type": "string",
          "description": "Identifier. Name of resource. Format: `projects/{project_id}/locations/{location}/reportConfigs/{report-config-id}`."
        },
        "createTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. The UTC time at which the inventory report configuration was created. This is auto-populated."
        },
        "updateTime": {
          "readOnly": true,
          "description": "Output only. The UTC time at which the inventory report configuration was updated. This is auto-populated.",
          "format": "google-datetime",
          "type": "string"
        },
        "frequencyOptions": {
          "description": "Optional. The frequency of the inventory report generation.",
          "$ref": "FrequencyOptions"
        },
        "objectMetadataReportOptions": {
          "$ref": "ObjectMetadataReportOptions",
          "description": "Options for including object metadata in an inventory report."
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. Labels as key value pairs",
          "type": "object"
        },
        "displayName": {
          "description": "Optional. User provided display name that can be empty and limited to 256 characters that is editable..",
          "type": "string"
        },
        "parquetOptions": {
          "description": "Options for Parquet formatted reports.",
          "$ref": "ParquetOptions"
        },
        "csvOptions": {
          "$ref": "CSVOptions",
          "description": "Options for CSV formatted reports."
        }
      },
      "type": "object"
    },
    "CloudStorageBuckets": {
      "description": "Collection of Cloud Storage buckets.",
      "type": "object",
      "properties": {
        "cloudStorageBuckets": {
          "description": "Optional. The list of Cloud Storage buckets.",
          "type": "array",
          "items": {
            "$ref": "CloudStorageBucket"
          }
        }
      },
      "id": "CloudStorageBuckets"
    },
    "Empty": {
      "type": "object",
      "properties": {},
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "id": "Empty"
    },
    "ReportStatsView": {
      "properties": {
        "projectNumber": {
          "description": "Project Number",
          "format": "int64",
          "type": "string"
        },
        "recordsProcessed": {
          "description": "Actual records processed as reported by the underlying storage system",
          "format": "int64",
          "type": "string"
        },
        "reportDetailId": {
          "description": "ID of the ReportDetail for which the stats are generated",
          "type": "string"
        },
        "bytesWritten": {
          "type": "string",
          "format": "int64",
          "description": "Actual size in bytes for the report written, as reported by the underlying storage system"
        },
        "reportConfigId": {
          "description": "ID of the parent ReportConfig for the corresponding ReportDetail",
          "type": "string"
        }
      },
      "id": "ReportStatsView",
      "type": "object",
      "description": "Message to encapsulate the various statistics related to the generated Report Next ID: 6"
    },
    "Link": {
      "description": "Defines the details about the linked dataset.",
      "type": "object",
      "properties": {
        "dataset": {
          "readOnly": true,
          "description": "Output only. Dataset name for linked dataset.",
          "type": "string"
        },
        "linked": {
          "type": "boolean",
          "description": "Output only. State of the linked dataset.",
          "readOnly": true
        }
      },
      "id": "Link"
    },
    "ParquetOptions": {
      "properties": {},
      "type": "object",
      "id": "ParquetOptions",
      "description": "Options to configure inventory reports in Parquet format."
    },
    "CloudStorageFilters": {
      "properties": {
        "bucket": {
          "description": "Optional. Bucket for which the inventory report is generated.",
          "type": "string"
        }
      },
      "description": "Filters buckets to generate inventory reports for Cloud Storage.",
      "type": "object",
      "id": "CloudStorageFilters"
    },
    "Identity": {
      "description": "Identity lets the user provide the type of identity to use, and outputs the identity string that can be used for IAM policy changes.",
      "properties": {
        "name": {
          "description": "Output only. Name of the identity.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "type": "string",
          "description": "Optional. Type of identity to use for the datasetConfig.",
          "enumDescriptions": [
            "Default is unspecified and should not be used.",
            "Google managed service account per resource.",
            "Google managed service account per project."
          ],
          "enum": [
            "IDENTITY_TYPE_UNSPECIFIED",
            "IDENTITY_TYPE_PER_CONFIG",
            "IDENTITY_TYPE_PER_PROJECT"
          ]
        }
      },
      "type": "object",
      "id": "Identity"
    },
    "CloudStorageLocations": {
      "properties": {
        "locations": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Optional. The list of Cloud Storage locations."
        }
      },
      "id": "CloudStorageLocations",
      "type": "object",
      "description": "Collection of Cloud Storage locations."
    },
    "ListDatasetConfigsResponse": {
      "type": "object",
      "properties": {
        "unreachable": {
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached.",
          "type": "array"
        },
        "datasetConfigs": {
          "type": "array",
          "description": "The list of `DatasetConfigs`",
          "items": {
            "$ref": "DatasetConfig"
          }
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        }
      },
      "description": "Response message for `ListDatasetConfigs`",
      "id": "ListDatasetConfigsResponse"
    },
    "UnlinkDatasetRequest": {
      "description": "Request message for `UnlinkDataset`",
      "properties": {},
      "id": "UnlinkDatasetRequest",
      "type": "object"
    },
    "SourceProjects": {
      "properties": {
        "projectNumbers": {
          "type": "array",
          "items": {
            "format": "int64",
            "type": "string"
          },
          "description": "Optional. The list of project numbers to include in the dataset."
        }
      },
      "description": "Collection of project numbers",
      "id": "SourceProjects",
      "type": "object"
    },
    "CSVOptions": {
      "id": "CSVOptions",
      "properties": {
        "headerRequired": {
          "description": "Optional. If set, includes a header row in the CSV report.",
          "type": "boolean"
        },
        "delimiter": {
          "description": "Optional. Delimiter characters in CSV.",
          "type": "string"
        },
        "recordSeparator": {
          "description": "Optional. Record separator characters in CSV.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Options to configure inventory reports in CSV format."
    },
    "Status": {
      "properties": {
        "details": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use."
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "code": {
          "format": "int32",
          "type": "integer",
          "description": "The status code, which should be an enum value of google.rpc.Code."
        }
      },
      "id": "Status",
      "type": "object",
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors)."
    },
    "CloudStorageDestinationOptions": {
      "properties": {
        "bucket": {
          "description": "Optional. The destination bucket for the inventory reports.",
          "type": "string"
        },
        "destinationPath": {
          "description": "Optional. The destination path within the bucket where the inventory reports are stored.",
          "type": "string"
        }
      },
      "description": "Options to store inventory reports in Cloud Storage.",
      "type": "object",
      "id": "CloudStorageDestinationOptions"
    },
    "FrequencyOptions": {
      "id": "FrequencyOptions",
      "description": "`FrequencyOptions` resource Frequency configuration for inventory report generation.",
      "type": "object",
      "properties": {
        "frequency": {
          "type": "string",
          "description": "Optional. Frequency of inventory report generation.",
          "enumDescriptions": [
            "Unspecified.",
            "Inventory report is generated daily.",
            "Inventory report is generated weekly."
          ],
          "enum": [
            "FREQUENCY_UNSPECIFIED",
            "DAILY",
            "WEEKLY"
          ]
        },
        "endDate": {
          "description": "Optional. The UTC date to stop generating inventory reports. For example,`{\"day\": 15, \"month\": 8, \"year\": 2022}`.",
          "$ref": "Date"
        },
        "startDate": {
          "description": "Optional. The UTC date to start generating inventory reports. For example,`{\"day\": 15, \"month\": 8, \"year\": 2022}`.",
          "$ref": "Date"
        }
      }
    },
    "Location": {
      "properties": {
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "description": "Service-specific metadata. For example the available capacity at the given location."
        },
        "displayName": {
          "type": "string",
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\"."
        },
        "name": {
          "type": "string",
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`"
        },
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}"
        }
      },
      "type": "object",
      "id": "Location",
      "description": "A resource that represents a Google Cloud location."
    },
    "Metrics": {
      "properties": {
        "processedRecordsCount": {
          "format": "int64",
          "type": "string",
          "description": "Count of Cloud Storage objects that are part of the inventory report."
        }
      },
      "description": "Metrics associated with the generated report.",
      "type": "object",
      "id": "Metrics"
    },
    "DatasetConfig": {
      "description": "Message describing the dataset configuration properties. For more information, see [Dataset configuration properties](https://cloud.google.com/storage/docs/insights/datasets#dataset-config).",
      "id": "DatasetConfig",
      "type": "object",
      "properties": {
        "cloudStorageObjectPath": {
          "description": "Input only. Cloud Storage object path containing a list of project or folder numbers to include in the dataset; it cannot contain a mix of project and folders. The object must be a text file where each line has one of the following entries: - Project number, formatted as `projects/{project_number}`, for example, `projects/1234567890`. - Folder identifier, formatted as `folders/{folder_number}`, for example, `folders/9876543210`. Path must be in the format `gs://{bucket_name}/{object_name}`.",
          "type": "string"
        },
        "includeCloudStorageLocations": {
          "description": "Cloud Storage locations to include in the dataset.",
          "$ref": "CloudStorageLocations"
        },
        "excludeCloudStorageLocations": {
          "$ref": "CloudStorageLocations",
          "description": "Cloud Storage locations to exclude from the dataset."
        },
        "updateTime": {
          "type": "string",
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. The UTC time at which the dataset configuration was last updated. This is auto-populated."
        },
        "name": {
          "type": "string",
          "description": "Identifier. name of resource"
        },
        "link": {
          "description": "Output only. Details of the linked dataset.",
          "$ref": "Link",
          "readOnly": true
        },
        "includeNewlyCreatedBuckets": {
          "description": "Optional. If set to `true`, the request includes all the newly created buckets in the dataset that meet the inclusion and exclusion rules.",
          "type": "boolean"
        },
        "sourceProjects": {
          "$ref": "SourceProjects",
          "description": "Defines the options for providing source projects for the dataset."
        },
        "retentionPeriodDays": {
          "description": "Optional. Number of days of history that must be retained.",
          "format": "int32",
          "type": "integer"
        },
        "identity": {
          "$ref": "Identity",
          "description": "Optional. Identity used by this `datasetConfig`."
        },
        "sourceFolders": {
          "$ref": "SourceFolders",
          "description": "Defines the options for providing source folders for the dataset."
        },
        "createTime": {
          "description": "Output only. The UTC time at which the dataset configuration was created. This is auto-populated.",
          "format": "google-datetime",
          "type": "string",
          "readOnly": true
        },
        "organizationScope": {
          "description": "Defines the options for providing a source organization for the dataset.",
          "type": "boolean"
        },
        "includeCloudStorageBuckets": {
          "$ref": "CloudStorageBuckets",
          "description": "Cloud Storage buckets to include in the dataset."
        },
        "skipVerificationAndIngest": {
          "description": "Optional. If set to `false`, then all the permission checks must be successful before the system can start ingesting data. This field can only be updated before the system ingests data for the first time. Any attempt to modify the field after data ingestion starts results in an error.",
          "type": "boolean",
          "deprecated": true
        },
        "excludeCloudStorageBuckets": {
          "description": "Cloud Storage buckets to exclude from the dataset.",
          "$ref": "CloudStorageBuckets"
        },
        "organizationNumber": {
          "type": "string",
          "format": "int64",
          "description": "Optional. Organization resource ID that the source projects should belong to. Projects that do not belong to the provided organization are not considered when creating the dataset."
        },
        "datasetConfigState": {
          "enumDescriptions": [
            "Unspecified state.",
            "Active configuration indicates that the configuration is actively ingesting data.",
            "In this state, the configuration is being verified for various permissions.",
            "Configuration is created and further processing needs to happen.",
            "Configuration is under processing"
          ],
          "description": "Output only. State of the `datasetConfig`.",
          "enum": [
            "CONFIG_STATE_UNSPECIFIED",
            "CONFIG_STATE_ACTIVE",
            "CONFIG_STATE_VERIFICATION_IN_PROGRESS",
            "CONFIG_STATE_CREATED",
            "CONFIG_STATE_PROCESSING"
          ],
          "type": "string",
          "readOnly": true
        },
        "activityDataRetentionPeriodDays": {
          "type": "integer",
          "format": "int32",
          "description": "Optional. When set, overrides the retention period for activity data. Otherwise, the `retention_period_days` value is used for activity data as well."
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Optional. Labels as key value pairs",
          "type": "object"
        },
        "description": {
          "description": "Optional. A user-provided description for the dataset configuration. Maximum length: 256 characters.",
          "type": "string"
        },
        "status": {
          "readOnly": true,
          "description": "Output only. Status of the `datasetConfig`.",
          "$ref": "Status"
        },
        "uid": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. System generated unique identifier for the resource."
        }
      }
    },
    "CancelOperationRequest": {
      "description": "The request message for Operations.CancelOperation.",
      "type": "object",
      "properties": {},
      "id": "CancelOperationRequest"
    },
    "TimeZone": {
      "type": "object",
      "properties": {
        "version": {
          "description": "Optional. IANA Time Zone Database version number. For example \"2019a\".",
          "type": "string"
        },
        "id": {
          "type": "string",
          "description": "IANA Time Zone Database time zone. For example \"America/New_York\"."
        }
      },
      "id": "TimeZone",
      "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones)."
    }
  },
  "batchPath": "batch",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "resources": {
            "reportConfigs": {
              "resources": {
                "reportDetails": {
                  "methods": {
                    "get": {
                      "id": "storageinsights.projects.locations.reportConfigs.reportDetails.get",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reportDetails/{reportDetailsId}",
                      "parameters": {
                        "name": {
                          "required": true,
                          "description": "Required. Name of the resource",
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reportDetails/[^/]+$"
                        }
                      },
                      "description": "Gets an existing inventory report in a given project for a given location.",
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "ReportDetail"
                      }
                    },
                    "list": {
                      "id": "storageinsights.projects.locations.reportConfigs.reportDetails.list",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "ListReportDetailsResponse"
                      },
                      "path": "v1/{+parent}/reportDetails",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reportDetails",
                      "description": "Lists the inventory reports in a given project for a given location.",
                      "parameters": {
                        "pageSize": {
                          "description": "Optional. Requested page size. The server might return fewer items than requested. If unspecified, the server picks the default value.",
                          "format": "int32",
                          "location": "query",
                          "type": "integer"
                        },
                        "filter": {
                          "description": "Optional. Filtering results",
                          "location": "query",
                          "type": "string"
                        },
                        "parent": {
                          "required": true,
                          "location": "path",
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                          "description": "Required. Parent value for `ListReportDetailsRequest`"
                        },
                        "orderBy": {
                          "location": "query",
                          "description": "Optional. Hint for how to order the results",
                          "type": "string"
                        },
                        "pageToken": {
                          "location": "query",
                          "type": "string",
                          "description": "Optional. A token identifying a page of results the server should return."
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ]
                    }
                  }
                }
              },
              "methods": {
                "create": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs",
                  "description": "Creates a new inventory report configuration in a given project for a given location.",
                  "httpMethod": "POST",
                  "id": "storageinsights.projects.locations.reportConfigs.create",
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "ReportConfig"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "description": "Required. Value for parent.",
                      "required": true,
                      "location": "path"
                    },
                    "requestId": {
                      "type": "string",
                      "description": "Optional. A unique identifier for your request. Specify the request ID if you need to retry the request. If you retry the request with the same ID within 60 minutes, the server ignores the request if it has already completed the original request. For example, if your initial request times out and you retry the request using the same request ID, the server recognizes the original request and does not process the new request. The request ID must be a valid UUID and cannot be a zero UUID (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    }
                  },
                  "response": {
                    "$ref": "ReportConfig"
                  },
                  "path": "v1/{+parent}/reportConfigs"
                },
                "delete": {
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}",
                  "parameters": {
                    "requestId": {
                      "description": "Optional. A unique identifier for your request. Specify the request ID if you need to retry the request. If you retry the request with the same ID within 60 minutes, the server ignores the request if it has already completed the original request. For example, if your initial request times out and you retry the request using the same request ID, the server recognizes the original request and does not process the new request. The request ID must be a valid UUID and cannot be a zero UUID (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                      "location": "path",
                      "description": "Required. Name of the resource",
                      "required": true
                    },
                    "force": {
                      "description": "Optional. If set, all the inventory report details associated with this report configuration are deleted.",
                      "location": "query",
                      "type": "boolean"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "id": "storageinsights.projects.locations.reportConfigs.delete",
                  "response": {
                    "$ref": "Empty"
                  },
                  "description": "Deletes an existing inventory report configuration in a given project for a given location."
                },
                "get": {
                  "path": "v1/{+name}",
                  "description": "Gets the inventory report configuration in a given project for a given location.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}",
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                      "description": "Required. Name of the resource",
                      "type": "string",
                      "location": "path",
                      "required": true
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "ReportConfig"
                  },
                  "id": "storageinsights.projects.locations.reportConfigs.get",
                  "httpMethod": "GET"
                },
                "patch": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}",
                  "parameterOrder": [
                    "name"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}",
                  "httpMethod": "PATCH",
                  "id": "storageinsights.projects.locations.reportConfigs.patch",
                  "request": {
                    "$ref": "ReportConfig"
                  },
                  "parameters": {
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                      "description": "Identifier. Name of resource. Format: `projects/{project_id}/locations/{location}/reportConfigs/{report-config-id}`.",
                      "location": "path",
                      "required": true
                    },
                    "updateMask": {
                      "location": "query",
                      "type": "string",
                      "format": "google-fieldmask",
                      "description": "Required. A mask specifying a list of fields to be updated in the `ReportConfig` resource. The fields specified in the `update_mask` are relative to the resource, not the full request. A field is overwritten if it is in the mask. The `update_mask` is required."
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. A unique identifier for your request. Specify the request ID if you need to retry the request. If you retry the request with the same ID within 60 minutes, the server ignores the request if it has already completed the original request. For example, if your initial request times out and you retry the request using the same request ID, the server recognizes the original request and does not process the new request. The request ID must be a valid UUID and cannot be a zero UUID (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    }
                  },
                  "response": {
                    "$ref": "ReportConfig"
                  },
                  "description": "Updates an existing inventory report configuration in a given project for a given location."
                },
                "list": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "ListReportConfigsResponse"
                  },
                  "path": "v1/{+parent}/reportConfigs",
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "parent"
                  ],
                  "id": "storageinsights.projects.locations.reportConfigs.list",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs",
                  "parameters": {
                    "orderBy": {
                      "location": "query",
                      "type": "string",
                      "description": "Optional. Hint for how to order the results"
                    },
                    "filter": {
                      "type": "string",
                      "description": "Optional. Filtering results",
                      "location": "query"
                    },
                    "pageToken": {
                      "type": "string",
                      "description": "Optional. A token identifying a page of results the server should return.",
                      "location": "query"
                    },
                    "parent": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "Required. Parent value for `ListReportConfigsRequest`"
                    },
                    "pageSize": {
                      "format": "int32",
                      "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, the server picks the default value.",
                      "type": "integer",
                      "location": "query"
                    }
                  },
                  "description": "Lists the inventory report configurations in a given project for a given location."
                }
              }
            },
            "operations": {
              "methods": {
                "get": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
                  "parameters": {
                    "name": {
                      "location": "path",
                      "description": "The name of the operation resource.",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "type": "string"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "storageinsights.projects.locations.operations.get",
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "list": {
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "id": "storageinsights.projects.locations.operations.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}/operations",
                  "parameters": {
                    "returnPartialSuccess": {
                      "location": "query",
                      "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation.",
                      "type": "boolean"
                    },
                    "pageToken": {
                      "type": "string",
                      "location": "query",
                      "description": "The standard list page token."
                    },
                    "filter": {
                      "location": "query",
                      "description": "The standard list filter.",
                      "type": "string"
                    },
                    "name": {
                      "type": "string",
                      "location": "path",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "The name of the operation's parent resource."
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    }
                  },
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations"
                },
                "cancel": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
                  "id": "storageinsights.projects.locations.operations.cancel",
                  "path": "v1/{+name}:cancel",
                  "response": {
                    "$ref": "Empty"
                  },
                  "parameters": {
                    "name": {
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "description": "The name of the operation resource to be cancelled."
                    }
                  }
                },
                "delete": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "DELETE",
                  "id": "storageinsights.projects.locations.operations.delete",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "description": "The name of the operation resource to be deleted.",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path"
                    }
                  },
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "Empty"
                  }
                }
              }
            },
            "datasetConfigs": {
              "methods": {
                "list": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs",
                  "parameterOrder": [
                    "parent"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "storageinsights.projects.locations.datasetConfigs.list",
                  "httpMethod": "GET",
                  "parameters": {
                    "pageSize": {
                      "description": "Optional. Requested page size. Server might return fewer items than requested. If unspecified, server picks an appropriate default.",
                      "type": "integer",
                      "location": "query",
                      "format": "int32"
                    },
                    "filter": {
                      "location": "query",
                      "description": "Optional. Filtering results",
                      "type": "string"
                    },
                    "pageToken": {
                      "type": "string",
                      "location": "query",
                      "description": "Optional. A token identifying a page of results the server should return."
                    },
                    "parent": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "Required. Parent value for ListDatasetConfigsRequest",
                      "location": "path",
                      "required": true
                    },
                    "orderBy": {
                      "type": "string",
                      "description": "Optional. Hint for how to order the results",
                      "location": "query"
                    }
                  },
                  "response": {
                    "$ref": "ListDatasetConfigsResponse"
                  },
                  "path": "v1/{+parent}/datasetConfigs",
                  "description": "Lists the dataset configurations in a given project for a given location."
                },
                "linkDataset": {
                  "request": {
                    "$ref": "LinkDatasetRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/datasetConfigs/[^/]+$",
                      "required": true,
                      "location": "path",
                      "type": "string",
                      "description": "Required. Name of the resource"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}:linkDataset",
                  "id": "storageinsights.projects.locations.datasetConfigs.linkDataset",
                  "description": "Links a dataset to BigQuery in a given project for a given location.",
                  "httpMethod": "POST",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs/{datasetConfigsId}:linkDataset",
                  "parameterOrder": [
                    "name"
                  ]
                },
                "unlinkDataset": {
                  "id": "storageinsights.projects.locations.datasetConfigs.unlinkDataset",
                  "request": {
                    "$ref": "UnlinkDatasetRequest"
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs/{datasetConfigsId}:unlinkDataset",
                  "description": "Unlinks a dataset from BigQuery in a given project for a given location.",
                  "path": "v1/{+name}:unlinkDataset",
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "POST",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/datasetConfigs/[^/]+$",
                      "location": "path",
                      "description": "Required. Name of the resource",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "response": {
                    "$ref": "Operation"
                  }
                },
                "get": {
                  "description": "Gets the dataset configuration in a given project for a given location.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/datasetConfigs/[^/]+$",
                      "required": true,
                      "type": "string",
                      "description": "Required. Name of the resource",
                      "location": "path"
                    }
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs/{datasetConfigsId}",
                  "id": "storageinsights.projects.locations.datasetConfigs.get",
                  "httpMethod": "GET",
                  "response": {
                    "$ref": "DatasetConfig"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1/{+name}"
                },
                "create": {
                  "response": {
                    "$ref": "Operation"
                  },
                  "httpMethod": "POST",
                  "parameterOrder": [
                    "parent"
                  ],
                  "description": "Creates a dataset configuration in a given project for a given location.",
                  "request": {
                    "$ref": "DatasetConfig"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "storageinsights.projects.locations.datasetConfigs.create",
                  "path": "v1/{+parent}/datasetConfigs",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs",
                  "parameters": {
                    "parent": {
                      "description": "Required. Value for parent.",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "location": "path"
                    },
                    "requestId": {
                      "description": "Optional. A unique identifier for your request. Specify the request ID if you need to retry the request. If you retry the request with the same ID within 60 minutes, the server ignores the request if it has already completed the original request. For example, if your initial request times out and you retry the request using the same request ID, the server recognizes the original request and does not process the new request. The request ID must be a valid UUID and cannot be a zero UUID (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    },
                    "datasetConfigId": {
                      "location": "query",
                      "type": "string",
                      "description": "Required. ID of the requesting object. If auto-generating ID is enabled on the server-side, remove this field and `dataset_config_id` from the method_signature of Create RPC Note: The value should not contain any hyphens."
                    }
                  }
                },
                "delete": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs/{datasetConfigsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Deletes a dataset configuration in a given project for a given location.",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource",
                      "pattern": "^projects/[^/]+/locations/[^/]+/datasetConfigs/[^/]+$",
                      "type": "string",
                      "required": true,
                      "location": "path"
                    },
                    "requestId": {
                      "description": "Optional. A unique identifier for your request. Specify the request ID if you need to retry the request. If you retry the request with the same ID within 60 minutes, the server ignores the request if it has already completed the original request. For example, if your initial request times out and you retry the request using the same request ID, the server recognizes the original request and does not process the new request. The request ID must be a valid UUID and cannot be a zero UUID (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    }
                  },
                  "path": "v1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "storageinsights.projects.locations.datasetConfigs.delete",
                  "response": {
                    "$ref": "Operation"
                  },
                  "httpMethod": "DELETE"
                },
                "patch": {
                  "id": "storageinsights.projects.locations.datasetConfigs.patch",
                  "httpMethod": "PATCH",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs/{datasetConfigsId}",
                  "description": "Updates a dataset configuration in a given project for a given location.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "updateMask": {
                      "description": "Required. Field mask is used to specify the fields to be overwritten in the `DatasetConfig` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not provide a mask then it returns an \"Invalid Argument\" error.",
                      "type": "string",
                      "format": "google-fieldmask",
                      "location": "query"
                    },
                    "requestId": {
                      "description": "Optional. A unique identifier for your request. Specify the request ID if you need to retry the request. If you retry the request with the same ID within 60 minutes, the server ignores the request if it has already completed the original request. For example, if your initial request times out and you retry the request using the same request ID, the server recognizes the original request and does not process the new request. The request ID must be a valid UUID and cannot be a zero UUID (00000000-0000-0000-0000-000000000000).",
                      "location": "query",
                      "type": "string"
                    },
                    "name": {
                      "required": true,
                      "type": "string",
                      "location": "path",
                      "description": "Identifier. name of resource",
                      "pattern": "^projects/[^/]+/locations/[^/]+/datasetConfigs/[^/]+$"
                    }
                  },
                  "path": "v1/{+name}",
                  "request": {
                    "$ref": "DatasetConfig"
                  },
                  "response": {
                    "$ref": "Operation"
                  }
                }
              }
            }
          },
          "methods": {
            "list": {
              "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.",
              "httpMethod": "GET",
              "id": "storageinsights.projects.locations.list",
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/projects/{projectsId}/locations",
              "parameters": {
                "pageSize": {
                  "type": "integer",
                  "location": "query",
                  "format": "int32",
                  "description": "The maximum number of results to return. If not set, the service selects a default."
                },
                "pageToken": {
                  "type": "string",
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
                  "location": "query"
                },
                "filter": {
                  "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).",
                  "location": "query",
                  "type": "string"
                },
                "extraLocationTypes": {
                  "location": "query",
                  "repeated": true,
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "type": "string"
                },
                "name": {
                  "description": "The resource that owns the locations collection, if applicable.",
                  "required": true,
                  "pattern": "^projects/[^/]+$",
                  "location": "path",
                  "type": "string"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "path": "v1/{+name}/locations"
            },
            "get": {
              "httpMethod": "GET",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "Location"
              },
              "description": "Gets information about a location.",
              "parameterOrder": [
                "name"
              ],
              "path": "v1/{+name}",
              "parameters": {
                "name": {
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "description": "Resource name for the location.",
                  "required": true
                }
              },
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}",
              "id": "storageinsights.projects.locations.get"
            }
          }
        }
      }
    }
  },
  "revision": "20260930",
  "version": "v1",
  "rootUrl": "https://storageinsights.googleapis.com/",
  "name": "storageinsights",
  "version_module": true,
  "id": "storageinsights:v1",
  "title": "Storage Insights API",
  "canonicalName": "Storage Insights",
  "kind": "discovery#restDescription",
  "discoveryVersion": "v1"
}
