diff --git a/classroom/v1/classroom-api.json b/classroom/v1/classroom-api.json index d645bf40c3b..41a41294da5 100644 --- a/classroom/v1/classroom-api.json +++ b/classroom/v1/classroom-api.json @@ -2400,7 +2400,7 @@ } } }, - "revision": "20230620", + "revision": "20230706", "rootUrl": "https://classroom.googleapis.com/", "schemas": { "Announcement": { @@ -2562,6 +2562,7 @@ "type": "string" }, "courseMaterialSets": { + "deprecated": true, "description": "Sets of materials that appear on the \"about\" page of this course. Read-only.", "items": { "$ref": "CourseMaterialSet" diff --git a/cloudasset/v1/cloudasset-api.json b/cloudasset/v1/cloudasset-api.json index 391079baf30..ba50e9f4062 100644 --- a/cloudasset/v1/cloudasset-api.json +++ b/cloudasset/v1/cloudasset-api.json @@ -1095,7 +1095,7 @@ } } }, - "revision": "20230630", + "revision": "20230707", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AccessSelector": { @@ -1352,6 +1352,7 @@ }, "relatedAssets": { "$ref": "RelatedAssets", + "deprecated": true, "description": "DEPRECATED. This field only presents for the purpose of backward-compatibility. The server will never generate responses with this field. The related assets of the asset of one relationship type. One asset only represents one type of relationship." }, "resource": { @@ -3821,6 +3822,7 @@ "type": "object" }, "RelatedAssets": { + "deprecated": true, "description": "DEPRECATED. This message only presents for the purpose of backward-compatibility. The server will never populate this message in responses. The detailed related assets with the `relationship_type`.", "id": "RelatedAssets", "properties": { @@ -3868,6 +3870,7 @@ "type": "object" }, "RelationshipAttributes": { + "deprecated": true, "description": "DEPRECATED. This message only presents for the purpose of backward-compatibility. The server will never populate this message in responses. The relationship attributes which include `type`, `source_resource_type`, `target_resource_type` and `action`.", "id": "RelationshipAttributes", "properties": { @@ -3973,6 +3976,7 @@ "type": "array" }, "kmsKey": { + "deprecated": true, "description": "The Cloud KMS [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys) name or [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions) name. This field only presents for the purpose of backward compatibility. Please use the `kms_keys` field to retrieve Cloud KMS key information. This field is available only when the resource's Protobuf contains it and will only be populated for [these resource types](https://cloud.google.com/asset-inventory/docs/legacy-field-names#resource_types_with_the_to_be_deprecated_kmskey_field) for backward compatible purposes. To search against the `kms_key`: * Use a field query. Example: `kmsKey:key` * Use a free text query. Example: `key`", "type": "string" }, diff --git a/cloudbilling/v1beta/cloudbilling-api.json b/cloudbilling/v1beta/cloudbilling-api.json index 8d096ae35a7..fcf8c0d3a25 100644 --- a/cloudbilling/v1beta/cloudbilling-api.json +++ b/cloudbilling/v1beta/cloudbilling-api.json @@ -143,6 +143,500 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "services": { + "methods": { + "get": { + "description": "Gets a Google Cloud service visible to a billing account.", + "flatPath": "v1beta/billingAccounts/{billingAccountsId}/services/{servicesId}", + "httpMethod": "GET", + "id": "cloudbilling.billingAccounts.services.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the billing account service to retrieve. Format: billingAccounts/{billing_account}/services/{service}", + "location": "path", + "pattern": "^billingAccounts/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists services visible to a billing account.", + "flatPath": "v1beta/billingAccounts/{billingAccountsId}/services", + "httpMethod": "GET", + "id": "cloudbilling.billingAccounts.services.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of billing account service to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token received from a previous ListBillingAccountServices call to retrieve the next page of results. If this field is empty, the first page is returned.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The billing account to list billing account service from. Format: billingAccounts/{billing_account}", + "location": "path", + "pattern": "^billingAccounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/services", + "response": { + "$ref": "GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "skuGroups": { + "methods": { + "get": { + "description": "Gets a SKU group visible to a billing account.", + "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skuGroups/{skuGroupsId}", + "httpMethod": "GET", + "id": "cloudbilling.billingAccounts.skuGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the BillingAccountSkuGroup to retrieve. Format: billingAccounts/{billing_account}/skuGroups/{sku_group}", + "location": "path", + "pattern": "^billingAccounts/[^/]+/skuGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists SKU groups visible to a billing account.", + "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skuGroups", + "httpMethod": "GET", + "id": "cloudbilling.billingAccounts.skuGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of billing account SKU groups to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token received from a previous ListBillingAccountSkuGroups call to retrieve the next page of results. If this field is empty, the first page is returned.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The billing account to list billing account SKU groups from. Format: billingAccounts/{billing_account}", + "location": "path", + "pattern": "^billingAccounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/skuGroups", + "response": { + "$ref": "GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "skus": { + "methods": { + "get": { + "description": "Gets a SKU that is part of a billing account SKU group.", + "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skuGroups/{skuGroupsId}/skus/{skusId}", + "httpMethod": "GET", + "id": "cloudbilling.billingAccounts.skuGroups.skus.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the billing account SKU group SKU to retrieve. Format: billingAccounts/{billing_account}/skuGroups/{sku_group}/skus/{sku}", + "location": "path", + "pattern": "^billingAccounts/[^/]+/skuGroups/[^/]+/skus/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists SKUs that is part of billing account SKU groups.", + "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skuGroups/{skuGroupsId}/skus", + "httpMethod": "GET", + "id": "cloudbilling.billingAccounts.skuGroups.skus.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of billing account SKU group SKUs to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token received from a previous ListBillingAccountSkuGroupSkus call to retrieve the next page of results. If this field is empty, the first page is returned.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The billing account SKU group to list billing account SKU group SKUs from. Format: billingAccounts/{billing_account}/skuGroups/{sku_group}", + "location": "path", + "pattern": "^billingAccounts/[^/]+/skuGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/skus", + "response": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "skus": { + "methods": { + "get": { + "description": "Gets a SKU visible to a billing account.", + "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skus/{skusId}", + "httpMethod": "GET", + "id": "cloudbilling.billingAccounts.skus.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the billing account SKU to retrieve. Format: billingAccounts/{billing_account}/skus/{sku}", + "location": "path", + "pattern": "^billingAccounts/[^/]+/skus/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists SKUs visible to a billing account.", + "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skus", + "httpMethod": "GET", + "id": "cloudbilling.billingAccounts.skus.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Options for how to filter the billing account SKUs. Currently, only filter on `billing_account_service` is supported. Only !=, = operators are supported. Examples: - billing_account_service = \"billingAccounts/012345-567890-ABCDEF/services/DA34-426B-A397\"", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of billing account SKUs to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token received from a previous ListBillingAccountSkus call to retrieve the next page of results. If this field is empty, the first page is returned.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The billing account to list billing account SKU from. Format: billingAccounts/{billing_account}", + "location": "path", + "pattern": "^billingAccounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/skus", + "response": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "price": { + "methods": { + "get": { + "description": "Gets the latest price for the given billing account SKU.", + "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skus/{skusId}/price", + "httpMethod": "GET", + "id": "cloudbilling.billingAccounts.skus.price.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "currencyCode": { + "description": "Optional. ISO-4217 currency code for the price. If not specified, currency of billing account will be used.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Name of the latest billing account price to retrieve. Format: billingAccounts/{billing_account}/skus/{sku}/price", + "location": "path", + "pattern": "^billingAccounts/[^/]+/skus/[^/]+/price$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, + "skuGroups": { + "methods": { + "get": { + "description": "Gets a publicly listed SKU group.", + "flatPath": "v1beta/skuGroups/{skuGroupsId}", + "httpMethod": "GET", + "id": "cloudbilling.skuGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the SKU group to retrieve. Format: skuGroups/{sku_group}", + "location": "path", + "pattern": "^skuGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleCloudBillingSkugroupsV1betaSkuGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all publicly listed SKU groups.", + "flatPath": "v1beta/skuGroups", + "httpMethod": "GET", + "id": "cloudbilling.skuGroups.list", + "parameterOrder": [], + "parameters": { + "pageSize": { + "description": "Maximum number of SKU groups to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token received from a previous ListSkuGroups call to retrieve the next page of results. If this field is empty, the first page is returned.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/skuGroups", + "response": { + "$ref": "GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "skus": { + "methods": { + "get": { + "description": "Gets a publicly listed SKU that is part of a publicly listed SKU group.", + "flatPath": "v1beta/skuGroups/{skuGroupsId}/skus/{skusId}", + "httpMethod": "GET", + "id": "cloudbilling.skuGroups.skus.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the SKU group SKU to retrieve. Format: skuGroups/{sku_group}/skus/{sku}", + "location": "path", + "pattern": "^skuGroups/[^/]+/skus/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaSkuGroupSku" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all publicly listed SKUs contained by a publicly listed SKU group.", + "flatPath": "v1beta/skuGroups/{skuGroupsId}/skus", + "httpMethod": "GET", + "id": "cloudbilling.skuGroups.skus.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of SKU group SKUs to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token received from a previous ListSkuGroupSkus call to retrieve the next page of results. If this field is empty, the first page is returned.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The SkuGroup to list SkuGroupSku from. Format: skuGroups/{sku_group}", + "location": "path", + "pattern": "^skuGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/skus", + "response": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "skus": { + "resources": { + "price": { + "methods": { + "get": { + "description": "Gets the latest price for the given SKU.", + "flatPath": "v1beta/skus/{skusId}/price", + "httpMethod": "GET", + "id": "cloudbilling.skus.price.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "currencyCode": { + "description": "Optional. ISO-4217 currency code for the price. If not specified, USD will be used.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Name of the latest price to retrieve. Format: skus/{sku}/price", + "location": "path", + "pattern": "^skus/[^/]+/price$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleCloudBillingPricesV1betaPrice" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-billing", + "https://www.googleapis.com/auth/cloud-billing.readonly", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "v1beta": { @@ -170,7 +664,7 @@ } } }, - "revision": "20230507", + "revision": "20230710", "rootUrl": "https://cloudbilling.googleapis.com/", "schemas": { "CacheFillRegions": { @@ -653,6 +1147,17 @@ }, "type": "object" }, + "Decimal": { + "description": "A representation of a decimal value, such as 2.5. Clients may convert values into language-native decimal formats, such as Java's BigDecimal or Python's decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.org/3/library/decimal.html", + "id": "Decimal", + "properties": { + "value": { + "description": "The decimal value, as a string. The string representation consists of an optional sign, `+` (`U+002B`) or `-` (`U+002D`), followed by a sequence of zero or more decimal digits (\"the integer\"), optionally followed by a fraction, optionally followed by an exponent. An empty string **should** be interpreted as `0`. The fraction consists of a decimal point followed by zero or more decimal digits. The string must contain at least one digit in either the integer or the fraction. The number formed by the sign, the integer and the fraction is referred to as the significand. The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`) followed by one or more decimal digits. Services **should** normalize decimal values before storing them by: - Removing an explicitly-provided `+` sign (`+2.5` -\u003e `2.5`). - Replacing a zero-length integer value with `0` (`.5` -\u003e `0.5`). - Coercing the exponent character to upper-case, with explicit sign (`2.5e8` -\u003e `2.5E+8`). - Removing an explicitly-provided zero exponent (`2.5E0` -\u003e `2.5`). Services **may** perform additional normalization based on its own needs and the internal decimal implementation selected, such as shifting the decimal point and exponent value together (example: `2.5E-1` \u003c-\u003e `0.25`). Additionally, services **may** preserve trailing zeroes in the fraction to indicate increased precision, but are not required to do so. Note that only the `.` character is supported to divide the integer and the fraction; `,` **should not** be supported regardless of locale. Additionally, thousand separators **should not** be supported. If a service does support them, values **must** be normalized. The ENBF grammar is: DecimalString = '' | [Sign] Significand [Exponent]; Sign = '+' | '-'; Significand = Digits '.' | [Digits] '.' Digits; Exponent = ('e' | 'E') [Sign] Digits; Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; Services **should** clearly document the range of supported values, the maximum supported precision (total number of digits), and, if applicable, the scale (number of digits after the decimal point), as well as how it behaves when receiving out-of-bounds values. Services **may** choose to accept values passed as input even when the value has a higher precision or scale than the service supports, and **should** round the value to fit the supported scale. Alternatively, the service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if precision would be lost. Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if the service receives a value outside of the supported range.", + "type": "string" + } + }, + "type": "object" + }, "DualRegional": { "description": "Area contains dual locations.", "id": "DualRegional", @@ -720,6 +1225,938 @@ }, "type": "object" }, + "GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo": { + "description": "Encapsulates the aggregation information such as aggregation level and interval for a billing account price.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo", + "properties": { + "interval": { + "description": "Interval at which usage is aggregated to compute cost. Example: \"MONTHLY\" interval indicates that usage is aggregated every month.", + "enum": [ + "INTERVAL_UNSPECIFIED", + "MONTHLY", + "DAILY" + ], + "enumDescriptions": [ + "Default unspecified value.", + "Usage is aggregated every month.", + "Usage is aggregated every day." + ], + "type": "string" + }, + "level": { + "description": "Level at which usage is aggregated to compute cost. Example: \"ACCOUNT\" level indicates that usage is aggregated across all projects in a single account.", + "enum": [ + "LEVEL_UNSPECIFIED", + "ACCOUNT", + "PROJECT" + ], + "enumDescriptions": [ + "Default unspecified value.", + "Usage is aggregated at an account level.", + "Usage is aggregated at a project level." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice": { + "description": "Encapsulates the latest price for the given billing account SKU.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice", + "properties": { + "currencyCode": { + "description": "ISO-4217 currency code for the price.", + "type": "string" + }, + "name": { + "description": "Resource name for the latest billing account price.", + "type": "string" + }, + "priceReason": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaPriceReason", + "description": "Background information on the origin of the price." + }, + "rate": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaRate", + "description": "Rate price metadata. Billing account SKUs with `Rate` price are offered by pricing tiers. The price can have 1 or more rate pricing tiers." + }, + "valueType": { + "description": "Type of the price. It can have values: [\"unspecified\", \"rate\"].", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice": { + "description": "Encapsulates a default price which is the current list price.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice", + "properties": {}, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount": { + "description": "Encapsulates a discount off the list price, anchored to the list price as of a fixed time.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount", + "properties": { + "discountPercent": { + "$ref": "Decimal", + "description": "Percentage of the fixed discount." + }, + "discountScopeType": { + "description": "Type of the fixed discount scope which indicates the source of the discount. It can have values such as 'sku-group'.", + "type": "string" + }, + "fixTime": { + "description": "Time that the fixed discount is anchored to.", + "format": "google-datetime", + "type": "string" + }, + "skuGroup": { + "description": "SKU group where the fixed discount comes from.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaFixedPrice": { + "description": "Encapsulates a set fixed price applicable during the terms of a contract agreement.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaFixedPrice", + "properties": {}, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount": { + "description": "Encapsulates a discount off the current list price, not anchored to any list price as of a fixed time.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount", + "properties": { + "discountPercent": { + "$ref": "Decimal", + "description": "Percentage of the floating discount." + }, + "discountScopeType": { + "description": "Type of the floating discount scope which indicates the source of the discount. It can have values such as 'sku-group'.", + "type": "string" + }, + "skuGroup": { + "description": "SKU group where the floating discount comes from.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling": { + "description": "Encapsulates a contract feature that the list price (DefaultPrice) will be used for the price if the current list price drops lower than the custom fixed price. Available to new contracts after March 21, 2022. Applies to all fixed price SKUs in the contract, including FixedPrice, FixedDiscount, MigratedPrice, and MergedPrice.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling", + "properties": {}, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaMergedPrice": { + "description": "Encapsulates a price after merging from multiple sources. With merged tiers, each individual tier can be from a different source with different discount types.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaMergedPrice", + "properties": {}, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice": { + "description": "Encapsulates a price migrated from other SKUs.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice", + "properties": { + "sourceDiscountOnTargetPrice": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaSourceDiscountOnTargetPrice", + "description": "The source SKU floating discount is applied on the target SKU's default price." + }, + "sourceSku": { + "description": "Source SKU where the discount is migrated from.", + "type": "string" + }, + "type": { + "description": "Type of the migrated price. It can have values such as 'source-discount-on-target-price'.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaPriceReason": { + "description": "Encapsulates a price reason which contains background information about the origin of the price.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaPriceReason", + "properties": { + "defaultPrice": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice", + "description": "Default price which is the current list price." + }, + "fixedDiscount": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount", + "description": "Discount off the list price, anchored to the list price as of a fixed time." + }, + "fixedPrice": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaFixedPrice", + "description": "Fixed price applicable during the terms of a contract agreement." + }, + "floatingDiscount": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount", + "description": "Discount off the current list price, not anchored to any list price as of a fixed time." + }, + "listPriceAsCeiling": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling", + "description": "Contract feature that the list price (DefaultPrice) will be used for the price if the current list price drops lower than the custom fixed price. Available to new contracts after March 21, 2022. Applies to all fixed price SKUs in the contract, including FixedPrice, FixedDiscount, MigratedPrice, and MergedPrice." + }, + "mergedPrice": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaMergedPrice", + "description": "Price after merging from multiple sources." + }, + "migratedPrice": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice", + "description": "Price migrated from other SKUs." + }, + "type": { + "description": "Type of the price reason. It can values such as 'default-price', 'fixed-price', 'fixed-discount', 'floating-discount', 'migrated-price', 'merged-price', 'list-price-as-ceiling'.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaRate": { + "description": "Encapsulates a `Rate` price. Billing account SKUs with `Rate` price are offered by pricing tiers. The price have 1 or more rate pricing tiers.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaRate", + "properties": { + "aggregationInfo": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo", + "description": "Aggregation info for tiers such as aggregation level and interval." + }, + "tiers": { + "description": "All tiers associated with the `Rate` price.", + "items": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaRateTier" + }, + "type": "array" + }, + "unitInfo": { + "$ref": "GoogleCloudBillingBillingaccountpricesV1betaUnitInfo", + "description": "Unit info such as name and quantity." + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaRateTier": { + "description": "Encapsulates a rate price tier.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaRateTier", + "properties": { + "contractPrice": { + "$ref": "Money", + "description": "Negotiated contract price specific for a billing account." + }, + "effectiveDiscountPercent": { + "$ref": "Decimal", + "description": "Percentage of effective discount calculated using the current list price per pricing tier. Formula used: effective_discount_percent = (list_price - contract_price) / list_price × 100 If list_price and contract_price are zero, this field is the same as `discount_percent` of FixedDiscount and FloatingDiscount. If your contract does NOT have the feature LIST_PRICE_AS_CEILING enabled, the effective_discount_percent can be negative if the SKU has a FixedDiscount and the current list price is lower than the list price on the date of the contract agreement. See the `FixedDiscount.fix_time` on when the discount was set. If you have questions regarding pricing per SKU, contact your Account team for more details." + }, + "listPrice": { + "$ref": "Money", + "description": "List price of one tier." + }, + "startAmount": { + "$ref": "Decimal", + "description": "Lower bound amount for a tier. Tiers 0-100, 100-200 will be represented with two tiers with `start_amount` 0 and 100." + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaSourceDiscountOnTargetPrice": { + "description": "Encapsulates a type of MigratedPrice where the source SKU floating discount is applied on the target SKU's default price.", + "id": "GoogleCloudBillingBillingaccountpricesV1betaSourceDiscountOnTargetPrice", + "properties": { + "migratedDiscountPercent": { + "$ref": "Decimal", + "description": "Discount percent of the source SKU that is applied on the target SKU's default price." + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountpricesV1betaUnitInfo": { + "description": "Encapsulates the unit information for a Rate", + "id": "GoogleCloudBillingBillingaccountpricesV1betaUnitInfo", + "properties": { + "unit": { + "description": "Shorthand for the unit. Example: GiBy.mo.", + "type": "string" + }, + "unitDescription": { + "description": "Human-readable description of the unit. Example: gibibyte month.", + "type": "string" + }, + "unitQuantity": { + "$ref": "Decimal", + "description": "Unit quantity for the tier. Example: if the RateTier price is $1 per 1000000 Bytes, then `unit_quantity` is set to 1000000." + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService": { + "description": "Encapsulates a Google Cloud service visible to a billing account.", + "id": "GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService", + "properties": { + "displayName": { + "description": "Description of the BillingAccountService. Example: \"BigQuery\", \"Compute Engine\".", + "type": "string" + }, + "name": { + "description": "Resource name for the BillingAccountService. Example: \"billingAccounts/012345-567890-ABCDEF/services/DA34-426B-A397\".", + "type": "string" + }, + "serviceId": { + "description": "Identifier for the service. It is the string after the collection identifier \"services/\". Example: \"DA34-426B-A397\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse": { + "description": "Response message for ListBillingAccountServices.", + "id": "GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse", + "properties": { + "billingAccountServices": { + "description": "The returned billing account services.", + "items": { + "$ref": "GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token that can be sent as `page_token` in the subsequent request to retrieve the next page. If this field is empty, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup": { + "description": "Encapsulates a stock keeping (SKU) group visible to a billing account. A SKU group represents a collection of SKUs that are related to each other. For example, the `AI Platform APIs` SKU group includes SKUs from the Cloud Dialogflow API, the Cloud Text-to-Speech API, and additional related APIs.", + "id": "GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup", + "properties": { + "displayName": { + "description": "Description of the BillingAccountSkuGroup. Example: \"A2 VMs (1 Year CUD)\".", + "type": "string" + }, + "name": { + "description": "Resource name for the BillingAccountSkuGroup. Example: \"billingAccounts/012345-567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse": { + "description": "Response message for ListBillingAccountSkuGroups.", + "id": "GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse", + "properties": { + "billingAccountSkuGroups": { + "description": "The returned publicly listed billing account SKU groups.", + "items": { + "$ref": "GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token that can be sent as `page_token` in the subsequent request to retrieve the next page. If this field is empty, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku": { + "description": "Encapsulates a SKU that is part of a billing account SKU group.", + "id": "GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku", + "properties": { + "billingAccountService": { + "description": "BillingAccountService that the BillingAccountSkuGroupSku belongs to.", + "type": "string" + }, + "displayName": { + "description": "Description of the BillingAccountSkuGroupSku. Example: \"A2 Instance Core running in Hong Kong\".", + "type": "string" + }, + "geoTaxonomy": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy", + "description": "Geographic metadata that applies to the BillingAccountSkuGroupSku." + }, + "name": { + "description": "Resource name for the BillingAccountSkuGroupSku. Example: \"billingAccounts/012345-567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301/skus/AA95-CD31-42FE\".", + "type": "string" + }, + "productTaxonomy": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy", + "description": "List of product categories that apply to the BillingAccountSkuGroupSku." + }, + "skuId": { + "description": "Unique identifier for the SKU. It is the string after the collection identifier \"skus/\" Example: \"AA95-CD31-42FE\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy": { + "description": "Encapsulates geographic metadata, such as regions and multi-regions like `us-east4` or `European Union`.", + "id": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy", + "properties": { + "globalMetadata": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal", + "description": "Global geographic metadata with no regions." + }, + "multiRegionalMetadata": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional", + "description": "Multi-regional geographic metadata with 2 or more regions." + }, + "regionalMetadata": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional", + "description": "Regional geographic metadata with 1 region." + }, + "type": { + "description": "Type of geographic taxonomy associated with the billing account SKU group SKU.", + "enum": [ + "TYPE_UNSPECIFIED", + "GLOBAL", + "REGIONAL", + "MULTI_REGIONAL" + ], + "enumDescriptions": [ + "Default value. Unspecified type.", + "Global geographic taxonomy with no regions.", + "Regional geographic taxonomy with 1 region.", + "Multi-regional geographic taxonomy with 2 or more regions." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal": { + "description": "Encapsulates a global geographic taxonomy.", + "id": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal", + "properties": {}, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional": { + "description": "Encapsulates a multi-regional geographic taxonomy.", + "id": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional", + "properties": { + "regions": { + "description": "Google Cloud regions associated with the multi-regional geographic taxonomy.", + "items": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion": { + "description": "Encapsulates a Google Cloud region.", + "id": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion", + "properties": { + "region": { + "description": "Description of a Google Cloud region. Example: \"us-west2\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional": { + "description": "Encapsulates a regional geographic taxonomy.", + "id": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional", + "properties": { + "region": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion", + "description": "Google Cloud region associated with the regional geographic taxonomy." + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse": { + "description": "Response message for ListBillingAccountSkuGroupSkus.", + "id": "GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse", + "properties": { + "billingAccountSkuGroupSkus": { + "description": "The returned billing account SKU group SKUs.", + "items": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token that can be sent as `page_token` in the subsequent request to retrieve the next page. If this field is empty, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy": { + "description": "Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`, and others.", + "id": "GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy", + "properties": { + "taxonomyCategories": { + "description": "All product categories that the billing account SKU group SKU belong to.", + "items": { + "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory": { + "description": "Encapsulates a product category.", + "id": "GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory", + "properties": { + "category": { + "description": "Name of the product category.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku": { + "description": "Encapsulates a stock keeping unit (SKU) visible to a billing account. A SKU distinctly identifies a resource that you can purchase, such as `Nvidia Tesla K80 GPU attached to Spot Preemptible VMs running in Warsaw`.", + "id": "GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku", + "properties": { + "billingAccountService": { + "description": "BillingAccountService that the BillingAccountSku belongs to.", + "type": "string" + }, + "displayName": { + "description": "Description of the BillingAccountSku. Example: \"A2 Instance Core running in Hong Kong\".", + "type": "string" + }, + "geoTaxonomy": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy", + "description": "Geographic metadata that applies to the BillingAccountSku." + }, + "name": { + "description": "Resource name for the BillingAccountSku. Example: \"billingAccounts/012345-567890-ABCDEF/skus/AA95-CD31-42FE\".", + "type": "string" + }, + "productTaxonomy": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy", + "description": "List of product categories that apply to the BillingAccountSku." + }, + "skuId": { + "description": "Unique identifier for the SKU. It is the string after the collection identifier \"skus/\" Example: \"AA95-CD31-42FE\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy": { + "description": "Encapsulates geographic metadata, such as regions and multi-regions like `us-east4` or `European Union`.", + "id": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy", + "properties": { + "globalMetadata": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal", + "description": "Global geographic metadata with no regions." + }, + "multiRegionalMetadata": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional", + "description": "Multi-regional geographic metadata with 2 or more regions." + }, + "regionalMetadata": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional", + "description": "Regional geographic metadata with 1 region." + }, + "type": { + "description": "Type of geographic taxonomy associated with the billing account SKU.", + "enum": [ + "TYPE_UNSPECIFIED", + "GLOBAL", + "REGIONAL", + "MULTI_REGIONAL" + ], + "enumDescriptions": [ + "Default value. Unspecified type.", + "Global geographic taxonomy with no regions.", + "Regional geographic taxonomy with 1 region.", + "Multi-regional geographic taxonomy with 2 or more regions." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal": { + "description": "Encapsulates a global geographic taxonomy.", + "id": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal", + "properties": {}, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional": { + "description": "Encapsulates a multi-regional geographic taxonomy.", + "id": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional", + "properties": { + "regions": { + "description": "Google Cloud regions associated with the multi-regional geographic taxonomy.", + "items": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion": { + "description": "Encapsulates a Google Cloud region.", + "id": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion", + "properties": { + "region": { + "description": "Description of a Google Cloud region. Example: \"us-west2\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional": { + "description": "Encapsulates a regional geographic taxonomy.", + "id": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional", + "properties": { + "region": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion", + "description": "Google Cloud region associated with the regional geographic taxonomy." + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse": { + "description": "Response message for ListBillingAccountSkus.", + "id": "GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse", + "properties": { + "billingAccountSkus": { + "description": "The returned billing account SKUs.", + "items": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token that can be sent as `page_token` in the subsequent request to retrieve the next page. If this field is empty, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy": { + "description": "Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`, and others.", + "id": "GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy", + "properties": { + "taxonomyCategories": { + "description": "All product categories that the billing account SKU belong to.", + "items": { + "$ref": "GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory": { + "description": "Encapsulates a product category.", + "id": "GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory", + "properties": { + "category": { + "description": "Name of the product category.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingPricesV1betaAggregationInfo": { + "description": "Encapsulates the aggregation information such as aggregation level and interval for a price.", + "id": "GoogleCloudBillingPricesV1betaAggregationInfo", + "properties": { + "interval": { + "description": "Interval at which usage is aggregated to compute cost. Example: \"MONTHLY\" interval indicates that usage is aggregated every month.", + "enum": [ + "INTERVAL_UNSPECIFIED", + "MONTHLY", + "DAILY" + ], + "enumDescriptions": [ + "Default unspecified value.", + "Usage is aggregated every month.", + "Usage is aggregated every day." + ], + "type": "string" + }, + "level": { + "description": "Level at which usage is aggregated to compute cost. Example: \"ACCOUNT\" level indicates that usage is aggregated across all projects in a single account.", + "enum": [ + "LEVEL_UNSPECIFIED", + "ACCOUNT", + "PROJECT" + ], + "enumDescriptions": [ + "Default unspecified value.", + "Usage is aggregated at an account level.", + "Usage is aggregated at a project level." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingPricesV1betaPrice": { + "description": "Encapsulates the latest price for the given SKU.", + "id": "GoogleCloudBillingPricesV1betaPrice", + "properties": { + "currencyCode": { + "description": "ISO-4217 currency code for the price.", + "type": "string" + }, + "name": { + "description": "Resource name for the latest price.", + "type": "string" + }, + "rate": { + "$ref": "GoogleCloudBillingPricesV1betaRate", + "description": "Rate price metadata. SKUs with `Rate` price are offered by pricing tiers. The price can have 1 or more rate pricing tiers." + }, + "valueType": { + "description": "Type of the price. It can have values: [\"unspecified\", \"rate\"].", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingPricesV1betaRate": { + "description": "Encapsulates a `Rate` price. SKUs with `Rate` price are offered by pricing tiers. The price have 1 or more rate pricing tiers.", + "id": "GoogleCloudBillingPricesV1betaRate", + "properties": { + "aggregationInfo": { + "$ref": "GoogleCloudBillingPricesV1betaAggregationInfo", + "description": "Aggregation info for tiers such as aggregation level and interval." + }, + "tiers": { + "description": "All tiers associated with the `Rate` price.", + "items": { + "$ref": "GoogleCloudBillingPricesV1betaRateTier" + }, + "type": "array" + }, + "unitInfo": { + "$ref": "GoogleCloudBillingPricesV1betaUnitInfo", + "description": "Unit info such as name and quantity." + } + }, + "type": "object" + }, + "GoogleCloudBillingPricesV1betaRateTier": { + "description": "Encapsulates a rate price tier.", + "id": "GoogleCloudBillingPricesV1betaRateTier", + "properties": { + "listPrice": { + "$ref": "Money", + "description": "List price of one tier." + }, + "startAmount": { + "$ref": "Decimal", + "description": "Lower bound amount for a tier. Tiers 0-100, 100-200 will be represented with two tiers with `start_amount` 0 and 100." + } + }, + "type": "object" + }, + "GoogleCloudBillingPricesV1betaUnitInfo": { + "description": "Encapsulates the unit information for a Rate", + "id": "GoogleCloudBillingPricesV1betaUnitInfo", + "properties": { + "unit": { + "description": "Shorthand for the unit. Example: GiBy.mo.", + "type": "string" + }, + "unitDescription": { + "description": "Human-readable description of the unit. Example: gibibyte month.", + "type": "string" + }, + "unitQuantity": { + "$ref": "Decimal", + "description": "Unit quantity for the tier. Example: if the RateTier price is $1 per 1000000 Bytes, then `unit_quantity` is set to 1000000." + } + }, + "type": "object" + }, + "GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse": { + "description": "Response message for ListSkuGroups.", + "id": "GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse", + "properties": { + "nextPageToken": { + "description": "Token that can be sent as `page_token` in the subsequent request to retrieve the next page. If this field is empty, there are no subsequent pages.", + "type": "string" + }, + "skuGroups": { + "description": "The returned publicly listed SKU groups.", + "items": { + "$ref": "GoogleCloudBillingSkugroupsV1betaSkuGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudBillingSkugroupsV1betaSkuGroup": { + "description": "Encapsulates a publicly listed stock keeping unit (SKU) group. A SKU group represents a collection of SKUs that are related to each other. For example, the `AI Platform APIs` SKU group includes SKUs from the Cloud Dialogflow API, the Cloud Text-to-Speech API, and additional related APIs.", + "id": "GoogleCloudBillingSkugroupsV1betaSkuGroup", + "properties": { + "displayName": { + "description": "Description of the SKU group. Example: \"A2 VMs (1 Year CUD)\".", + "type": "string" + }, + "name": { + "description": "Resource name for the SKU group. Example: \"skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy": { + "description": "Encapsulates geographic metadata, such as regions and multi-regions like `us-east4` or `European Union`.", + "id": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy", + "properties": { + "globalMetadata": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal", + "description": "Global geographic metadata with no regions." + }, + "multiRegionalMetadata": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional", + "description": "Multi-regional geographic metadata with 2 or more regions." + }, + "regionalMetadata": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional", + "description": "Regional geographic metadata with 1 region." + }, + "type": { + "description": "Type of geographic taxonomy associated with the SKU group SKU.", + "enum": [ + "TYPE_UNSPECIFIED", + "GLOBAL", + "REGIONAL", + "MULTI_REGIONAL" + ], + "enumDescriptions": [ + "Default value. Unspecified type.", + "Global geographic taxonomy with no regions.", + "Regional geographic taxonomy with 1 region.", + "Multi-regional geographic taxonomy with 2 or more regions." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal": { + "description": "Encapsulates a global geographic taxonomy.", + "id": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal", + "properties": {}, + "type": "object" + }, + "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional": { + "description": "Encapsulates a multi-regional geographic taxonomy.", + "id": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional", + "properties": { + "regions": { + "description": "Google Cloud regions associated with the multi-regional geographic taxonomy.", + "items": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion": { + "description": "Encapsulates a Google Cloud region.", + "id": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion", + "properties": { + "region": { + "description": "Description of a Google Cloud region. Example: \"us-west2\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional": { + "description": "Encapsulates a regional geographic taxonomy.", + "id": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional", + "properties": { + "region": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion", + "description": "Google Cloud region associated with the regional geographic taxonomy." + } + }, + "type": "object" + }, + "GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse": { + "description": "Response message for ListSkuGroupSkus.", + "id": "GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse", + "properties": { + "nextPageToken": { + "description": "Token that can be sent as `page_token` in the subsequent request to retrieve the next page. If this field is empty, there are no subsequent pages.", + "type": "string" + }, + "skuGroupSkus": { + "description": "The returned SKU group SKUs.", + "items": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaSkuGroupSku" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudBillingSkugroupskusV1betaProductTaxonomy": { + "description": "Encapsulates product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`, and others.", + "id": "GoogleCloudBillingSkugroupskusV1betaProductTaxonomy", + "properties": { + "taxonomyCategories": { + "description": "All product categories that the SKU group SKU belongs to.", + "items": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudBillingSkugroupskusV1betaSkuGroupSku": { + "description": "Encapsulates a publicly listed stock keeping unit (SKU) that is part of a publicly listed SKU group. A SKU group represents a collection of SKUs that are related to each other. For example, the `AI Platform APIs` SKU group includes SKUs from the Cloud Dialogflow API, the Cloud Text-to-Speech API, and additional related APIs.", + "id": "GoogleCloudBillingSkugroupskusV1betaSkuGroupSku", + "properties": { + "displayName": { + "description": "Description of the SkuGroupSku. Example: \"A2 Instance Core running in Hong Kong\".", + "type": "string" + }, + "geoTaxonomy": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy", + "description": "Geographic metadata that applies to the SkuGroupSku." + }, + "name": { + "description": "Resource name for the SkuGroupSku. Example: \"skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301/skus/AA95-CD31-42FE\".", + "type": "string" + }, + "productTaxonomy": { + "$ref": "GoogleCloudBillingSkugroupskusV1betaProductTaxonomy", + "description": "List of product categories that apply to the SkuGroupSku." + }, + "service": { + "description": "Service that the SkuGroupSku belongs to.", + "type": "string" + }, + "skuId": { + "description": "Unique identifier for the SKU. It is the string after the collection identifier \"skus/\" Example: \"AA95-CD31-42FE\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory": { + "description": "Encapsulates a product category.", + "id": "GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory", + "properties": { + "category": { + "description": "Name of the product category.", + "type": "string" + } + }, + "type": "object" + }, "GuestAccelerator": { "description": "Specification of a set of guest accelerators attached to a machine.", "id": "GuestAccelerator", diff --git a/cloudbilling/v1beta/cloudbilling-gen.go b/cloudbilling/v1beta/cloudbilling-gen.go index 2b57596d467..f8ad3c65896 100644 --- a/cloudbilling/v1beta/cloudbilling-gen.go +++ b/cloudbilling/v1beta/cloudbilling-gen.go @@ -132,6 +132,8 @@ func New(client *http.Client) (*Service, error) { } s := &Service{client: client, BasePath: basePath} s.BillingAccounts = NewBillingAccountsService(s) + s.SkuGroups = NewSkuGroupsService(s) + s.Skus = NewSkusService(s) s.V1beta = NewV1betaService(s) return s, nil } @@ -143,6 +145,10 @@ type Service struct { BillingAccounts *BillingAccountsService + SkuGroups *SkuGroupsService + + Skus *SkusService + V1beta *V1betaService } @@ -155,11 +161,113 @@ func (s *Service) userAgent() string { func NewBillingAccountsService(s *Service) *BillingAccountsService { rs := &BillingAccountsService{s: s} + rs.Services = NewBillingAccountsServicesService(s) + rs.SkuGroups = NewBillingAccountsSkuGroupsService(s) + rs.Skus = NewBillingAccountsSkusService(s) return rs } type BillingAccountsService struct { s *Service + + Services *BillingAccountsServicesService + + SkuGroups *BillingAccountsSkuGroupsService + + Skus *BillingAccountsSkusService +} + +func NewBillingAccountsServicesService(s *Service) *BillingAccountsServicesService { + rs := &BillingAccountsServicesService{s: s} + return rs +} + +type BillingAccountsServicesService struct { + s *Service +} + +func NewBillingAccountsSkuGroupsService(s *Service) *BillingAccountsSkuGroupsService { + rs := &BillingAccountsSkuGroupsService{s: s} + rs.Skus = NewBillingAccountsSkuGroupsSkusService(s) + return rs +} + +type BillingAccountsSkuGroupsService struct { + s *Service + + Skus *BillingAccountsSkuGroupsSkusService +} + +func NewBillingAccountsSkuGroupsSkusService(s *Service) *BillingAccountsSkuGroupsSkusService { + rs := &BillingAccountsSkuGroupsSkusService{s: s} + return rs +} + +type BillingAccountsSkuGroupsSkusService struct { + s *Service +} + +func NewBillingAccountsSkusService(s *Service) *BillingAccountsSkusService { + rs := &BillingAccountsSkusService{s: s} + rs.Price = NewBillingAccountsSkusPriceService(s) + return rs +} + +type BillingAccountsSkusService struct { + s *Service + + Price *BillingAccountsSkusPriceService +} + +func NewBillingAccountsSkusPriceService(s *Service) *BillingAccountsSkusPriceService { + rs := &BillingAccountsSkusPriceService{s: s} + return rs +} + +type BillingAccountsSkusPriceService struct { + s *Service +} + +func NewSkuGroupsService(s *Service) *SkuGroupsService { + rs := &SkuGroupsService{s: s} + rs.Skus = NewSkuGroupsSkusService(s) + return rs +} + +type SkuGroupsService struct { + s *Service + + Skus *SkuGroupsSkusService +} + +func NewSkuGroupsSkusService(s *Service) *SkuGroupsSkusService { + rs := &SkuGroupsSkusService{s: s} + return rs +} + +type SkuGroupsSkusService struct { + s *Service +} + +func NewSkusService(s *Service) *SkusService { + rs := &SkusService{s: s} + rs.Price = NewSkusPriceService(s) + return rs +} + +type SkusService struct { + s *Service + + Price *SkusPriceService +} + +func NewSkusPriceService(s *Service) *SkusPriceService { + rs := &SkusPriceService{s: s} + return rs +} + +type SkusPriceService struct { + s *Service } func NewV1betaService(s *Service) *V1betaService { @@ -874,6 +982,77 @@ func (s *CustomMachineType) UnmarshalJSON(data []byte) error { return nil } +// Decimal: A representation of a decimal value, such as 2.5. Clients +// may convert values into language-native decimal formats, such as +// Java's BigDecimal or Python's decimal.Decimal. [BigDecimal]: +// https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html +// [decimal.Decimal]: https://docs.python.org/3/library/decimal.html +type Decimal struct { + // Value: The decimal value, as a string. The string representation + // consists of an optional sign, `+` (`U+002B`) or `-` (`U+002D`), + // followed by a sequence of zero or more decimal digits ("the + // integer"), optionally followed by a fraction, optionally followed by + // an exponent. An empty string **should** be interpreted as `0`. The + // fraction consists of a decimal point followed by zero or more decimal + // digits. The string must contain at least one digit in either the + // integer or the fraction. The number formed by the sign, the integer + // and the fraction is referred to as the significand. The exponent + // consists of the character `e` (`U+0065`) or `E` (`U+0045`) followed + // by one or more decimal digits. Services **should** normalize decimal + // values before storing them by: - Removing an explicitly-provided `+` + // sign (`+2.5` -> `2.5`). - Replacing a zero-length integer value with + // `0` (`.5` -> `0.5`). - Coercing the exponent character to upper-case, + // with explicit sign (`2.5e8` -> `2.5E+8`). - Removing an + // explicitly-provided zero exponent (`2.5E0` -> `2.5`). Services + // **may** perform additional normalization based on its own needs and + // the internal decimal implementation selected, such as shifting the + // decimal point and exponent value together (example: `2.5E-1` <-> + // `0.25`). Additionally, services **may** preserve trailing zeroes in + // the fraction to indicate increased precision, but are not required to + // do so. Note that only the `.` character is supported to divide the + // integer and the fraction; `,` **should not** be supported regardless + // of locale. Additionally, thousand separators **should not** be + // supported. If a service does support them, values **must** be + // normalized. The ENBF grammar is: DecimalString = '' | [Sign] + // Significand [Exponent]; Sign = '+' | '-'; Significand = Digits '.' | + // [Digits] '.' Digits; Exponent = ('e' | 'E') [Sign] Digits; Digits = { + // '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; Services + // **should** clearly document the range of supported values, the + // maximum supported precision (total number of digits), and, if + // applicable, the scale (number of digits after the decimal point), as + // well as how it behaves when receiving out-of-bounds values. Services + // **may** choose to accept values passed as input even when the value + // has a higher precision or scale than the service supports, and + // **should** round the value to fit the supported scale. Alternatively, + // the service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` + // in gRPC) if precision would be lost. Services **should** error with + // `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if the service + // receives a value outside of the supported range. + Value string `json:"value,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Value") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Value") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Decimal) MarshalJSON() ([]byte, error) { + type NoMethod Decimal + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // DualRegional: Area contains dual locations. type DualRegional struct { // Name: The location name @@ -1063,18 +1242,79 @@ func (s *EstimationTimePoint) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// GuestAccelerator: Specification of a set of guest accelerators -// attached to a machine. -type GuestAccelerator struct { - // AcceleratorCount: The number of the guest accelerator cards exposed - // to each instance. - AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"` +// GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo: +// Encapsulates the aggregation information such as aggregation level +// and interval for a billing account price. +type GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo struct { + // Interval: Interval at which usage is aggregated to compute cost. + // Example: "MONTHLY" interval indicates that usage is aggregated every + // month. + // + // Possible values: + // "INTERVAL_UNSPECIFIED" - Default unspecified value. + // "MONTHLY" - Usage is aggregated every month. + // "DAILY" - Usage is aggregated every day. + Interval string `json:"interval,omitempty"` + + // Level: Level at which usage is aggregated to compute cost. Example: + // "ACCOUNT" level indicates that usage is aggregated across all + // projects in a single account. + // + // Possible values: + // "LEVEL_UNSPECIFIED" - Default unspecified value. + // "ACCOUNT" - Usage is aggregated at an account level. + // "PROJECT" - Usage is aggregated at a project level. + Level string `json:"level,omitempty"` - // AcceleratorType: The type of the guest accelerator cards. For - // example: "nvidia-tesla-t4". - AcceleratorType string `json:"acceleratorType,omitempty"` + // ForceSendFields is a list of field names (e.g. "Interval") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` - // ForceSendFields is a list of field names (e.g. "AcceleratorCount") to + // NullFields is a list of field names (e.g. "Interval") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice: +// Encapsulates the latest price for the given billing account SKU. +type GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice struct { + // CurrencyCode: ISO-4217 currency code for the price. + CurrencyCode string `json:"currencyCode,omitempty"` + + // Name: Resource name for the latest billing account price. + Name string `json:"name,omitempty"` + + // PriceReason: Background information on the origin of the price. + PriceReason *GoogleCloudBillingBillingaccountpricesV1betaPriceReason `json:"priceReason,omitempty"` + + // Rate: Rate price metadata. Billing account SKUs with `Rate` price are + // offered by pricing tiers. The price can have 1 or more rate pricing + // tiers. + Rate *GoogleCloudBillingBillingaccountpricesV1betaRate `json:"rate,omitempty"` + + // ValueType: Type of the price. It can have values: ["unspecified", + // "rate"]. + ValueType string `json:"valueType,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "CurrencyCode") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1082,7 +1322,52 @@ type GuestAccelerator struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AcceleratorCount") to + // NullFields is a list of field names (e.g. "CurrencyCode") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice: +// Encapsulates a default price which is the current list price. +type GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice struct { +} + +// GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount: +// Encapsulates a discount off the list price, anchored to the list +// price as of a fixed time. +type GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount struct { + // DiscountPercent: Percentage of the fixed discount. + DiscountPercent *Decimal `json:"discountPercent,omitempty"` + + // DiscountScopeType: Type of the fixed discount scope which indicates + // the source of the discount. It can have values such as 'sku-group'. + DiscountScopeType string `json:"discountScopeType,omitempty"` + + // FixTime: Time that the fixed discount is anchored to. + FixTime string `json:"fixTime,omitempty"` + + // SkuGroup: SKU group where the fixed discount comes from. + SkuGroup string `json:"skuGroup,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DiscountPercent") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DiscountPercent") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the @@ -1092,37 +1377,42 @@ type GuestAccelerator struct { NullFields []string `json:"-"` } -func (s *GuestAccelerator) MarshalJSON() ([]byte, error) { - type NoMethod GuestAccelerator +func (s *GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// InterRegionEgress: Egress traffic between two regions. -type InterRegionEgress struct { - // DestinationRegion: Which region - // (https://cloud.google.com/compute/docs/regions-zones) the egress data - // goes to. - DestinationRegion string `json:"destinationRegion,omitempty"` +// GoogleCloudBillingBillingaccountpricesV1betaFixedPrice: Encapsulates +// a set fixed price applicable during the terms of a contract +// agreement. +type GoogleCloudBillingBillingaccountpricesV1betaFixedPrice struct { +} - // EgressRate: VM to VM egress usage. Expected units such as "GiBy/s, - // By/s, etc." - EgressRate *Usage `json:"egressRate,omitempty"` +// GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount: +// Encapsulates a discount off the current list price, not anchored to +// any list price as of a fixed time. +type GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount struct { + // DiscountPercent: Percentage of the floating discount. + DiscountPercent *Decimal `json:"discountPercent,omitempty"` - // SourceRegion: Which region - // (https://cloud.google.com/compute/docs/regions-zones) the egress data - // comes from. - SourceRegion string `json:"sourceRegion,omitempty"` + // DiscountScopeType: Type of the floating discount scope which + // indicates the source of the discount. It can have values such as + // 'sku-group'. + DiscountScopeType string `json:"discountScopeType,omitempty"` - // ForceSendFields is a list of field names (e.g. "DestinationRegion") - // to unconditionally include in API requests. By default, fields with + // SkuGroup: SKU group where the floating discount comes from. + SkuGroup string `json:"skuGroup,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DiscountPercent") to + // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DestinationRegion") to + // NullFields is a list of field names (e.g. "DiscountPercent") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the @@ -1132,21 +1422,107 @@ type InterRegionEgress struct { NullFields []string `json:"-"` } -func (s *InterRegionEgress) MarshalJSON() ([]byte, error) { - type NoMethod InterRegionEgress +func (s *GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// IntraRegionEgress: Egress traffic within the same region. When source -// region and destination region are in the same zone, using the -// internal IP addresses, there isn't any egress charge. -type IntraRegionEgress struct { - // EgressRate: VM to VM egress usage. Expected units such as "GiBy/s, - // By/s, etc." - EgressRate *Usage `json:"egressRate,omitempty"` +// GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling: +// Encapsulates a contract feature that the list price (DefaultPrice) +// will be used for the price if the current list price drops lower than +// the custom fixed price. Available to new contracts after March 21, +// 2022. Applies to all fixed price SKUs in the contract, including +// FixedPrice, FixedDiscount, MigratedPrice, and MergedPrice. +type GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling struct { +} - // ForceSendFields is a list of field names (e.g. "EgressRate") to +// GoogleCloudBillingBillingaccountpricesV1betaMergedPrice: Encapsulates +// a price after merging from multiple sources. With merged tiers, each +// individual tier can be from a different source with different +// discount types. +type GoogleCloudBillingBillingaccountpricesV1betaMergedPrice struct { +} + +// GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice: +// Encapsulates a price migrated from other SKUs. +type GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice struct { + // SourceDiscountOnTargetPrice: The source SKU floating discount is + // applied on the target SKU's default price. + SourceDiscountOnTargetPrice *GoogleCloudBillingBillingaccountpricesV1betaSourceDiscountOnTargetPrice `json:"sourceDiscountOnTargetPrice,omitempty"` + + // SourceSku: Source SKU where the discount is migrated from. + SourceSku string `json:"sourceSku,omitempty"` + + // Type: Type of the migrated price. It can have values such as + // 'source-discount-on-target-price'. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "SourceDiscountOnTargetPrice") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "SourceDiscountOnTargetPrice") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingBillingaccountpricesV1betaPriceReason: Encapsulates +// a price reason which contains background information about the origin +// of the price. +type GoogleCloudBillingBillingaccountpricesV1betaPriceReason struct { + // DefaultPrice: Default price which is the current list price. + DefaultPrice *GoogleCloudBillingBillingaccountpricesV1betaDefaultPrice `json:"defaultPrice,omitempty"` + + // FixedDiscount: Discount off the list price, anchored to the list + // price as of a fixed time. + FixedDiscount *GoogleCloudBillingBillingaccountpricesV1betaFixedDiscount `json:"fixedDiscount,omitempty"` + + // FixedPrice: Fixed price applicable during the terms of a contract + // agreement. + FixedPrice *GoogleCloudBillingBillingaccountpricesV1betaFixedPrice `json:"fixedPrice,omitempty"` + + // FloatingDiscount: Discount off the current list price, not anchored + // to any list price as of a fixed time. + FloatingDiscount *GoogleCloudBillingBillingaccountpricesV1betaFloatingDiscount `json:"floatingDiscount,omitempty"` + + // ListPriceAsCeiling: Contract feature that the list price + // (DefaultPrice) will be used for the price if the current list price + // drops lower than the custom fixed price. Available to new contracts + // after March 21, 2022. Applies to all fixed price SKUs in the + // contract, including FixedPrice, FixedDiscount, MigratedPrice, and + // MergedPrice. + ListPriceAsCeiling *GoogleCloudBillingBillingaccountpricesV1betaListPriceAsCeiling `json:"listPriceAsCeiling,omitempty"` + + // MergedPrice: Price after merging from multiple sources. + MergedPrice *GoogleCloudBillingBillingaccountpricesV1betaMergedPrice `json:"mergedPrice,omitempty"` + + // MigratedPrice: Price migrated from other SKUs. + MigratedPrice *GoogleCloudBillingBillingaccountpricesV1betaMigratedPrice `json:"migratedPrice,omitempty"` + + // Type: Type of the price reason. It can values such as + // 'default-price', 'fixed-price', 'fixed-discount', + // 'floating-discount', 'migrated-price', 'merged-price', + // 'list-price-as-ceiling'. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DefaultPrice") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1154,37 +1530,44 @@ type IntraRegionEgress struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "EgressRate") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as + // NullFields is a list of field names (e.g. "DefaultPrice") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } -func (s *IntraRegionEgress) MarshalJSON() ([]byte, error) { - type NoMethod IntraRegionEgress +func (s *GoogleCloudBillingBillingaccountpricesV1betaPriceReason) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountpricesV1betaPriceReason raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// MachineType: Specification of machine series, memory, and number of -// vCPUs. -type MachineType struct { - CustomMachineType *CustomMachineType `json:"customMachineType,omitempty"` +// GoogleCloudBillingBillingaccountpricesV1betaRate: Encapsulates a +// `Rate` price. Billing account SKUs with `Rate` price are offered by +// pricing tiers. The price have 1 or more rate pricing tiers. +type GoogleCloudBillingBillingaccountpricesV1betaRate struct { + // AggregationInfo: Aggregation info for tiers such as aggregation level + // and interval. + AggregationInfo *GoogleCloudBillingBillingaccountpricesV1betaAggregationInfo `json:"aggregationInfo,omitempty"` - PredefinedMachineType *PredefinedMachineType `json:"predefinedMachineType,omitempty"` + // Tiers: All tiers associated with the `Rate` price. + Tiers []*GoogleCloudBillingBillingaccountpricesV1betaRateTier `json:"tiers,omitempty"` - // ForceSendFields is a list of field names (e.g. "CustomMachineType") - // to unconditionally include in API requests. By default, fields with + // UnitInfo: Unit info such as name and quantity. + UnitInfo *GoogleCloudBillingBillingaccountpricesV1betaUnitInfo `json:"unitInfo,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AggregationInfo") to + // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CustomMachineType") to + // NullFields is a list of field names (e.g. "AggregationInfo") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the @@ -1194,30 +1577,41 @@ type MachineType struct { NullFields []string `json:"-"` } -func (s *MachineType) MarshalJSON() ([]byte, error) { - type NoMethod MachineType +func (s *GoogleCloudBillingBillingaccountpricesV1betaRate) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountpricesV1betaRate raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// Money: Represents an amount of money with its currency type. -type Money struct { - // CurrencyCode: The three-letter currency code defined in ISO 4217. - CurrencyCode string `json:"currencyCode,omitempty"` - - // Nanos: Number of nano (10^-9) units of the amount. The value must be - // between -999,999,999 and +999,999,999 inclusive. If `units` is - // positive, `nanos` must be positive or zero. If `units` is zero, - // `nanos` can be positive, zero, or negative. If `units` is negative, - // `nanos` must be negative or zero. For example $-1.75 is represented - // as `units`=-1 and `nanos`=-750,000,000. - Nanos int64 `json:"nanos,omitempty"` - - // Units: The whole units of the amount. For example if `currencyCode` - // is "USD", then 1 unit is one US dollar. - Units int64 `json:"units,omitempty,string"` - - // ForceSendFields is a list of field names (e.g. "CurrencyCode") to +// GoogleCloudBillingBillingaccountpricesV1betaRateTier: Encapsulates a +// rate price tier. +type GoogleCloudBillingBillingaccountpricesV1betaRateTier struct { + // ContractPrice: Negotiated contract price specific for a billing + // account. + ContractPrice *Money `json:"contractPrice,omitempty"` + + // EffectiveDiscountPercent: Percentage of effective discount calculated + // using the current list price per pricing tier. Formula used: + // effective_discount_percent = (list_price - contract_price) / + // list_price × 100 If list_price and contract_price are zero, this + // field is the same as `discount_percent` of FixedDiscount and + // FloatingDiscount. If your contract does NOT have the feature + // LIST_PRICE_AS_CEILING enabled, the effective_discount_percent can be + // negative if the SKU has a FixedDiscount and the current list price is + // lower than the list price on the date of the contract agreement. See + // the `FixedDiscount.fix_time` on when the discount was set. If you + // have questions regarding pricing per SKU, contact your Account team + // for more details. + EffectiveDiscountPercent *Decimal `json:"effectiveDiscountPercent,omitempty"` + + // ListPrice: List price of one tier. + ListPrice *Money `json:"listPrice,omitempty"` + + // StartAmount: Lower bound amount for a tier. Tiers 0-100, 100-200 will + // be represented with two tiers with `start_amount` 0 and 100. + StartAmount *Decimal `json:"startAmount,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ContractPrice") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1225,7 +1619,7 @@ type Money struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CurrencyCode") to include + // NullFields is a list of field names (e.g. "ContractPrice") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as @@ -1234,69 +1628,61 @@ type Money struct { NullFields []string `json:"-"` } -func (s *Money) MarshalJSON() ([]byte, error) { - type NoMethod Money +func (s *GoogleCloudBillingBillingaccountpricesV1betaRateTier) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountpricesV1betaRateTier raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// MultiRegional: Area contains multiple locations. -type MultiRegional struct { - // Name: The location name - // (https://cloud.google.com/storage/docs/locations#available-locations) - // where the data is stored. For example: "us" for multi-region. - Name string `json:"name,omitempty"` +// GoogleCloudBillingBillingaccountpricesV1betaSourceDiscountOnTargetPric +// e: Encapsulates a type of MigratedPrice where the source SKU floating +// discount is applied on the target SKU's default price. +type GoogleCloudBillingBillingaccountpricesV1betaSourceDiscountOnTargetPrice struct { + // MigratedDiscountPercent: Discount percent of the source SKU that is + // applied on the target SKU's default price. + MigratedDiscountPercent *Decimal `json:"migratedDiscountPercent,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. + // ForceSendFields is a list of field names (e.g. + // "MigratedDiscountPercent") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API - // requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. + // NullFields is a list of field names (e.g. "MigratedDiscountPercent") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. NullFields []string `json:"-"` } -func (s *MultiRegional) MarshalJSON() ([]byte, error) { - type NoMethod MultiRegional +func (s *GoogleCloudBillingBillingaccountpricesV1betaSourceDiscountOnTargetPrice) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountpricesV1betaSourceDiscountOnTargetPrice raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// PersistentDisk: Specification of a persistent disk attached to a VM. -type PersistentDisk struct { - // DiskSize: Specifies the size of disk. Must be at least 10 GB. - DiskSize *Usage `json:"diskSize,omitempty"` - - // DiskType: The disk type - // (https://cloud.google.com/compute/docs/disks#disk-types). For - // example: "pd-standard". - DiskType string `json:"diskType,omitempty"` +// GoogleCloudBillingBillingaccountpricesV1betaUnitInfo: Encapsulates +// the unit information for a Rate +type GoogleCloudBillingBillingaccountpricesV1betaUnitInfo struct { + // Unit: Shorthand for the unit. Example: GiBy.mo. + Unit string `json:"unit,omitempty"` - // ProvisionedIops: Indicates how many IOPS to provision for the disk - // for extreme persistent disks. This sets the number of I/O operations - // per second that the disk can handle. Values must be between 10,000 - // and 120,000. - ProvisionedIops *Usage `json:"provisionedIops,omitempty"` + // UnitDescription: Human-readable description of the unit. Example: + // gibibyte month. + UnitDescription string `json:"unitDescription,omitempty"` - // Scope: The geographic scope of the disk. Defaults to `SCOPE_ZONAL` if - // not specified. - // - // Possible values: - // "SCOPE_UNSPECIFIED" - Unspecified. - // "SCOPE_ZONAL" - The disk exists in a single zone. - // "SCOPE_REGIONAL" - The disk is replicated in a secondary zone - // within the same region. - Scope string `json:"scope,omitempty"` + // UnitQuantity: Unit quantity for the tier. Example: if the RateTier + // price is $1 per 1000000 Bytes, then `unit_quantity` is set to + // 1000000. + UnitQuantity *Decimal `json:"unitQuantity,omitempty"` - // ForceSendFields is a list of field names (e.g. "DiskSize") to + // ForceSendFields is a list of field names (e.g. "Unit") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1304,8 +1690,8 @@ type PersistentDisk struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DiskSize") to include in - // API requests with the JSON null value. By default, fields with empty + // NullFields is a list of field names (e.g. "Unit") to include in API + // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. @@ -1313,20 +1699,32 @@ type PersistentDisk struct { NullFields []string `json:"-"` } -func (s *PersistentDisk) MarshalJSON() ([]byte, error) { - type NoMethod PersistentDisk +func (s *GoogleCloudBillingBillingaccountpricesV1betaUnitInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountpricesV1betaUnitInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// PredefinedMachineType: Specification of a predefined machine type. -type PredefinedMachineType struct { - // MachineType: The machine type - // (https://cloud.google.com/compute/docs/machine-types). For example: - // "n1-standard1". - MachineType string `json:"machineType,omitempty"` +// GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService: +// Encapsulates a Google Cloud service visible to a billing account. +type GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService struct { + // DisplayName: Description of the BillingAccountService. Example: + // "BigQuery", "Compute Engine". + DisplayName string `json:"displayName,omitempty"` - // ForceSendFields is a list of field names (e.g. "MachineType") to + // Name: Resource name for the BillingAccountService. Example: + // "billingAccounts/012345-567890-ABCDEF/services/DA34-426B-A397". + Name string `json:"name,omitempty"` + + // ServiceId: Identifier for the service. It is the string after the + // collection identifier "services/". Example: "DA34-426B-A397". + ServiceId string `json:"serviceId,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "DisplayName") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1334,7 +1732,7 @@ type PredefinedMachineType struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "MachineType") to include + // NullFields is a list of field names (e.g. "DisplayName") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as @@ -1343,45 +1741,29 @@ type PredefinedMachineType struct { NullFields []string `json:"-"` } -func (s *PredefinedMachineType) MarshalJSON() ([]byte, error) { - type NoMethod PredefinedMachineType +func (s *GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// PremiumTierEgressWorkload: Specify Premium Tier Internet egress -// networking. -type PremiumTierEgressWorkload struct { - // DestinationContinent: Where the data is sent to. - // - // Possible values: - // "DESTINATION_CONTINENT_UNSPECIFIED" - Not specified. - // "DESTINATION_CONTINENT_ASIA_PACIFIC" - Asia Pacific. - // "DESTINATION_CONTINENT_AFRICA" - Africa. - // "DESTINATION_CONTINENT_NORTH_AMERICA" - North America. - // "DESTINATION_CONTINENT_AUTRALIA" - Australia. - // "DESTINATION_CONTINENT_CENTRAL_AMERICA" - Central America. - // "DESTINATION_CONTINENT_CHINA" - China. - // "DESTINATION_CONTINENT_EASTERN_EUROPE" - Eastern Europe. - // "DESTINATION_CONTINENT_WESTERN_EUROPE" - Western Europe. - // "DESTINATION_CONTINENT_EMEA" - Other regions in Europe, Middle East - // and Africa. - // "DESTINATION_CONTINENT_INDIA" - India - // "DESTINATION_CONTINENT_MIDDLE_EAST" - Middle East. - // "DESTINATION_CONTINENT_SOUTH_AMERICA" - South America. - DestinationContinent string `json:"destinationContinent,omitempty"` +// GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServic +// esResponse: Response message for ListBillingAccountServices. +type GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse struct { + // BillingAccountServices: The returned billing account services. + BillingAccountServices []*GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService `json:"billingAccountServices,omitempty"` - // EgressRate: Premium Tier egress usage. Expected units such as - // "GiBy/s, By/s, etc." - EgressRate *Usage `json:"egressRate,omitempty"` + // NextPageToken: Token that can be sent as `page_token` in the + // subsequent request to retrieve the next page. If this field is empty, + // there are no subsequent pages. + NextPageToken string `json:"nextPageToken,omitempty"` - // SourceRegion: Which region - // (https://cloud.google.com/compute/docs/regions-zones) the egress data - // comes from. - SourceRegion string `json:"sourceRegion,omitempty"` + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. - // "DestinationContinent") to unconditionally include in API requests. + // "BillingAccountServices") to unconditionally include in API requests. // By default, fields with empty or default values are omitted from API // requests. However, any non-pointer, non-interface field appearing in // ForceSendFields will be sent to the server regardless of whether the @@ -1389,35 +1771,45 @@ type PremiumTierEgressWorkload struct { // Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DestinationContinent") to - // include in API requests with the JSON null value. By default, fields - // with empty values are omitted from API requests. However, any field - // with an empty value appearing in NullFields will be sent to the + // NullFields is a list of field names (e.g. "BillingAccountServices") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } -func (s *PremiumTierEgressWorkload) MarshalJSON() ([]byte, error) { - type NoMethod PremiumTierEgressWorkload +func (s *GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// Price: The price of a SKU at a point int time. -type Price struct { - // EffectiveTime: The timestamp within the estimation time frame when - // the price was set. - EffectiveTime *EstimationTimePoint `json:"effectiveTime,omitempty"` +// GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup: +// +// Encapsulates a stock keeping (SKU) group visible to a billing +// +// account. A SKU group represents a collection of SKUs that are related +// to each other. For example, the `AI Platform APIs` SKU group includes +// SKUs from the Cloud Dialogflow API, the Cloud Text-to-Speech API, and +// additional related APIs. +type GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup struct { + // DisplayName: Description of the BillingAccountSkuGroup. Example: "A2 + // VMs (1 Year CUD)". + DisplayName string `json:"displayName,omitempty"` - // PriceType: The type of price. Possible values: "RATE" - PriceType string `json:"priceType,omitempty"` + // Name: Resource name for the BillingAccountSkuGroup. Example: + // "billingAccounts/012345-567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a69 + // 6-7a78b1a69301". + Name string `json:"name,omitempty"` - // Rate: A set of tiered rates. - Rate *Rate `json:"rate,omitempty"` + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "EffectiveTime") to + // ForceSendFields is a list of field names (e.g. "DisplayName") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1425,7 +1817,7 @@ type Price struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "EffectiveTime") to include + // NullFields is a list of field names (e.g. "DisplayName") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as @@ -1434,75 +1826,137 @@ type Price struct { NullFields []string `json:"-"` } -func (s *Price) MarshalJSON() ([]byte, error) { - type NoMethod Price +func (s *GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// Rate: A SKU price consisting of tiered rates. -type Rate struct { - // Tiers: The service tiers. - Tiers []*RateTier `json:"tiers,omitempty"` +// GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGr +// oupsResponse: Response message for ListBillingAccountSkuGroups. +type GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse struct { + // BillingAccountSkuGroups: The returned publicly listed billing account + // SKU groups. + BillingAccountSkuGroups []*GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup `json:"billingAccountSkuGroups,omitempty"` - // Unit: The SKU's pricing unit. For example, if the tier price is $1 - // per 1000000 Bytes, then this field will show 'By'. The `start_amount` - // field in each tier will be in this unit. - Unit string `json:"unit,omitempty"` + // NextPageToken: Token that can be sent as `page_token` in the + // subsequent request to retrieve the next page. If this field is empty, + // there are no subsequent pages. + NextPageToken string `json:"nextPageToken,omitempty"` - // UnitCount: The SKU's count for the pricing unit. For example, if the - // tier price is $1 per 1000000 Bytes, then this column will show - // 1000000. - UnitCount float64 `json:"unitCount,omitempty"` + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Tiers") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. + // ForceSendFields is a list of field names (e.g. + // "BillingAccountSkuGroups") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Tiers") to include in API - // requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. + // NullFields is a list of field names (e.g. "BillingAccountSkuGroups") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. NullFields []string `json:"-"` } -func (s *Rate) MarshalJSON() ([]byte, error) { - type NoMethod Rate +func (s *GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -func (s *Rate) UnmarshalJSON(data []byte) error { - type NoMethod Rate - var s1 struct { - UnitCount gensupport.JSONFloat64 `json:"unitCount"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.UnitCount = float64(s1.UnitCount) - return nil +// GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGro +// upSku: Encapsulates a SKU that is part of a billing account SKU +// group. +type GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku struct { + // BillingAccountService: BillingAccountService that the + // BillingAccountSkuGroupSku belongs to. + BillingAccountService string `json:"billingAccountService,omitempty"` + + // DisplayName: Description of the BillingAccountSkuGroupSku. Example: + // "A2 Instance Core running in Hong Kong". + DisplayName string `json:"displayName,omitempty"` + + // GeoTaxonomy: Geographic metadata that applies to the + // BillingAccountSkuGroupSku. + GeoTaxonomy *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy `json:"geoTaxonomy,omitempty"` + + // Name: Resource name for the BillingAccountSkuGroupSku. Example: + // "billingAccounts/012345-567890-ABCDEF/skuGroups/0e6403d1-4694-44d2-a69 + // 6-7a78b1a69301/skus/AA95-CD31-42FE". + Name string `json:"name,omitempty"` + + // ProductTaxonomy: List of product categories that apply to the + // BillingAccountSkuGroupSku. + ProductTaxonomy *GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy `json:"productTaxonomy,omitempty"` + + // SkuId: Unique identifier for the SKU. It is the string after the + // collection identifier "skus/" Example: "AA95-CD31-42FE". + SkuId string `json:"skuId,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. + // "BillingAccountService") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BillingAccountService") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` } -// RateTier: Pricing details for a service tier. -type RateTier struct { - // Price: The price for this tier. - Price *Money `json:"price,omitempty"` +func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} - // StartAmount: The magnitude of usage in which the tier interval - // begins. Example: "From 100 GiBi the price is $1 per byte" implies - // `start_amount` = 100 - StartAmount float64 `json:"startAmount,omitempty"` +// GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy: +// Encapsulates geographic metadata, such as regions and multi-regions +// like `us-east4` or `European Union`. +type GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy struct { + // GlobalMetadata: Global geographic metadata with no regions. + GlobalMetadata *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal `json:"globalMetadata,omitempty"` - // ForceSendFields is a list of field names (e.g. "Price") to + // MultiRegionalMetadata: Multi-regional geographic metadata with 2 or + // more regions. + MultiRegionalMetadata *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional `json:"multiRegionalMetadata,omitempty"` + + // RegionalMetadata: Regional geographic metadata with 1 region. + RegionalMetadata *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional `json:"regionalMetadata,omitempty"` + + // Type: Type of geographic taxonomy associated with the billing account + // SKU group SKU. + // + // Possible values: + // "TYPE_UNSPECIFIED" - Default value. Unspecified type. + // "GLOBAL" - Global geographic taxonomy with no regions. + // "REGIONAL" - Regional geographic taxonomy with 1 region. + // "MULTI_REGIONAL" - Multi-regional geographic taxonomy with 2 or + // more regions. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "GlobalMetadata") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1510,43 +1964,35 @@ type RateTier struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Price") to include in API - // requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. + // NullFields is a list of field names (e.g. "GlobalMetadata") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. NullFields []string `json:"-"` } -func (s *RateTier) MarshalJSON() ([]byte, error) { - type NoMethod RateTier +func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomy raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -func (s *RateTier) UnmarshalJSON(data []byte) error { - type NoMethod RateTier - var s1 struct { - StartAmount gensupport.JSONFloat64 `json:"startAmount"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.StartAmount = float64(s1.StartAmount) - return nil +// GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal: +// Encapsulates a global geographic taxonomy. +type GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyGlobal struct { } -// Regional: Area contains only one location. -type Regional struct { - // Name: The location name - // (https://cloud.google.com/storage/docs/locations#available-locations). - // For example: "us-central1" for region. - Name string `json:"name,omitempty"` +// GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegi +// onal: Encapsulates a multi-regional geographic taxonomy. +type GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional struct { + // Regions: Google Cloud regions associated with the multi-regional + // geographic taxonomy. + Regions []*GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion `json:"regions,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to + // ForceSendFields is a list of field names (e.g. "Regions") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1554,8 +2000,8 @@ type Regional struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API - // requests with the JSON null value. By default, fields with empty + // NullFields is a list of field names (e.g. "Regions") to include in + // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. @@ -1563,26 +2009,19 @@ type Regional struct { NullFields []string `json:"-"` } -func (s *Regional) MarshalJSON() ([]byte, error) { - type NoMethod Regional +func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyMultiRegional raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// ScenarioConfig: Configuration for a CostScenario. Specifies how costs -// are calculated. -type ScenarioConfig struct { - // EstimateDuration: Time frame for the estimate. Workloads must specify - // usage for this duration. Duration must be at least 1 hour (3,600 - // seconds) and at most 10 years (315,360,000 seconds). The calculations - // for years and months are based on a 730-hour (2,628,000-second) - // month. For durations longer than one month (2,628,000 seconds), the - // duration is rounded up to the next month, so the estimate shows you - // the costs for full months. For example, a duration of 3,232,800 - // seconds (roughly 5 weeks) is rounded up to 2 months. - EstimateDuration string `json:"estimateDuration,omitempty"` +// GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion: +// Encapsulates a Google Cloud region. +type GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion struct { + // Region: Description of a Google Cloud region. Example: "us-west2". + Region string `json:"region,omitempty"` - // ForceSendFields is a list of field names (e.g. "EstimateDuration") to + // ForceSendFields is a list of field names (e.g. "Region") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1590,39 +2029,71 @@ type ScenarioConfig struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "EstimateDuration") to - // include in API requests with the JSON null value. By default, fields - // with empty values are omitted from API requests. However, any field - // with an empty value appearing in NullFields will be sent to the - // server as null. It is an error if a field in this list has a - // non-empty value. This may be used to include null fields in Patch - // requests. + // NullFields is a list of field names (e.g. "Region") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } -func (s *ScenarioConfig) MarshalJSON() ([]byte, error) { - type NoMethod ScenarioConfig +func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// SegmentCostEstimate: Workload cost estimates for a single time -// segment. -type SegmentCostEstimate struct { - // CommitmentCostEstimates: Estimated costs for each commitment. - CommitmentCostEstimates []*CommitmentCostEstimate `json:"commitmentCostEstimates,omitempty"` +// GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional: +// +// Encapsulates a regional geographic taxonomy. +type GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional struct { + // Region: Google Cloud region associated with the regional geographic + // taxonomy. + Region *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegion `json:"region,omitempty"` - // SegmentStartTime: Timestamp for the start of the segment. - SegmentStartTime *EstimationTimePoint `json:"segmentStartTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "Region") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` - // SegmentTotalCostEstimate: Total estimated costs for the time segment. - SegmentTotalCostEstimate *CostEstimate `json:"segmentTotalCostEstimate,omitempty"` + // NullFields is a list of field names (e.g. "Region") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} - // WorkloadCostEstimates: Estimated costs for each workload. - WorkloadCostEstimates []*WorkloadCostEstimate `json:"workloadCostEstimates,omitempty"` +func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaGeoTaxonomyRegional + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSk +// uGroupSkusResponse: Response message for +// ListBillingAccountSkuGroupSkus. +type GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse struct { + // BillingAccountSkuGroupSkus: The returned billing account SKU group + // SKUs. + BillingAccountSkuGroupSkus []*GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku `json:"billingAccountSkuGroupSkus,omitempty"` + + // NextPageToken: Token that can be sent as `page_token` in the + // subsequent request to retrieve the next page. If this field is empty, + // there are no subsequent pages. + NextPageToken string `json:"nextPageToken,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. - // "CommitmentCostEstimates") to unconditionally include in API + // "BillingAccountSkuGroupSkus") to unconditionally include in API // requests. By default, fields with empty or default values are omitted // from API requests. However, any non-pointer, non-interface field // appearing in ForceSendFields will be sent to the server regardless of @@ -1630,38 +2101,61 @@ type SegmentCostEstimate struct { // fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CommitmentCostEstimates") - // to include in API requests with the JSON null value. By default, - // fields with empty values are omitted from API requests. However, any - // field with an empty value appearing in NullFields will be sent to the + // NullFields is a list of field names (e.g. + // "BillingAccountSkuGroupSkus") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy: +// Encapsulates product categories, such as `Serverless`, `Cloud Run`, +// `TaskQueue`, and others. +type GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy struct { + // TaxonomyCategories: All product categories that the billing account + // SKU group SKU belong to. + TaxonomyCategories []*GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory `json:"taxonomyCategories,omitempty"` + + // ForceSendFields is a list of field names (e.g. "TaxonomyCategories") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "TaxonomyCategories") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } -func (s *SegmentCostEstimate) MarshalJSON() ([]byte, error) { - type NoMethod SegmentCostEstimate +func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaProductTaxonomy raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// Sku: Information about SKUs appearing in the cost estimate. -type Sku struct { - // DisplayName: The display name for the SKU. Example: A2 Instance Core - // running in Americas - DisplayName string `json:"displayName,omitempty"` - - // Prices: A timeline of prices for a SKU in chronological order. Note: - // The API currently only supports using a constant price for the entire - // estimation time frame so this list will contain a single value. - Prices []*Price `json:"prices,omitempty"` - - // Sku: The resource name for the SKU. Example: - // "services/DA34-426B-A397/skus/AA95-CD31-42FE" - Sku string `json:"sku,omitempty"` +// GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory: +// Encapsulates a product category. +type GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory struct { + // Category: Name of the product category. + Category string `json:"category,omitempty"` - // ForceSendFields is a list of field names (e.g. "DisplayName") to + // ForceSendFields is a list of field names (e.g. "Category") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1669,39 +2163,106 @@ type Sku struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DisplayName") to include - // in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. However, any field with - // an empty value appearing in NullFields will be sent to the server as + // NullFields is a list of field names (e.g. "Category") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } -func (s *Sku) MarshalJSON() ([]byte, error) { - type NoMethod Sku +func (s *GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskugroupskusV1betaTaxonomyCategory raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// SkuCostEstimate: Estimated cost for usage on a SKU. -type SkuCostEstimate struct { - // CostEstimate: The estimated cost for the usage on this SKU. - CostEstimate *CostEstimate `json:"costEstimate,omitempty"` +// GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku: +// Encapsulates a stock keeping unit (SKU) visible to a billing account. +// A SKU distinctly identifies a resource that you can purchase, such as +// `Nvidia Tesla K80 GPU attached to Spot Preemptible VMs running in +// Warsaw`. +type GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku struct { + // BillingAccountService: BillingAccountService that the + // BillingAccountSku belongs to. + BillingAccountService string `json:"billingAccountService,omitempty"` + + // DisplayName: Description of the BillingAccountSku. Example: "A2 + // Instance Core running in Hong Kong". + DisplayName string `json:"displayName,omitempty"` - // Sku: The resource name for the SKU. Example: - // "services/DA34-426B-A397/skus/AA95-CD31-42FE" More information about - // the SKU can be found in the `skus` field of the - // `CostEstimationResult`. - Sku string `json:"sku,omitempty"` + // GeoTaxonomy: Geographic metadata that applies to the + // BillingAccountSku. + GeoTaxonomy *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy `json:"geoTaxonomy,omitempty"` - // UsageAmount: The amount of usage on this SKU. - UsageAmount float64 `json:"usageAmount,omitempty"` + // Name: Resource name for the BillingAccountSku. Example: + // "billingAccounts/012345-567890-ABCDEF/skus/AA95-CD31-42FE". + Name string `json:"name,omitempty"` - // UsageUnit: The unit for the usage on this SKU. - UsageUnit string `json:"usageUnit,omitempty"` + // ProductTaxonomy: List of product categories that apply to the + // BillingAccountSku. + ProductTaxonomy *GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy `json:"productTaxonomy,omitempty"` - // ForceSendFields is a list of field names (e.g. "CostEstimate") to + // SkuId: Unique identifier for the SKU. It is the string after the + // collection identifier "skus/" Example: "AA95-CD31-42FE". + SkuId string `json:"skuId,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. + // "BillingAccountService") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BillingAccountService") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy: Encapsulates +// geographic metadata, such as regions and multi-regions like +// `us-east4` or `European Union`. +type GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy struct { + // GlobalMetadata: Global geographic metadata with no regions. + GlobalMetadata *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal `json:"globalMetadata,omitempty"` + + // MultiRegionalMetadata: Multi-regional geographic metadata with 2 or + // more regions. + MultiRegionalMetadata *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional `json:"multiRegionalMetadata,omitempty"` + + // RegionalMetadata: Regional geographic metadata with 1 region. + RegionalMetadata *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional `json:"regionalMetadata,omitempty"` + + // Type: Type of geographic taxonomy associated with the billing account + // SKU. + // + // Possible values: + // "TYPE_UNSPECIFIED" - Default value. Unspecified type. + // "GLOBAL" - Global geographic taxonomy with no regions. + // "REGIONAL" - Regional geographic taxonomy with 1 region. + // "MULTI_REGIONAL" - Multi-regional geographic taxonomy with 2 or + // more regions. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "GlobalMetadata") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1709,48 +2270,35 @@ type SkuCostEstimate struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CostEstimate") to include - // in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. However, any field with - // an empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. + // NullFields is a list of field names (e.g. "GlobalMetadata") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. NullFields []string `json:"-"` } -func (s *SkuCostEstimate) MarshalJSON() ([]byte, error) { - type NoMethod SkuCostEstimate +func (s *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomy raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -func (s *SkuCostEstimate) UnmarshalJSON(data []byte) error { - type NoMethod SkuCostEstimate - var s1 struct { - UsageAmount gensupport.JSONFloat64 `json:"usageAmount"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.UsageAmount = float64(s1.UsageAmount) - return nil +// GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal: +// Encapsulates a global geographic taxonomy. +type GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyGlobal struct { } -// StandardTierEgressWorkload: Specify Standard Tier Internet egress -// networking. -type StandardTierEgressWorkload struct { - // EgressRate: Standard tier egress usage. Expected units such as - // "GiBy/s, By/s, etc." - EgressRate *Usage `json:"egressRate,omitempty"` - - // SourceRegion: Which region - // (https://cloud.google.com/compute/docs/regions-zones) the egress data - // comes from. - SourceRegion string `json:"sourceRegion,omitempty"` +// GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional: +// Encapsulates a multi-regional geographic taxonomy. +type GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional struct { + // Regions: Google Cloud regions associated with the multi-regional + // geographic taxonomy. + Regions []*GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion `json:"regions,omitempty"` - // ForceSendFields is a list of field names (e.g. "EgressRate") to + // ForceSendFields is a list of field names (e.g. "Regions") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1758,7 +2306,7 @@ type StandardTierEgressWorkload struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "EgressRate") to include in + // NullFields is a list of field names (e.g. "Regions") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as @@ -1767,84 +2315,49 @@ type StandardTierEgressWorkload struct { NullFields []string `json:"-"` } -func (s *StandardTierEgressWorkload) MarshalJSON() ([]byte, error) { - type NoMethod StandardTierEgressWorkload +func (s *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyMultiRegional raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// Usage: An amount of usage over a time frame. -type Usage struct { - // UsageRateTimeline: A timeline of usage rates over the estimate - // interval. - UsageRateTimeline *UsageRateTimeline `json:"usageRateTimeline,omitempty"` +// GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion: +// Encapsulates a Google Cloud region. +type GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion struct { + // Region: Description of a Google Cloud region. Example: "us-west2". + Region string `json:"region,omitempty"` - // ForceSendFields is a list of field names (e.g. "UsageRateTimeline") - // to unconditionally include in API requests. By default, fields with + // ForceSendFields is a list of field names (e.g. "Region") to + // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "UsageRateTimeline") to - // include in API requests with the JSON null value. By default, fields - // with empty values are omitted from API requests. However, any field - // with an empty value appearing in NullFields will be sent to the - // server as null. It is an error if a field in this list has a - // non-empty value. This may be used to include null fields in Patch - // requests. + // NullFields is a list of field names (e.g. "Region") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } -func (s *Usage) MarshalJSON() ([]byte, error) { - type NoMethod Usage +func (s *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// UsageRateTimeline: A timeline of usage rates. Consists of a series of -// entries, each of which specifies a constant rate of usage during a -// time interval. Each entry contains an effective time. The usage rate -// is in effect from that time until the effective time of the -// subsequent entry, or, for the last entry, for the remaining portion -// of estimation time frame. Effective times are specified as an offset -// into the estimation time frame. Usage is considered to be zero until -// the `effective_time` of the first entry. All subsequent entries must -// have an effective time greater than the previous entry and less than -// the estimate time frame. The effective time on all entries must be an -// integer number of hours. -type UsageRateTimeline struct { - // Unit: The unit for the usage rate in each timeline entry. If you - // provide an incorrect unit for an instance, the correct unit is - // provided in the error message. The supported units are a subset of - // The Unified Code for Units of Measure (https://ucum.org/ucum.html) - // standard: * **Time units (TIME-UNIT)** * `s` second * `min` minute * - // `h` hour * `d` day * `wk` week * `mo` month * `yr` year * `ms` - // millisecond * `us` microsecond * `ns` nanosecond * **Basic storage - // units (BASIC-STORAGE-UNIT)** * `bit` bit * `By` byte * **Count units - // (COUNT-UNIT)** * `count` count * **Prefixes (PREFIX)** * `k` kilo - // (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) * `P` - // peta (10^15) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) - // * `Ti` tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar also - // includes these connectors: * `/` division or ratio (as an infix - // operator). For example: `kBy/{email}` or `MiBy/10ms`. * `.` - // multiplication or composition (as an infix operator). For example: - // `GBy.d` or `k{watt}.h`. The grammar for a unit is as follows: ``` - // Expression = Component { "." Component } { "/" Component } ; - // Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] | Annotation | - // "1" ; UNIT = TIME-UNIT | STORAGE-UNIT | DATA-UNIT | COUNT-UNIT - // Annotation = "{" NAME "}" ; ``` Examples: * Request per second: `1/s` - // or `{requests}/s` * GibiBytes: `GiBy` * GibiBytes * seconds: `GiBy.s` - Unit string `json:"unit,omitempty"` - - // UsageRateTimelineEntries: The timeline entries. Each entry has a - // start time and usage rate. The start time specifies the effective - // time of the usage rate. The entries must be sorted by start time in - // an increasing order. - UsageRateTimelineEntries []*UsageRateTimelineEntry `json:"usageRateTimelineEntries,omitempty"` +// GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional: +// Encapsulates a regional geographic taxonomy. +type GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional struct { + // Region: Google Cloud region associated with the regional geographic + // taxonomy. + Region *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegion `json:"region,omitempty"` - // ForceSendFields is a list of field names (e.g. "Unit") to + // ForceSendFields is a list of field names (e.g. "Region") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1852,7 +2365,7 @@ type UsageRateTimeline struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Unit") to include in API + // NullFields is a list of field names (e.g. "Region") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as @@ -1861,26 +2374,90 @@ type UsageRateTimeline struct { NullFields []string `json:"-"` } -func (s *UsageRateTimeline) MarshalJSON() ([]byte, error) { - type NoMethod UsageRateTimeline +func (s *GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskusV1betaGeoTaxonomyRegional raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// UsageRateTimelineEntry: A usage rate timeline entry. Each entry -// specifies a constant usage rate during a time interval. -type UsageRateTimelineEntry struct { - // EffectiveTime: The effective time for this entry. The usage rate is - // in effect starting at this time until the effective time of the - // subsequent entry in the timeline. The last entry defines the usage - // rate until the end of the `Usage` time frame. Must correspond to an - // integer number of hours. - EffectiveTime *EstimationTimePoint `json:"effectiveTime,omitempty"` +// GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusRespon +// se: Response message for ListBillingAccountSkus. +type GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse struct { + // BillingAccountSkus: The returned billing account SKUs. + BillingAccountSkus []*GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku `json:"billingAccountSkus,omitempty"` - // UsageRate: The usage rate. - UsageRate float64 `json:"usageRate,omitempty"` + // NextPageToken: Token that can be sent as `page_token` in the + // subsequent request to retrieve the next page. If this field is empty, + // there are no subsequent pages. + NextPageToken string `json:"nextPageToken,omitempty"` - // ForceSendFields is a list of field names (e.g. "EffectiveTime") to + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "BillingAccountSkus") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "BillingAccountSkus") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy: +// Encapsulates product categories, such as `Serverless`, `Cloud Run`, +// `TaskQueue`, and others. +type GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy struct { + // TaxonomyCategories: All product categories that the billing account + // SKU belong to. + TaxonomyCategories []*GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory `json:"taxonomyCategories,omitempty"` + + // ForceSendFields is a list of field names (e.g. "TaxonomyCategories") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "TaxonomyCategories") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskusV1betaProductTaxonomy + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory: +// Encapsulates a product category. +type GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory struct { + // Category: Name of the product category. + Category string `json:"category,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Category") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1888,63 +2465,46 @@ type UsageRateTimelineEntry struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "EffectiveTime") to include - // in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. However, any field with - // an empty value appearing in NullFields will be sent to the server as + // NullFields is a list of field names (e.g. "Category") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } -func (s *UsageRateTimelineEntry) MarshalJSON() ([]byte, error) { - type NoMethod UsageRateTimelineEntry +func (s *GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingBillingaccountskusV1betaTaxonomyCategory raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -func (s *UsageRateTimelineEntry) UnmarshalJSON(data []byte) error { - type NoMethod UsageRateTimelineEntry - var s1 struct { - UsageRate gensupport.JSONFloat64 `json:"usageRate"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.UsageRate = float64(s1.UsageRate) - return nil -} - -// VlanAttachment: VLAN attachment for cloud interconnect. -type VlanAttachment struct { - // Bandwidth: Capacities in the pricing table - // (https://cloud.google.com/vpc/network-pricing#interconnect-pricing) - // Examples of capacity are: 50/100/200/300/400/500-Mbps, - // 1/2/5/10/20/50-Gbps. +// GoogleCloudBillingPricesV1betaAggregationInfo: Encapsulates the +// aggregation information such as aggregation level and interval for a +// price. +type GoogleCloudBillingPricesV1betaAggregationInfo struct { + // Interval: Interval at which usage is aggregated to compute cost. + // Example: "MONTHLY" interval indicates that usage is aggregated every + // month. // // Possible values: - // "BANDWIDTH_UNSPECIFIED" - Unspecified. - // "BANDWIDTH_BPS_50M" - 50 Mbit/s - // "BANDWIDTH_BPS_100M" - 100 Mbit/s - // "BANDWIDTH_BPS_200M" - 200 Mbit/s - // "BANDWIDTH_BPS_300M" - 300 Mbit/s - // "BANDWIDTH_BPS_400M" - 400 Mbit/s - // "BANDWIDTH_BPS_500M" - 500 Mbit/s - // "BANDWIDTH_BPS_1G" - 1 Gbit/s - // "BANDWIDTH_BPS_2G" - 2 Gbit/s - // "BANDWIDTH_BPS_5G" - 5 Gbit/s - // "BANDWIDTH_BPS_10G" - 10 Gbit/s - // "BANDWIDTH_BPS_20G" - 20 Gbit/s - // "BANDWIDTH_BPS_50G" - 50 Gbit/s - Bandwidth string `json:"bandwidth,omitempty"` - - // VlanCount: VLAN usage. This is specified as a unitless quantity which - // indicates the number of VLAN attachment used in interconnect. - VlanCount *Usage `json:"vlanCount,omitempty"` + // "INTERVAL_UNSPECIFIED" - Default unspecified value. + // "MONTHLY" - Usage is aggregated every month. + // "DAILY" - Usage is aggregated every day. + Interval string `json:"interval,omitempty"` + + // Level: Level at which usage is aggregated to compute cost. Example: + // "ACCOUNT" level indicates that usage is aggregated across all + // projects in a single account. + // + // Possible values: + // "LEVEL_UNSPECIFIED" - Default unspecified value. + // "ACCOUNT" - Usage is aggregated at an account level. + // "PROJECT" - Usage is aggregated at a project level. + Level string `json:"level,omitempty"` - // ForceSendFields is a list of field names (e.g. "Bandwidth") to + // ForceSendFields is a list of field names (e.g. "Interval") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1952,7 +2512,7 @@ type VlanAttachment struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Bandwidth") to include in + // NullFields is a list of field names (e.g. "Interval") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as @@ -1961,47 +2521,34 @@ type VlanAttachment struct { NullFields []string `json:"-"` } -func (s *VlanAttachment) MarshalJSON() ([]byte, error) { - type NoMethod VlanAttachment +func (s *GoogleCloudBillingPricesV1betaAggregationInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingPricesV1betaAggregationInfo raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// VmResourceBasedCud: Specifies a resource-based committed use discount -// (CUD). -type VmResourceBasedCud struct { - // GuestAccelerator: Guest accelerator, known as GPU. - GuestAccelerator *GuestAccelerator `json:"guestAccelerator,omitempty"` - - // MachineSeries: The machine series for CUD. For example: "n1" for - // general purpose N1 machine type commitments. "n2" for general purpose - // N2 machine type commitments. "e2" for general purpose E2 machine type - // commitments. "n2d" for general purpose N2D machine type commitments. - // "t2d" for general purpose T2D machine type commitments. "c2"/"c2d" - // for compute-optimized commitments. "m1"/"m2" for the memory-optimized - // commitments. "a2' for the accelerator-optimized commitments. - MachineSeries string `json:"machineSeries,omitempty"` +// GoogleCloudBillingPricesV1betaPrice: Encapsulates the latest price +// for the given SKU. +type GoogleCloudBillingPricesV1betaPrice struct { + // CurrencyCode: ISO-4217 currency code for the price. + CurrencyCode string `json:"currencyCode,omitempty"` - // MemorySizeGb: Memory size of the VM in GB (2^30 bytes). Must be an - // increment of 0.25 (256 MB). - MemorySizeGb float64 `json:"memorySizeGb,omitempty"` + // Name: Resource name for the latest price. + Name string `json:"name,omitempty"` - // Plan: Commitment usage plan. - // - // Possible values: - // "COMMITMENT_PLAN_UNSPECIFIED" - Not specified commitment plan. - // "TWELVE_MONTH" - 1 year commitment. - // "THIRTY_SIX_MONTH" - 3 years commitment. - Plan string `json:"plan,omitempty"` + // Rate: Rate price metadata. SKUs with `Rate` price are offered by + // pricing tiers. The price can have 1 or more rate pricing tiers. + Rate *GoogleCloudBillingPricesV1betaRate `json:"rate,omitempty"` - // Region: The region where the VM runs. For example: "us-central1" - Region string `json:"region,omitempty"` + // ValueType: Type of the price. It can have values: ["unspecified", + // "rate"]. + ValueType string `json:"valueType,omitempty"` - // VirtualCpuCount: The number of vCPUs. The number of vCPUs must be an - // integer of 0 or more and can be even or odd. - VirtualCpuCount int64 `json:"virtualCpuCount,omitempty,string"` + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "GuestAccelerator") to + // ForceSendFields is a list of field names (e.g. "CurrencyCode") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -2009,51 +2556,44 @@ type VmResourceBasedCud struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "GuestAccelerator") to - // include in API requests with the JSON null value. By default, fields - // with empty values are omitted from API requests. However, any field - // with an empty value appearing in NullFields will be sent to the - // server as null. It is an error if a field in this list has a - // non-empty value. This may be used to include null fields in Patch - // requests. + // NullFields is a list of field names (e.g. "CurrencyCode") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } -func (s *VmResourceBasedCud) MarshalJSON() ([]byte, error) { - type NoMethod VmResourceBasedCud +func (s *GoogleCloudBillingPricesV1betaPrice) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingPricesV1betaPrice raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -func (s *VmResourceBasedCud) UnmarshalJSON(data []byte) error { - type NoMethod VmResourceBasedCud - var s1 struct { - MemorySizeGb gensupport.JSONFloat64 `json:"memorySizeGb"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.MemorySizeGb = float64(s1.MemorySizeGb) - return nil -} +// GoogleCloudBillingPricesV1betaRate: Encapsulates a `Rate` price. SKUs +// with `Rate` price are offered by pricing tiers. The price have 1 or +// more rate pricing tiers. +type GoogleCloudBillingPricesV1betaRate struct { + // AggregationInfo: Aggregation info for tiers such as aggregation level + // and interval. + AggregationInfo *GoogleCloudBillingPricesV1betaAggregationInfo `json:"aggregationInfo,omitempty"` -// VmToVmEgressWorkload: Specify VM to VM egress. -type VmToVmEgressWorkload struct { - InterRegionEgress *InterRegionEgress `json:"interRegionEgress,omitempty"` + // Tiers: All tiers associated with the `Rate` price. + Tiers []*GoogleCloudBillingPricesV1betaRateTier `json:"tiers,omitempty"` - IntraRegionEgress *IntraRegionEgress `json:"intraRegionEgress,omitempty"` + // UnitInfo: Unit info such as name and quantity. + UnitInfo *GoogleCloudBillingPricesV1betaUnitInfo `json:"unitInfo,omitempty"` - // ForceSendFields is a list of field names (e.g. "InterRegionEgress") - // to unconditionally include in API requests. By default, fields with + // ForceSendFields is a list of field names (e.g. "AggregationInfo") to + // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InterRegionEgress") to + // NullFields is a list of field names (e.g. "AggregationInfo") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the @@ -2063,201 +2603,4099 @@ type VmToVmEgressWorkload struct { NullFields []string `json:"-"` } -func (s *VmToVmEgressWorkload) MarshalJSON() ([]byte, error) { - type NoMethod VmToVmEgressWorkload - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +func (s *GoogleCloudBillingPricesV1betaRate) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingPricesV1betaRate + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingPricesV1betaRateTier: Encapsulates a rate price +// tier. +type GoogleCloudBillingPricesV1betaRateTier struct { + // ListPrice: List price of one tier. + ListPrice *Money `json:"listPrice,omitempty"` + + // StartAmount: Lower bound amount for a tier. Tiers 0-100, 100-200 will + // be represented with two tiers with `start_amount` 0 and 100. + StartAmount *Decimal `json:"startAmount,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ListPrice") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ListPrice") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingPricesV1betaRateTier) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingPricesV1betaRateTier + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingPricesV1betaUnitInfo: Encapsulates the unit +// information for a Rate +type GoogleCloudBillingPricesV1betaUnitInfo struct { + // Unit: Shorthand for the unit. Example: GiBy.mo. + Unit string `json:"unit,omitempty"` + + // UnitDescription: Human-readable description of the unit. Example: + // gibibyte month. + UnitDescription string `json:"unitDescription,omitempty"` + + // UnitQuantity: Unit quantity for the tier. Example: if the RateTier + // price is $1 per 1000000 Bytes, then `unit_quantity` is set to + // 1000000. + UnitQuantity *Decimal `json:"unitQuantity,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Unit") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Unit") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingPricesV1betaUnitInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingPricesV1betaUnitInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse: Response +// message for ListSkuGroups. +type GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse struct { + // NextPageToken: Token that can be sent as `page_token` in the + // subsequent request to retrieve the next page. If this field is empty, + // there are no subsequent pages. + NextPageToken string `json:"nextPageToken,omitempty"` + + // SkuGroups: The returned publicly listed SKU groups. + SkuGroups []*GoogleCloudBillingSkugroupsV1betaSkuGroup `json:"skuGroups,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "NextPageToken") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "NextPageToken") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingSkugroupsV1betaSkuGroup: Encapsulates a publicly +// listed stock keeping unit (SKU) group. A SKU group represents a +// collection of SKUs that are related to each other. For example, the +// `AI Platform APIs` SKU group includes SKUs from the Cloud Dialogflow +// API, the Cloud Text-to-Speech API, and additional related APIs. +type GoogleCloudBillingSkugroupsV1betaSkuGroup struct { + // DisplayName: Description of the SKU group. Example: "A2 VMs (1 Year + // CUD)". + DisplayName string `json:"displayName,omitempty"` + + // Name: Resource name for the SKU group. Example: + // "skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301". + Name string `json:"name,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DisplayName") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingSkugroupsV1betaSkuGroup) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingSkugroupsV1betaSkuGroup + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy: Encapsulates +// geographic metadata, such as regions and multi-regions like +// `us-east4` or `European Union`. +type GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy struct { + // GlobalMetadata: Global geographic metadata with no regions. + GlobalMetadata *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal `json:"globalMetadata,omitempty"` + + // MultiRegionalMetadata: Multi-regional geographic metadata with 2 or + // more regions. + MultiRegionalMetadata *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional `json:"multiRegionalMetadata,omitempty"` + + // RegionalMetadata: Regional geographic metadata with 1 region. + RegionalMetadata *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional `json:"regionalMetadata,omitempty"` + + // Type: Type of geographic taxonomy associated with the SKU group SKU. + // + // Possible values: + // "TYPE_UNSPECIFIED" - Default value. Unspecified type. + // "GLOBAL" - Global geographic taxonomy with no regions. + // "REGIONAL" - Regional geographic taxonomy with 1 region. + // "MULTI_REGIONAL" - Multi-regional geographic taxonomy with 2 or + // more regions. + Type string `json:"type,omitempty"` + + // ForceSendFields is a list of field names (e.g. "GlobalMetadata") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "GlobalMetadata") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal: Encapsulates a +// global geographic taxonomy. +type GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyGlobal struct { +} + +// GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional: +// Encapsulates a multi-regional geographic taxonomy. +type GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional struct { + // Regions: Google Cloud regions associated with the multi-regional + // geographic taxonomy. + Regions []*GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion `json:"regions,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Regions") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Regions") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyMultiRegional + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion: Encapsulates a +// Google Cloud region. +type GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion struct { + // Region: Description of a Google Cloud region. Example: "us-west2". + Region string `json:"region,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Region") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Region") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional: Encapsulates +// a regional geographic taxonomy. +type GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional struct { + // Region: Google Cloud region associated with the regional geographic + // taxonomy. + Region *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegion `json:"region,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Region") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Region") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingSkugroupskusV1betaGeoTaxonomyRegional + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse: +// Response message for ListSkuGroupSkus. +type GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse struct { + // NextPageToken: Token that can be sent as `page_token` in the + // subsequent request to retrieve the next page. If this field is empty, + // there are no subsequent pages. + NextPageToken string `json:"nextPageToken,omitempty"` + + // SkuGroupSkus: The returned SKU group SKUs. + SkuGroupSkus []*GoogleCloudBillingSkugroupskusV1betaSkuGroupSku `json:"skuGroupSkus,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "NextPageToken") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "NextPageToken") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingSkugroupskusV1betaProductTaxonomy: Encapsulates +// product categories, such as `Serverless`, `Cloud Run`, `TaskQueue`, +// and others. +type GoogleCloudBillingSkugroupskusV1betaProductTaxonomy struct { + // TaxonomyCategories: All product categories that the SKU group SKU + // belongs to. + TaxonomyCategories []*GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory `json:"taxonomyCategories,omitempty"` + + // ForceSendFields is a list of field names (e.g. "TaxonomyCategories") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "TaxonomyCategories") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingSkugroupskusV1betaProductTaxonomy) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingSkugroupskusV1betaProductTaxonomy + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingSkugroupskusV1betaSkuGroupSku: Encapsulates a +// publicly listed stock keeping unit (SKU) that is part of a publicly +// listed SKU group. A SKU group represents a collection of SKUs that +// are related to each other. For example, the `AI Platform APIs` SKU +// group includes SKUs from the Cloud Dialogflow API, the Cloud +// Text-to-Speech API, and additional related APIs. +type GoogleCloudBillingSkugroupskusV1betaSkuGroupSku struct { + // DisplayName: Description of the SkuGroupSku. Example: "A2 Instance + // Core running in Hong Kong". + DisplayName string `json:"displayName,omitempty"` + + // GeoTaxonomy: Geographic metadata that applies to the SkuGroupSku. + GeoTaxonomy *GoogleCloudBillingSkugroupskusV1betaGeoTaxonomy `json:"geoTaxonomy,omitempty"` + + // Name: Resource name for the SkuGroupSku. Example: + // "skuGroups/0e6403d1-4694-44d2-a696-7a78b1a69301/skus/AA95-CD31-42FE". + Name string `json:"name,omitempty"` + + // ProductTaxonomy: List of product categories that apply to the + // SkuGroupSku. + ProductTaxonomy *GoogleCloudBillingSkugroupskusV1betaProductTaxonomy `json:"productTaxonomy,omitempty"` + + // Service: Service that the SkuGroupSku belongs to. + Service string `json:"service,omitempty"` + + // SkuId: Unique identifier for the SKU. It is the string after the + // collection identifier "skus/" Example: "AA95-CD31-42FE". + SkuId string `json:"skuId,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DisplayName") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingSkugroupskusV1betaSkuGroupSku) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingSkugroupskusV1betaSkuGroupSku + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory: Encapsulates a +// product category. +type GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory struct { + // Category: Name of the product category. + Category string `json:"category,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Category") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Category") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudBillingSkugroupskusV1betaTaxonomyCategory + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GuestAccelerator: Specification of a set of guest accelerators +// attached to a machine. +type GuestAccelerator struct { + // AcceleratorCount: The number of the guest accelerator cards exposed + // to each instance. + AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"` + + // AcceleratorType: The type of the guest accelerator cards. For + // example: "nvidia-tesla-t4". + AcceleratorType string `json:"acceleratorType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AcceleratorCount") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AcceleratorCount") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GuestAccelerator) MarshalJSON() ([]byte, error) { + type NoMethod GuestAccelerator + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// InterRegionEgress: Egress traffic between two regions. +type InterRegionEgress struct { + // DestinationRegion: Which region + // (https://cloud.google.com/compute/docs/regions-zones) the egress data + // goes to. + DestinationRegion string `json:"destinationRegion,omitempty"` + + // EgressRate: VM to VM egress usage. Expected units such as "GiBy/s, + // By/s, etc." + EgressRate *Usage `json:"egressRate,omitempty"` + + // SourceRegion: Which region + // (https://cloud.google.com/compute/docs/regions-zones) the egress data + // comes from. + SourceRegion string `json:"sourceRegion,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DestinationRegion") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DestinationRegion") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *InterRegionEgress) MarshalJSON() ([]byte, error) { + type NoMethod InterRegionEgress + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// IntraRegionEgress: Egress traffic within the same region. When source +// region and destination region are in the same zone, using the +// internal IP addresses, there isn't any egress charge. +type IntraRegionEgress struct { + // EgressRate: VM to VM egress usage. Expected units such as "GiBy/s, + // By/s, etc." + EgressRate *Usage `json:"egressRate,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EgressRate") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EgressRate") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *IntraRegionEgress) MarshalJSON() ([]byte, error) { + type NoMethod IntraRegionEgress + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// MachineType: Specification of machine series, memory, and number of +// vCPUs. +type MachineType struct { + CustomMachineType *CustomMachineType `json:"customMachineType,omitempty"` + + PredefinedMachineType *PredefinedMachineType `json:"predefinedMachineType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CustomMachineType") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CustomMachineType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *MachineType) MarshalJSON() ([]byte, error) { + type NoMethod MachineType + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Money: Represents an amount of money with its currency type. +type Money struct { + // CurrencyCode: The three-letter currency code defined in ISO 4217. + CurrencyCode string `json:"currencyCode,omitempty"` + + // Nanos: Number of nano (10^-9) units of the amount. The value must be + // between -999,999,999 and +999,999,999 inclusive. If `units` is + // positive, `nanos` must be positive or zero. If `units` is zero, + // `nanos` can be positive, zero, or negative. If `units` is negative, + // `nanos` must be negative or zero. For example $-1.75 is represented + // as `units`=-1 and `nanos`=-750,000,000. + Nanos int64 `json:"nanos,omitempty"` + + // Units: The whole units of the amount. For example if `currencyCode` + // is "USD", then 1 unit is one US dollar. + Units int64 `json:"units,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "CurrencyCode") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CurrencyCode") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Money) MarshalJSON() ([]byte, error) { + type NoMethod Money + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// MultiRegional: Area contains multiple locations. +type MultiRegional struct { + // Name: The location name + // (https://cloud.google.com/storage/docs/locations#available-locations) + // where the data is stored. For example: "us" for multi-region. + Name string `json:"name,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Name") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *MultiRegional) MarshalJSON() ([]byte, error) { + type NoMethod MultiRegional + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PersistentDisk: Specification of a persistent disk attached to a VM. +type PersistentDisk struct { + // DiskSize: Specifies the size of disk. Must be at least 10 GB. + DiskSize *Usage `json:"diskSize,omitempty"` + + // DiskType: The disk type + // (https://cloud.google.com/compute/docs/disks#disk-types). For + // example: "pd-standard". + DiskType string `json:"diskType,omitempty"` + + // ProvisionedIops: Indicates how many IOPS to provision for the disk + // for extreme persistent disks. This sets the number of I/O operations + // per second that the disk can handle. Values must be between 10,000 + // and 120,000. + ProvisionedIops *Usage `json:"provisionedIops,omitempty"` + + // Scope: The geographic scope of the disk. Defaults to `SCOPE_ZONAL` if + // not specified. + // + // Possible values: + // "SCOPE_UNSPECIFIED" - Unspecified. + // "SCOPE_ZONAL" - The disk exists in a single zone. + // "SCOPE_REGIONAL" - The disk is replicated in a secondary zone + // within the same region. + Scope string `json:"scope,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DiskSize") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DiskSize") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *PersistentDisk) MarshalJSON() ([]byte, error) { + type NoMethod PersistentDisk + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PredefinedMachineType: Specification of a predefined machine type. +type PredefinedMachineType struct { + // MachineType: The machine type + // (https://cloud.google.com/compute/docs/machine-types). For example: + // "n1-standard1". + MachineType string `json:"machineType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "MachineType") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "MachineType") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *PredefinedMachineType) MarshalJSON() ([]byte, error) { + type NoMethod PredefinedMachineType + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// PremiumTierEgressWorkload: Specify Premium Tier Internet egress +// networking. +type PremiumTierEgressWorkload struct { + // DestinationContinent: Where the data is sent to. + // + // Possible values: + // "DESTINATION_CONTINENT_UNSPECIFIED" - Not specified. + // "DESTINATION_CONTINENT_ASIA_PACIFIC" - Asia Pacific. + // "DESTINATION_CONTINENT_AFRICA" - Africa. + // "DESTINATION_CONTINENT_NORTH_AMERICA" - North America. + // "DESTINATION_CONTINENT_AUTRALIA" - Australia. + // "DESTINATION_CONTINENT_CENTRAL_AMERICA" - Central America. + // "DESTINATION_CONTINENT_CHINA" - China. + // "DESTINATION_CONTINENT_EASTERN_EUROPE" - Eastern Europe. + // "DESTINATION_CONTINENT_WESTERN_EUROPE" - Western Europe. + // "DESTINATION_CONTINENT_EMEA" - Other regions in Europe, Middle East + // and Africa. + // "DESTINATION_CONTINENT_INDIA" - India + // "DESTINATION_CONTINENT_MIDDLE_EAST" - Middle East. + // "DESTINATION_CONTINENT_SOUTH_AMERICA" - South America. + DestinationContinent string `json:"destinationContinent,omitempty"` + + // EgressRate: Premium Tier egress usage. Expected units such as + // "GiBy/s, By/s, etc." + EgressRate *Usage `json:"egressRate,omitempty"` + + // SourceRegion: Which region + // (https://cloud.google.com/compute/docs/regions-zones) the egress data + // comes from. + SourceRegion string `json:"sourceRegion,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "DestinationContinent") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DestinationContinent") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *PremiumTierEgressWorkload) MarshalJSON() ([]byte, error) { + type NoMethod PremiumTierEgressWorkload + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Price: The price of a SKU at a point int time. +type Price struct { + // EffectiveTime: The timestamp within the estimation time frame when + // the price was set. + EffectiveTime *EstimationTimePoint `json:"effectiveTime,omitempty"` + + // PriceType: The type of price. Possible values: "RATE" + PriceType string `json:"priceType,omitempty"` + + // Rate: A set of tiered rates. + Rate *Rate `json:"rate,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EffectiveTime") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EffectiveTime") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Price) MarshalJSON() ([]byte, error) { + type NoMethod Price + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Rate: A SKU price consisting of tiered rates. +type Rate struct { + // Tiers: The service tiers. + Tiers []*RateTier `json:"tiers,omitempty"` + + // Unit: The SKU's pricing unit. For example, if the tier price is $1 + // per 1000000 Bytes, then this field will show 'By'. The `start_amount` + // field in each tier will be in this unit. + Unit string `json:"unit,omitempty"` + + // UnitCount: The SKU's count for the pricing unit. For example, if the + // tier price is $1 per 1000000 Bytes, then this column will show + // 1000000. + UnitCount float64 `json:"unitCount,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Tiers") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Tiers") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Rate) MarshalJSON() ([]byte, error) { + type NoMethod Rate + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *Rate) UnmarshalJSON(data []byte) error { + type NoMethod Rate + var s1 struct { + UnitCount gensupport.JSONFloat64 `json:"unitCount"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.UnitCount = float64(s1.UnitCount) + return nil +} + +// RateTier: Pricing details for a service tier. +type RateTier struct { + // Price: The price for this tier. + Price *Money `json:"price,omitempty"` + + // StartAmount: The magnitude of usage in which the tier interval + // begins. Example: "From 100 GiBi the price is $1 per byte" implies + // `start_amount` = 100 + StartAmount float64 `json:"startAmount,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Price") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Price") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RateTier) MarshalJSON() ([]byte, error) { + type NoMethod RateTier + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *RateTier) UnmarshalJSON(data []byte) error { + type NoMethod RateTier + var s1 struct { + StartAmount gensupport.JSONFloat64 `json:"startAmount"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.StartAmount = float64(s1.StartAmount) + return nil +} + +// Regional: Area contains only one location. +type Regional struct { + // Name: The location name + // (https://cloud.google.com/storage/docs/locations#available-locations). + // For example: "us-central1" for region. + Name string `json:"name,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Name") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Regional) MarshalJSON() ([]byte, error) { + type NoMethod Regional + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// ScenarioConfig: Configuration for a CostScenario. Specifies how costs +// are calculated. +type ScenarioConfig struct { + // EstimateDuration: Time frame for the estimate. Workloads must specify + // usage for this duration. Duration must be at least 1 hour (3,600 + // seconds) and at most 10 years (315,360,000 seconds). The calculations + // for years and months are based on a 730-hour (2,628,000-second) + // month. For durations longer than one month (2,628,000 seconds), the + // duration is rounded up to the next month, so the estimate shows you + // the costs for full months. For example, a duration of 3,232,800 + // seconds (roughly 5 weeks) is rounded up to 2 months. + EstimateDuration string `json:"estimateDuration,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EstimateDuration") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EstimateDuration") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *ScenarioConfig) MarshalJSON() ([]byte, error) { + type NoMethod ScenarioConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// SegmentCostEstimate: Workload cost estimates for a single time +// segment. +type SegmentCostEstimate struct { + // CommitmentCostEstimates: Estimated costs for each commitment. + CommitmentCostEstimates []*CommitmentCostEstimate `json:"commitmentCostEstimates,omitempty"` + + // SegmentStartTime: Timestamp for the start of the segment. + SegmentStartTime *EstimationTimePoint `json:"segmentStartTime,omitempty"` + + // SegmentTotalCostEstimate: Total estimated costs for the time segment. + SegmentTotalCostEstimate *CostEstimate `json:"segmentTotalCostEstimate,omitempty"` + + // WorkloadCostEstimates: Estimated costs for each workload. + WorkloadCostEstimates []*WorkloadCostEstimate `json:"workloadCostEstimates,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "CommitmentCostEstimates") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CommitmentCostEstimates") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *SegmentCostEstimate) MarshalJSON() ([]byte, error) { + type NoMethod SegmentCostEstimate + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Sku: Information about SKUs appearing in the cost estimate. +type Sku struct { + // DisplayName: The display name for the SKU. Example: A2 Instance Core + // running in Americas + DisplayName string `json:"displayName,omitempty"` + + // Prices: A timeline of prices for a SKU in chronological order. Note: + // The API currently only supports using a constant price for the entire + // estimation time frame so this list will contain a single value. + Prices []*Price `json:"prices,omitempty"` + + // Sku: The resource name for the SKU. Example: + // "services/DA34-426B-A397/skus/AA95-CD31-42FE" + Sku string `json:"sku,omitempty"` + + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "DisplayName") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Sku) MarshalJSON() ([]byte, error) { + type NoMethod Sku + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// SkuCostEstimate: Estimated cost for usage on a SKU. +type SkuCostEstimate struct { + // CostEstimate: The estimated cost for the usage on this SKU. + CostEstimate *CostEstimate `json:"costEstimate,omitempty"` + + // Sku: The resource name for the SKU. Example: + // "services/DA34-426B-A397/skus/AA95-CD31-42FE" More information about + // the SKU can be found in the `skus` field of the + // `CostEstimationResult`. + Sku string `json:"sku,omitempty"` + + // UsageAmount: The amount of usage on this SKU. + UsageAmount float64 `json:"usageAmount,omitempty"` + + // UsageUnit: The unit for the usage on this SKU. + UsageUnit string `json:"usageUnit,omitempty"` + + // ForceSendFields is a list of field names (e.g. "CostEstimate") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CostEstimate") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *SkuCostEstimate) MarshalJSON() ([]byte, error) { + type NoMethod SkuCostEstimate + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *SkuCostEstimate) UnmarshalJSON(data []byte) error { + type NoMethod SkuCostEstimate + var s1 struct { + UsageAmount gensupport.JSONFloat64 `json:"usageAmount"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.UsageAmount = float64(s1.UsageAmount) + return nil +} + +// StandardTierEgressWorkload: Specify Standard Tier Internet egress +// networking. +type StandardTierEgressWorkload struct { + // EgressRate: Standard tier egress usage. Expected units such as + // "GiBy/s, By/s, etc." + EgressRate *Usage `json:"egressRate,omitempty"` + + // SourceRegion: Which region + // (https://cloud.google.com/compute/docs/regions-zones) the egress data + // comes from. + SourceRegion string `json:"sourceRegion,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EgressRate") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EgressRate") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *StandardTierEgressWorkload) MarshalJSON() ([]byte, error) { + type NoMethod StandardTierEgressWorkload + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Usage: An amount of usage over a time frame. +type Usage struct { + // UsageRateTimeline: A timeline of usage rates over the estimate + // interval. + UsageRateTimeline *UsageRateTimeline `json:"usageRateTimeline,omitempty"` + + // ForceSendFields is a list of field names (e.g. "UsageRateTimeline") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "UsageRateTimeline") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *Usage) MarshalJSON() ([]byte, error) { + type NoMethod Usage + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// UsageRateTimeline: A timeline of usage rates. Consists of a series of +// entries, each of which specifies a constant rate of usage during a +// time interval. Each entry contains an effective time. The usage rate +// is in effect from that time until the effective time of the +// subsequent entry, or, for the last entry, for the remaining portion +// of estimation time frame. Effective times are specified as an offset +// into the estimation time frame. Usage is considered to be zero until +// the `effective_time` of the first entry. All subsequent entries must +// have an effective time greater than the previous entry and less than +// the estimate time frame. The effective time on all entries must be an +// integer number of hours. +type UsageRateTimeline struct { + // Unit: The unit for the usage rate in each timeline entry. If you + // provide an incorrect unit for an instance, the correct unit is + // provided in the error message. The supported units are a subset of + // The Unified Code for Units of Measure (https://ucum.org/ucum.html) + // standard: * **Time units (TIME-UNIT)** * `s` second * `min` minute * + // `h` hour * `d` day * `wk` week * `mo` month * `yr` year * `ms` + // millisecond * `us` microsecond * `ns` nanosecond * **Basic storage + // units (BASIC-STORAGE-UNIT)** * `bit` bit * `By` byte * **Count units + // (COUNT-UNIT)** * `count` count * **Prefixes (PREFIX)** * `k` kilo + // (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) * `P` + // peta (10^15) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) + // * `Ti` tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar also + // includes these connectors: * `/` division or ratio (as an infix + // operator). For example: `kBy/{email}` or `MiBy/10ms`. * `.` + // multiplication or composition (as an infix operator). For example: + // `GBy.d` or `k{watt}.h`. The grammar for a unit is as follows: ``` + // Expression = Component { "." Component } { "/" Component } ; + // Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] | Annotation | + // "1" ; UNIT = TIME-UNIT | STORAGE-UNIT | DATA-UNIT | COUNT-UNIT + // Annotation = "{" NAME "}" ; ``` Examples: * Request per second: `1/s` + // or `{requests}/s` * GibiBytes: `GiBy` * GibiBytes * seconds: `GiBy.s` + Unit string `json:"unit,omitempty"` + + // UsageRateTimelineEntries: The timeline entries. Each entry has a + // start time and usage rate. The start time specifies the effective + // time of the usage rate. The entries must be sorted by start time in + // an increasing order. + UsageRateTimelineEntries []*UsageRateTimelineEntry `json:"usageRateTimelineEntries,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Unit") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Unit") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UsageRateTimeline) MarshalJSON() ([]byte, error) { + type NoMethod UsageRateTimeline + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// UsageRateTimelineEntry: A usage rate timeline entry. Each entry +// specifies a constant usage rate during a time interval. +type UsageRateTimelineEntry struct { + // EffectiveTime: The effective time for this entry. The usage rate is + // in effect starting at this time until the effective time of the + // subsequent entry in the timeline. The last entry defines the usage + // rate until the end of the `Usage` time frame. Must correspond to an + // integer number of hours. + EffectiveTime *EstimationTimePoint `json:"effectiveTime,omitempty"` + + // UsageRate: The usage rate. + UsageRate float64 `json:"usageRate,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EffectiveTime") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EffectiveTime") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UsageRateTimelineEntry) MarshalJSON() ([]byte, error) { + type NoMethod UsageRateTimelineEntry + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *UsageRateTimelineEntry) UnmarshalJSON(data []byte) error { + type NoMethod UsageRateTimelineEntry + var s1 struct { + UsageRate gensupport.JSONFloat64 `json:"usageRate"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.UsageRate = float64(s1.UsageRate) + return nil +} + +// VlanAttachment: VLAN attachment for cloud interconnect. +type VlanAttachment struct { + // Bandwidth: Capacities in the pricing table + // (https://cloud.google.com/vpc/network-pricing#interconnect-pricing) + // Examples of capacity are: 50/100/200/300/400/500-Mbps, + // 1/2/5/10/20/50-Gbps. + // + // Possible values: + // "BANDWIDTH_UNSPECIFIED" - Unspecified. + // "BANDWIDTH_BPS_50M" - 50 Mbit/s + // "BANDWIDTH_BPS_100M" - 100 Mbit/s + // "BANDWIDTH_BPS_200M" - 200 Mbit/s + // "BANDWIDTH_BPS_300M" - 300 Mbit/s + // "BANDWIDTH_BPS_400M" - 400 Mbit/s + // "BANDWIDTH_BPS_500M" - 500 Mbit/s + // "BANDWIDTH_BPS_1G" - 1 Gbit/s + // "BANDWIDTH_BPS_2G" - 2 Gbit/s + // "BANDWIDTH_BPS_5G" - 5 Gbit/s + // "BANDWIDTH_BPS_10G" - 10 Gbit/s + // "BANDWIDTH_BPS_20G" - 20 Gbit/s + // "BANDWIDTH_BPS_50G" - 50 Gbit/s + Bandwidth string `json:"bandwidth,omitempty"` + + // VlanCount: VLAN usage. This is specified as a unitless quantity which + // indicates the number of VLAN attachment used in interconnect. + VlanCount *Usage `json:"vlanCount,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Bandwidth") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Bandwidth") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *VlanAttachment) MarshalJSON() ([]byte, error) { + type NoMethod VlanAttachment + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// VmResourceBasedCud: Specifies a resource-based committed use discount +// (CUD). +type VmResourceBasedCud struct { + // GuestAccelerator: Guest accelerator, known as GPU. + GuestAccelerator *GuestAccelerator `json:"guestAccelerator,omitempty"` + + // MachineSeries: The machine series for CUD. For example: "n1" for + // general purpose N1 machine type commitments. "n2" for general purpose + // N2 machine type commitments. "e2" for general purpose E2 machine type + // commitments. "n2d" for general purpose N2D machine type commitments. + // "t2d" for general purpose T2D machine type commitments. "c2"/"c2d" + // for compute-optimized commitments. "m1"/"m2" for the memory-optimized + // commitments. "a2' for the accelerator-optimized commitments. + MachineSeries string `json:"machineSeries,omitempty"` + + // MemorySizeGb: Memory size of the VM in GB (2^30 bytes). Must be an + // increment of 0.25 (256 MB). + MemorySizeGb float64 `json:"memorySizeGb,omitempty"` + + // Plan: Commitment usage plan. + // + // Possible values: + // "COMMITMENT_PLAN_UNSPECIFIED" - Not specified commitment plan. + // "TWELVE_MONTH" - 1 year commitment. + // "THIRTY_SIX_MONTH" - 3 years commitment. + Plan string `json:"plan,omitempty"` + + // Region: The region where the VM runs. For example: "us-central1" + Region string `json:"region,omitempty"` + + // VirtualCpuCount: The number of vCPUs. The number of vCPUs must be an + // integer of 0 or more and can be even or odd. + VirtualCpuCount int64 `json:"virtualCpuCount,omitempty,string"` + + // ForceSendFields is a list of field names (e.g. "GuestAccelerator") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "GuestAccelerator") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *VmResourceBasedCud) MarshalJSON() ([]byte, error) { + type NoMethod VmResourceBasedCud + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *VmResourceBasedCud) UnmarshalJSON(data []byte) error { + type NoMethod VmResourceBasedCud + var s1 struct { + MemorySizeGb gensupport.JSONFloat64 `json:"memorySizeGb"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.MemorySizeGb = float64(s1.MemorySizeGb) + return nil +} + +// VmToVmEgressWorkload: Specify VM to VM egress. +type VmToVmEgressWorkload struct { + InterRegionEgress *InterRegionEgress `json:"interRegionEgress,omitempty"` + + IntraRegionEgress *IntraRegionEgress `json:"intraRegionEgress,omitempty"` + + // ForceSendFields is a list of field names (e.g. "InterRegionEgress") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "InterRegionEgress") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *VmToVmEgressWorkload) MarshalJSON() ([]byte, error) { + type NoMethod VmToVmEgressWorkload + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// Workload: Specifies usage on a single Google Cloud product over a +// time frame. Each Google Cloud product has its own message, containing +// specific product configuration parameters of the product usage +// amounts along each dimension in which the product is billed. +type Workload struct { + // CloudCdnEgressWorkload: Usage on Google Cloud CDN Egress. + CloudCdnEgressWorkload *CloudCdnEgressWorkload `json:"cloudCdnEgressWorkload,omitempty"` + + // CloudCdnWorkload: Usage on Google Cloud CDN. + CloudCdnWorkload *CloudCdnWorkload `json:"cloudCdnWorkload,omitempty"` + + // CloudInterconnectEgressWorkload: Usage on Google Cloud Interconnect + // Egress. + CloudInterconnectEgressWorkload *CloudInterconnectEgressWorkload `json:"cloudInterconnectEgressWorkload,omitempty"` + + // CloudInterconnectWorkload: Usage on Google Cloud Interconnect. + CloudInterconnectWorkload *CloudInterconnectWorkload `json:"cloudInterconnectWorkload,omitempty"` + + // CloudStorageEgressWorkload: Usage on a cloud storage egress. + CloudStorageEgressWorkload *CloudStorageEgressWorkload `json:"cloudStorageEgressWorkload,omitempty"` + + // CloudStorageWorkload: Usage on Google Cloud Storage. + CloudStorageWorkload *CloudStorageWorkload `json:"cloudStorageWorkload,omitempty"` + + // ComputeVmWorkload: Usage of a Google Compute Engine Virtual Machine. + ComputeVmWorkload *ComputeVmWorkload `json:"computeVmWorkload,omitempty"` + + // Name: Required. A name for this workload. All workloads in a + // `CostScenario` must have a unique `name`. Each `name` may be at most + // 128 characters long. + Name string `json:"name,omitempty"` + + // PremiumTierEgressWorkload: Usage on Premium Tier Internet Egress. + PremiumTierEgressWorkload *PremiumTierEgressWorkload `json:"premiumTierEgressWorkload,omitempty"` + + // StandardTierEgressWorkload: Usage on Standard Tier Internet Egress. + StandardTierEgressWorkload *StandardTierEgressWorkload `json:"standardTierEgressWorkload,omitempty"` + + // VmToVmEgressWorkload: Usage on Vm to Vm Egress. + VmToVmEgressWorkload *VmToVmEgressWorkload `json:"vmToVmEgressWorkload,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "CloudCdnEgressWorkload") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "CloudCdnEgressWorkload") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *Workload) MarshalJSON() ([]byte, error) { + type NoMethod Workload + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// WorkloadCostEstimate: Estimated cost for a workload. +type WorkloadCostEstimate struct { + // Name: The name of the workload, as specified in the `CostScenario`. + Name string `json:"name,omitempty"` + + // SkuCostEstimates: Estimated costs for each SKU in the workload. + SkuCostEstimates []*SkuCostEstimate `json:"skuCostEstimates,omitempty"` + + // WorkloadTotalCostEstimate: Total estimated costs for the workload. + WorkloadTotalCostEstimate *CostEstimate `json:"workloadTotalCostEstimate,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Name") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Name") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *WorkloadCostEstimate) MarshalJSON() ([]byte, error) { + type NoMethod WorkloadCostEstimate + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// method id "cloudbilling.billingAccounts.estimateCostScenario": + +type BillingAccountsEstimateCostScenarioCall struct { + s *Service + billingAccount string + estimatecostscenarioforbillingaccountrequest *EstimateCostScenarioForBillingAccountRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// EstimateCostScenario: Use custom pricing in the estimate, using a +// `CostScenario` with a defined `billingAccount`. +// +// - billingAccount: Resource name of the billing account for the cost +// estimate. The resource name has the form +// `billingAccounts/{billing_account_id}`. For example, +// `billingAccounts/012345-567890-ABCDEF` is the resource name for +// billing account `012345-567890-ABCDEF`. Must be specified. +func (r *BillingAccountsService) EstimateCostScenario(billingAccount string, estimatecostscenarioforbillingaccountrequest *EstimateCostScenarioForBillingAccountRequest) *BillingAccountsEstimateCostScenarioCall { + c := &BillingAccountsEstimateCostScenarioCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.billingAccount = billingAccount + c.estimatecostscenarioforbillingaccountrequest = estimatecostscenarioforbillingaccountrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BillingAccountsEstimateCostScenarioCall) Fields(s ...googleapi.Field) *BillingAccountsEstimateCostScenarioCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BillingAccountsEstimateCostScenarioCall) Context(ctx context.Context) *BillingAccountsEstimateCostScenarioCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BillingAccountsEstimateCostScenarioCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BillingAccountsEstimateCostScenarioCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.estimatecostscenarioforbillingaccountrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+billingAccount}:estimateCostScenario") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "billingAccount": c.billingAccount, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.billingAccounts.estimateCostScenario" call. +// Exactly one of *EstimateCostScenarioForBillingAccountResponse or +// error will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *EstimateCostScenarioForBillingAccountResponse.ServerResponse.Header +// or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *BillingAccountsEstimateCostScenarioCall) Do(opts ...googleapi.CallOption) (*EstimateCostScenarioForBillingAccountResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &EstimateCostScenarioForBillingAccountResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Use custom pricing in the estimate, using a `CostScenario` with a defined `billingAccount`.", + // "flatPath": "v1beta/billingAccounts/{billingAccountsId}:estimateCostScenario", + // "httpMethod": "POST", + // "id": "cloudbilling.billingAccounts.estimateCostScenario", + // "parameterOrder": [ + // "billingAccount" + // ], + // "parameters": { + // "billingAccount": { + // "description": "Resource name of the billing account for the cost estimate. The resource name has the form `billingAccounts/{billing_account_id}`. For example, `billingAccounts/012345-567890-ABCDEF` is the resource name for billing account `012345-567890-ABCDEF`. Must be specified.", + // "location": "path", + // "pattern": "^billingAccounts/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+billingAccount}:estimateCostScenario", + // "request": { + // "$ref": "EstimateCostScenarioForBillingAccountRequest" + // }, + // "response": { + // "$ref": "EstimateCostScenarioForBillingAccountResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudbilling.billingAccounts.services.get": + +type BillingAccountsServicesGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a Google Cloud service visible to a billing account. +// +// - name: The name of the billing account service to retrieve. Format: +// billingAccounts/{billing_account}/services/{service}. +func (r *BillingAccountsServicesService) Get(name string) *BillingAccountsServicesGetCall { + c := &BillingAccountsServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BillingAccountsServicesGetCall) Fields(s ...googleapi.Field) *BillingAccountsServicesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BillingAccountsServicesGetCall) IfNoneMatch(entityTag string) *BillingAccountsServicesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BillingAccountsServicesGetCall) Context(ctx context.Context) *BillingAccountsServicesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BillingAccountsServicesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BillingAccountsServicesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.billingAccounts.services.get" call. +// Exactly one of +// *GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService +// or error will be non-nil. Any non-2xx status code is an error. +// Response headers are in either +// *GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService.S +// erverResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *BillingAccountsServicesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a Google Cloud service visible to a billing account.", + // "flatPath": "v1beta/billingAccounts/{billingAccountsId}/services/{servicesId}", + // "httpMethod": "GET", + // "id": "cloudbilling.billingAccounts.services.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The name of the billing account service to retrieve. Format: billingAccounts/{billing_account}/services/{service}", + // "location": "path", + // "pattern": "^billingAccounts/[^/]+/services/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+name}", + // "response": { + // "$ref": "GoogleCloudBillingBillingaccountservicesV1betaBillingAccountService" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudbilling.billingAccounts.services.list": + +type BillingAccountsServicesListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists services visible to a billing account. +// +// - parent: The billing account to list billing account service from. +// Format: billingAccounts/{billing_account}. +func (r *BillingAccountsServicesService) List(parent string) *BillingAccountsServicesListCall { + c := &BillingAccountsServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// PageSize sets the optional parameter "pageSize": Maximum number of +// billing account service to return. Results may return fewer than this +// value. Default value is 50 and maximum value is 5000. +func (c *BillingAccountsServicesListCall) PageSize(pageSize int64) *BillingAccountsServicesListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": Page token +// received from a previous ListBillingAccountServices call to retrieve +// the next page of results. If this field is empty, the first page is +// returned. +func (c *BillingAccountsServicesListCall) PageToken(pageToken string) *BillingAccountsServicesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BillingAccountsServicesListCall) Fields(s ...googleapi.Field) *BillingAccountsServicesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BillingAccountsServicesListCall) IfNoneMatch(entityTag string) *BillingAccountsServicesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BillingAccountsServicesListCall) Context(ctx context.Context) *BillingAccountsServicesListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BillingAccountsServicesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BillingAccountsServicesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/services") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.billingAccounts.services.list" call. +// Exactly one of +// *GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServi +// cesResponse or error will be non-nil. Any non-2xx status code is an +// error. Response headers are in either +// *GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServi +// cesResponse.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *BillingAccountsServicesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists services visible to a billing account.", + // "flatPath": "v1beta/billingAccounts/{billingAccountsId}/services", + // "httpMethod": "GET", + // "id": "cloudbilling.billingAccounts.services.list", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "pageSize": { + // "description": "Maximum number of billing account service to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "Page token received from a previous ListBillingAccountServices call to retrieve the next page of results. If this field is empty, the first page is returned.", + // "location": "query", + // "type": "string" + // }, + // "parent": { + // "description": "Required. The billing account to list billing account service from. Format: billingAccounts/{billing_account}", + // "location": "path", + // "pattern": "^billingAccounts/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+parent}/services", + // "response": { + // "$ref": "GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BillingAccountsServicesListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingBillingaccountservicesV1betaListBillingAccountServicesResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "cloudbilling.billingAccounts.skuGroups.get": + +type BillingAccountsSkuGroupsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a SKU group visible to a billing account. +// +// - name: The name of the BillingAccountSkuGroup to retrieve. Format: +// billingAccounts/{billing_account}/skuGroups/{sku_group}. +func (r *BillingAccountsSkuGroupsService) Get(name string) *BillingAccountsSkuGroupsGetCall { + c := &BillingAccountsSkuGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BillingAccountsSkuGroupsGetCall) Fields(s ...googleapi.Field) *BillingAccountsSkuGroupsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BillingAccountsSkuGroupsGetCall) IfNoneMatch(entityTag string) *BillingAccountsSkuGroupsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BillingAccountsSkuGroupsGetCall) Context(ctx context.Context) *BillingAccountsSkuGroupsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BillingAccountsSkuGroupsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BillingAccountsSkuGroupsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.billingAccounts.skuGroups.get" call. +// Exactly one of +// *GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup +// +// or error will be non-nil. Any non-2xx status code is an error. +// +// Response headers are in either +// *GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup +// .ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *BillingAccountsSkuGroupsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a SKU group visible to a billing account.", + // "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skuGroups/{skuGroupsId}", + // "httpMethod": "GET", + // "id": "cloudbilling.billingAccounts.skuGroups.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The name of the BillingAccountSkuGroup to retrieve. Format: billingAccounts/{billing_account}/skuGroups/{sku_group}", + // "location": "path", + // "pattern": "^billingAccounts/[^/]+/skuGroups/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+name}", + // "response": { + // "$ref": "GoogleCloudBillingBillingaccountskugroupsV1betaBillingAccountSkuGroup" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudbilling.billingAccounts.skuGroups.list": + +type BillingAccountsSkuGroupsListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists SKU groups visible to a billing account. +// +// - parent: The billing account to list billing account SKU groups +// from. Format: billingAccounts/{billing_account}. +func (r *BillingAccountsSkuGroupsService) List(parent string) *BillingAccountsSkuGroupsListCall { + c := &BillingAccountsSkuGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// PageSize sets the optional parameter "pageSize": Maximum number of +// billing account SKU groups to return. Results may return fewer than +// this value. Default value is 50 and maximum value is 5000. +func (c *BillingAccountsSkuGroupsListCall) PageSize(pageSize int64) *BillingAccountsSkuGroupsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": Page token +// received from a previous ListBillingAccountSkuGroups call to retrieve +// the next page of results. If this field is empty, the first page is +// returned. +func (c *BillingAccountsSkuGroupsListCall) PageToken(pageToken string) *BillingAccountsSkuGroupsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BillingAccountsSkuGroupsListCall) Fields(s ...googleapi.Field) *BillingAccountsSkuGroupsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BillingAccountsSkuGroupsListCall) IfNoneMatch(entityTag string) *BillingAccountsSkuGroupsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BillingAccountsSkuGroupsListCall) Context(ctx context.Context) *BillingAccountsSkuGroupsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BillingAccountsSkuGroupsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BillingAccountsSkuGroupsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/skuGroups") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.billingAccounts.skuGroups.list" call. +// Exactly one of +// *GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuG +// roupsResponse or error will be non-nil. Any non-2xx status code is an +// error. Response headers are in either +// *GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuG +// roupsResponse.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *BillingAccountsSkuGroupsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists SKU groups visible to a billing account.", + // "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skuGroups", + // "httpMethod": "GET", + // "id": "cloudbilling.billingAccounts.skuGroups.list", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "pageSize": { + // "description": "Maximum number of billing account SKU groups to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "Page token received from a previous ListBillingAccountSkuGroups call to retrieve the next page of results. If this field is empty, the first page is returned.", + // "location": "query", + // "type": "string" + // }, + // "parent": { + // "description": "Required. The billing account to list billing account SKU groups from. Format: billingAccounts/{billing_account}", + // "location": "path", + // "pattern": "^billingAccounts/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+parent}/skuGroups", + // "response": { + // "$ref": "GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BillingAccountsSkuGroupsListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingBillingaccountskugroupsV1betaListBillingAccountSkuGroupsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "cloudbilling.billingAccounts.skuGroups.skus.get": + +type BillingAccountsSkuGroupsSkusGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a SKU that is part of a billing account SKU group. +// +// - name: The name of the billing account SKU group SKU to retrieve. +// Format: +// billingAccounts/{billing_account}/skuGroups/{sku_group}/skus/{sku}. +func (r *BillingAccountsSkuGroupsSkusService) Get(name string) *BillingAccountsSkuGroupsSkusGetCall { + c := &BillingAccountsSkuGroupsSkusGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BillingAccountsSkuGroupsSkusGetCall) Fields(s ...googleapi.Field) *BillingAccountsSkuGroupsSkusGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BillingAccountsSkuGroupsSkusGetCall) IfNoneMatch(entityTag string) *BillingAccountsSkuGroupsSkusGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BillingAccountsSkuGroupsSkusGetCall) Context(ctx context.Context) *BillingAccountsSkuGroupsSkusGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BillingAccountsSkuGroupsSkusGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BillingAccountsSkuGroupsSkusGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.billingAccounts.skuGroups.skus.get" call. +// Exactly one of +// *GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGr +// oupSku or error will be non-nil. Any non-2xx status code is an error. +// Response headers are in either +// *GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGr +// oupSku.ServerResponse.Header or (if a response was returned at all) +// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// check whether the returned error was because http.StatusNotModified +// was returned. +func (c *BillingAccountsSkuGroupsSkusGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a SKU that is part of a billing account SKU group.", + // "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skuGroups/{skuGroupsId}/skus/{skusId}", + // "httpMethod": "GET", + // "id": "cloudbilling.billingAccounts.skuGroups.skus.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The name of the billing account SKU group SKU to retrieve. Format: billingAccounts/{billing_account}/skuGroups/{sku_group}/skus/{sku}", + // "location": "path", + // "pattern": "^billingAccounts/[^/]+/skuGroups/[^/]+/skus/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+name}", + // "response": { + // "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaBillingAccountSkuGroupSku" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudbilling.billingAccounts.skuGroups.skus.list": + +type BillingAccountsSkuGroupsSkusListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists SKUs that is part of billing account SKU groups. +// +// - parent: The billing account SKU group to list billing account SKU +// group SKUs from. Format: +// billingAccounts/{billing_account}/skuGroups/{sku_group}. +func (r *BillingAccountsSkuGroupsSkusService) List(parent string) *BillingAccountsSkuGroupsSkusListCall { + c := &BillingAccountsSkuGroupsSkusListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// PageSize sets the optional parameter "pageSize": Maximum number of +// billing account SKU group SKUs to return. Results may return fewer +// than this value. Default value is 50 and maximum value is 5000. +func (c *BillingAccountsSkuGroupsSkusListCall) PageSize(pageSize int64) *BillingAccountsSkuGroupsSkusListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": Page token +// received from a previous ListBillingAccountSkuGroupSkus call to +// retrieve the next page of results. If this field is empty, the first +// page is returned. +func (c *BillingAccountsSkuGroupsSkusListCall) PageToken(pageToken string) *BillingAccountsSkuGroupsSkusListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BillingAccountsSkuGroupsSkusListCall) Fields(s ...googleapi.Field) *BillingAccountsSkuGroupsSkusListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BillingAccountsSkuGroupsSkusListCall) IfNoneMatch(entityTag string) *BillingAccountsSkuGroupsSkusListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BillingAccountsSkuGroupsSkusListCall) Context(ctx context.Context) *BillingAccountsSkuGroupsSkusListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BillingAccountsSkuGroupsSkusListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BillingAccountsSkuGroupsSkusListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/skus") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.billingAccounts.skuGroups.skus.list" call. +// Exactly one of +// *GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountS +// kuGroupSkusResponse or error will be non-nil. Any non-2xx status code +// is an error. Response headers are in either +// *GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountS +// kuGroupSkusResponse.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *BillingAccountsSkuGroupsSkusListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists SKUs that is part of billing account SKU groups.", + // "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skuGroups/{skuGroupsId}/skus", + // "httpMethod": "GET", + // "id": "cloudbilling.billingAccounts.skuGroups.skus.list", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "pageSize": { + // "description": "Maximum number of billing account SKU group SKUs to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "Page token received from a previous ListBillingAccountSkuGroupSkus call to retrieve the next page of results. If this field is empty, the first page is returned.", + // "location": "query", + // "type": "string" + // }, + // "parent": { + // "description": "Required. The billing account SKU group to list billing account SKU group SKUs from. Format: billingAccounts/{billing_account}/skuGroups/{sku_group}", + // "location": "path", + // "pattern": "^billingAccounts/[^/]+/skuGroups/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+parent}/skus", + // "response": { + // "$ref": "GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BillingAccountsSkuGroupsSkusListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingBillingaccountskugroupskusV1betaListBillingAccountSkuGroupSkusResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "cloudbilling.billingAccounts.skus.get": + +type BillingAccountsSkusGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a SKU visible to a billing account. +// +// - name: The name of the billing account SKU to retrieve. Format: +// billingAccounts/{billing_account}/skus/{sku}. +func (r *BillingAccountsSkusService) Get(name string) *BillingAccountsSkusGetCall { + c := &BillingAccountsSkusGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BillingAccountsSkusGetCall) Fields(s ...googleapi.Field) *BillingAccountsSkusGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BillingAccountsSkusGetCall) IfNoneMatch(entityTag string) *BillingAccountsSkusGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BillingAccountsSkusGetCall) Context(ctx context.Context) *BillingAccountsSkusGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BillingAccountsSkusGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BillingAccountsSkusGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.billingAccounts.skus.get" call. +// Exactly one of +// *GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku or error +// will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku.ServerRes +// ponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *BillingAccountsSkusGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a SKU visible to a billing account.", + // "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skus/{skusId}", + // "httpMethod": "GET", + // "id": "cloudbilling.billingAccounts.skus.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The name of the billing account SKU to retrieve. Format: billingAccounts/{billing_account}/skus/{sku}", + // "location": "path", + // "pattern": "^billingAccounts/[^/]+/skus/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+name}", + // "response": { + // "$ref": "GoogleCloudBillingBillingaccountskusV1betaBillingAccountSku" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudbilling.billingAccounts.skus.list": + +type BillingAccountsSkusListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists SKUs visible to a billing account. +// +// - parent: The billing account to list billing account SKU from. +// Format: billingAccounts/{billing_account}. +func (r *BillingAccountsSkusService) List(parent string) *BillingAccountsSkusListCall { + c := &BillingAccountsSkusListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} + +// Filter sets the optional parameter "filter": Options for how to +// filter the billing account SKUs. Currently, only filter on +// `billing_account_service` is supported. Only !=, = operators are +// supported. Examples: - billing_account_service = +// "billingAccounts/012345-567890-ABCDEF/services/DA34-426B-A397" +func (c *BillingAccountsSkusListCall) Filter(filter string) *BillingAccountsSkusListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// PageSize sets the optional parameter "pageSize": Maximum number of +// billing account SKUs to return. Results may return fewer than this +// value. Default value is 50 and maximum value is 5000. +func (c *BillingAccountsSkusListCall) PageSize(pageSize int64) *BillingAccountsSkusListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": Page token +// received from a previous ListBillingAccountSkus call to retrieve the +// next page of results. If this field is empty, the first page is +// returned. +func (c *BillingAccountsSkusListCall) PageToken(pageToken string) *BillingAccountsSkusListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BillingAccountsSkusListCall) Fields(s ...googleapi.Field) *BillingAccountsSkusListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BillingAccountsSkusListCall) IfNoneMatch(entityTag string) *BillingAccountsSkusListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BillingAccountsSkusListCall) Context(ctx context.Context) *BillingAccountsSkusListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BillingAccountsSkusListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BillingAccountsSkusListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/skus") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.billingAccounts.skus.list" call. +// Exactly one of +// *GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusRespo +// nse or error will be non-nil. Any non-2xx status code is an error. +// Response headers are in either +// *GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusRespo +// nse.ServerResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *BillingAccountsSkusListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists SKUs visible to a billing account.", + // "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skus", + // "httpMethod": "GET", + // "id": "cloudbilling.billingAccounts.skus.list", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "filter": { + // "description": "Options for how to filter the billing account SKUs. Currently, only filter on `billing_account_service` is supported. Only !=, = operators are supported. Examples: - billing_account_service = \"billingAccounts/012345-567890-ABCDEF/services/DA34-426B-A397\"", + // "location": "query", + // "type": "string" + // }, + // "pageSize": { + // "description": "Maximum number of billing account SKUs to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "Page token received from a previous ListBillingAccountSkus call to retrieve the next page of results. If this field is empty, the first page is returned.", + // "location": "query", + // "type": "string" + // }, + // "parent": { + // "description": "Required. The billing account to list billing account SKU from. Format: billingAccounts/{billing_account}", + // "location": "path", + // "pattern": "^billingAccounts/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+parent}/skus", + // "response": { + // "$ref": "GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *BillingAccountsSkusListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingBillingaccountskusV1betaListBillingAccountSkusResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "cloudbilling.billingAccounts.skus.price.get": + +type BillingAccountsSkusPriceGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets the latest price for the given billing account SKU. +// +// - name: Name of the latest billing account price to retrieve. Format: +// billingAccounts/{billing_account}/skus/{sku}/price. +func (r *BillingAccountsSkusPriceService) Get(name string) *BillingAccountsSkusPriceGetCall { + c := &BillingAccountsSkusPriceGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// CurrencyCode sets the optional parameter "currencyCode": ISO-4217 +// currency code for the price. If not specified, currency of billing +// account will be used. +func (c *BillingAccountsSkusPriceGetCall) CurrencyCode(currencyCode string) *BillingAccountsSkusPriceGetCall { + c.urlParams_.Set("currencyCode", currencyCode) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *BillingAccountsSkusPriceGetCall) Fields(s ...googleapi.Field) *BillingAccountsSkusPriceGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *BillingAccountsSkusPriceGetCall) IfNoneMatch(entityTag string) *BillingAccountsSkusPriceGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *BillingAccountsSkusPriceGetCall) Context(ctx context.Context) *BillingAccountsSkusPriceGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *BillingAccountsSkusPriceGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BillingAccountsSkusPriceGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.billingAccounts.skus.price.get" call. +// Exactly one of +// *GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice or +// error will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice.Serve +// rResponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *BillingAccountsSkusPriceGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets the latest price for the given billing account SKU.", + // "flatPath": "v1beta/billingAccounts/{billingAccountsId}/skus/{skusId}/price", + // "httpMethod": "GET", + // "id": "cloudbilling.billingAccounts.skus.price.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "currencyCode": { + // "description": "Optional. ISO-4217 currency code for the price. If not specified, currency of billing account will be used.", + // "location": "query", + // "type": "string" + // }, + // "name": { + // "description": "Required. Name of the latest billing account price to retrieve. Format: billingAccounts/{billing_account}/skus/{sku}/price", + // "location": "path", + // "pattern": "^billingAccounts/[^/]+/skus/[^/]+/price$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+name}", + // "response": { + // "$ref": "GoogleCloudBillingBillingaccountpricesV1betaBillingAccountPrice" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudbilling.skuGroups.get": + +type SkuGroupsGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a publicly listed SKU group. +// +// - name: The name of the SKU group to retrieve. Format: +// skuGroups/{sku_group}. +func (r *SkuGroupsService) Get(name string) *SkuGroupsGetCall { + c := &SkuGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *SkuGroupsGetCall) Fields(s ...googleapi.Field) *SkuGroupsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *SkuGroupsGetCall) IfNoneMatch(entityTag string) *SkuGroupsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *SkuGroupsGetCall) Context(ctx context.Context) *SkuGroupsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *SkuGroupsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SkuGroupsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.skuGroups.get" call. +// Exactly one of *GoogleCloudBillingSkugroupsV1betaSkuGroup or error +// will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleCloudBillingSkugroupsV1betaSkuGroup.ServerResponse.Header or +// (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *SkuGroupsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingSkugroupsV1betaSkuGroup, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingSkugroupsV1betaSkuGroup{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a publicly listed SKU group.", + // "flatPath": "v1beta/skuGroups/{skuGroupsId}", + // "httpMethod": "GET", + // "id": "cloudbilling.skuGroups.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The name of the SKU group to retrieve. Format: skuGroups/{sku_group}", + // "location": "path", + // "pattern": "^skuGroups/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+name}", + // "response": { + // "$ref": "GoogleCloudBillingSkugroupsV1betaSkuGroup" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// method id "cloudbilling.skuGroups.list": + +type SkuGroupsListCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists all publicly listed SKU groups. +func (r *SkuGroupsService) List() *SkuGroupsListCall { + c := &SkuGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// PageSize sets the optional parameter "pageSize": Maximum number of +// SKU groups to return. Results may return fewer than this value. +// Default value is 50 and maximum value is 5000. +func (c *SkuGroupsListCall) PageSize(pageSize int64) *SkuGroupsListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} + +// PageToken sets the optional parameter "pageToken": Page token +// received from a previous ListSkuGroups call to retrieve the next page +// of results. If this field is empty, the first page is returned. +func (c *SkuGroupsListCall) PageToken(pageToken string) *SkuGroupsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *SkuGroupsListCall) Fields(s ...googleapi.Field) *SkuGroupsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *SkuGroupsListCall) IfNoneMatch(entityTag string) *SkuGroupsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *SkuGroupsListCall) Context(ctx context.Context) *SkuGroupsListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *SkuGroupsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SkuGroupsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/skuGroups") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.skuGroups.list" call. +// Exactly one of +// *GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse or error will +// be non-nil. Any non-2xx status code is an error. Response headers are +// in either +// *GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse.ServerResponse +// .Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *SkuGroupsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists all publicly listed SKU groups.", + // "flatPath": "v1beta/skuGroups", + // "httpMethod": "GET", + // "id": "cloudbilling.skuGroups.list", + // "parameterOrder": [], + // "parameters": { + // "pageSize": { + // "description": "Maximum number of SKU groups to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "Page token received from a previous ListSkuGroups call to retrieve the next page of results. If this field is empty, the first page is returned.", + // "location": "query", + // "type": "string" + // } + // }, + // "path": "v1beta/skuGroups", + // "response": { + // "$ref": "GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *SkuGroupsListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingSkugroupsV1betaListSkuGroupsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + +// method id "cloudbilling.skuGroups.skus.get": + +type SkuGroupsSkusGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets a publicly listed SKU that is part of a publicly listed SKU +// group. +// +// - name: The name of the SKU group SKU to retrieve. Format: +// skuGroups/{sku_group}/skus/{sku}. +func (r *SkuGroupsSkusService) Get(name string) *SkuGroupsSkusGetCall { + c := &SkuGroupsSkusGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *SkuGroupsSkusGetCall) Fields(s ...googleapi.Field) *SkuGroupsSkusGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *SkuGroupsSkusGetCall) IfNoneMatch(entityTag string) *SkuGroupsSkusGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *SkuGroupsSkusGetCall) Context(ctx context.Context) *SkuGroupsSkusGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *SkuGroupsSkusGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SkuGroupsSkusGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "name": c.name, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "cloudbilling.skuGroups.skus.get" call. +// Exactly one of *GoogleCloudBillingSkugroupskusV1betaSkuGroupSku or +// error will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleCloudBillingSkugroupskusV1betaSkuGroupSku.ServerResponse.Header +// +// or (if a response was returned at all) in +// +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *SkuGroupsSkusGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingSkugroupskusV1betaSkuGroupSku, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingSkugroupskusV1betaSkuGroupSku{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a publicly listed SKU that is part of a publicly listed SKU group.", + // "flatPath": "v1beta/skuGroups/{skuGroupsId}/skus/{skusId}", + // "httpMethod": "GET", + // "id": "cloudbilling.skuGroups.skus.get", + // "parameterOrder": [ + // "name" + // ], + // "parameters": { + // "name": { + // "description": "Required. The name of the SKU group SKU to retrieve. Format: skuGroups/{sku_group}/skus/{sku}", + // "location": "path", + // "pattern": "^skuGroups/[^/]+/skus/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+name}", + // "response": { + // "$ref": "GoogleCloudBillingSkugroupskusV1betaSkuGroupSku" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } + } -// Workload: Specifies usage on a single Google Cloud product over a -// time frame. Each Google Cloud product has its own message, containing -// specific product configuration parameters of the product usage -// amounts along each dimension in which the product is billed. -type Workload struct { - // CloudCdnEgressWorkload: Usage on Google Cloud CDN Egress. - CloudCdnEgressWorkload *CloudCdnEgressWorkload `json:"cloudCdnEgressWorkload,omitempty"` - - // CloudCdnWorkload: Usage on Google Cloud CDN. - CloudCdnWorkload *CloudCdnWorkload `json:"cloudCdnWorkload,omitempty"` - - // CloudInterconnectEgressWorkload: Usage on Google Cloud Interconnect - // Egress. - CloudInterconnectEgressWorkload *CloudInterconnectEgressWorkload `json:"cloudInterconnectEgressWorkload,omitempty"` - - // CloudInterconnectWorkload: Usage on Google Cloud Interconnect. - CloudInterconnectWorkload *CloudInterconnectWorkload `json:"cloudInterconnectWorkload,omitempty"` - - // CloudStorageEgressWorkload: Usage on a cloud storage egress. - CloudStorageEgressWorkload *CloudStorageEgressWorkload `json:"cloudStorageEgressWorkload,omitempty"` - - // CloudStorageWorkload: Usage on Google Cloud Storage. - CloudStorageWorkload *CloudStorageWorkload `json:"cloudStorageWorkload,omitempty"` - - // ComputeVmWorkload: Usage of a Google Compute Engine Virtual Machine. - ComputeVmWorkload *ComputeVmWorkload `json:"computeVmWorkload,omitempty"` - - // Name: Required. A name for this workload. All workloads in a - // `CostScenario` must have a unique `name`. Each `name` may be at most - // 128 characters long. - Name string `json:"name,omitempty"` +// method id "cloudbilling.skuGroups.skus.list": - // PremiumTierEgressWorkload: Usage on Premium Tier Internet Egress. - PremiumTierEgressWorkload *PremiumTierEgressWorkload `json:"premiumTierEgressWorkload,omitempty"` +type SkuGroupsSkusListCall struct { + s *Service + parent string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} - // StandardTierEgressWorkload: Usage on Standard Tier Internet Egress. - StandardTierEgressWorkload *StandardTierEgressWorkload `json:"standardTierEgressWorkload,omitempty"` +// List: Lists all publicly listed SKUs contained by a publicly listed +// SKU group. +// +// - parent: The SkuGroup to list SkuGroupSku from. Format: +// skuGroups/{sku_group}. +func (r *SkuGroupsSkusService) List(parent string) *SkuGroupsSkusListCall { + c := &SkuGroupsSkusListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent + return c +} - // VmToVmEgressWorkload: Usage on Vm to Vm Egress. - VmToVmEgressWorkload *VmToVmEgressWorkload `json:"vmToVmEgressWorkload,omitempty"` +// PageSize sets the optional parameter "pageSize": Maximum number of +// SKU group SKUs to return. Results may return fewer than this value. +// Default value is 50 and maximum value is 5000. +func (c *SkuGroupsSkusListCall) PageSize(pageSize int64) *SkuGroupsSkusListCall { + c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) + return c +} - // ForceSendFields is a list of field names (e.g. - // "CloudCdnEgressWorkload") to unconditionally include in API requests. - // By default, fields with empty or default values are omitted from API - // requests. However, any non-pointer, non-interface field appearing in - // ForceSendFields will be sent to the server regardless of whether the - // field is empty or not. This may be used to include empty fields in - // Patch requests. - ForceSendFields []string `json:"-"` +// PageToken sets the optional parameter "pageToken": Page token +// received from a previous ListSkuGroupSkus call to retrieve the next +// page of results. If this field is empty, the first page is returned. +func (c *SkuGroupsSkusListCall) PageToken(pageToken string) *SkuGroupsSkusListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} - // NullFields is a list of field names (e.g. "CloudCdnEgressWorkload") - // to include in API requests with the JSON null value. By default, - // fields with empty values are omitted from API requests. However, any - // field with an empty value appearing in NullFields will be sent to the - // server as null. It is an error if a field in this list has a - // non-empty value. This may be used to include null fields in Patch - // requests. - NullFields []string `json:"-"` +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *SkuGroupsSkusListCall) Fields(s ...googleapi.Field) *SkuGroupsSkusListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c } -func (s *Workload) MarshalJSON() ([]byte, error) { - type NoMethod Workload - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *SkuGroupsSkusListCall) IfNoneMatch(entityTag string) *SkuGroupsSkusListCall { + c.ifNoneMatch_ = entityTag + return c } -// WorkloadCostEstimate: Estimated cost for a workload. -type WorkloadCostEstimate struct { - // Name: The name of the workload, as specified in the `CostScenario`. - Name string `json:"name,omitempty"` +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *SkuGroupsSkusListCall) Context(ctx context.Context) *SkuGroupsSkusListCall { + c.ctx_ = ctx + return c +} - // SkuCostEstimates: Estimated costs for each SKU in the workload. - SkuCostEstimates []*SkuCostEstimate `json:"skuCostEstimates,omitempty"` +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *SkuGroupsSkusListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} - // WorkloadTotalCostEstimate: Total estimated costs for the workload. - WorkloadTotalCostEstimate *CostEstimate `json:"workloadTotalCostEstimate,omitempty"` +func (c *SkuGroupsSkusListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/skus") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "parent": c.parent, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} - // ForceSendFields is a list of field names (e.g. "Name") to - // unconditionally include in API requests. By default, fields with - // empty or default values are omitted from API requests. However, any - // non-pointer, non-interface field appearing in ForceSendFields will be - // sent to the server regardless of whether the field is empty or not. - // This may be used to include empty fields in Patch requests. - ForceSendFields []string `json:"-"` +// Do executes the "cloudbilling.skuGroups.skus.list" call. +// Exactly one of +// *GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse or +// error will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse.ServerRe +// sponse.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *SkuGroupsSkusListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Lists all publicly listed SKUs contained by a publicly listed SKU group.", + // "flatPath": "v1beta/skuGroups/{skuGroupsId}/skus", + // "httpMethod": "GET", + // "id": "cloudbilling.skuGroups.skus.list", + // "parameterOrder": [ + // "parent" + // ], + // "parameters": { + // "pageSize": { + // "description": "Maximum number of SKU group SKUs to return. Results may return fewer than this value. Default value is 50 and maximum value is 5000.", + // "format": "int32", + // "location": "query", + // "type": "integer" + // }, + // "pageToken": { + // "description": "Page token received from a previous ListSkuGroupSkus call to retrieve the next page of results. If this field is empty, the first page is returned.", + // "location": "query", + // "type": "string" + // }, + // "parent": { + // "description": "Required. The SkuGroup to list SkuGroupSku from. Format: skuGroups/{sku_group}", + // "location": "path", + // "pattern": "^skuGroups/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+parent}/skus", + // "response": { + // "$ref": "GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-billing", + // "https://www.googleapis.com/auth/cloud-billing.readonly", + // "https://www.googleapis.com/auth/cloud-platform" + // ] + // } - // NullFields is a list of field names (e.g. "Name") to include in API - // requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as - // null. It is an error if a field in this list has a non-empty value. - // This may be used to include null fields in Patch requests. - NullFields []string `json:"-"` } -func (s *WorkloadCostEstimate) MarshalJSON() ([]byte, error) { - type NoMethod WorkloadCostEstimate - raw := NoMethod(*s) - return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *SkuGroupsSkusListCall) Pages(ctx context.Context, f func(*GoogleCloudBillingSkugroupskusV1betaListSkuGroupSkusResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } } -// method id "cloudbilling.billingAccounts.estimateCostScenario": +// method id "cloudbilling.skus.price.get": -type BillingAccountsEstimateCostScenarioCall struct { - s *Service - billingAccount string - estimatecostscenarioforbillingaccountrequest *EstimateCostScenarioForBillingAccountRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type SkusPriceGetCall struct { + s *Service + name string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// EstimateCostScenario: Use custom pricing in the estimate, using a -// `CostScenario` with a defined `billingAccount`. +// Get: Gets the latest price for the given SKU. // -// - billingAccount: Resource name of the billing account for the cost -// estimate. The resource name has the form -// `billingAccounts/{billing_account_id}`. For example, -// `billingAccounts/012345-567890-ABCDEF` is the resource name for -// billing account `012345-567890-ABCDEF`. Must be specified. -func (r *BillingAccountsService) EstimateCostScenario(billingAccount string, estimatecostscenarioforbillingaccountrequest *EstimateCostScenarioForBillingAccountRequest) *BillingAccountsEstimateCostScenarioCall { - c := &BillingAccountsEstimateCostScenarioCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.billingAccount = billingAccount - c.estimatecostscenarioforbillingaccountrequest = estimatecostscenarioforbillingaccountrequest +// - name: Name of the latest price to retrieve. Format: +// skus/{sku}/price. +func (r *SkusPriceService) Get(name string) *SkusPriceGetCall { + c := &SkusPriceGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.name = name + return c +} + +// CurrencyCode sets the optional parameter "currencyCode": ISO-4217 +// currency code for the price. If not specified, USD will be used. +func (c *SkusPriceGetCall) CurrencyCode(currencyCode string) *SkusPriceGetCall { + c.urlParams_.Set("currencyCode", currencyCode) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *BillingAccountsEstimateCostScenarioCall) Fields(s ...googleapi.Field) *BillingAccountsEstimateCostScenarioCall { +func (c *SkusPriceGetCall) Fields(s ...googleapi.Field) *SkusPriceGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *SkusPriceGetCall) IfNoneMatch(entityTag string) *SkusPriceGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *BillingAccountsEstimateCostScenarioCall) Context(ctx context.Context) *BillingAccountsEstimateCostScenarioCall { +func (c *SkusPriceGetCall) Context(ctx context.Context) *SkusPriceGetCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *BillingAccountsEstimateCostScenarioCall) Header() http.Header { +func (c *SkusPriceGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *BillingAccountsEstimateCostScenarioCall) doRequest(alt string) (*http.Response, error) { +func (c *SkusPriceGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.estimatecostscenarioforbillingaccountrequest) - if err != nil { - return nil, err + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - reqHeaders.Set("Content-Type", "application/json") + var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+billingAccount}:estimateCostScenario") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "billingAccount": c.billingAccount, + "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "cloudbilling.billingAccounts.estimateCostScenario" call. -// Exactly one of *EstimateCostScenarioForBillingAccountResponse or -// error will be non-nil. Any non-2xx status code is an error. Response -// headers are in either -// *EstimateCostScenarioForBillingAccountResponse.ServerResponse.Header -// or (if a response was returned at all) in +// Do executes the "cloudbilling.skus.price.get" call. +// Exactly one of *GoogleCloudBillingPricesV1betaPrice or error will be +// non-nil. Any non-2xx status code is an error. Response headers are in +// either *GoogleCloudBillingPricesV1betaPrice.ServerResponse.Header or +// (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was // returned. -func (c *BillingAccountsEstimateCostScenarioCall) Do(opts ...googleapi.CallOption) (*EstimateCostScenarioForBillingAccountResponse, error) { +func (c *SkusPriceGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudBillingPricesV1betaPrice, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -2276,7 +6714,7 @@ func (c *BillingAccountsEstimateCostScenarioCall) Do(opts ...googleapi.CallOptio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &EstimateCostScenarioForBillingAccountResponse{ + ret := &GoogleCloudBillingPricesV1betaPrice{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, @@ -2288,28 +6726,30 @@ func (c *BillingAccountsEstimateCostScenarioCall) Do(opts ...googleapi.CallOptio } return ret, nil // { - // "description": "Use custom pricing in the estimate, using a `CostScenario` with a defined `billingAccount`.", - // "flatPath": "v1beta/billingAccounts/{billingAccountsId}:estimateCostScenario", - // "httpMethod": "POST", - // "id": "cloudbilling.billingAccounts.estimateCostScenario", + // "description": "Gets the latest price for the given SKU.", + // "flatPath": "v1beta/skus/{skusId}/price", + // "httpMethod": "GET", + // "id": "cloudbilling.skus.price.get", // "parameterOrder": [ - // "billingAccount" + // "name" // ], // "parameters": { - // "billingAccount": { - // "description": "Resource name of the billing account for the cost estimate. The resource name has the form `billingAccounts/{billing_account_id}`. For example, `billingAccounts/012345-567890-ABCDEF` is the resource name for billing account `012345-567890-ABCDEF`. Must be specified.", + // "currencyCode": { + // "description": "Optional. ISO-4217 currency code for the price. If not specified, USD will be used.", + // "location": "query", + // "type": "string" + // }, + // "name": { + // "description": "Required. Name of the latest price to retrieve. Format: skus/{sku}/price", // "location": "path", - // "pattern": "^billingAccounts/[^/]+$", + // "pattern": "^skus/[^/]+/price$", // "required": true, // "type": "string" // } // }, - // "path": "v1beta/{+billingAccount}:estimateCostScenario", - // "request": { - // "$ref": "EstimateCostScenarioForBillingAccountRequest" - // }, + // "path": "v1beta/{+name}", // "response": { - // "$ref": "EstimateCostScenarioForBillingAccountResponse" + // "$ref": "GoogleCloudBillingPricesV1betaPrice" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-billing", diff --git a/dataflow/v1b3/dataflow-api.json b/dataflow/v1b3/dataflow-api.json index 045edbea4ce..5208352c4fb 100644 --- a/dataflow/v1b3/dataflow-api.json +++ b/dataflow/v1b3/dataflow-api.json @@ -2214,7 +2214,7 @@ } } }, - "revision": "20230619", + "revision": "20230701", "rootUrl": "https://dataflow.googleapis.com/", "schemas": { "ApproximateProgress": { @@ -2222,15 +2222,18 @@ "id": "ApproximateProgress", "properties": { "percentComplete": { + "deprecated": true, "description": "Obsolete.", "format": "float", "type": "number" }, "position": { "$ref": "Position", + "deprecated": true, "description": "Obsolete." }, "remainingTime": { + "deprecated": true, "description": "Obsolete.", "format": "google-duration", "type": "string" @@ -4100,6 +4103,7 @@ "type": "string" }, "deprecatedPersistentDirectory": { + "deprecated": true, "description": "DEPRECATED. The location of the persistent state for this range, as a persistent directory in the worker local filesystem.", "type": "string" }, @@ -4748,7 +4752,8 @@ "WORKER_REGION", "WORKER_ZONE", "BOOLEAN", - "ENUM" + "ENUM", + "NUMBER" ], "enumDescriptions": [ "Default input type.", @@ -4769,7 +4774,8 @@ "The parameter specifies a Worker Region.", "The parameter specifies a Worker Zone.", "The parameter specifies a boolean input.", - "The parameter specifies an enum input." + "The parameter specifies an enum input.", + "The parameter specifies a number input." ], "type": "string" }, @@ -5170,6 +5176,11 @@ "description": "Optional. Whether to bypass the safety checks for the job's temporary directory. Use with caution.", "type": "boolean" }, + "diskSizeGb": { + "description": "Optional. The disk size, in gigabytes, to use on each remote Compute Engine worker instance.", + "format": "int32", + "type": "integer" + }, "enableStreamingEngine": { "description": "Optional. Whether to enable Streaming Engine for the job.", "type": "boolean" @@ -5814,6 +5825,7 @@ "type": "string" }, "desiredShardSizeBytes": { + "deprecated": true, "description": "DEPRECATED in favor of desired_bundle_size_bytes.", "format": "int64", "type": "string" @@ -5862,6 +5874,7 @@ "type": "string" }, "shards": { + "deprecated": true, "description": "DEPRECATED in favor of bundles.", "items": { "$ref": "SourceSplitShard" @@ -6850,10 +6863,12 @@ }, "suggestedStopPoint": { "$ref": "ApproximateProgress", + "deprecated": true, "description": "DEPRECATED in favor of split_request." }, "suggestedStopPosition": { "$ref": "Position", + "deprecated": true, "description": "Obsolete, always empty." } }, @@ -6886,6 +6901,7 @@ "type": "array" }, "metricUpdates": { + "deprecated": true, "description": "DEPRECATED in favor of counter_updates.", "items": { "$ref": "MetricUpdate" @@ -6894,6 +6910,7 @@ }, "progress": { "$ref": "ApproximateProgress", + "deprecated": true, "description": "DEPRECATED in favor of reported_progress." }, "reportIndex": { @@ -6912,6 +6929,7 @@ }, "sourceFork": { "$ref": "SourceFork", + "deprecated": true, "description": "DEPRECATED in favor of dynamic_source_split." }, "sourceOperationResponse": { diff --git a/dataflow/v1b3/dataflow-gen.go b/dataflow/v1b3/dataflow-gen.go index 95e9b304882..d16bafad0a2 100644 --- a/dataflow/v1b3/dataflow-gen.go +++ b/dataflow/v1b3/dataflow-gen.go @@ -4403,6 +4403,7 @@ type ParameterMetadata struct { // "WORKER_ZONE" - The parameter specifies a Worker Zone. // "BOOLEAN" - The parameter specifies a boolean input. // "ENUM" - The parameter specifies an enum input. + // "NUMBER" - The parameter specifies a number input. ParamType string `json:"paramType,omitempty"` // ParentName: Optional. Specifies the name of the parent parameter. @@ -5070,6 +5071,10 @@ type RuntimeEnvironment struct { // checks for the job's temporary directory. Use with caution. BypassTempDirValidation bool `json:"bypassTempDirValidation,omitempty"` + // DiskSizeGb: Optional. The disk size, in gigabytes, to use on each + // remote Compute Engine worker instance. + DiskSizeGb int64 `json:"diskSizeGb,omitempty"` + // EnableStreamingEngine: Optional. Whether to enable Streaming Engine // for the job. EnableStreamingEngine bool `json:"enableStreamingEngine,omitempty"` diff --git a/discovery/v1/discovery-api.json b/discovery/v1/discovery-api.json index 6d71e26750d..8d8df5dbdee 100644 --- a/discovery/v1/discovery-api.json +++ b/discovery/v1/discovery-api.json @@ -234,10 +234,6 @@ "description": "The default value of this property (if one exists).", "type": "string" }, - "deprecated": { - "description": "Whether the parameter is deprecated.", - "type": "boolean" - }, "description": { "description": "A description of this object.", "type": "string" @@ -249,13 +245,6 @@ }, "type": "array" }, - "enumDeprecated": { - "description": "The deprecation status for the enums. Each position maps to the corresponding value in the \"enum\" array.", - "items": { - "type": "boolean" - }, - "type": "array" - }, "enumDescriptions": { "description": "The descriptions for the enums. Each position maps to the corresponding value in the \"enum\" array.", "items": { @@ -529,10 +518,6 @@ "RestMethod": { "id": "RestMethod", "properties": { - "deprecated": { - "description": "Whether this method is deprecated.", - "type": "boolean" - }, "description": { "description": "Description of this method.", "type": "string" @@ -678,10 +663,6 @@ "RestResource": { "id": "RestResource", "properties": { - "deprecated": { - "description": "Whether this resource is deprecated.", - "type": "boolean" - }, "methods": { "additionalProperties": { "$ref": "RestMethod", diff --git a/discovery/v1/discovery-gen.go b/discovery/v1/discovery-gen.go index 9135f685848..1c0d0a3300c 100644 --- a/discovery/v1/discovery-gen.go +++ b/discovery/v1/discovery-gen.go @@ -283,19 +283,12 @@ type JsonSchema struct { // Default: The default value of this property (if one exists). Default string `json:"default,omitempty"` - // Deprecated -- Whether the parameter is deprecated. - Deprecated bool `json:"deprecated,omitempty"` - // Description: A description of this object. Description string `json:"description,omitempty"` // Enum: Values this parameter may take (if it is an enum). Enum []string `json:"enum,omitempty"` - // EnumDeprecated: The deprecation status for the enums. Each position - // maps to the corresponding value in the "enum" array. - EnumDeprecated []bool `json:"enumDeprecated,omitempty"` - // EnumDescriptions: The descriptions for the enums. Each position maps // to the corresponding value in the "enum" array. EnumDescriptions []string `json:"enumDescriptions,omitempty"` @@ -705,9 +698,6 @@ func (s *RestDescriptionIcons) MarshalJSON() ([]byte, error) { } type RestMethod struct { - // Deprecated -- Whether this method is deprecated. - Deprecated bool `json:"deprecated,omitempty"` - // Description: Description of this method. Description string `json:"description,omitempty"` @@ -765,7 +755,7 @@ type RestMethod struct { // if the method supports media download. UseMediaDownloadService bool `json:"useMediaDownloadService,omitempty"` - // ForceSendFields is a list of field names (e.g. "Deprecated") to + // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -773,10 +763,10 @@ type RestMethod struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Deprecated") to include in - // API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. However, any field with an - // empty value appearing in NullFields will be sent to the server as + // NullFields is a list of field names (e.g. "Description") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` @@ -985,16 +975,13 @@ func (s *RestMethodResponse) MarshalJSON() ([]byte, error) { } type RestResource struct { - // Deprecated -- Whether this resource is deprecated. - Deprecated bool `json:"deprecated,omitempty"` - // Methods: Methods on this resource. Methods map[string]RestMethod `json:"methods,omitempty"` // Resources: Sub-resources on this resource. Resources map[string]RestResource `json:"resources,omitempty"` - // ForceSendFields is a list of field names (e.g. "Deprecated") to + // ForceSendFields is a list of field names (e.g. "Methods") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be @@ -1002,7 +989,7 @@ type RestResource struct { // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Deprecated") to include in + // NullFields is a list of field names (e.g. "Methods") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as diff --git a/drive/v2/drive-api.json b/drive/v2/drive-api.json index 9c205ac93c9..9905fc39d58 100644 --- a/drive/v2/drive-api.json +++ b/drive/v2/drive-api.json @@ -3842,7 +3842,7 @@ } } }, - "revision": "20230603", + "revision": "20230708", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { @@ -3887,6 +3887,7 @@ "type": "boolean" }, "canCreateTeamDrives": { + "deprecated": true, "description": "Deprecated: Use `canCreateDrives` instead.", "type": "boolean" }, @@ -4084,18 +4085,22 @@ "type": "string" }, "teamDriveThemes": { + "deprecated": true, "description": "Deprecated: Use `driveThemes` instead.", "items": { "properties": { "backgroundImageLink": { + "deprecated": true, "description": "Deprecated: Use `driveThemes/backgroundImageLink` instead.", "type": "string" }, "colorRgb": { + "deprecated": true, "description": "Deprecated: Use `driveThemes/colorRgb` instead.", "type": "string" }, "id": { + "deprecated": true, "description": "Deprecated: Use `driveThemes/id` instead.", "type": "string" } @@ -4328,13 +4333,16 @@ }, "teamDrive": { "$ref": "TeamDrive", + "deprecated": true, "description": "Deprecated: Use `drive` instead." }, "teamDriveId": { + "deprecated": true, "description": "Deprecated: Use `driveId` instead.", "type": "string" }, "type": { + "deprecated": true, "description": "Deprecated: Use `changeType` instead.", "type": "string" } @@ -4956,10 +4964,12 @@ "type": "boolean" }, "canComment": { + "deprecated": true, "description": "Output only. Deprecated: Use `capabilities/canComment` instead.", "type": "boolean" }, "canReadRevisions": { + "deprecated": true, "description": "Output only. Deprecated: Use `capabilities/canReadRevisions` instead.", "type": "boolean" }, @@ -4987,6 +4997,7 @@ "type": "boolean" }, "canChangeRestrictedDownload": { + "deprecated": true, "description": "Output only. Deprecated.", "type": "boolean" }, @@ -5039,6 +5050,7 @@ "type": "boolean" }, "canMoveChildrenOutOfTeamDrive": { + "deprecated": true, "description": "Output only. Deprecated: Use `canMoveChildrenOutOfDrive` instead.", "type": "boolean" }, @@ -5047,10 +5059,12 @@ "type": "boolean" }, "canMoveChildrenWithinTeamDrive": { + "deprecated": true, "description": "Output only. Deprecated: Use `canMoveChildrenWithinDrive` instead.", "type": "boolean" }, "canMoveItemIntoTeamDrive": { + "deprecated": true, "description": "Output only. Deprecated: Use `canMoveItemOutOfDrive` instead.", "type": "boolean" }, @@ -5059,6 +5073,7 @@ "type": "boolean" }, "canMoveItemOutOfTeamDrive": { + "deprecated": true, "description": "Output only. Deprecated: Use `canMoveItemOutOfDrive` instead.", "type": "boolean" }, @@ -5067,10 +5082,12 @@ "type": "boolean" }, "canMoveItemWithinTeamDrive": { + "deprecated": true, "description": "Output only. Deprecated: Use `canMoveItemWithinDrive` instead.", "type": "boolean" }, "canMoveTeamDriveItem": { + "deprecated": true, "description": "Output only. Deprecated: Use `canMoveItemWithinDrive` or `canMoveItemOutOfDrive` instead.", "type": "boolean" }, @@ -5087,6 +5104,7 @@ "type": "boolean" }, "canReadTeamDrive": { + "deprecated": true, "description": "Output only. Deprecated: Use `canReadDrive` instead.", "type": "boolean" }, @@ -5133,6 +5151,7 @@ "type": "boolean" }, "copyable": { + "deprecated": true, "description": "Output only. Deprecated: Use `capabilities/canCopy` instead.", "type": "boolean" }, @@ -5158,6 +5177,7 @@ "type": "string" }, "editable": { + "deprecated": true, "description": "Output only. Deprecated: Use `capabilities/canEdit` instead.", "type": "boolean" }, @@ -5371,6 +5391,7 @@ "description": "A group of labels for the file.", "properties": { "hidden": { + "deprecated": true, "description": "Output only. Deprecated.", "type": "boolean" }, @@ -5379,6 +5400,7 @@ "type": "boolean" }, "restricted": { + "deprecated": true, "description": "Output only. Deprecated: Use `copyRequiresWriterPermission` instead.", "type": "boolean" }, @@ -5526,6 +5548,7 @@ "type": "string" }, "shareable": { + "deprecated": true, "description": "Output only. Deprecated: Use `capabilities/canShare` instead.", "type": "boolean" }, @@ -5568,6 +5591,7 @@ "type": "array" }, "teamDriveId": { + "deprecated": true, "description": "Output only. Deprecated: Use `driveId` instead.", "type": "string" }, @@ -6021,6 +6045,7 @@ "type": "array" }, "authKey": { + "deprecated": true, "description": "Output only. Deprecated.", "type": "string" }, @@ -6113,10 +6138,12 @@ "type": "string" }, "teamDrivePermissionDetails": { + "deprecated": true, "description": "Output only. Deprecated: Use `permissionDetails` instead.", "items": { "properties": { "additionalRoles": { + "deprecated": true, "description": "Output only. Deprecated: Use `permissionDetails/additionalRoles` instead.", "items": { "type": "string" @@ -6124,18 +6151,22 @@ "type": "array" }, "inherited": { + "deprecated": true, "description": "Output only. Deprecated: Use `permissionDetails/inherited` instead.", "type": "boolean" }, "inheritedFrom": { + "deprecated": true, "description": "Output only. Deprecated: Use `permissionDetails/inheritedFrom` instead.", "type": "string" }, "role": { + "deprecated": true, "description": "Output only. Deprecated: Use `permissionDetails/role` instead.", "type": "string" }, "teamDrivePermissionType": { + "deprecated": true, "description": "Output only. Deprecated: Use `permissionDetails/permissionType` instead.", "type": "string" } @@ -6508,6 +6539,7 @@ "type": "boolean" }, "canRemoveChildren": { + "deprecated": true, "description": "Deprecated: Use `canDeleteChildren` or `canTrashChildren` instead.", "type": "boolean" }, diff --git a/iap/v1/iap-api.json b/iap/v1/iap-api.json index f8ff4f1a30e..9c1e59856d0 100644 --- a/iap/v1/iap-api.json +++ b/iap/v1/iap-api.json @@ -682,7 +682,7 @@ } } }, - "revision": "20230526", + "revision": "20230707", "rootUrl": "https://iap.googleapis.com/", "schemas": { "AccessDeniedPageSettings": { @@ -1134,6 +1134,13 @@ "SECURE_KEY", "ENROLLED_SECOND_FACTORS" ], + "enumDeprecated": [ + false, + false, + true, + false, + false + ], "enumDescriptions": [ "Reauthentication disabled.", "Prompts the user to log in again.", diff --git a/sasportal/v1alpha1/sasportal-api.json b/sasportal/v1alpha1/sasportal-api.json index 545d01e3da1..9c818194bf8 100644 --- a/sasportal/v1alpha1/sasportal-api.json +++ b/sasportal/v1alpha1/sasportal-api.json @@ -2617,7 +2617,7 @@ } } }, - "revision": "20230625", + "revision": "20230708", "rootUrl": "https://sasportal.googleapis.com/", "schemas": { "SasPortalAssignment": { @@ -2757,6 +2757,7 @@ "description": "Output only. Current configuration of the device as registered to the SAS." }, "currentChannels": { + "deprecated": true, "description": "Output only. Current channels with scores.", "items": { "$ref": "SasPortalChannelWithScore" @@ -3034,6 +3035,7 @@ "type": "string" }, "nrqzValidated": { + "deprecated": true, "description": "Output only. Set to `true` if a CPI has validated that they have coordinated with the National Quiet Zone office.", "readOnly": true, "type": "boolean" diff --git a/serviceusage/v1/serviceusage-api.json b/serviceusage/v1/serviceusage-api.json index 302c0d91027..a004898f3b7 100644 --- a/serviceusage/v1/serviceusage-api.json +++ b/serviceusage/v1/serviceusage-api.json @@ -426,7 +426,7 @@ } } }, - "revision": "20230704", + "revision": "20230710", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { "AddEnableRulesMetadata": { @@ -3077,6 +3077,12 @@ "properties": {}, "type": "object" }, + "UpdateConsumerPolicyMetadata": { + "description": "Metadata for the `UpdateConsumerPolicy` method.", + "id": "UpdateConsumerPolicyMetadata", + "properties": {}, + "type": "object" + }, "Usage": { "description": "Configuration controlling usage of a service.", "id": "Usage", diff --git a/serviceusage/v1/serviceusage-gen.go b/serviceusage/v1/serviceusage-gen.go index b8b69ee2d94..8e3177a9daf 100644 --- a/serviceusage/v1/serviceusage-gen.go +++ b/serviceusage/v1/serviceusage-gen.go @@ -4971,6 +4971,11 @@ type UpdateAdminQuotaPolicyMetadata struct { type UpdateConsumerPolicyLROMetadata struct { } +// UpdateConsumerPolicyMetadata: Metadata for the `UpdateConsumerPolicy` +// method. +type UpdateConsumerPolicyMetadata struct { +} + // Usage: Configuration controlling usage of a service. type Usage struct { // ProducerNotificationChannel: The full resource name of a channel used diff --git a/serviceusage/v1beta1/serviceusage-api.json b/serviceusage/v1beta1/serviceusage-api.json index 894577126b6..7c15e279000 100644 --- a/serviceusage/v1beta1/serviceusage-api.json +++ b/serviceusage/v1beta1/serviceusage-api.json @@ -964,7 +964,7 @@ } } }, - "revision": "20230704", + "revision": "20230710", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { "AddEnableRulesMetadata": { @@ -3911,6 +3911,12 @@ "properties": {}, "type": "object" }, + "UpdateConsumerPolicyMetadata": { + "description": "Metadata for the `UpdateConsumerPolicy` method.", + "id": "UpdateConsumerPolicyMetadata", + "properties": {}, + "type": "object" + }, "Usage": { "description": "Configuration controlling usage of a service.", "id": "Usage", diff --git a/serviceusage/v1beta1/serviceusage-gen.go b/serviceusage/v1beta1/serviceusage-gen.go index 7240fcb86f7..8a41c2ada57 100644 --- a/serviceusage/v1beta1/serviceusage-gen.go +++ b/serviceusage/v1beta1/serviceusage-gen.go @@ -5473,6 +5473,11 @@ type UpdateAdminQuotaPolicyMetadata struct { type UpdateConsumerPolicyLROMetadata struct { } +// UpdateConsumerPolicyMetadata: Metadata for the `UpdateConsumerPolicy` +// method. +type UpdateConsumerPolicyMetadata struct { +} + // Usage: Configuration controlling usage of a service. type Usage struct { // ProducerNotificationChannel: The full resource name of a channel used diff --git a/slides/v1/slides-api.json b/slides/v1/slides-api.json index ee5ef7330a2..0a2a06f9c64 100644 --- a/slides/v1/slides-api.json +++ b/slides/v1/slides-api.json @@ -313,7 +313,7 @@ } } }, - "revision": "20230227", + "revision": "20230705", "rootUrl": "https://slides.googleapis.com/", "schemas": { "AffineTransform": { @@ -581,6 +581,7 @@ "description": "The element properties for the line." }, "lineCategory": { + "deprecated": true, "description": "The category of the line to be created. *Deprecated*: use `category` instead. The exact line type created is determined based on the category and how it's routed to connect to other page elements. If you specify both a `category` and a `line_category`, the `category` takes precedence.", "enum": [ "STRAIGHT", @@ -2539,6 +2540,7 @@ "type": "array" }, "replaceMethod": { + "deprecated": true, "description": "The replace method. *Deprecated*: use `image_replace_method` instead. If you specify both a `replace_method` and an `image_replace_method`, the `image_replace_method` takes precedence.", "enum": [ "CENTER_INSIDE",