{
  "title": "Storage Insights API",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "parameters": {
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "alt": {
      "type": "string",
      "description": "Data format for response.",
      "default": "json",
      "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"
      ],
      "location": "query"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "key": {
      "type": "string",
      "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.",
      "location": "query"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "quotaUser": {
      "type": "string",
      "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.",
      "location": "query"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "$.xgafv": {
      "type": "string",
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query"
    }
  },
  "id": "storageinsights:v1",
  "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."
        }
      }
    }
  },
  "ownerDomain": "google.com",
  "fullyEncodeReservedExpansion": true,
  "name": "storageinsights",
  "documentationLink": "https://cloud.google.com/storage/docs/metadata",
  "schemas": {
    "ListLocationsResponse": {
      "id": "ListLocationsResponse",
      "description": "The response message for Locations.ListLocations.",
      "type": "object",
      "properties": {
        "locations": {
          "description": "A list of locations that matches the specified filter in the request.",
          "type": "array",
          "items": {
            "$ref": "Location"
          }
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      }
    },
    "Location": {
      "id": "Location",
      "description": "A resource that represents a Google Cloud location.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
          "type": "string"
        },
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        },
        "labels": {
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "metadata": {
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        }
      }
    },
    "ListOperationsResponse": {
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations.",
      "type": "object",
      "properties": {
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "type": "array",
          "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.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "Operation": {
      "id": "Operation",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "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"
        },
        "metadata": {
          "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.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "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"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        },
        "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."
          }
        }
      }
    },
    "Status": {
      "id": "Status",
      "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).",
      "type": "object",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        },
        "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"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          }
        }
      }
    },
    "Empty": {
      "id": "Empty",
      "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); }",
      "type": "object",
      "properties": {}
    },
    "CancelOperationRequest": {
      "id": "CancelOperationRequest",
      "description": "The request message for Operations.CancelOperation.",
      "type": "object",
      "properties": {}
    },
    "ListReportConfigsResponse": {
      "id": "ListReportConfigsResponse",
      "description": "Response message for `ListReportConfigs`",
      "type": "object",
      "properties": {
        "reportConfigs": {
          "description": "The list of `ReportConfig`",
          "type": "array",
          "items": {
            "$ref": "ReportConfig"
          }
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ReportConfig": {
      "id": "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).",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. Name of resource. Format: `projects/{project_id}/locations/{location}/reportConfigs/{report-config-id}`.",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The UTC time at which the inventory report configuration was created. This is auto-populated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The UTC time at which the inventory report configuration was updated. This is auto-populated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "frequencyOptions": {
          "description": "The frequency of the inventory report generation.",
          "$ref": "FrequencyOptions"
        },
        "csvOptions": {
          "description": "Options for CSV formatted reports.",
          "$ref": "CSVOptions"
        },
        "parquetOptions": {
          "description": "Options for Parquet formatted reports.",
          "$ref": "ParquetOptions"
        },
        "objectMetadataReportOptions": {
          "description": "Options for including object metadata in an inventory report.",
          "$ref": "ObjectMetadataReportOptions"
        },
        "labels": {
          "description": "Labels as key value pairs",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "displayName": {
          "description": "User provided display name that can be empty and limited to 256 characters that is editable..",
          "type": "string"
        }
      }
    },
    "FrequencyOptions": {
      "id": "FrequencyOptions",
      "description": "`FrequencyOptions` resource Frequency configuration for inventory report generation.",
      "type": "object",
      "properties": {
        "frequency": {
          "description": "Frequency of inventory report generation.",
          "type": "string",
          "enumDescriptions": [
            "Unspecified.",
            "Inventory report is generated daily.",
            "Inventory report is generated weekly."
          ],
          "enum": [
            "FREQUENCY_UNSPECIFIED",
            "DAILY",
            "WEEKLY"
          ]
        },
        "startDate": {
          "description": "The UTC date to start generating inventory reports. For example,`{\"day\": 15, \"month\": 8, \"year\": 2022}`.",
          "$ref": "Date"
        },
        "endDate": {
          "description": "The UTC date to stop generating inventory reports. For example,`{\"day\": 15, \"month\": 8, \"year\": 2022}`.",
          "$ref": "Date"
        }
      }
    },
    "Date": {
      "id": "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",
      "type": "object",
      "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.",
          "type": "integer",
          "format": "int32"
        },
        "day": {
          "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": "integer",
          "format": "int32"
        }
      }
    },
    "CSVOptions": {
      "id": "CSVOptions",
      "description": "Options to configure inventory reports in CSV format.",
      "type": "object",
      "properties": {
        "recordSeparator": {
          "description": "Record separator characters in CSV.",
          "type": "string"
        },
        "delimiter": {
          "description": "Delimiter characters in CSV.",
          "type": "string"
        },
        "headerRequired": {
          "description": "If set, includes a header row in the CSV report.",
          "type": "boolean"
        }
      }
    },
    "ParquetOptions": {
      "id": "ParquetOptions",
      "description": "Options to configure inventory reports in Parquet format.",
      "type": "object",
      "properties": {}
    },
    "ObjectMetadataReportOptions": {
      "id": "ObjectMetadataReportOptions",
      "description": "Options for including metadata in an inventory report.",
      "type": "object",
      "properties": {
        "metadataFields": {
          "description": "The metadata fields included in an inventory report.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "storageFilters": {
          "description": "Filters buckets to generate inventory reports for Cloud Storage.",
          "$ref": "CloudStorageFilters"
        },
        "storageDestinationOptions": {
          "description": "Options to store reports in Cloud Storage.",
          "$ref": "CloudStorageDestinationOptions"
        }
      }
    },
    "CloudStorageFilters": {
      "id": "CloudStorageFilters",
      "description": "Filters buckets to generate inventory reports for Cloud Storage.",
      "type": "object",
      "properties": {
        "bucket": {
          "description": "Optional. Bucket for which the inventory report is generated.",
          "type": "string"
        }
      }
    },
    "CloudStorageDestinationOptions": {
      "id": "CloudStorageDestinationOptions",
      "description": "Options to store inventory reports in Cloud Storage.",
      "type": "object",
      "properties": {
        "bucket": {
          "description": "Optional. The destination bucket for the inventory reports.",
          "type": "string"
        },
        "destinationPath": {
          "description": "The destination path within the bucket where the inventory reports are stored.",
          "type": "string"
        }
      }
    },
    "ListReportDetailsResponse": {
      "id": "ListReportDetailsResponse",
      "description": "Response message for `ListReportDetails`.",
      "type": "object",
      "properties": {
        "reportDetails": {
          "description": "The list of `ReportDetail`",
          "type": "array",
          "items": {
            "$ref": "ReportDetail"
          }
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ReportDetail": {
      "id": "ReportDetail",
      "description": "Message describing the `ReportDetail` object. `ReportDetail` represents the metadata of the generated inventory report for a report configuration.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of resource. Format: `projects/{project_number}/locations/{location}/reportConfigs/{report-config-id}/reportDetails/{report-detail-id}`.",
          "type": "string"
        },
        "snapshotTime": {
          "description": "The snapshot time. All the inventory report data is referenced at this point of time.",
          "type": "string",
          "format": "google-datetime"
        },
        "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"
        },
        "shardsCount": {
          "description": "Total shards generated for the inventory report.",
          "type": "string",
          "format": "int64"
        },
        "status": {
          "description": "Status of the inventory report.",
          "$ref": "Status"
        },
        "labels": {
          "description": "Labels as key value pairs",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "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"
        },
        "reportMetrics": {
          "description": "Metrics of the inventory report.",
          "$ref": "Metrics"
        }
      }
    },
    "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.",
      "type": "object",
      "properties": {
        "year": {
          "description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.",
          "type": "integer",
          "format": "int32"
        },
        "month": {
          "description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.",
          "type": "integer",
          "format": "int32"
        },
        "day": {
          "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.",
          "type": "integer",
          "format": "int32"
        },
        "hours": {
          "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.",
          "type": "integer",
          "format": "int32"
        },
        "minutes": {
          "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.",
          "type": "integer",
          "format": "int32"
        },
        "seconds": {
          "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.",
          "type": "integer",
          "format": "int32"
        },
        "nanos": {
          "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.",
          "type": "integer",
          "format": "int32"
        },
        "utcOffset": {
          "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 }.",
          "type": "string",
          "format": "google-duration"
        },
        "timeZone": {
          "description": "Time zone.",
          "$ref": "TimeZone"
        }
      }
    },
    "TimeZone": {
      "id": "TimeZone",
      "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).",
      "type": "object",
      "properties": {
        "id": {
          "description": "IANA Time Zone Database time zone. For example \"America/New_York\".",
          "type": "string"
        },
        "version": {
          "description": "Optional. IANA Time Zone Database version number. For example \"2019a\".",
          "type": "string"
        }
      }
    },
    "Metrics": {
      "id": "Metrics",
      "description": "Metrics associated with the generated report.",
      "type": "object",
      "properties": {
        "processedRecordsCount": {
          "description": "Count of Cloud Storage objects that are part of the inventory report.",
          "type": "string",
          "format": "int64"
        }
      }
    },
    "ListDatasetConfigsResponse": {
      "id": "ListDatasetConfigsResponse",
      "description": "Response message for `ListDatasetConfigs`",
      "type": "object",
      "properties": {
        "datasetConfigs": {
          "description": "The list of `DatasetConfigs`",
          "type": "array",
          "items": {
            "$ref": "DatasetConfig"
          }
        },
        "nextPageToken": {
          "description": "A token identifying a page of results the server should return.",
          "type": "string"
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "DatasetConfig": {
      "id": "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).",
      "type": "object",
      "properties": {
        "name": {
          "description": "Identifier. name of resource",
          "type": "string"
        },
        "createTime": {
          "description": "Output only. The UTC time at which the dataset configuration was created. This is auto-populated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "updateTime": {
          "description": "Output only. The UTC time at which the dataset configuration was last updated. This is auto-populated.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "labels": {
          "description": "Labels as key value pairs",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "uid": {
          "description": "Output only. System generated unique identifier for the resource.",
          "readOnly": true,
          "type": "string"
        },
        "organizationNumber": {
          "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.",
          "type": "string",
          "format": "int64"
        },
        "sourceProjects": {
          "description": "Defines the options for providing source projects for the dataset.",
          "$ref": "SourceProjects"
        },
        "sourceFolders": {
          "description": "Defines the options for providing source folders for the dataset.",
          "$ref": "SourceFolders"
        },
        "organizationScope": {
          "description": "Defines the options for providing a source organization for the dataset.",
          "type": "boolean"
        },
        "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": {
          "$ref": "CloudStorageLocations"
        },
        "excludeCloudStorageLocations": {
          "$ref": "CloudStorageLocations"
        },
        "includeCloudStorageBuckets": {
          "$ref": "CloudStorageBuckets"
        },
        "excludeCloudStorageBuckets": {
          "$ref": "CloudStorageBuckets"
        },
        "includeNewlyCreatedBuckets": {
          "description": "If set to `true`, the request includes all the newly created buckets in the dataset that meet the inclusion and exclusion rules.",
          "type": "boolean"
        },
        "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.",
          "deprecated": true,
          "type": "boolean"
        },
        "retentionPeriodDays": {
          "description": "Number of days of history that must be retained.",
          "type": "integer",
          "format": "int32"
        },
        "activityDataRetentionPeriodDays": {
          "description": "Optional. When set, overrides the retention period for activity data. Otherwise, the `retention_period_days` value is used for activity data as well.",
          "type": "integer",
          "format": "int32"
        },
        "link": {
          "description": "Details of the linked dataset.",
          "$ref": "Link"
        },
        "identity": {
          "description": "Identity used by this `datasetConfig`.",
          "$ref": "Identity"
        },
        "status": {
          "description": "Output only. Status of the `datasetConfig`.",
          "readOnly": true,
          "$ref": "Status"
        },
        "datasetConfigState": {
          "description": "Output only. State of the `datasetConfig`.",
          "readOnly": true,
          "type": "string",
          "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"
          ],
          "enum": [
            "CONFIG_STATE_UNSPECIFIED",
            "CONFIG_STATE_ACTIVE",
            "CONFIG_STATE_VERIFICATION_IN_PROGRESS",
            "CONFIG_STATE_CREATED",
            "CONFIG_STATE_PROCESSING"
          ]
        },
        "description": {
          "description": "Optional. A user-provided description for the dataset configuration. Maximum length: 256 characters.",
          "type": "string"
        }
      }
    },
    "SourceProjects": {
      "id": "SourceProjects",
      "description": "Collection of project numbers",
      "type": "object",
      "properties": {
        "projectNumbers": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        }
      }
    },
    "SourceFolders": {
      "id": "SourceFolders",
      "description": "Specifies a set of folders to include in the dataset",
      "type": "object",
      "properties": {
        "folderNumbers": {
          "description": "Optional. The list of folder numbers to include in the dataset.",
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        }
      }
    },
    "CloudStorageLocations": {
      "id": "CloudStorageLocations",
      "description": "Collection of Cloud Storage locations.",
      "type": "object",
      "properties": {
        "locations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CloudStorageBuckets": {
      "id": "CloudStorageBuckets",
      "description": "Collection of Cloud Storage buckets.",
      "type": "object",
      "properties": {
        "cloudStorageBuckets": {
          "type": "array",
          "items": {
            "$ref": "CloudStorageBucket"
          }
        }
      }
    },
    "CloudStorageBucket": {
      "id": "CloudStorageBucket",
      "description": "Defines the bucket by its name or a regex pattern to match buckets.",
      "type": "object",
      "properties": {
        "bucketName": {
          "description": "Cloud Storage bucket name.",
          "type": "string"
        },
        "bucketPrefixRegex": {
          "description": "A regex pattern for bucket names matching the regex. Regex should follow the syntax specified in `google/re2` on GitHub.",
          "type": "string"
        }
      }
    },
    "Link": {
      "id": "Link",
      "description": "Defines the details about the linked dataset.",
      "type": "object",
      "properties": {
        "dataset": {
          "description": "Output only. Dataset name for linked dataset.",
          "readOnly": true,
          "type": "string"
        },
        "linked": {
          "description": "Output only. State of the linked dataset.",
          "readOnly": true,
          "type": "boolean"
        }
      }
    },
    "Identity": {
      "id": "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.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Output only. Name of the identity.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Type of identity to use for the datasetConfig.",
          "type": "string",
          "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"
          ]
        }
      }
    },
    "LinkDatasetRequest": {
      "id": "LinkDatasetRequest",
      "description": "Request message for `LinkDataset`",
      "type": "object",
      "properties": {}
    },
    "UnlinkDatasetRequest": {
      "id": "UnlinkDatasetRequest",
      "description": "Request message for `UnlinkDataset`",
      "type": "object",
      "properties": {}
    },
    "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"
        }
      }
    },
    "BucketErrors": {
      "id": "BucketErrors",
      "description": "Provides a summary of the bucket level error statistics.",
      "type": "object",
      "properties": {
        "validatedCount": {
          "description": "Optional. Count of successfully validated buckets.",
          "type": "string",
          "format": "int64"
        },
        "permissionDeniedCount": {
          "description": "Optional. Count of buckets with permission denied errors.",
          "type": "string",
          "format": "int64"
        },
        "permissionDeniedBucketIds": {
          "description": "Optional. Subset of bucket names that have permission denied.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "nonManagementHubEntitledCount": {
          "description": "Optional. Count of buckets that are not subscribed to Storage Intelligence.",
          "deprecated": true,
          "type": "string",
          "format": "int64"
        },
        "internalErrorCount": {
          "description": "Optional. Number of buckets that encountered internal errors during the validation process. These buckets are automatically retried in subsequent validation attempts.",
          "type": "string",
          "format": "int64"
        },
        "nonStorageIntelligenceEntitledCount": {
          "description": "Optional. Count of buckets that are not subscribed to Storage Intelligence.",
          "type": "string",
          "format": "int64"
        },
        "nonStorageIntelligenceEntitledBucketIds": {
          "description": "Optional. Subset of bucket names that are not subscribed to Storage Intelligence.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ProjectErrors": {
      "id": "ProjectErrors",
      "description": "Provides a summary of the project level error statistics.",
      "type": "object",
      "properties": {
        "validatedCount": {
          "description": "Optional. Count of successfully validated projects.",
          "type": "string",
          "format": "int64"
        },
        "outsideOrgErrorCount": {
          "description": "Optional. Count of projects which are not in the same organization.",
          "type": "string",
          "format": "int64"
        },
        "outsideOrgProjectNumbers": {
          "description": "Optional. Subset of project numbers which are not in the same organization.",
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "nonManagementHubEntitledErrorCount": {
          "description": "Optional. Count of projects that are not subscribed to Storage Intelligence.",
          "deprecated": true,
          "type": "string",
          "format": "int64"
        },
        "nonManagementHubEntitledProjectNumbers": {
          "description": "Optional. Subset of project numbers that are not subscribed to Storage Intelligence.",
          "deprecated": true,
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "nonStorageIntelligenceEntitledErrorCount": {
          "description": "Optional. Count of projects that are not subscribed to Storage Intelligence.",
          "type": "string",
          "format": "int64"
        },
        "nonStorageIntelligenceEntitledProjectNumbers": {
          "description": "Optional. Subset of project numbers that are not subscribed to Storage Intelligence.",
          "type": "array",
          "items": {
            "type": "string",
            "format": "int64"
          }
        },
        "internalErrorCount": {
          "description": "Optional. Number of projects that encountered internal errors during validation and are automatically retried.",
          "type": "string",
          "format": "int64"
        },
        "destinationProjectOrgError": {
          "description": "Optional. Indicates if the destination project resides within the same organization as the source project.",
          "type": "boolean"
        },
        "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"
        }
      }
    },
    "LocationMetadata": {
      "id": "LocationMetadata",
      "description": "Metadata that helps discover which resources are available in a location.",
      "type": "object",
      "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"
        }
      }
    },
    "OperationMetadata": {
      "id": "OperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. Operation create time.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. Operation end time.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "description": "Output only. Server-defined resource path for the target of the operation.",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true,
          "type": "string"
        },
        "statusMessage": {
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true,
          "type": "string"
        },
        "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`.",
          "readOnly": true,
          "type": "boolean"
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "DatasetConfigInternalView": {
      "id": "DatasetConfigInternalView",
      "description": "Message to encapsulate the identifiers for a BigQuery insights dataset. Next ID: 3",
      "type": "object",
      "properties": {
        "tenantProjectId": {
          "description": "The tenant project id of where the dataset is created.",
          "type": "string"
        },
        "bqDatasetInTenantProject": {
          "description": "The name of the internal BigQuery dataset created for insights.",
          "type": "string"
        }
      }
    },
    "ReportStatsView": {
      "id": "ReportStatsView",
      "description": "Message to encapsulate the various statistics related to the generated Report Next ID: 6",
      "type": "object",
      "properties": {
        "projectNumber": {
          "description": "Project Number",
          "type": "string",
          "format": "int64"
        },
        "reportConfigId": {
          "description": "ID of the parent ReportConfig for the corresponding ReportDetail",
          "type": "string"
        },
        "reportDetailId": {
          "description": "ID of the ReportDetail for which the stats are generated",
          "type": "string"
        },
        "recordsProcessed": {
          "description": "Actual records processed as reported by the underlying storage system",
          "type": "string",
          "format": "int64"
        },
        "bytesWritten": {
          "description": "Actual size in bytes for the report written, as reported by the underlying storage system",
          "type": "string",
          "format": "int64"
        }
      }
    }
  },
  "mtlsRootUrl": "https://storageinsights.mtls.googleapis.com/",
  "protocol": "rest",
  "kind": "discovery#restDescription",
  "revision": "20260304",
  "version_module": true,
  "discoveryVersion": "v1",
  "batchPath": "batch",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "list": {
              "id": "storageinsights.projects.locations.list",
              "path": "v1/{+name}/locations",
              "flatPath": "v1/projects/{projectsId}/locations",
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "description": "The resource that owns the locations collection, if applicable.",
                  "pattern": "^projects/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "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"
                },
                "pageSize": {
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "pageToken": {
                  "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",
                  "type": "string"
                },
                "extraLocationTypes": {
                  "description": "Optional. Do not use this field. It is unsupported and is ignored unless explicitly documented otherwise. This is primarily for internal usage.",
                  "location": "query",
                  "repeated": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Lists information about the supported locations for this service. This method can be called in two ways: * **List all public locations:** Use the path `GET /v1/locations`. * **List project-visible locations:** Use the path `GET /v1/projects/{project_id}/locations`. This may include public locations as well as private or other locations specifically visible to the project."
            },
            "get": {
              "id": "storageinsights.projects.locations.get",
              "path": "v1/{+name}",
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}",
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "description": "Resource name for the location.",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Location"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Gets information about a location."
            }
          },
          "resources": {
            "operations": {
              "methods": {
                "list": {
                  "id": "storageinsights.projects.locations.operations.list",
                  "path": "v1/{+name}/operations",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation's parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "filter": {
                      "description": "The standard list filter.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "returnPartialSuccess": {
                      "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.",
                      "location": "query",
                      "type": "boolean"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`."
                },
                "get": {
                  "id": "storageinsights.projects.locations.operations.get",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "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."
                },
                "delete": {
                  "id": "storageinsights.projects.locations.operations.delete",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "httpMethod": "DELETE",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be deleted.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Empty"
                  },
                  "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`."
                },
                "cancel": {
                  "id": "storageinsights.projects.locations.operations.cancel",
                  "path": "v1/{+name}:cancel",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource to be cancelled.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "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`."
                }
              }
            },
            "reportConfigs": {
              "methods": {
                "list": {
                  "id": "storageinsights.projects.locations.reportConfigs.list",
                  "path": "v1/{+parent}/reportConfigs",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs",
                  "httpMethod": "GET",
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent value for `ListReportConfigsRequest`",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "Requested page size. Server may return fewer items than requested. If unspecified, the server picks the default value.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "pageToken": {
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query",
                      "type": "string"
                    },
                    "filter": {
                      "description": "Filtering results",
                      "location": "query",
                      "type": "string"
                    },
                    "orderBy": {
                      "description": "Hint for how to order the results",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "ListReportConfigsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists the inventory report configurations in a given project for a given location."
                },
                "get": {
                  "id": "storageinsights.projects.locations.reportConfigs.get",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource",
                      "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "ReportConfig"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets the inventory report configuration in a given project for a given location."
                },
                "create": {
                  "id": "storageinsights.projects.locations.reportConfigs.create",
                  "path": "v1/{+parent}/reportConfigs",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs",
                  "httpMethod": "POST",
                  "parameters": {
                    "parent": {
                      "description": "Required. Value for parent.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "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"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "ReportConfig"
                  },
                  "response": {
                    "$ref": "ReportConfig"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Creates a new inventory report configuration in a given project for a given location."
                },
                "patch": {
                  "id": "storageinsights.projects.locations.reportConfigs.patch",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}",
                  "httpMethod": "PATCH",
                  "parameters": {
                    "name": {
                      "description": "Identifier. Name of resource. Format: `projects/{project_id}/locations/{location}/reportConfigs/{report-config-id}`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "updateMask": {
                      "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.",
                      "location": "query",
                      "type": "string",
                      "format": "google-fieldmask"
                    },
                    "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"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "ReportConfig"
                  },
                  "response": {
                    "$ref": "ReportConfig"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Updates an existing inventory report configuration in a given project for a given location."
                },
                "delete": {
                  "id": "storageinsights.projects.locations.reportConfigs.delete",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}",
                  "httpMethod": "DELETE",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource",
                      "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "force": {
                      "description": "Optional. If set, all the inventory report details associated with this report configuration are deleted.",
                      "location": "query",
                      "type": "boolean"
                    },
                    "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"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Empty"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Deletes an existing inventory report configuration in a given project for a given location."
                }
              },
              "resources": {
                "reportDetails": {
                  "methods": {
                    "list": {
                      "id": "storageinsights.projects.locations.reportConfigs.reportDetails.list",
                      "path": "v1/{+parent}/reportDetails",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reportDetails",
                      "httpMethod": "GET",
                      "parameters": {
                        "parent": {
                          "description": "Required. Parent value for `ListReportDetailsRequest`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "pageSize": {
                          "description": "Requested page size. The server might return fewer items than requested. If unspecified, the server picks the default value.",
                          "location": "query",
                          "type": "integer",
                          "format": "int32"
                        },
                        "pageToken": {
                          "description": "A token identifying a page of results the server should return.",
                          "location": "query",
                          "type": "string"
                        },
                        "filter": {
                          "description": "Filtering results",
                          "location": "query",
                          "type": "string"
                        },
                        "orderBy": {
                          "description": "Hint for how to order the results",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "response": {
                        "$ref": "ListReportDetailsResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Lists the inventory reports in a given project for a given location."
                    },
                    "get": {
                      "id": "storageinsights.projects.locations.reportConfigs.reportDetails.get",
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reportConfigs/{reportConfigsId}/reportDetails/{reportDetailsId}",
                      "httpMethod": "GET",
                      "parameters": {
                        "name": {
                          "description": "Required. Name of the resource",
                          "pattern": "^projects/[^/]+/locations/[^/]+/reportConfigs/[^/]+/reportDetails/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "ReportDetail"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets an existing inventory report in a given project for a given location."
                    }
                  }
                }
              }
            },
            "datasetConfigs": {
              "methods": {
                "list": {
                  "id": "storageinsights.projects.locations.datasetConfigs.list",
                  "path": "v1/{+parent}/datasetConfigs",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs",
                  "httpMethod": "GET",
                  "parameters": {
                    "parent": {
                      "description": "Required. Parent value for ListDatasetConfigsRequest",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "Requested page size. Server might return fewer items than requested. If unspecified, server picks an appropriate default.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "pageToken": {
                      "description": "A token identifying a page of results the server should return.",
                      "location": "query",
                      "type": "string"
                    },
                    "filter": {
                      "description": "Filtering results",
                      "location": "query",
                      "type": "string"
                    },
                    "orderBy": {
                      "description": "Hint for how to order the results",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "ListDatasetConfigsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists the dataset configurations in a given project for a given location."
                },
                "get": {
                  "id": "storageinsights.projects.locations.datasetConfigs.get",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs/{datasetConfigsId}",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource",
                      "pattern": "^projects/[^/]+/locations/[^/]+/datasetConfigs/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "DatasetConfig"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets the dataset configuration in a given project for a given location."
                },
                "create": {
                  "id": "storageinsights.projects.locations.datasetConfigs.create",
                  "path": "v1/{+parent}/datasetConfigs",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs",
                  "httpMethod": "POST",
                  "parameters": {
                    "parent": {
                      "description": "Required. Value for parent.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "datasetConfigId": {
                      "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.",
                      "location": "query",
                      "type": "string"
                    },
                    "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"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "DatasetConfig"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Creates a dataset configuration in a given project for a given location."
                },
                "patch": {
                  "id": "storageinsights.projects.locations.datasetConfigs.patch",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs/{datasetConfigsId}",
                  "httpMethod": "PATCH",
                  "parameters": {
                    "name": {
                      "description": "Identifier. name of resource",
                      "pattern": "^projects/[^/]+/locations/[^/]+/datasetConfigs/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "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.",
                      "location": "query",
                      "type": "string",
                      "format": "google-fieldmask"
                    },
                    "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"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "DatasetConfig"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Updates a dataset configuration in a given project for a given location."
                },
                "delete": {
                  "id": "storageinsights.projects.locations.datasetConfigs.delete",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs/{datasetConfigsId}",
                  "httpMethod": "DELETE",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource",
                      "pattern": "^projects/[^/]+/locations/[^/]+/datasetConfigs/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "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"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Deletes a dataset configuration in a given project for a given location."
                },
                "linkDataset": {
                  "id": "storageinsights.projects.locations.datasetConfigs.linkDataset",
                  "path": "v1/{+name}:linkDataset",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs/{datasetConfigsId}:linkDataset",
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource",
                      "pattern": "^projects/[^/]+/locations/[^/]+/datasetConfigs/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "LinkDatasetRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Links a dataset to BigQuery in a given project for a given location."
                },
                "unlinkDataset": {
                  "id": "storageinsights.projects.locations.datasetConfigs.unlinkDataset",
                  "path": "v1/{+name}:unlinkDataset",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasetConfigs/{datasetConfigsId}:unlinkDataset",
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of the resource",
                      "pattern": "^projects/[^/]+/locations/[^/]+/datasetConfigs/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "UnlinkDatasetRequest"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Unlinks a dataset from BigQuery in a given project for a given location."
                }
              }
            }
          }
        }
      }
    }
  },
  "canonicalName": "Storage Insights",
  "version": "v1",
  "rootUrl": "https://storageinsights.googleapis.com/",
  "baseUrl": "https://storageinsights.googleapis.com/",
  "description": "Provides insights capability on Google Cloud Storage",
  "servicePath": "",
  "basePath": "",
  "ownerName": "Google"
}
