{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://cloudbilling.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "Cloudbilling",
  "description": "Allows developers to manage billing for their Google Cloud Platform projects\n    programmatically.",
  "discoveryVersion": "v1",
  "documentationLink": "https://cloud.google.com/billing/",
  "fullyEncodeReservedExpansion": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "id": "cloudbilling:v1",
  "kind": "discovery#restDescription",
  "name": "cloudbilling",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "billingAccounts": {
      "methods": {
        "create": {
          "description": "Creates a billing account.\nThis method can only be used to create\n[billing subaccounts](https://cloud.google.com/billing/docs/concepts)\nby GCP resellers.\nWhen creating a subaccount, the current authenticated user must have the\n`billing.accounts.update` IAM permission on the master account, which is\ntypically given to billing account\n[administrators](https://cloud.google.com/billing/docs/how-to/billing-access).\nThis method will return an error if the master account has not been\nprovisioned as a reseller account.",
          "flatPath": "v1/billingAccounts",
          "httpMethod": "POST",
          "id": "cloudbilling.billingAccounts.create",
          "parameterOrder": [],
          "parameters": {},
          "path": "v1/billingAccounts",
          "request": {
            "$ref": "BillingAccount"
          },
          "response": {
            "$ref": "BillingAccount"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "get": {
          "description": "Gets information about a billing account. The current authenticated user\nmust be a [viewer of the billing\naccount](https://cloud.google.com/billing/docs/how-to/billing-access).",
          "flatPath": "v1/billingAccounts/{billingAccountsId}",
          "httpMethod": "GET",
          "id": "cloudbilling.billingAccounts.get",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "Required. The resource name of the billing account to retrieve. For example,\n`billingAccounts/012345-567890-ABCDEF`.",
              "location": "path",
              "pattern": "^billingAccounts/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/{+name}",
          "response": {
            "$ref": "BillingAccount"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "getIamPolicy": {
          "description": "Gets the access control policy for a billing account.\nThe caller must have the `billing.accounts.getIamPolicy` permission on the\naccount, which is often given to billing account\n[viewers](https://cloud.google.com/billing/docs/how-to/billing-access).",
          "flatPath": "v1/billingAccounts/{billingAccountsId}:getIamPolicy",
          "httpMethod": "GET",
          "id": "cloudbilling.billingAccounts.getIamPolicy",
          "parameterOrder": [
            "resource"
          ],
          "parameters": {
            "options.requestedPolicyVersion": {
              "description": "Optional. The policy format version to be returned.\n\nValid values are 0, 1, and 3. Requests specifying an invalid value will be\nrejected.\n\nRequests for policies with any conditional bindings must specify version 3.\nPolicies without any conditional bindings may specify any valid value or\nleave the field unset.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "resource": {
              "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.",
              "location": "path",
              "pattern": "^billingAccounts/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/{+resource}:getIamPolicy",
          "response": {
            "$ref": "Policy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "list": {
          "description": "Lists the billing accounts that the current authenticated user has\npermission to\n[view](https://cloud.google.com/billing/docs/how-to/billing-access).",
          "flatPath": "v1/billingAccounts",
          "httpMethod": "GET",
          "id": "cloudbilling.billingAccounts.list",
          "parameterOrder": [],
          "parameters": {
            "filter": {
              "description": "Options for how to filter the returned billing accounts.\nCurrently this only supports filtering for\n[subaccounts](https://cloud.google.com/billing/docs/concepts) under a\nsingle provided reseller billing account.\n(e.g. \"master_billing_account=billingAccounts/012345-678901-ABCDEF\").\nBoolean algebra and other fields are not currently supported.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "description": "Requested page size. The maximum page size is 100; this is also the\ndefault.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "A token identifying a page of results to return. This should be a\n`next_page_token` value returned from a previous `ListBillingAccounts`\ncall. If unspecified, the first page of results is returned.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1/billingAccounts",
          "response": {
            "$ref": "ListBillingAccountsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "patch": {
          "description": "Updates a billing account's fields.\nCurrently the only field that can be edited is `display_name`.\nThe current authenticated user must have the `billing.accounts.update`\nIAM permission, which is typically given to the\n[administrator](https://cloud.google.com/billing/docs/how-to/billing-access)\nof the billing account.",
          "flatPath": "v1/billingAccounts/{billingAccountsId}",
          "httpMethod": "PATCH",
          "id": "cloudbilling.billingAccounts.patch",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "Required. The name of the billing account resource to be updated.",
              "location": "path",
              "pattern": "^billingAccounts/[^/]+$",
              "required": true,
              "type": "string"
            },
            "updateMask": {
              "description": "The update mask applied to the resource.\nOnly \"display_name\" is currently supported.",
              "format": "google-fieldmask",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1/{+name}",
          "request": {
            "$ref": "BillingAccount"
          },
          "response": {
            "$ref": "BillingAccount"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "setIamPolicy": {
          "description": "Sets the access control policy for a billing account. Replaces any existing\npolicy.\nThe caller must have the `billing.accounts.setIamPolicy` permission on the\naccount, which is often given to billing account\n[administrators](https://cloud.google.com/billing/docs/how-to/billing-access).",
          "flatPath": "v1/billingAccounts/{billingAccountsId}:setIamPolicy",
          "httpMethod": "POST",
          "id": "cloudbilling.billingAccounts.setIamPolicy",
          "parameterOrder": [
            "resource"
          ],
          "parameters": {
            "resource": {
              "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.",
              "location": "path",
              "pattern": "^billingAccounts/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/{+resource}:setIamPolicy",
          "request": {
            "$ref": "SetIamPolicyRequest"
          },
          "response": {
            "$ref": "Policy"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "testIamPermissions": {
          "description": "Tests the access control policy for a billing account. This method takes\nthe resource and a set of permissions as input and returns the subset of\nthe input permissions that the caller is allowed for that resource.",
          "flatPath": "v1/billingAccounts/{billingAccountsId}:testIamPermissions",
          "httpMethod": "POST",
          "id": "cloudbilling.billingAccounts.testIamPermissions",
          "parameterOrder": [
            "resource"
          ],
          "parameters": {
            "resource": {
              "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.",
              "location": "path",
              "pattern": "^billingAccounts/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/{+resource}:testIamPermissions",
          "request": {
            "$ref": "TestIamPermissionsRequest"
          },
          "response": {
            "$ref": "TestIamPermissionsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        }
      },
      "resources": {
        "projects": {
          "methods": {
            "list": {
              "description": "Lists the projects associated with a billing account. The current\nauthenticated user must have the `billing.resourceAssociations.list` IAM\npermission, which is often given to billing account\n[viewers](https://cloud.google.com/billing/docs/how-to/billing-access).",
              "flatPath": "v1/billingAccounts/{billingAccountsId}/projects",
              "httpMethod": "GET",
              "id": "cloudbilling.billingAccounts.projects.list",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Required. The resource name of the billing account associated with the projects that\nyou want to list. For example, `billingAccounts/012345-567890-ABCDEF`.",
                  "location": "path",
                  "pattern": "^billingAccounts/[^/]+$",
                  "required": true,
                  "type": "string"
                },
                "pageSize": {
                  "description": "Requested page size. The maximum page size is 100; this is also the\ndefault.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "A token identifying a page of results to be returned. This should be a\n`next_page_token` value returned from a previous `ListProjectBillingInfo`\ncall. If unspecified, the first page of results is returned.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/{+name}/projects",
              "response": {
                "$ref": "ListProjectBillingInfoResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          }
        }
      }
    },
    "projects": {
      "methods": {
        "getBillingInfo": {
          "description": "Gets the billing information for a project. The current authenticated user\nmust have [permission to view the\nproject](https://cloud.google.com/docs/permissions-overview#h.bgs0oxofvnoo\n).",
          "flatPath": "v1/projects/{projectsId}/billingInfo",
          "httpMethod": "GET",
          "id": "cloudbilling.projects.getBillingInfo",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "Required. The resource name of the project for which billing information is\nretrieved. For example, `projects/tokyo-rain-123`.",
              "location": "path",
              "pattern": "^projects/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/{+name}/billingInfo",
          "response": {
            "$ref": "ProjectBillingInfo"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "updateBillingInfo": {
          "description": "Sets or updates the billing account associated with a project. You specify\nthe new billing account by setting the `billing_account_name` in the\n`ProjectBillingInfo` resource to the resource name of a billing account.\nAssociating a project with an open billing account enables billing on the\nproject and allows charges for resource usage. If the project already had a\nbilling account, this method changes the billing account used for resource\nusage charges.\n\n*Note:* Incurred charges that have not yet been reported in the transaction\nhistory of the GCP Console might be billed to the new billing\naccount, even if the charge occurred before the new billing account was\nassigned to the project.\n\nThe current authenticated user must have ownership privileges for both the\n[project](https://cloud.google.com/docs/permissions-overview#h.bgs0oxofvnoo\n) and the [billing\naccount](https://cloud.google.com/billing/docs/how-to/billing-access).\n\nYou can disable billing on the project by setting the\n`billing_account_name` field to empty. This action disassociates the\ncurrent billing account from the project. Any billable activity of your\nin-use services will stop, and your application could stop functioning as\nexpected. Any unbilled charges to date will be billed to the previously\nassociated account. The current authenticated user must be either an owner\nof the project or an owner of the billing account for the project.\n\nNote that associating a project with a *closed* billing account will have\nmuch the same effect as disabling billing on the project: any paid\nresources used by the project will be shut down. Thus, unless you wish to\ndisable billing, you should always call this method with the name of an\n*open* billing account.",
          "flatPath": "v1/projects/{projectsId}/billingInfo",
          "httpMethod": "PUT",
          "id": "cloudbilling.projects.updateBillingInfo",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "Required. The resource name of the project associated with the billing information\nthat you want to update. For example, `projects/tokyo-rain-123`.",
              "location": "path",
              "pattern": "^projects/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/{+name}/billingInfo",
          "request": {
            "$ref": "ProjectBillingInfo"
          },
          "response": {
            "$ref": "ProjectBillingInfo"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        }
      }
    },
    "services": {
      "methods": {
        "list": {
          "description": "Lists all public cloud services.",
          "flatPath": "v1/services",
          "httpMethod": "GET",
          "id": "cloudbilling.services.list",
          "parameterOrder": [],
          "parameters": {
            "pageSize": {
              "description": "Requested page size. Defaults to 5000.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "A token identifying a page of results to return. This should be a\n`next_page_token` value returned from a previous `ListServices`\ncall. If unspecified, the first page of results is returned.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1/services",
          "response": {
            "$ref": "ListServicesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        }
      },
      "resources": {
        "skus": {
          "methods": {
            "list": {
              "description": "Lists all publicly available SKUs for a given cloud service.",
              "flatPath": "v1/services/{servicesId}/skus",
              "httpMethod": "GET",
              "id": "cloudbilling.services.skus.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "currencyCode": {
                  "description": "The ISO 4217 currency code for the pricing info in the response proto.\nWill use the conversion rate as of start_time.\nOptional. If not specified USD will be used.",
                  "location": "query",
                  "type": "string"
                },
                "endTime": {
                  "description": "Optional exclusive end time of the time range for which the pricing\nversions will be returned. Timestamps in the future are not allowed.\nThe time range has to be within a single calendar month in\nAmerica/Los_Angeles timezone. Time range as a whole is optional. If not\nspecified, the latest pricing will be returned (up to 12 hours old at\nmost).",
                  "format": "google-datetime",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "Requested page size. Defaults to 5000.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "A token identifying a page of results to return. This should be a\n`next_page_token` value returned from a previous `ListSkus`\ncall. If unspecified, the first page of results is returned.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "Required. The name of the service.\nExample: \"services/DA34-426B-A397\"",
                  "location": "path",
                  "pattern": "^services/[^/]+$",
                  "required": true,
                  "type": "string"
                },
                "startTime": {
                  "description": "Optional inclusive start time of the time range for which the pricing\nversions will be returned. Timestamps in the future are not allowed.\nThe time range has to be within a single calendar month in\nAmerica/Los_Angeles timezone. Time range as a whole is optional. If not\nspecified, the latest pricing will be returned (up to 12 hours old at\nmost).",
                  "format": "google-datetime",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1/{+parent}/skus",
              "response": {
                "$ref": "ListSkusResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          }
        }
      }
    }
  },
  "revision": "20200127",
  "rootUrl": "https://cloudbilling.googleapis.com/",
  "schemas": {
    "AggregationInfo": {
      "description": "Represents the aggregation level and interval for pricing of a single SKU.",
      "id": "AggregationInfo",
      "properties": {
        "aggregationCount": {
          "description": "The number of intervals to aggregate over.\nExample: If aggregation_level is \"DAILY\" and aggregation_count is 14,\naggregation will be over 14 days.",
          "format": "int32",
          "type": "integer"
        },
        "aggregationInterval": {
          "enum": [
            "AGGREGATION_INTERVAL_UNSPECIFIED",
            "DAILY",
            "MONTHLY"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "type": "string"
        },
        "aggregationLevel": {
          "enum": [
            "AGGREGATION_LEVEL_UNSPECIFIED",
            "ACCOUNT",
            "PROJECT"
          ],
          "enumDescriptions": [
            "",
            "",
            ""
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "AuditConfig": {
      "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditLogConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n    {\n      \"audit_configs\": [\n        {\n          \"service\": \"allServices\"\n          \"audit_log_configs\": [\n            {\n              \"log_type\": \"DATA_READ\",\n              \"exempted_members\": [\n                \"user:jose@example.com\"\n              ]\n            },\n            {\n              \"log_type\": \"DATA_WRITE\",\n            },\n            {\n              \"log_type\": \"ADMIN_READ\",\n            }\n          ]\n        },\n        {\n          \"service\": \"sampleservice.googleapis.com\"\n          \"audit_log_configs\": [\n            {\n              \"log_type\": \"DATA_READ\",\n            },\n            {\n              \"log_type\": \"DATA_WRITE\",\n              \"exempted_members\": [\n                \"user:aliya@example.com\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\n\nFor sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts jose@example.com from DATA_READ logging, and\naliya@example.com from DATA_WRITE logging.",
      "id": "AuditConfig",
      "properties": {
        "auditLogConfigs": {
          "description": "The configuration for logging of each type of permission.",
          "items": {
            "$ref": "AuditLogConfig"
          },
          "type": "array"
        },
        "service": {
          "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AuditLogConfig": {
      "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n    {\n      \"audit_log_configs\": [\n        {\n          \"log_type\": \"DATA_READ\",\n          \"exempted_members\": [\n            \"user:jose@example.com\"\n          ]\n        },\n        {\n          \"log_type\": \"DATA_WRITE\",\n        }\n      ]\n    }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\njose@example.com from DATA_READ logging.",
      "id": "AuditLogConfig",
      "properties": {
        "exemptedMembers": {
          "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "logType": {
          "description": "The log type that this config enables.",
          "enum": [
            "LOG_TYPE_UNSPECIFIED",
            "ADMIN_READ",
            "DATA_WRITE",
            "DATA_READ"
          ],
          "enumDescriptions": [
            "Default case. Should never be this.",
            "Admin reads. Example: CloudIAM getIamPolicy",
            "Data writes. Example: CloudSQL Users create",
            "Data reads. Example: CloudSQL Users list"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "BillingAccount": {
      "description": "A billing account in [GCP Console](https://console.cloud.google.com/).\nYou can assign a billing account to one or more projects.",
      "id": "BillingAccount",
      "properties": {
        "displayName": {
          "description": "The display name given to the billing account, such as `My Billing\nAccount`. This name is displayed in the GCP Console.",
          "type": "string"
        },
        "masterBillingAccount": {
          "description": "If this account is a\n[subaccount](https://cloud.google.com/billing/docs/concepts), then this\nwill be the resource name of the master billing account that it is being\nresold through.\nOtherwise this will be empty.",
          "type": "string"
        },
        "name": {
          "description": "The resource name of the billing account. The resource name has the form\n`billingAccounts/{billing_account_id}`. For example,\n`billingAccounts/012345-567890-ABCDEF` would be the resource name for\nbilling account `012345-567890-ABCDEF`.",
          "type": "string"
        },
        "open": {
          "description": "Output only. True if the billing account is open, and will therefore be charged for any\nusage on associated projects. False if the billing account is closed, and\ntherefore projects associated with it will be unable to use paid services.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "Binding": {
      "description": "Associates `members` with a `role`.",
      "id": "Binding",
      "properties": {
        "condition": {
          "$ref": "Expr",
          "description": "The condition that is associated with this binding.\nNOTE: An unsatisfied condition will not allow user access via current\nbinding. Different bindings, including their conditions, are examined\nindependently."
        },
        "members": {
          "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n   on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n   who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n   account. For example, `alice@example.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n   account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n   For example, `admins@example.com`.\n\n* `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique\n   identifier) representing a user that has been recently deleted. For\n   example, `alice@example.com?uid=123456789012345678901`. If the user is\n   recovered, this value reverts to `user:{emailid}` and the recovered user\n   retains the role in the binding.\n\n* `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus\n   unique identifier) representing a service account that has been recently\n   deleted. For example,\n   `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.\n   If the service account is undeleted, this value reverts to\n   `serviceAccount:{emailid}` and the undeleted service account retains the\n   role in the binding.\n\n* `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique\n   identifier) representing a Google group that has been recently\n   deleted. For example, `admins@example.com?uid=123456789012345678901`. If\n   the group is recovered, this value reverts to `group:{emailid}` and the\n   recovered group retains the role in the binding.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n   users of that domain. For example, `google.com` or `example.com`.\n\n",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "role": {
          "description": "Role that is assigned to `members`.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Category": {
      "description": "Represents the category hierarchy of a SKU.",
      "id": "Category",
      "properties": {
        "resourceFamily": {
          "description": "The type of product the SKU refers to.\nExample: \"Compute\", \"Storage\", \"Network\", \"ApplicationServices\" etc.",
          "type": "string"
        },
        "resourceGroup": {
          "description": "A group classification for related SKUs.\nExample: \"RAM\", \"GPU\", \"Prediction\", \"Ops\", \"GoogleEgress\" etc.",
          "type": "string"
        },
        "serviceDisplayName": {
          "description": "The display name of the service this SKU belongs to.",
          "type": "string"
        },
        "usageType": {
          "description": "Represents how the SKU is consumed.\nExample: \"OnDemand\", \"Preemptible\", \"Commit1Mo\", \"Commit1Yr\" etc.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Expr": {
      "description": "Represents a textual expression in the Common Expression Language (CEL)\nsyntax. CEL is a C-like expression language. The syntax and semantics of CEL\nare documented at https://github.com/google/cel-spec.\n\nExample (Comparison):\n\n    title: \"Summary size limit\"\n    description: \"Determines if a summary is less than 100 chars\"\n    expression: \"document.summary.size() \u003c 100\"\n\nExample (Equality):\n\n    title: \"Requestor is owner\"\n    description: \"Determines if requestor is the document owner\"\n    expression: \"document.owner == request.auth.claims.email\"\n\nExample (Logic):\n\n    title: \"Public documents\"\n    description: \"Determine whether the document should be publicly visible\"\n    expression: \"document.type != 'private' \u0026\u0026 document.type != 'internal'\"\n\nExample (Data Manipulation):\n\n    title: \"Notification string\"\n    description: \"Create a notification string with a timestamp.\"\n    expression: \"'New message received at ' + string(document.create_time)\"\n\nThe exact variables and functions that may be referenced within an expression\nare determined by the service that evaluates it. See the service\ndocumentation for additional information.",
      "id": "Expr",
      "properties": {
        "description": {
          "description": "Optional. Description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.",
          "type": "string"
        },
        "expression": {
          "description": "Textual representation of an expression in Common Expression Language\nsyntax.",
          "type": "string"
        },
        "location": {
          "description": "Optional. String indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.",
          "type": "string"
        },
        "title": {
          "description": "Optional. Title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListBillingAccountsResponse": {
      "description": "Response message for `ListBillingAccounts`.",
      "id": "ListBillingAccountsResponse",
      "properties": {
        "billingAccounts": {
          "description": "A list of billing accounts.",
          "items": {
            "$ref": "BillingAccount"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. To retrieve the next page,\ncall `ListBillingAccounts` again with the `page_token` field set to this\nvalue. This field is empty if there are no more results to retrieve.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListProjectBillingInfoResponse": {
      "description": "Request message for `ListProjectBillingInfoResponse`.",
      "id": "ListProjectBillingInfoResponse",
      "properties": {
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. To retrieve the next page,\ncall `ListProjectBillingInfo` again with the `page_token` field set to this\nvalue. This field is empty if there are no more results to retrieve.",
          "type": "string"
        },
        "projectBillingInfo": {
          "description": "A list of `ProjectBillingInfo` resources representing the projects\nassociated with the billing account.",
          "items": {
            "$ref": "ProjectBillingInfo"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListServicesResponse": {
      "description": "Response message for `ListServices`.",
      "id": "ListServicesResponse",
      "properties": {
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. To retrieve the next page,\ncall `ListServices` again with the `page_token` field set to this\nvalue. This field is empty if there are no more results to retrieve.",
          "type": "string"
        },
        "services": {
          "description": "A list of services.",
          "items": {
            "$ref": "Service"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListSkusResponse": {
      "description": "Response message for `ListSkus`.",
      "id": "ListSkusResponse",
      "properties": {
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. To retrieve the next page,\ncall `ListSkus` again with the `page_token` field set to this\nvalue. This field is empty if there are no more results to retrieve.",
          "type": "string"
        },
        "skus": {
          "description": "The list of public SKUs of the given service.",
          "items": {
            "$ref": "Sku"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Money": {
      "description": "Represents an amount of money with its currency type.",
      "id": "Money",
      "properties": {
        "currencyCode": {
          "description": "The 3-letter currency code defined in ISO 4217.",
          "type": "string"
        },
        "nanos": {
          "description": "Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999 inclusive.\nIf `units` is positive, `nanos` must be positive or zero.\nIf `units` is zero, `nanos` can be positive, zero, or negative.\nIf `units` is negative, `nanos` must be negative or zero.\nFor example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.",
          "format": "int32",
          "type": "integer"
        },
        "units": {
          "description": "The whole units of the amount.\nFor example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Policy": {
      "description": "An Identity and Access Management (IAM) policy, which specifies access\ncontrols for Google Cloud resources.\n\n\nA `Policy` is a collection of `bindings`. A `binding` binds one or more\n`members` to a single `role`. Members can be user accounts, service accounts,\nGoogle groups, and domains (such as G Suite). A `role` is a named list of\npermissions; each `role` can be an IAM predefined role or a user-created\ncustom role.\n\nOptionally, a `binding` can specify a `condition`, which is a logical\nexpression that allows access to a resource only if the expression evaluates\nto `true`. A condition can add constraints based on attributes of the\nrequest, the resource, or both.\n\n**JSON example:**\n\n    {\n      \"bindings\": [\n        {\n          \"role\": \"roles/resourcemanager.organizationAdmin\",\n          \"members\": [\n            \"user:mike@example.com\",\n            \"group:admins@example.com\",\n            \"domain:google.com\",\n            \"serviceAccount:my-project-id@appspot.gserviceaccount.com\"\n          ]\n        },\n        {\n          \"role\": \"roles/resourcemanager.organizationViewer\",\n          \"members\": [\"user:eve@example.com\"],\n          \"condition\": {\n            \"title\": \"expirable access\",\n            \"description\": \"Does not grant access after Sep 2020\",\n            \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\",\n          }\n        }\n      ],\n      \"etag\": \"BwWWja0YfJA=\",\n      \"version\": 3\n    }\n\n**YAML example:**\n\n    bindings:\n    - members:\n      - user:mike@example.com\n      - group:admins@example.com\n      - domain:google.com\n      - serviceAccount:my-project-id@appspot.gserviceaccount.com\n      role: roles/resourcemanager.organizationAdmin\n    - members:\n      - user:eve@example.com\n      role: roles/resourcemanager.organizationViewer\n      condition:\n        title: expirable access\n        description: Does not grant access after Sep 2020\n        expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\n    - etag: BwWWja0YfJA=\n    - version: 3\n\nFor a description of IAM and its features, see the\n[IAM documentation](https://cloud.google.com/iam/docs/).",
      "id": "Policy",
      "properties": {
        "auditConfigs": {
          "description": "Specifies cloud audit logging configuration for this policy.",
          "items": {
            "$ref": "AuditConfig"
          },
          "type": "array"
        },
        "bindings": {
          "description": "Associates a list of `members` to a `role`. Optionally, may specify a\n`condition` that determines how and when the `bindings` are applied. Each\nof the `bindings` must contain at least one member.",
          "items": {
            "$ref": "Binding"
          },
          "type": "array"
        },
        "etag": {
          "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\n**Important:** If you use IAM Conditions, you must include the `etag` field\nwhenever you call `setIamPolicy`. If you omit this field, then IAM allows\nyou to overwrite a version `3` policy with a version `1` policy, and all of\nthe conditions in the version `3` policy are lost.",
          "format": "byte",
          "type": "string"
        },
        "version": {
          "description": "Specifies the format of the policy.\n\nValid values are `0`, `1`, and `3`. Requests that specify an invalid value\nare rejected.\n\nAny operation that affects conditional role bindings must specify version\n`3`. This requirement applies to the following operations:\n\n* Getting a policy that includes a conditional role binding\n* Adding a conditional role binding to a policy\n* Changing a conditional role binding in a policy\n* Removing any role binding, with or without a condition, from a policy\n  that includes conditions\n\n**Important:** If you use IAM Conditions, you must include the `etag` field\nwhenever you call `setIamPolicy`. If you omit this field, then IAM allows\nyou to overwrite a version `3` policy with a version `1` policy, and all of\nthe conditions in the version `3` policy are lost.\n\nIf a policy does not include any conditions, operations on that policy may\nspecify any valid version or leave the field unset.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "PricingExpression": {
      "description": "Expresses a mathematical pricing formula. For Example:-\n\n`usage_unit: GBy`\n`tiered_rates:`\n   `[start_usage_amount: 20, unit_price: $10]`\n   `[start_usage_amount: 100, unit_price: $5]`\n\nThe above expresses a pricing formula where the first 20GB is free, the\nnext 80GB is priced at $10 per GB followed by $5 per GB for additional\nusage.",
      "id": "PricingExpression",
      "properties": {
        "baseUnit": {
          "description": "The base unit for the SKU which is the unit used in usage exports.\nExample: \"By\"",
          "type": "string"
        },
        "baseUnitConversionFactor": {
          "description": "Conversion factor for converting from price per usage_unit to price per\nbase_unit, and start_usage_amount to start_usage_amount in base_unit.\nunit_price / base_unit_conversion_factor = price per base_unit.\nstart_usage_amount * base_unit_conversion_factor = start_usage_amount in\nbase_unit.",
          "format": "double",
          "type": "number"
        },
        "baseUnitDescription": {
          "description": "The base unit in human readable form.\nExample: \"byte\".",
          "type": "string"
        },
        "displayQuantity": {
          "description": "The recommended quantity of units for displaying pricing info. When\ndisplaying pricing info it is recommended to display:\n(unit_price * display_quantity) per display_quantity usage_unit.\nThis field does not affect the pricing formula and is for display purposes\nonly.\nExample: If the unit_price is \"0.0001 USD\", the usage_unit is \"GB\" and\nthe display_quantity is \"1000\" then the recommended way of displaying the\npricing info is \"0.10 USD per 1000 GB\"",
          "format": "double",
          "type": "number"
        },
        "tieredRates": {
          "description": "The list of tiered rates for this pricing. The total cost is computed by\napplying each of the tiered rates on usage. This repeated list is sorted\nby ascending order of start_usage_amount.",
          "items": {
            "$ref": "TierRate"
          },
          "type": "array"
        },
        "usageUnit": {
          "description": "The short hand for unit of usage this pricing is specified in.\nExample: usage_unit of \"GiBy\" means that usage is specified in \"Gibi Byte\".",
          "type": "string"
        },
        "usageUnitDescription": {
          "description": "The unit of usage in human readable form.\nExample: \"gibi byte\".",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PricingInfo": {
      "description": "Represents the pricing information for a SKU at a single point of time.",
      "id": "PricingInfo",
      "properties": {
        "aggregationInfo": {
          "$ref": "AggregationInfo",
          "description": "Aggregation Info. This can be left unspecified if the pricing expression\ndoesn't require aggregation."
        },
        "currencyConversionRate": {
          "description": "Conversion rate used for currency conversion, from USD to the currency\nspecified in the request. This includes any surcharge collected for billing\nin non USD currency. If a currency is not specified in the request this\ndefaults to 1.0.\nExample: USD * currency_conversion_rate = JPY",
          "format": "double",
          "type": "number"
        },
        "effectiveTime": {
          "description": "The timestamp from which this pricing was effective within the requested\ntime range. This is guaranteed to be greater than or equal to the\nstart_time field in the request and less than the end_time field in the\nrequest. If a time range was not specified in the request this field will\nbe equivalent to a time within the last 12 hours, indicating the latest\npricing info.",
          "format": "google-datetime",
          "type": "string"
        },
        "pricingExpression": {
          "$ref": "PricingExpression",
          "description": "Expresses the pricing formula. See `PricingExpression` for an example."
        },
        "summary": {
          "description": "An optional human readable summary of the pricing information, has a\nmaximum length of 256 characters.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ProjectBillingInfo": {
      "description": "Encapsulation of billing information for a GCP Console project. A project\nhas at most one associated billing account at a time (but a billing account\ncan be assigned to multiple projects).",
      "id": "ProjectBillingInfo",
      "properties": {
        "billingAccountName": {
          "description": "The resource name of the billing account associated with the project, if\nany. For example, `billingAccounts/012345-567890-ABCDEF`.",
          "type": "string"
        },
        "billingEnabled": {
          "description": "True if the project is associated with an open billing account, to which\nusage on the project is charged. False if the project is associated with a\nclosed billing account, or no billing account at all, and therefore cannot\nuse paid services. This field is read-only.",
          "type": "boolean"
        },
        "name": {
          "description": "The resource name for the `ProjectBillingInfo`; has the form\n`projects/{project_id}/billingInfo`. For example, the resource name for the\nbilling information for project `tokyo-rain-123` would be\n`projects/tokyo-rain-123/billingInfo`. This field is read-only.",
          "type": "string"
        },
        "projectId": {
          "description": "The ID of the project that this `ProjectBillingInfo` represents, such as\n`tokyo-rain-123`. This is a convenience field so that you don't need to\nparse the `name` field to obtain a project ID. This field is read-only.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Service": {
      "description": "Encapsulates a single service in Google Cloud Platform.",
      "id": "Service",
      "properties": {
        "businessEntityName": {
          "description": "The business under which the service is offered.\nEx. \"businessEntities/GCP\", \"businessEntities/Maps\"",
          "type": "string"
        },
        "displayName": {
          "description": "A human readable display name for this service.",
          "type": "string"
        },
        "name": {
          "description": "The resource name for the service.\nExample: \"services/DA34-426B-A397\"",
          "type": "string"
        },
        "serviceId": {
          "description": "The identifier for the service.\nExample: \"DA34-426B-A397\"",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SetIamPolicyRequest": {
      "description": "Request message for `SetIamPolicy` method.",
      "id": "SetIamPolicyRequest",
      "properties": {
        "policy": {
          "$ref": "Policy",
          "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them."
        },
        "updateMask": {
          "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only\nthe fields in the mask will be modified. If no mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\"\nThis field is only used by Cloud IAM.",
          "format": "google-fieldmask",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Sku": {
      "description": "Encapsulates a single SKU in Google Cloud Platform",
      "id": "Sku",
      "properties": {
        "category": {
          "$ref": "Category",
          "description": "The category hierarchy of this SKU, purely for organizational purpose."
        },
        "description": {
          "description": "A human readable description of the SKU, has a maximum length of 256\ncharacters.",
          "type": "string"
        },
        "name": {
          "description": "The resource name for the SKU.\nExample: \"services/DA34-426B-A397/skus/AA95-CD31-42FE\"",
          "type": "string"
        },
        "pricingInfo": {
          "description": "A timeline of pricing info for this SKU in chronological order.",
          "items": {
            "$ref": "PricingInfo"
          },
          "type": "array"
        },
        "serviceProviderName": {
          "description": "Identifies the service provider.\nThis is 'Google' for first party services in Google Cloud Platform.",
          "type": "string"
        },
        "serviceRegions": {
          "description": "List of service regions this SKU is offered at.\nExample: \"asia-east1\"\nService regions can be found at https://cloud.google.com/about/locations/",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "skuId": {
          "description": "The identifier for the SKU.\nExample: \"AA95-CD31-42FE\"",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TestIamPermissionsRequest": {
      "description": "Request message for `TestIamPermissions` method.",
      "id": "TestIamPermissionsRequest",
      "properties": {
        "permissions": {
          "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\n[IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TestIamPermissionsResponse": {
      "description": "Response message for `TestIamPermissions` method.",
      "id": "TestIamPermissionsResponse",
      "properties": {
        "permissions": {
          "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TierRate": {
      "description": "The price rate indicating starting usage and its corresponding price.",
      "id": "TierRate",
      "properties": {
        "startUsageAmount": {
          "description": "Usage is priced at this rate only after this amount.\nExample: start_usage_amount of 10 indicates that the usage will be priced\nat the unit_price after the first 10 usage_units.",
          "format": "double",
          "type": "number"
        },
        "unitPrice": {
          "$ref": "Money",
          "description": "The price per unit of usage.\nExample: unit_price of amount $10 indicates that each unit will cost $10."
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "Cloud Billing API",
  "version": "v1"
}