{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://serviceconsumermanagement.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "Service Consumer Management",
  "description": "Manages the service consumers of a Service Infrastructure service.",
  "discoveryVersion": "v1",
  "documentationLink": "https://cloud.google.com/service-consumer-management/docs/overview",
  "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": "serviceconsumermanagement:v1",
  "kind": "discovery#restDescription",
  "name": "serviceconsumermanagement",
  "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": {
    "operations": {
      "methods": {
        "cancel": {
          "description": "Starts asynchronous cancellation on a long-running operation.  The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed.  If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.  Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CANCELLED`.",
          "flatPath": "v1/operations/{operationsId}:cancel",
          "httpMethod": "POST",
          "id": "serviceconsumermanagement.operations.cancel",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "The name of the operation resource to be cancelled.",
              "location": "path",
              "pattern": "^operations/.+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/{+name}:cancel",
          "request": {
            "$ref": "CancelOperationRequest"
          },
          "response": {
            "$ref": "Empty"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "delete": {
          "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.",
          "flatPath": "v1/operations/{operationsId}",
          "httpMethod": "DELETE",
          "id": "serviceconsumermanagement.operations.delete",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "The name of the operation resource to be deleted.",
              "location": "path",
              "pattern": "^operations/.+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/{+name}",
          "response": {
            "$ref": "Empty"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "get": {
          "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
          "flatPath": "v1/operations/{operationsId}",
          "httpMethod": "GET",
          "id": "serviceconsumermanagement.operations.get",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "The name of the operation resource.",
              "location": "path",
              "pattern": "^operations/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1/{+name}",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "list": {
          "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.",
          "flatPath": "v1/operations",
          "httpMethod": "GET",
          "id": "serviceconsumermanagement.operations.list",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "filter": {
              "description": "The standard list filter.",
              "location": "query",
              "type": "string"
            },
            "name": {
              "description": "The name of the operation's parent resource.",
              "location": "path",
              "pattern": "^operations$",
              "required": true,
              "type": "string"
            },
            "pageSize": {
              "description": "The standard list page size.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "The standard list page token.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1/{+name}",
          "response": {
            "$ref": "ListOperationsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        }
      }
    },
    "services": {
      "methods": {
        "search": {
          "description": "Search tenancy units for a managed service.",
          "flatPath": "v1/services/{servicesId}:search",
          "httpMethod": "GET",
          "id": "serviceconsumermanagement.services.search",
          "parameterOrder": [
            "parent"
          ],
          "parameters": {
            "pageSize": {
              "description": "The maximum number of results returned by this request. Currently, the\ndefault maximum is set to 1000. If `page_size` isn't provided or the size\nprovided is a number larger than 1000, it's automatically set to 1000.\n\nOptional.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.\n\nOptional.",
              "location": "query",
              "type": "string"
            },
            "parent": {
              "description": "Service for which search is performed.\nservices/{service}\n{service} the name of a service, for example 'service.googleapis.com'.",
              "location": "path",
              "pattern": "^services/[^/]+$",
              "required": true,
              "type": "string"
            },
            "query": {
              "description": "Set a query `{expression}` for querying tenancy units. Your `{expression}`\nmust be in the format: `field_name=literal_string`. The `field_name` is the\nname of the field you want to compare. Supported fields are\n`tenant_resources.tag` and `tenant_resources.resource`.\n\nFor example, to search tenancy units that contain at least one tenant\nresource with a given tag 'xyz', use the query `tenant_resources.tag=xyz`.\nTo search tenancy units that contain at least one tenant resource with\na given resource name 'projects/123456', use the query\n`tenant_resources.resource=projects/123456`.\n\nMultiple expressions can be joined with `AND`s. Tenancy units must match\nall expressions to be included in the result set. For example,\n`tenant_resources.tag=xyz AND tenant_resources.resource=projects/123456`\n\nOptional.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1/{+parent}:search",
          "response": {
            "$ref": "SearchTenancyUnitsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        }
      },
      "resources": {
        "tenancyUnits": {
          "methods": {
            "addProject": {
              "description": "Add a new tenant project to the tenancy unit.\nThere can be a maximum of 512 tenant projects in a tenancy unit.\nIf there are previously failed `AddTenantProject` calls, you might need to\ncall `RemoveTenantProject` first to resolve them before you can make\nanother call to `AddTenantProject` with the same tag.\nOperation\u003cresponse: Empty\u003e.",
              "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:addProject",
              "httpMethod": "POST",
              "id": "serviceconsumermanagement.services.tenancyUnits.addProject",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "Name of the tenancy unit.\nSuch as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.",
                  "location": "path",
                  "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+parent}:addProject",
              "request": {
                "$ref": "AddTenantProjectRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "applyProjectConfig": {
              "description": "Apply a configuration to an existing tenant project.\nThis project must exist in an active state and have the original owner\naccount. The caller must have permission to add a project to the given\ntenancy unit. The configuration is applied, but any existing settings on\nthe project aren't modified.\nSpecified policy bindings are applied. Existing bindings aren't modified.\nSpecified services are activated. No service is deactivated.\nIf specified, new billing configuration is applied.\nOmit a billing configuration to keep the existing one.\nA service account in the project is created if previously non existed.\nSpecified labels will be appended to tenant project, note that the value of\nexisting label key will be updated if the same label key is requested.\nThe specified folder is ignored, as moving a tenant project to a different\nfolder isn't supported.\nThe operation fails if any of the steps fail, but no rollback of already\napplied configuration changes is attempted.\nOperation\u003cresponse: Empty\u003e.",
              "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:applyProjectConfig",
              "httpMethod": "POST",
              "id": "serviceconsumermanagement.services.tenancyUnits.applyProjectConfig",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Name of the tenancy unit.\nSuch as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.",
                  "location": "path",
                  "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}:applyProjectConfig",
              "request": {
                "$ref": "ApplyTenantProjectConfigRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "attachProject": {
              "description": "Attach an existing project to the tenancy unit as a new tenant\nresource. The project could either be the tenant project reserved by\ncalling `AddTenantProject` under a tenancy unit of a service producer's\nproject of a managed service, or from a separate project.\nThe caller is checked against a set of permissions as if calling\n`AddTenantProject` on the same service consumer.\nTo trigger the attachment, the targeted tenant project must be in a\nfolder. Make sure the ServiceConsumerManagement service account is\nthe owner of that project. These two requirements are already met\nif the project is reserved by calling `AddTenantProject`.\nOperation\u003cresponse: Empty\u003e.",
              "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:attachProject",
              "httpMethod": "POST",
              "id": "serviceconsumermanagement.services.tenancyUnits.attachProject",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Name of the tenancy unit that the project will be attached to.\nSuch as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.",
                  "location": "path",
                  "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}:attachProject",
              "request": {
                "$ref": "AttachTenantProjectRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "create": {
              "description": "Creates a tenancy unit with no tenant resources.\nIf tenancy unit already exists, it will be returned,\nhowever, in this case, returned TenancyUnit does not have tenant_resources\nfield set and ListTenancyUnit has to be used to get a complete\nTenancyUnit with all fields populated.",
              "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits",
              "httpMethod": "POST",
              "id": "serviceconsumermanagement.services.tenancyUnits.create",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "services/{service}/{collection id}/{resource id}\n{collection id} is the cloud resource collection type representing the\nservice consumer, for example 'projects', or 'organizations'.\n{resource id} is the consumer numeric id, such as project number: '123456'.\n{service} the name of a managed service, such as 'service.googleapis.com'.\nEnables service binding using the new tenancy unit.",
                  "location": "path",
                  "pattern": "^services/[^/]+/[^/]+/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+parent}/tenancyUnits",
              "request": {
                "$ref": "CreateTenancyUnitRequest"
              },
              "response": {
                "$ref": "TenancyUnit"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "delete": {
              "description": "Delete a tenancy unit. Before you delete the tenancy unit, there should be\nno tenant resources in it that aren't in a DELETED state.\nOperation\u003cresponse: Empty\u003e.",
              "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}",
              "httpMethod": "DELETE",
              "id": "serviceconsumermanagement.services.tenancyUnits.delete",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Name of the tenancy unit to be deleted.",
                  "location": "path",
                  "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}",
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "deleteProject": {
              "description": "Deletes the specified project resource identified by a tenant resource tag.\nThe mothod removes a project lien with a 'TenantManager' origin if that was\nadded. It will then attempt to delete the project. If that operation fails,\nthis method also fails.\nAfter the project has been deleted, the tenant resource state is set to\nDELETED.  To permanently remove resource metadata, call the\n`RemoveTenantProject` method.\nNew resources with the same tag can't be added if there are existing\nresources in a DELETED state.\nOperation\u003cresponse: Empty\u003e.",
              "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:deleteProject",
              "httpMethod": "POST",
              "id": "serviceconsumermanagement.services.tenancyUnits.deleteProject",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Name of the tenancy unit.\nSuch as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.",
                  "location": "path",
                  "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}:deleteProject",
              "request": {
                "$ref": "DeleteTenantProjectRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "list": {
              "description": "Find the tenancy unit for a managed service and service consumer.\nThis method shouldn't be used in a service producer's runtime path, for\nexample to find the tenant project number when creating VMs. Service\nproducers must persist the tenant project's information after the project\nis created.",
              "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits",
              "httpMethod": "GET",
              "id": "serviceconsumermanagement.services.tenancyUnits.list",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "filter": {
                  "description": "Filter expression over tenancy resources field. Optional.",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "The maximum number of results returned by this request.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "The continuation token, which is used to page through large result sets.\nTo get the next page of results, set this parameter to the value of\n`nextPageToken` from the previous response.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "Managed service and service consumer. Required.\nservices/{service}/{collection id}/{resource id}\n{collection id} is the cloud resource collection type representing the\nservice consumer, for example 'projects', or 'organizations'.\n{resource id} is the consumer numeric id, such as project number: '123456'.\n{service} the name of a service, such as 'service.googleapis.com'.",
                  "location": "path",
                  "pattern": "^services/[^/]+/[^/]+/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+parent}/tenancyUnits",
              "response": {
                "$ref": "ListTenancyUnitsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "removeProject": {
              "description": "Removes the specified project resource identified by a tenant resource tag.\nThe method removes the project lien with 'TenantManager' origin if that\nwas added. It then attempts to delete the project. If that operation\nfails, this method also fails.\nCalls to remove already removed or non-existent tenant project succeed.\nAfter the project has been deleted, or if was already in a DELETED state,\nresource metadata is permanently removed from the tenancy unit.\nOperation\u003cresponse: Empty\u003e.",
              "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:removeProject",
              "httpMethod": "POST",
              "id": "serviceconsumermanagement.services.tenancyUnits.removeProject",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Name of the tenancy unit.\nSuch as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.",
                  "location": "path",
                  "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}:removeProject",
              "request": {
                "$ref": "RemoveTenantProjectRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "undeleteProject": {
              "description": "Attempts to undelete a previously deleted tenant project. The project must\nbe in a DELETED state.\nThere are no guarantees that an undeleted project will be in\na fully restored and functional state. Call the `ApplyTenantProjectConfig`\nmethod to update its configuration and then validate all managed service\nresources.\nOperation\u003cresponse: Empty\u003e.",
              "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:undeleteProject",
              "httpMethod": "POST",
              "id": "serviceconsumermanagement.services.tenancyUnits.undeleteProject",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "description": "Name of the tenancy unit.\nSuch as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.",
                  "location": "path",
                  "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+name}:undeleteProject",
              "request": {
                "$ref": "UndeleteTenantProjectRequest"
              },
              "response": {
                "$ref": "Operation"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          }
        }
      }
    }
  },
  "revision": "20191113",
  "rootUrl": "https://serviceconsumermanagement.googleapis.com/",
  "schemas": {
    "AddTenantProjectRequest": {
      "description": "Request to add a newly created and configured tenant project to a tenancy\nunit.",
      "id": "AddTenantProjectRequest",
      "properties": {
        "projectConfig": {
          "$ref": "TenantProjectConfig",
          "description": "Configuration of the new tenant project to be added to tenancy unit\nresources."
        },
        "tag": {
          "description": "Tag of the added project. Must be less than 128 characters. Required.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Api": {
      "description": "Api is a light-weight descriptor for an API Interface.\n\nInterfaces are also described as \"protocol buffer services\" in some contexts,\nsuch as by the \"service\" keyword in a .proto file, but they are different\nfrom API Services, which represent a concrete implementation of an interface\nas opposed to simply a description of methods and bindings. They are also\nsometimes simply referred to as \"APIs\" in other contexts, such as the name of\nthis message itself. See https://cloud.google.com/apis/design/glossary for\ndetailed terminology.",
      "id": "Api",
      "properties": {
        "methods": {
          "description": "The methods of this interface, in unspecified order.",
          "items": {
            "$ref": "Method"
          },
          "type": "array"
        },
        "mixins": {
          "description": "Included interfaces. See Mixin.",
          "items": {
            "$ref": "Mixin"
          },
          "type": "array"
        },
        "name": {
          "description": "The fully qualified name of this interface, including package name\nfollowed by the interface's simple name.",
          "type": "string"
        },
        "options": {
          "description": "Any metadata attached to the interface.",
          "items": {
            "$ref": "Option"
          },
          "type": "array"
        },
        "sourceContext": {
          "$ref": "SourceContext",
          "description": "Source context for the protocol buffer service represented by this\nmessage."
        },
        "syntax": {
          "description": "The source syntax of the service.",
          "enum": [
            "SYNTAX_PROTO2",
            "SYNTAX_PROTO3"
          ],
          "enumDescriptions": [
            "Syntax `proto2`.",
            "Syntax `proto3`."
          ],
          "type": "string"
        },
        "version": {
          "description": "A version string for this interface. If specified, must have the form\n`major-version.minor-version`, as in `1.10`. If the minor version is\nomitted, it defaults to zero. If the entire version field is empty, the\nmajor version is derived from the package name, as outlined below. If the\nfield is not empty, the version in the package name will be verified to be\nconsistent with what is provided here.\n\nThe versioning schema uses [semantic\nversioning](http://semver.org) where the major version number\nindicates a breaking change and the minor version an additive,\nnon-breaking change. Both version numbers are signals to users\nwhat to expect from different versions, and should be carefully\nchosen based on the product plan.\n\nThe major version is also reflected in the package name of the\ninterface, which must end in `v\u003cmajor-version\u003e`, as in\n`google.feature.v1`. For major versions 0 and 1, the suffix can\nbe omitted. Zero major versions must only be used for\nexperimental, non-GA interfaces.\n",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ApplyTenantProjectConfigRequest": {
      "description": "Request to apply configuration to an existing tenant project.",
      "id": "ApplyTenantProjectConfigRequest",
      "properties": {
        "projectConfig": {
          "$ref": "TenantProjectConfig",
          "description": "Configuration that should be applied to the existing tenant project."
        },
        "tag": {
          "description": "Tag of the project. Must be less than 128 characters. Required.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AttachTenantProjectRequest": {
      "description": "Request to attach an existing project to the tenancy unit as a new tenant\nresource.",
      "id": "AttachTenantProjectRequest",
      "properties": {
        "externalResource": {
          "description": "When attaching an external project, this is in the format of\n`projects/{project_number}`.",
          "type": "string"
        },
        "reservedResource": {
          "description": "When attaching a reserved project already in tenancy units, this is the\ntag of a tenant resource under the tenancy unit for the managed service's\nservice producer project. The reserved tenant resource must be in an\nactive state.",
          "type": "string"
        },
        "tag": {
          "description": "Tag of the tenant resource after attachment.\nMust be less than 128 characters. Required.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AuthProvider": {
      "description": "Configuration for an authentication provider, including support for\n[JSON Web Token\n(JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).",
      "id": "AuthProvider",
      "properties": {
        "audiences": {
          "description": "The list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n    audiences: bookstore_android.apps.googleusercontent.com,\n               bookstore_web.apps.googleusercontent.com",
          "type": "string"
        },
        "authorizationUrl": {
          "description": "Redirect URL if JWT token is required but not present or is expired.\nImplement authorizationUrl of securityDefinitions in OpenAPI spec.",
          "type": "string"
        },
        "id": {
          "description": "The unique identifier of the auth provider. It will be referred to by\n`AuthRequirement.provider_id`.\n\nExample: \"bookstore_auth\".",
          "type": "string"
        },
        "issuer": {
          "description": "Identifies the principal that issued the JWT. See\nhttps://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1\nUsually a URL or an email address.\n\nExample: https://securetoken.google.com\nExample: 1234567-compute@developer.gserviceaccount.com",
          "type": "string"
        },
        "jwksUri": {
          "description": "URL of the provider's public key set to validate signature of the JWT. See\n[OpenID\nDiscovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata).\nOptional if the key set document:\n - can be retrieved from\n   [OpenID\n   Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html of\n   the issuer.\n - can be inferred from the email domain of the issuer (e.g. a Google\n service account).\n\nExample: https://www.googleapis.com/oauth2/v1/certs",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AuthRequirement": {
      "description": "User-defined authentication requirements, including support for\n[JSON Web Token\n(JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).",
      "id": "AuthRequirement",
      "properties": {
        "audiences": {
          "description": "NOTE: This will be deprecated soon, once AuthProvider.audiences is\nimplemented and accepted in all the runtime components.\n\nThe list of JWT\n[audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).\nthat are allowed to access. A JWT containing any of these audiences will\nbe accepted. When this setting is absent, only JWTs with audience\n\"https://Service_name/API_name\"\nwill be accepted. For example, if no audiences are in the setting,\nLibraryService API will only accept JWTs with the following audience\n\"https://library-example.googleapis.com/google.example.library.v1.LibraryService\".\n\nExample:\n\n    audiences: bookstore_android.apps.googleusercontent.com,\n               bookstore_web.apps.googleusercontent.com",
          "type": "string"
        },
        "providerId": {
          "description": "id from authentication provider.\n\nExample:\n\n    provider_id: bookstore_auth",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Authentication": {
      "description": "`Authentication` defines the authentication configuration for an API.\n\nExample for an API targeted for external use:\n\n    name: calendar.googleapis.com\n    authentication:\n      providers:\n      - id: google_calendar_auth\n        jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n        issuer: https://securetoken.google.com\n      rules:\n      - selector: \"*\"\n        requirements:\n          provider_id: google_calendar_auth",
      "id": "Authentication",
      "properties": {
        "providers": {
          "description": "Defines a set of authentication providers that a service supports.",
          "items": {
            "$ref": "AuthProvider"
          },
          "type": "array"
        },
        "rules": {
          "description": "A list of authentication rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.",
          "items": {
            "$ref": "AuthenticationRule"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AuthenticationRule": {
      "description": "Authentication rules for the service.\n\nBy default, if a method has any authentication requirements, every request\nmust include a valid credential matching one of the requirements.\nIt's an error to include more than one kind of credential in a single\nrequest.\n\nIf a method doesn't have any auth requirements, request credentials will be\nignored.",
      "id": "AuthenticationRule",
      "properties": {
        "allowWithoutCredential": {
          "description": "If true, the service accepts API keys without any other credential.",
          "type": "boolean"
        },
        "oauth": {
          "$ref": "OAuthRequirements",
          "description": "The requirements for OAuth credentials."
        },
        "requirements": {
          "description": "Requirements for additional authentication providers.",
          "items": {
            "$ref": "AuthRequirement"
          },
          "type": "array"
        },
        "selector": {
          "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Backend": {
      "description": "`Backend` defines the backend configuration for a service.",
      "id": "Backend",
      "properties": {
        "rules": {
          "description": "A list of API backend rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.",
          "items": {
            "$ref": "BackendRule"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "BackendRule": {
      "description": "A backend rule provides configuration for an individual API element.",
      "id": "BackendRule",
      "properties": {
        "address": {
          "description": "The address of the API backend.",
          "type": "string"
        },
        "deadline": {
          "description": "The number of seconds to wait for a response from a request.  The default\ndeadline for gRPC is infinite (no deadline) and HTTP requests is 5 seconds.",
          "format": "double",
          "type": "number"
        },
        "jwtAudience": {
          "description": "The JWT audience is used when generating a JWT id token for the backend.",
          "type": "string"
        },
        "minDeadline": {
          "description": "Minimum deadline in seconds needed for this method. Calls having deadline\nvalue lower than this will be rejected.",
          "format": "double",
          "type": "number"
        },
        "operationDeadline": {
          "description": "The number of seconds to wait for the completion of a long running\noperation. The default is no deadline.",
          "format": "double",
          "type": "number"
        },
        "pathTranslation": {
          "enum": [
            "PATH_TRANSLATION_UNSPECIFIED",
            "CONSTANT_ADDRESS",
            "APPEND_PATH_TO_ADDRESS"
          ],
          "enumDescriptions": [
            "",
            "Use the backend address as-is, with no modification to the path. If the\nURL pattern contains variables, the variable names and values will be\nappended to the query string. If a query string parameter and a URL\npattern variable have the same name, this may result in duplicate keys in\nthe query string.\n\n# Examples\n\nGiven the following operation config:\n\n    Method path:        /api/company/{cid}/user/{uid}\n    Backend address:    https://example.cloudfunctions.net/getUser\n\nRequests to the following request paths will call the backend at the\ntranslated path:\n\n    Request path: /api/company/widgetworks/user/johndoe\n    Translated:\n    https://example.cloudfunctions.net/getUser?cid=widgetworks\u0026uid=johndoe\n\n    Request path: /api/company/widgetworks/user/johndoe?timezone=EST\n    Translated:\n    https://example.cloudfunctions.net/getUser?timezone=EST\u0026cid=widgetworks\u0026uid=johndoe",
            "The request path will be appended to the backend address.\n\n# Examples\n\nGiven the following operation config:\n\n    Method path:        /api/company/{cid}/user/{uid}\n    Backend address:    https://example.appspot.com\n\nRequests to the following request paths will call the backend at the\ntranslated path:\n\n    Request path: /api/company/widgetworks/user/johndoe\n    Translated:\n    https://example.appspot.com/api/company/widgetworks/user/johndoe\n\n    Request path: /api/company/widgetworks/user/johndoe?timezone=EST\n    Translated:\n    https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST"
          ],
          "type": "string"
        },
        "selector": {
          "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Billing": {
      "description": "Billing related configuration of the service.\n\nThe following example shows how to configure monitored resources and metrics\nfor billing:\n\n    monitored_resources:\n    - type: library.googleapis.com/branch\n      labels:\n      - key: /city\n        description: The city where the library branch is located in.\n      - key: /name\n        description: The name of the branch.\n    metrics:\n    - name: library.googleapis.com/book/borrowed_count\n      metric_kind: DELTA\n      value_type: INT64\n    billing:\n      consumer_destinations:\n      - monitored_resource: library.googleapis.com/branch\n        metrics:\n        - library.googleapis.com/book/borrowed_count",
      "id": "Billing",
      "properties": {
        "consumerDestinations": {
          "description": "Billing configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations per service, each one must have\na different monitored resource type. A metric can be used in at most\none consumer destination.",
          "items": {
            "$ref": "BillingDestination"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "BillingConfig": {
      "description": "Describes the billing configuration for a new tenant project.",
      "id": "BillingConfig",
      "properties": {
        "billingAccount": {
          "description": "Name of the billing account.\nFor example `billingAccounts/012345-567890-ABCDEF`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BillingDestination": {
      "description": "Configuration of a specific billing destination (Currently only support\nbill against consumer project).",
      "id": "BillingDestination",
      "properties": {
        "metrics": {
          "description": "Names of the metrics to report to this billing destination.\nEach name must be defined in Service.metrics section.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "monitoredResource": {
          "description": "The monitored resource type. The type must be defined in\nService.monitored_resources section.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CancelOperationRequest": {
      "description": "The request message for Operations.CancelOperation.",
      "id": "CancelOperationRequest",
      "properties": {},
      "type": "object"
    },
    "Context": {
      "description": "`Context` defines which contexts an API requests.\n\nExample:\n\n    context:\n      rules:\n      - selector: \"*\"\n        requested:\n        - google.rpc.context.ProjectContext\n        - google.rpc.context.OriginContext\n\nThe above specifies that all methods in the API request\n`google.rpc.context.ProjectContext` and\n`google.rpc.context.OriginContext`.\n\nAvailable context types are defined in package\n`google.rpc.context`.\n\nThis also provides mechanism to whitelist any protobuf message extension that\ncan be sent in grpc metadata using “x-goog-ext-\u003cextension_id\u003e-bin” and\n“x-goog-ext-\u003cextension_id\u003e-jspb” format. For example, list any service\nspecific protobuf types that can appear in grpc metadata as follows in your\nyaml file:\n\nExample:\n\n    context:\n      rules:\n       - selector: \"google.example.library.v1.LibraryService.CreateBook\"\n         allowed_request_extensions:\n         - google.foo.v1.NewExtension\n         allowed_response_extensions:\n         - google.foo.v1.NewExtension\n\nYou can also specify extension ID instead of fully qualified extension name\nhere.",
      "id": "Context",
      "properties": {
        "rules": {
          "description": "A list of RPC context rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.",
          "items": {
            "$ref": "ContextRule"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ContextRule": {
      "description": "A context rule provides information about the context for an individual API\nelement.",
      "id": "ContextRule",
      "properties": {
        "allowedRequestExtensions": {
          "description": "A list of full type names or extension IDs of extensions allowed in grpc\nside channel from client to backend.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "allowedResponseExtensions": {
          "description": "A list of full type names or extension IDs of extensions allowed in grpc\nside channel from backend to client.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "provided": {
          "description": "A list of full type names of provided contexts.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "requested": {
          "description": "A list of full type names of requested contexts.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "selector": {
          "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Control": {
      "description": "Selects and configures the service controller used by the service.  The\nservice controller handles features like abuse, quota, billing, logging,\nmonitoring, etc.",
      "id": "Control",
      "properties": {
        "environment": {
          "description": "The service control environment to use. If empty, no control plane\nfeature (like quota and billing) will be enabled.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CreateTenancyUnitRequest": {
      "description": "Request to create a tenancy unit for a service consumer of a managed service.",
      "id": "CreateTenancyUnitRequest",
      "properties": {
        "tenancyUnitId": {
          "description": "Optional service producer-provided identifier of the tenancy unit.\nMust be no longer than 40 characters and preferably URI friendly.\nIf it isn't provided, a UID for the tenancy unit is automatically\ngenerated. The identifier must be unique across a managed service.\nIf the tenancy unit already exists for the managed service and service\nconsumer pair, calling `CreateTenancyUnit` returns the existing tenancy\nunit if the provided identifier is identical or empty, otherwise the call\nfails.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CustomError": {
      "description": "Customize service error responses.  For example, list any service\nspecific protobuf types that can appear in error detail lists of\nerror responses.\n\nExample:\n\n    custom_error:\n      types:\n      - google.foo.v1.CustomError\n      - google.foo.v1.AnotherError",
      "id": "CustomError",
      "properties": {
        "rules": {
          "description": "The list of custom error rules that apply to individual API messages.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.",
          "items": {
            "$ref": "CustomErrorRule"
          },
          "type": "array"
        },
        "types": {
          "description": "The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "CustomErrorRule": {
      "description": "A custom error rule.",
      "id": "CustomErrorRule",
      "properties": {
        "isErrorType": {
          "description": "Mark this message as possible payload in error response.  Otherwise,\nobjects of this type will be filtered when they appear in error payload.",
          "type": "boolean"
        },
        "selector": {
          "description": "Selects messages to which this rule applies.\n\nRefer to selector for syntax details.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CustomHttpPattern": {
      "description": "A custom pattern is used for defining custom HTTP verb.",
      "id": "CustomHttpPattern",
      "properties": {
        "kind": {
          "description": "The name of this custom HTTP verb.",
          "type": "string"
        },
        "path": {
          "description": "The path matched by this custom verb.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DeleteTenantProjectRequest": {
      "description": "Request message to delete tenant project resource from the tenancy unit.",
      "id": "DeleteTenantProjectRequest",
      "properties": {
        "tag": {
          "description": "Tag of the resource within the tenancy unit.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Documentation": {
      "description": "`Documentation` provides the information for describing a service.\n\nExample:\n\u003cpre\u003e\u003ccode\u003edocumentation:\n  summary: \u003e\n    The Google Calendar API gives access\n    to most calendar features.\n  pages:\n  - name: Overview\n    content: \u0026#40;== include google/foo/overview.md ==\u0026#41;\n  - name: Tutorial\n    content: \u0026#40;== include google/foo/tutorial.md ==\u0026#41;\n    subpages;\n    - name: Java\n      content: \u0026#40;== include google/foo/tutorial_java.md ==\u0026#41;\n  rules:\n  - selector: google.calendar.Calendar.Get\n    description: \u003e\n      ...\n  - selector: google.calendar.Calendar.Put\n    description: \u003e\n      ...\n\u003c/code\u003e\u003c/pre\u003e\nDocumentation is provided in markdown syntax. In addition to\nstandard markdown features, definition lists, tables and fenced\ncode blocks are supported. Section headers can be provided and are\ninterpreted relative to the section nesting of the context where\na documentation fragment is embedded.\n\nDocumentation from the IDL is merged with documentation defined\nvia the config at normalization time, where documentation provided\nby config rules overrides IDL provided.\n\nA number of constructs specific to the API platform are supported\nin documentation text.\n\nIn order to reference a proto element, the following\nnotation can be used:\n\u003cpre\u003e\u003ccode\u003e\u0026#91;fully.qualified.proto.name]\u0026#91;]\u003c/code\u003e\u003c/pre\u003e\nTo override the display text used for the link, this can be used:\n\u003cpre\u003e\u003ccode\u003e\u0026#91;display text]\u0026#91;fully.qualified.proto.name]\u003c/code\u003e\u003c/pre\u003e\nText can be excluded from doc using the following notation:\n\u003cpre\u003e\u003ccode\u003e\u0026#40;-- internal comment --\u0026#41;\u003c/code\u003e\u003c/pre\u003e\n\nA few directives are available in documentation. Note that\ndirectives must appear on a single line to be properly\nidentified. The `include` directive includes a markdown file from\nan external source:\n\u003cpre\u003e\u003ccode\u003e\u0026#40;== include path/to/file ==\u0026#41;\u003c/code\u003e\u003c/pre\u003e\nThe `resource_for` directive marks a message to be the resource of\na collection in REST view. If it is not specified, tools attempt\nto infer the resource from the operations in a collection:\n\u003cpre\u003e\u003ccode\u003e\u0026#40;== resource_for v1.shelves.books ==\u0026#41;\u003c/code\u003e\u003c/pre\u003e\nThe directive `suppress_warning` does not directly affect documentation\nand is documented together with service config validation.",
      "id": "Documentation",
      "properties": {
        "documentationRootUrl": {
          "description": "The URL to the root of documentation.",
          "type": "string"
        },
        "overview": {
          "description": "Declares a single overview page. For example:\n\u003cpre\u003e\u003ccode\u003edocumentation:\n  summary: ...\n  overview: \u0026#40;== include overview.md ==\u0026#41;\n\u003c/code\u003e\u003c/pre\u003e\nThis is a shortcut for the following declaration (using pages style):\n\u003cpre\u003e\u003ccode\u003edocumentation:\n  summary: ...\n  pages:\n  - name: Overview\n    content: \u0026#40;== include overview.md ==\u0026#41;\n\u003c/code\u003e\u003c/pre\u003e\nNote: you cannot specify both `overview` field and `pages` field.",
          "type": "string"
        },
        "pages": {
          "description": "The top level pages for the documentation set.",
          "items": {
            "$ref": "Page"
          },
          "type": "array"
        },
        "rules": {
          "description": "A list of documentation rules that apply to individual API elements.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.",
          "items": {
            "$ref": "DocumentationRule"
          },
          "type": "array"
        },
        "serviceRootUrl": {
          "description": "Specifies the service root url if the default one (the service name\nfrom the yaml file) is not suitable. This can be seen in any fully\nspecified service urls as well as sections that show a base that other\nurls are relative to.",
          "type": "string"
        },
        "summary": {
          "description": "A short summary of what the service does. Can only be provided by\nplain text.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DocumentationRule": {
      "description": "A documentation rule provides information about individual API elements.",
      "id": "DocumentationRule",
      "properties": {
        "deprecationDescription": {
          "description": "Deprecation description of the selected element(s). It can be provided if\nan element is marked as `deprecated`.",
          "type": "string"
        },
        "description": {
          "description": "Description of the selected API(s).",
          "type": "string"
        },
        "selector": {
          "description": "The selector is a comma-separated list of patterns. Each pattern is a\nqualified name of the element which may end in \"*\", indicating a wildcard.\nWildcards are only allowed at the end and for a whole component of the\nqualified name, i.e. \"foo.*\" is ok, but not \"foo.b*\" or \"foo.*.bar\". A\nwildcard will match one or more components. To specify a default for all\napplicable elements, the whole pattern \"*\" is used.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Empty": {
      "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n    service Foo {\n      rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n    }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.",
      "id": "Empty",
      "properties": {},
      "type": "object"
    },
    "Endpoint": {
      "description": "`Endpoint` describes a network endpoint that serves a set of APIs.\nA service may expose any number of endpoints, and all endpoints share the\nsame service configuration, such as quota configuration and monitoring\nconfiguration.\n\nExample service configuration:\n\n    name: library-example.googleapis.com\n    endpoints:\n      # Below entry makes 'google.example.library.v1.Library'\n      # API be served from endpoint address library-example.googleapis.com.\n      # It also allows HTTP OPTIONS calls to be passed to the backend, for\n      # it to decide whether the subsequent cross-origin request is\n      # allowed to proceed.\n    - name: library-example.googleapis.com\n      allow_cors: true",
      "id": "Endpoint",
      "properties": {
        "aliases": {
          "description": "DEPRECATED: This field is no longer supported. Instead of using aliases,\nplease specify multiple google.api.Endpoint for each of the intended\naliases.\n\nAdditional names that this endpoint will be hosted on.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "allowCors": {
          "description": "Allowing\n[CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka\ncross-domain traffic, would allow the backends served from this endpoint to\nreceive and respond to HTTP OPTIONS requests. The response will be used by\nthe browser to determine whether the subsequent cross-origin request is\nallowed to proceed.",
          "type": "boolean"
        },
        "features": {
          "description": "The list of features enabled on this endpoint.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The canonical name of this endpoint.",
          "type": "string"
        },
        "target": {
          "description": "The specification of an Internet routable address of API frontend that will\nhandle requests to this [API\nEndpoint](https://cloud.google.com/apis/design/glossary). It should be\neither a valid IPv4 address or a fully-qualified domain name. For example,\n\"8.8.8.8\" or \"myservice.appspot.com\".",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Enum": {
      "description": "Enum type definition.",
      "id": "Enum",
      "properties": {
        "enumvalue": {
          "description": "Enum value definitions.",
          "items": {
            "$ref": "EnumValue"
          },
          "type": "array"
        },
        "name": {
          "description": "Enum type name.",
          "type": "string"
        },
        "options": {
          "description": "Protocol buffer options.",
          "items": {
            "$ref": "Option"
          },
          "type": "array"
        },
        "sourceContext": {
          "$ref": "SourceContext",
          "description": "The source context."
        },
        "syntax": {
          "description": "The source syntax.",
          "enum": [
            "SYNTAX_PROTO2",
            "SYNTAX_PROTO3"
          ],
          "enumDescriptions": [
            "Syntax `proto2`.",
            "Syntax `proto3`."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "EnumValue": {
      "description": "Enum value definition.",
      "id": "EnumValue",
      "properties": {
        "name": {
          "description": "Enum value name.",
          "type": "string"
        },
        "number": {
          "description": "Enum value number.",
          "format": "int32",
          "type": "integer"
        },
        "options": {
          "description": "Protocol buffer options.",
          "items": {
            "$ref": "Option"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Field": {
      "description": "A single field of a message type.",
      "id": "Field",
      "properties": {
        "cardinality": {
          "description": "The field cardinality.",
          "enum": [
            "CARDINALITY_UNKNOWN",
            "CARDINALITY_OPTIONAL",
            "CARDINALITY_REQUIRED",
            "CARDINALITY_REPEATED"
          ],
          "enumDescriptions": [
            "For fields with unknown cardinality.",
            "For optional fields.",
            "For required fields. Proto2 syntax only.",
            "For repeated fields."
          ],
          "type": "string"
        },
        "defaultValue": {
          "description": "The string value of the default value of this field. Proto2 syntax only.",
          "type": "string"
        },
        "jsonName": {
          "description": "The field JSON name.",
          "type": "string"
        },
        "kind": {
          "description": "The field type.",
          "enum": [
            "TYPE_UNKNOWN",
            "TYPE_DOUBLE",
            "TYPE_FLOAT",
            "TYPE_INT64",
            "TYPE_UINT64",
            "TYPE_INT32",
            "TYPE_FIXED64",
            "TYPE_FIXED32",
            "TYPE_BOOL",
            "TYPE_STRING",
            "TYPE_GROUP",
            "TYPE_MESSAGE",
            "TYPE_BYTES",
            "TYPE_UINT32",
            "TYPE_ENUM",
            "TYPE_SFIXED32",
            "TYPE_SFIXED64",
            "TYPE_SINT32",
            "TYPE_SINT64"
          ],
          "enumDescriptions": [
            "Field type unknown.",
            "Field type double.",
            "Field type float.",
            "Field type int64.",
            "Field type uint64.",
            "Field type int32.",
            "Field type fixed64.",
            "Field type fixed32.",
            "Field type bool.",
            "Field type string.",
            "Field type group. Proto2 syntax only, and deprecated.",
            "Field type message.",
            "Field type bytes.",
            "Field type uint32.",
            "Field type enum.",
            "Field type sfixed32.",
            "Field type sfixed64.",
            "Field type sint32.",
            "Field type sint64."
          ],
          "type": "string"
        },
        "name": {
          "description": "The field name.",
          "type": "string"
        },
        "number": {
          "description": "The field number.",
          "format": "int32",
          "type": "integer"
        },
        "oneofIndex": {
          "description": "The index of the field type in `Type.oneofs`, for message or enumeration\ntypes. The first type has index 1; zero means the type is not in the list.",
          "format": "int32",
          "type": "integer"
        },
        "options": {
          "description": "The protocol buffer options.",
          "items": {
            "$ref": "Option"
          },
          "type": "array"
        },
        "packed": {
          "description": "Whether to use alternative packed wire representation.",
          "type": "boolean"
        },
        "typeUrl": {
          "description": "The field type URL, without the scheme, for message or enumeration\ntypes. Example: `\"type.googleapis.com/google.protobuf.Timestamp\"`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Http": {
      "description": "Defines the HTTP configuration for an API service. It contains a list of\nHttpRule, each specifying the mapping of an RPC method\nto one or more HTTP REST API methods.",
      "id": "Http",
      "properties": {
        "fullyDecodeReservedExpansion": {
          "description": "When set to true, URL path parameters will be fully URI-decoded except in\ncases of single segment matches in reserved expansion, where \"%2F\" will be\nleft encoded.\n\nThe default behavior is to not decode RFC 6570 reserved characters in multi\nsegment matches.",
          "type": "boolean"
        },
        "rules": {
          "description": "A list of HTTP configuration rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.",
          "items": {
            "$ref": "HttpRule"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "HttpRule": {
      "description": "# gRPC Transcoding\n\ngRPC Transcoding is a feature for mapping between a gRPC method and one or\nmore HTTP REST endpoints. It allows developers to build a single API service\nthat supports both gRPC APIs and REST APIs. Many systems, including [Google\nAPIs](https://github.com/googleapis/googleapis),\n[Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC\nGateway](https://github.com/grpc-ecosystem/grpc-gateway),\nand [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature\nand use it for large scale production services.\n\n`HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies\nhow different portions of the gRPC request message are mapped to the URL\npath, URL query parameters, and HTTP request body. It also controls how the\ngRPC response message is mapped to the HTTP response body. `HttpRule` is\ntypically specified as an `google.api.http` annotation on the gRPC method.\n\nEach mapping specifies a URL path template and an HTTP method. The path\ntemplate may refer to one or more fields in the gRPC request message, as long\nas each field is a non-repeated field with a primitive (non-message) type.\nThe path template controls how fields of the request message are mapped to\nthe URL path.\n\nExample:\n\n    service Messaging {\n      rpc GetMessage(GetMessageRequest) returns (Message) {\n        option (google.api.http) = {\n            get: \"/v1/{name=messages/*}\"\n        };\n      }\n    }\n    message GetMessageRequest {\n      string name = 1; // Mapped to URL path.\n    }\n    message Message {\n      string text = 1; // The resource content.\n    }\n\nThis enables an HTTP REST to gRPC mapping as below:\n\nHTTP | gRPC\n-----|-----\n`GET /v1/messages/123456`  | `GetMessage(name: \"messages/123456\")`\n\nAny fields in the request message which are not bound by the path template\nautomatically become HTTP query parameters if there is no HTTP request body.\nFor example:\n\n    service Messaging {\n      rpc GetMessage(GetMessageRequest) returns (Message) {\n        option (google.api.http) = {\n            get:\"/v1/messages/{message_id}\"\n        };\n      }\n    }\n    message GetMessageRequest {\n      message SubMessage {\n        string subfield = 1;\n      }\n      string message_id = 1; // Mapped to URL path.\n      int64 revision = 2;    // Mapped to URL query parameter `revision`.\n      SubMessage sub = 3;    // Mapped to URL query parameter `sub.subfield`.\n    }\n\nThis enables a HTTP JSON to RPC mapping as below:\n\nHTTP | gRPC\n-----|-----\n`GET /v1/messages/123456?revision=2\u0026sub.subfield=foo` |\n`GetMessage(message_id: \"123456\" revision: 2 sub: SubMessage(subfield:\n\"foo\"))`\n\nNote that fields which are mapped to URL query parameters must have a\nprimitive type or a repeated primitive type or a non-repeated message type.\nIn the case of a repeated type, the parameter can be repeated in the URL\nas `...?param=A\u0026param=B`. In the case of a message type, each field of the\nmessage is mapped to a separate parameter, such as\n`...?foo.a=A\u0026foo.b=B\u0026foo.c=C`.\n\nFor HTTP methods that allow a request body, the `body` field\nspecifies the mapping. Consider a REST update method on the\nmessage resource collection:\n\n    service Messaging {\n      rpc UpdateMessage(UpdateMessageRequest) returns (Message) {\n        option (google.api.http) = {\n          patch: \"/v1/messages/{message_id}\"\n          body: \"message\"\n        };\n      }\n    }\n    message UpdateMessageRequest {\n      string message_id = 1; // mapped to the URL\n      Message message = 2;   // mapped to the body\n    }\n\nThe following HTTP JSON to RPC mapping is enabled, where the\nrepresentation of the JSON in the request body is determined by\nprotos JSON encoding:\n\nHTTP | gRPC\n-----|-----\n`PATCH /v1/messages/123456 { \"text\": \"Hi!\" }` | `UpdateMessage(message_id:\n\"123456\" message { text: \"Hi!\" })`\n\nThe special name `*` can be used in the body mapping to define that\nevery field not bound by the path template should be mapped to the\nrequest body.  This enables the following alternative definition of\nthe update method:\n\n    service Messaging {\n      rpc UpdateMessage(Message) returns (Message) {\n        option (google.api.http) = {\n          patch: \"/v1/messages/{message_id}\"\n          body: \"*\"\n        };\n      }\n    }\n    message Message {\n      string message_id = 1;\n      string text = 2;\n    }\n\n\nThe following HTTP JSON to RPC mapping is enabled:\n\nHTTP | gRPC\n-----|-----\n`PATCH /v1/messages/123456 { \"text\": \"Hi!\" }` | `UpdateMessage(message_id:\n\"123456\" text: \"Hi!\")`\n\nNote that when using `*` in the body mapping, it is not possible to\nhave HTTP parameters, as all fields not bound by the path end in\nthe body. This makes this option more rarely used in practice when\ndefining REST APIs. The common usage of `*` is in custom methods\nwhich don't use the URL at all for transferring data.\n\nIt is possible to define multiple HTTP methods for one RPC by using\nthe `additional_bindings` option. Example:\n\n    service Messaging {\n      rpc GetMessage(GetMessageRequest) returns (Message) {\n        option (google.api.http) = {\n          get: \"/v1/messages/{message_id}\"\n          additional_bindings {\n            get: \"/v1/users/{user_id}/messages/{message_id}\"\n          }\n        };\n      }\n    }\n    message GetMessageRequest {\n      string message_id = 1;\n      string user_id = 2;\n    }\n\nThis enables the following two alternative HTTP JSON to RPC mappings:\n\nHTTP | gRPC\n-----|-----\n`GET /v1/messages/123456` | `GetMessage(message_id: \"123456\")`\n`GET /v1/users/me/messages/123456` | `GetMessage(user_id: \"me\" message_id:\n\"123456\")`\n\n## Rules for HTTP mapping\n\n1. Leaf request fields (recursive expansion nested messages in the request\n   message) are classified into three categories:\n   - Fields referred by the path template. They are passed via the URL path.\n   - Fields referred by the HttpRule.body. They are passed via the HTTP\n     request body.\n   - All other fields are passed via the URL query parameters, and the\n     parameter name is the field path in the request message. A repeated\n     field can be represented as multiple query parameters under the same\n     name.\n 2. If HttpRule.body is \"*\", there is no URL query parameter, all fields\n    are passed via URL path and HTTP request body.\n 3. If HttpRule.body is omitted, there is no HTTP request body, all\n    fields are passed via URL path and URL query parameters.\n\n### Path template syntax\n\n    Template = \"/\" Segments [ Verb ] ;\n    Segments = Segment { \"/\" Segment } ;\n    Segment  = \"*\" | \"**\" | LITERAL | Variable ;\n    Variable = \"{\" FieldPath [ \"=\" Segments ] \"}\" ;\n    FieldPath = IDENT { \".\" IDENT } ;\n    Verb     = \":\" LITERAL ;\n\nThe syntax `*` matches a single URL path segment. The syntax `**` matches\nzero or more URL path segments, which must be the last part of the URL path\nexcept the `Verb`.\n\nThe syntax `Variable` matches part of the URL path as specified by its\ntemplate. A variable template must not contain other variables. If a variable\nmatches a single path segment, its template may be omitted, e.g. `{var}`\nis equivalent to `{var=*}`.\n\nThe syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`\ncontains any reserved character, such characters should be percent-encoded\nbefore the matching.\n\nIf a variable contains exactly one path segment, such as `\"{var}\"` or\n`\"{var=*}\"`, when such a variable is expanded into a URL path on the client\nside, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The\nserver side does the reverse decoding. Such variables show up in the\n[Discovery\nDocument](https://developers.google.com/discovery/v1/reference/apis) as\n`{var}`.\n\nIf a variable contains multiple path segments, such as `\"{var=foo/*}\"`\nor `\"{var=**}\"`, when such a variable is expanded into a URL path on the\nclient side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.\nThe server side does the reverse decoding, except \"%2F\" and \"%2f\" are left\nunchanged. Such variables show up in the\n[Discovery\nDocument](https://developers.google.com/discovery/v1/reference/apis) as\n`{+var}`.\n\n## Using gRPC API Service Configuration\n\ngRPC API Service Configuration (service config) is a configuration language\nfor configuring a gRPC service to become a user-facing product. The\nservice config is simply the YAML representation of the `google.api.Service`\nproto message.\n\nAs an alternative to annotating your proto file, you can configure gRPC\ntranscoding in your service config YAML files. You do this by specifying a\n`HttpRule` that maps the gRPC method to a REST endpoint, achieving the same\neffect as the proto annotation. This can be particularly useful if you\nhave a proto that is reused in multiple services. Note that any transcoding\nspecified in the service config will override any matching transcoding\nconfiguration in the proto.\n\nExample:\n\n    http:\n      rules:\n        # Selects a gRPC method and applies HttpRule to it.\n        - selector: example.v1.Messaging.GetMessage\n          get: /v1/messages/{message_id}/{sub.subfield}\n\n## Special notes\n\nWhen gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the\nproto to JSON conversion must follow the [proto3\nspecification](https://developers.google.com/protocol-buffers/docs/proto3#json).\n\nWhile the single segment variable follows the semantics of\n[RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String\nExpansion, the multi segment variable **does not** follow RFC 6570 Section\n3.2.3 Reserved Expansion. The reason is that the Reserved Expansion\ndoes not expand special characters like `?` and `#`, which would lead\nto invalid URLs. As the result, gRPC Transcoding uses a custom encoding\nfor multi segment variables.\n\nThe path variables **must not** refer to any repeated or mapped field,\nbecause client libraries are not capable of handling such variable expansion.\n\nThe path variables **must not** capture the leading \"/\" character. The reason\nis that the most common use case \"{var}\" does not capture the leading \"/\"\ncharacter. For consistency, all path variables must share the same behavior.\n\nRepeated message fields must not be mapped to URL query parameters, because\nno client library can support such complicated mapping.\n\nIf an API needs to use a JSON array for request or response body, it can map\nthe request or response body to a repeated field. However, some gRPC\nTranscoding implementations may not support this feature.",
      "id": "HttpRule",
      "properties": {
        "additionalBindings": {
          "description": "Additional HTTP bindings for the selector. Nested bindings must\nnot contain an `additional_bindings` field themselves (that is,\nthe nesting may only be one level deep).",
          "items": {
            "$ref": "HttpRule"
          },
          "type": "array"
        },
        "body": {
          "description": "The name of the request field whose value is mapped to the HTTP request\nbody, or `*` for mapping all request fields not captured by the path\npattern to the HTTP body, or omitted for not having any HTTP request body.\n\nNOTE: the referred field must be present at the top-level of the request\nmessage type.",
          "type": "string"
        },
        "custom": {
          "$ref": "CustomHttpPattern",
          "description": "The custom pattern is used for specifying an HTTP method that is not\nincluded in the `pattern` field, such as HEAD, or \"*\" to leave the\nHTTP method unspecified for this rule. The wild-card rule is useful\nfor services that provide content to Web (HTML) clients."
        },
        "delete": {
          "description": "Maps to HTTP DELETE. Used for deleting a resource.",
          "type": "string"
        },
        "get": {
          "description": "Maps to HTTP GET. Used for listing and getting information about\nresources.",
          "type": "string"
        },
        "patch": {
          "description": "Maps to HTTP PATCH. Used for updating a resource.",
          "type": "string"
        },
        "post": {
          "description": "Maps to HTTP POST. Used for creating a resource or performing an action.",
          "type": "string"
        },
        "put": {
          "description": "Maps to HTTP PUT. Used for replacing a resource.",
          "type": "string"
        },
        "responseBody": {
          "description": "Optional. The name of the response field whose value is mapped to the HTTP\nresponse body. When omitted, the entire response message will be used\nas the HTTP response body.\n\nNOTE: The referred field must be present at the top-level of the response\nmessage type.",
          "type": "string"
        },
        "selector": {
          "description": "Selects a method to which this rule applies.\n\nRefer to selector for syntax details.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "LabelDescriptor": {
      "description": "A description of a label.",
      "id": "LabelDescriptor",
      "properties": {
        "description": {
          "description": "A human-readable description for the label.",
          "type": "string"
        },
        "key": {
          "description": "The label key.",
          "type": "string"
        },
        "valueType": {
          "description": "The type of data that can be assigned to the label.",
          "enum": [
            "STRING",
            "BOOL",
            "INT64"
          ],
          "enumDescriptions": [
            "A variable-length string. This is the default.",
            "Boolean; true or false.",
            "A 64-bit signed integer."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListOperationsResponse": {
      "description": "The response message for Operations.ListOperations.",
      "id": "ListOperationsResponse",
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "Operation"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ListTenancyUnitsResponse": {
      "description": "Response for the list request.",
      "id": "ListTenancyUnitsResponse",
      "properties": {
        "nextPageToken": {
          "description": "Pagination token for large results.",
          "type": "string"
        },
        "tenancyUnits": {
          "description": "Tenancy units matching the request.",
          "items": {
            "$ref": "TenancyUnit"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "LogDescriptor": {
      "description": "A description of a log type. Example in YAML format:\n\n    - name: library.googleapis.com/activity_history\n      description: The history of borrowing and returning library items.\n      display_name: Activity\n      labels:\n      - key: /customer_id\n        description: Identifier of a library customer",
      "id": "LogDescriptor",
      "properties": {
        "description": {
          "description": "A human-readable description of this log. This information appears in\nthe documentation and can contain details.",
          "type": "string"
        },
        "displayName": {
          "description": "The human-readable name for this log. This information appears on\nthe user interface and should be concise.",
          "type": "string"
        },
        "labels": {
          "description": "The set of labels that are available to describe a specific log entry.\nRuntime requests that contain labels not specified here are\nconsidered invalid.",
          "items": {
            "$ref": "LabelDescriptor"
          },
          "type": "array"
        },
        "name": {
          "description": "The name of the log. It must be less than 512 characters long and can\ninclude the following characters: upper- and lower-case alphanumeric\ncharacters [A-Za-z0-9], and punctuation characters including\nslash, underscore, hyphen, period [/_-.].",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Logging": {
      "description": "Logging configuration of the service.\n\nThe following example shows how to configure logs to be sent to the\nproducer and consumer projects. In the example, the `activity_history`\nlog is sent to both the producer and consumer projects, whereas the\n`purchase_history` log is only sent to the producer project.\n\n    monitored_resources:\n    - type: library.googleapis.com/branch\n      labels:\n      - key: /city\n        description: The city where the library branch is located in.\n      - key: /name\n        description: The name of the branch.\n    logs:\n    - name: activity_history\n      labels:\n      - key: /customer_id\n    - name: purchase_history\n    logging:\n      producer_destinations:\n      - monitored_resource: library.googleapis.com/branch\n        logs:\n        - activity_history\n        - purchase_history\n      consumer_destinations:\n      - monitored_resource: library.googleapis.com/branch\n        logs:\n        - activity_history",
      "id": "Logging",
      "properties": {
        "consumerDestinations": {
          "description": "Logging configurations for sending logs to the consumer project.\nThere can be multiple consumer destinations, each one must have a\ndifferent monitored resource type. A log can be used in at most\none consumer destination.",
          "items": {
            "$ref": "LoggingDestination"
          },
          "type": "array"
        },
        "producerDestinations": {
          "description": "Logging configurations for sending logs to the producer project.\nThere can be multiple producer destinations, each one must have a\ndifferent monitored resource type. A log can be used in at most\none producer destination.",
          "items": {
            "$ref": "LoggingDestination"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "LoggingDestination": {
      "description": "Configuration of a specific logging destination (the producer project\nor the consumer project).",
      "id": "LoggingDestination",
      "properties": {
        "logs": {
          "description": "Names of the logs to be sent to this destination. Each name must\nbe defined in the Service.logs section. If the log name is\nnot a domain scoped name, it will be automatically prefixed with\nthe service name followed by \"/\".",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "monitoredResource": {
          "description": "The monitored resource type. The type must be defined in the\nService.monitored_resources section.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Method": {
      "description": "Method represents a method of an API interface.",
      "id": "Method",
      "properties": {
        "name": {
          "description": "The simple name of this method.",
          "type": "string"
        },
        "options": {
          "description": "Any metadata attached to the method.",
          "items": {
            "$ref": "Option"
          },
          "type": "array"
        },
        "requestStreaming": {
          "description": "If true, the request is streamed.",
          "type": "boolean"
        },
        "requestTypeUrl": {
          "description": "A URL of the input message type.",
          "type": "string"
        },
        "responseStreaming": {
          "description": "If true, the response is streamed.",
          "type": "boolean"
        },
        "responseTypeUrl": {
          "description": "The URL of the output message type.",
          "type": "string"
        },
        "syntax": {
          "description": "The source syntax of this method.",
          "enum": [
            "SYNTAX_PROTO2",
            "SYNTAX_PROTO3"
          ],
          "enumDescriptions": [
            "Syntax `proto2`.",
            "Syntax `proto3`."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "MetricDescriptor": {
      "description": "Defines a metric type and its schema. Once a metric descriptor is created,\ndeleting or altering it stops data collection and makes the metric type's\nexisting data unusable.",
      "id": "MetricDescriptor",
      "properties": {
        "description": {
          "description": "A detailed description of the metric, which can be used in documentation.",
          "type": "string"
        },
        "displayName": {
          "description": "A concise name for the metric, which can be displayed in user interfaces.\nUse sentence case without an ending period, for example \"Request count\".\nThis field is optional but it is recommended to be set for any metrics\nassociated with user-visible concepts, such as Quota.",
          "type": "string"
        },
        "labels": {
          "description": "The set of labels that can be used to describe a specific\ninstance of this metric type. For example, the\n`appengine.googleapis.com/http/server/response_latencies` metric\ntype has a label for the HTTP response code, `response_code`, so\nyou can look at latencies for successful responses or just\nfor responses that failed.",
          "items": {
            "$ref": "LabelDescriptor"
          },
          "type": "array"
        },
        "launchStage": {
          "description": "Optional. The launch stage of the metric definition.",
          "enum": [
            "LAUNCH_STAGE_UNSPECIFIED",
            "EARLY_ACCESS",
            "ALPHA",
            "BETA",
            "GA",
            "DEPRECATED"
          ],
          "enumDescriptions": [
            "Do not use this default value.",
            "Early Access features are limited to a closed group of testers. To use\nthese features, you must sign up in advance and sign a Trusted Tester\nagreement (which includes confidentiality provisions). These features may\nbe unstable, changed in backward-incompatible ways, and are not\nguaranteed to be released.",
            "Alpha is a limited availability test for releases before they are cleared\nfor widespread use. By Alpha, all significant design issues are resolved\nand we are in the process of verifying functionality. Alpha customers\nneed to apply for access, agree to applicable terms, and have their\nprojects whitelisted. Alpha releases don’t have to be feature complete,\nno SLAs are provided, and there are no technical support obligations, but\nthey will be far enough along that customers can actually use them in\ntest environments or for limited-use tests -- just like they would in\nnormal production cases.",
            "Beta is the point at which we are ready to open a release for any\ncustomer to use. There are no SLA or technical support obligations in a\nBeta release. Products will be complete from a feature perspective, but\nmay have some open outstanding issues. Beta releases are suitable for\nlimited production use cases.",
            "GA features are open to all developers and are considered stable and\nfully qualified for production use.",
            "Deprecated features are scheduled to be shut down and removed. For more\ninformation, see the “Deprecation Policy” section of our [Terms of\nService](https://cloud.google.com/terms/)\nand the [Google Cloud Platform Subject to the Deprecation\nPolicy](https://cloud.google.com/terms/deprecation) documentation."
          ],
          "type": "string"
        },
        "metadata": {
          "$ref": "MetricDescriptorMetadata",
          "description": "Optional. Metadata which can be used to guide usage of the metric."
        },
        "metricKind": {
          "description": "Whether the metric records instantaneous values, changes to a value, etc.\nSome combinations of `metric_kind` and `value_type` might not be supported.",
          "enum": [
            "METRIC_KIND_UNSPECIFIED",
            "GAUGE",
            "DELTA",
            "CUMULATIVE"
          ],
          "enumDescriptions": [
            "Do not use this default value.",
            "An instantaneous measurement of a value.",
            "The change in a value during a time interval.",
            "A value accumulated over a time interval.  Cumulative\nmeasurements in a time series should have the same start time\nand increasing end times, until an event resets the cumulative\nvalue to zero and sets a new start time for the following\npoints."
          ],
          "type": "string"
        },
        "monitoredResourceTypes": {
          "description": "Read-only. If present, then a time\nseries, which is identified partially by\na metric type and a MonitoredResourceDescriptor, that is associated\nwith this metric type can only be associated with one of the monitored\nresource types listed here.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "The resource name of the metric descriptor.",
          "type": "string"
        },
        "type": {
          "description": "The metric type, including its DNS name prefix. The type is not\nURL-encoded.  All user-defined metric types have the DNS name\n`custom.googleapis.com` or `external.googleapis.com`.  Metric types should\nuse a natural hierarchical grouping. For example:\n\n    \"custom.googleapis.com/invoice/paid/amount\"\n    \"external.googleapis.com/prometheus/up\"\n    \"appengine.googleapis.com/http/server/response_latencies\"",
          "type": "string"
        },
        "unit": {
          "description": "The unit in which the metric value is reported. It is only applicable\nif the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The\nsupported units are a subset of [The Unified Code for Units of\nMeasure](http://unitsofmeasure.org/ucum.html) standard:\n\n**Basic units (UNIT)**\n\n* `bit`   bit\n* `By`    byte\n* `s`     second\n* `min`   minute\n* `h`     hour\n* `d`     day\n\n**Prefixes (PREFIX)**\n\n* `k`     kilo    (10**3)\n* `M`     mega    (10**6)\n* `G`     giga    (10**9)\n* `T`     tera    (10**12)\n* `P`     peta    (10**15)\n* `E`     exa     (10**18)\n* `Z`     zetta   (10**21)\n* `Y`     yotta   (10**24)\n* `m`     milli   (10**-3)\n* `u`     micro   (10**-6)\n* `n`     nano    (10**-9)\n* `p`     pico    (10**-12)\n* `f`     femto   (10**-15)\n* `a`     atto    (10**-18)\n* `z`     zepto   (10**-21)\n* `y`     yocto   (10**-24)\n* `Ki`    kibi    (2**10)\n* `Mi`    mebi    (2**20)\n* `Gi`    gibi    (2**30)\n* `Ti`    tebi    (2**40)\n\n**Grammar**\n\nThe grammar also includes these connectors:\n\n* `/`    division (as an infix operator, e.g. `1/s`).\n* `.`    multiplication (as an infix operator, e.g. `GBy.d`)\n\nThe grammar for a unit is as follows:\n\n    Expression = Component { \".\" Component } { \"/\" Component } ;\n\n    Component = ( [ PREFIX ] UNIT | \"%\" ) [ Annotation ]\n              | Annotation\n              | \"1\"\n              ;\n\n    Annotation = \"{\" NAME \"}\" ;\n\nNotes:\n\n* `Annotation` is just a comment if it follows a `UNIT` and is\n   equivalent to `1` if it is used alone. For examples,\n   `{requests}/s == 1/s`, `By{transmitted}/s == By/s`.\n* `NAME` is a sequence of non-blank printable ASCII characters not\n   containing '{' or '}'.\n* `1` represents dimensionless value 1, such as in `1/s`.\n* `%` represents dimensionless value 1/100, and annotates values giving\n   a percentage.",
          "type": "string"
        },
        "valueType": {
          "description": "Whether the measurement is an integer, a floating-point number, etc.\nSome combinations of `metric_kind` and `value_type` might not be supported.",
          "enum": [
            "VALUE_TYPE_UNSPECIFIED",
            "BOOL",
            "INT64",
            "DOUBLE",
            "STRING",
            "DISTRIBUTION",
            "MONEY"
          ],
          "enumDescriptions": [
            "Do not use this default value.",
            "The value is a boolean.\nThis value type can be used only if the metric kind is `GAUGE`.",
            "The value is a signed 64-bit integer.",
            "The value is a double precision floating point number.",
            "The value is a text string.\nThis value type can be used only if the metric kind is `GAUGE`.",
            "The value is a `Distribution`.",
            "The value is money."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "MetricDescriptorMetadata": {
      "description": "Additional annotations that can be used to guide the usage of a metric.",
      "id": "MetricDescriptorMetadata",
      "properties": {
        "ingestDelay": {
          "description": "The delay of data points caused by ingestion. Data points older than this\nage are guaranteed to be ingested and available to be read, excluding\ndata loss due to errors.",
          "format": "google-duration",
          "type": "string"
        },
        "launchStage": {
          "description": "Deprecated. Must use the MetricDescriptor.launch_stage instead.",
          "enum": [
            "LAUNCH_STAGE_UNSPECIFIED",
            "EARLY_ACCESS",
            "ALPHA",
            "BETA",
            "GA",
            "DEPRECATED"
          ],
          "enumDescriptions": [
            "Do not use this default value.",
            "Early Access features are limited to a closed group of testers. To use\nthese features, you must sign up in advance and sign a Trusted Tester\nagreement (which includes confidentiality provisions). These features may\nbe unstable, changed in backward-incompatible ways, and are not\nguaranteed to be released.",
            "Alpha is a limited availability test for releases before they are cleared\nfor widespread use. By Alpha, all significant design issues are resolved\nand we are in the process of verifying functionality. Alpha customers\nneed to apply for access, agree to applicable terms, and have their\nprojects whitelisted. Alpha releases don’t have to be feature complete,\nno SLAs are provided, and there are no technical support obligations, but\nthey will be far enough along that customers can actually use them in\ntest environments or for limited-use tests -- just like they would in\nnormal production cases.",
            "Beta is the point at which we are ready to open a release for any\ncustomer to use. There are no SLA or technical support obligations in a\nBeta release. Products will be complete from a feature perspective, but\nmay have some open outstanding issues. Beta releases are suitable for\nlimited production use cases.",
            "GA features are open to all developers and are considered stable and\nfully qualified for production use.",
            "Deprecated features are scheduled to be shut down and removed. For more\ninformation, see the “Deprecation Policy” section of our [Terms of\nService](https://cloud.google.com/terms/)\nand the [Google Cloud Platform Subject to the Deprecation\nPolicy](https://cloud.google.com/terms/deprecation) documentation."
          ],
          "type": "string"
        },
        "samplePeriod": {
          "description": "The sampling period of metric data points. For metrics which are written\nperiodically, consecutive data points are stored at this time interval,\nexcluding data loss due to errors. Metrics with a higher granularity have\na smaller sampling period.",
          "format": "google-duration",
          "type": "string"
        }
      },
      "type": "object"
    },
    "MetricRule": {
      "description": "Bind API methods to metrics. Binding a method to a metric causes that\nmetric's configured quota behaviors to apply to the method call.",
      "id": "MetricRule",
      "properties": {
        "metricCosts": {
          "additionalProperties": {
            "format": "int64",
            "type": "string"
          },
          "description": "Metrics to update when the selected methods are called, and the associated\ncost applied to each metric.\n\nThe key of the map is the metric name, and the values are the amount\nincreased for the metric against which the quota limits are defined.\nThe value must not be negative.",
          "type": "object"
        },
        "selector": {
          "description": "Selects the methods to which this rule applies.\n\nRefer to selector for syntax details.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Mixin": {
      "description": "Declares an API Interface to be included in this interface. The including\ninterface must redeclare all the methods from the included interface, but\ndocumentation and options are inherited as follows:\n\n- If after comment and whitespace stripping, the documentation\n  string of the redeclared method is empty, it will be inherited\n  from the original method.\n\n- Each annotation belonging to the service config (http,\n  visibility) which is not set in the redeclared method will be\n  inherited.\n\n- If an http annotation is inherited, the path pattern will be\n  modified as follows. Any version prefix will be replaced by the\n  version of the including interface plus the root path if\n  specified.\n\nExample of a simple mixin:\n\n    package google.acl.v1;\n    service AccessControl {\n      // Get the underlying ACL object.\n      rpc GetAcl(GetAclRequest) returns (Acl) {\n        option (google.api.http).get = \"/v1/{resource=**}:getAcl\";\n      }\n    }\n\n    package google.storage.v2;\n    service Storage {\n      //       rpc GetAcl(GetAclRequest) returns (Acl);\n\n      // Get a data record.\n      rpc GetData(GetDataRequest) returns (Data) {\n        option (google.api.http).get = \"/v2/{resource=**}\";\n      }\n    }\n\nExample of a mixin configuration:\n\n    apis:\n    - name: google.storage.v2.Storage\n      mixins:\n      - name: google.acl.v1.AccessControl\n\nThe mixin construct implies that all methods in `AccessControl` are\nalso declared with same name and request/response types in\n`Storage`. A documentation generator or annotation processor will\nsee the effective `Storage.GetAcl` method after inherting\ndocumentation and annotations as follows:\n\n    service Storage {\n      // Get the underlying ACL object.\n      rpc GetAcl(GetAclRequest) returns (Acl) {\n        option (google.api.http).get = \"/v2/{resource=**}:getAcl\";\n      }\n      ...\n    }\n\nNote how the version in the path pattern changed from `v1` to `v2`.\n\nIf the `root` field in the mixin is specified, it should be a\nrelative path under which inherited HTTP paths are placed. Example:\n\n    apis:\n    - name: google.storage.v2.Storage\n      mixins:\n      - name: google.acl.v1.AccessControl\n        root: acls\n\nThis implies the following inherited HTTP annotation:\n\n    service Storage {\n      // Get the underlying ACL object.\n      rpc GetAcl(GetAclRequest) returns (Acl) {\n        option (google.api.http).get = \"/v2/acls/{resource=**}:getAcl\";\n      }\n      ...\n    }",
      "id": "Mixin",
      "properties": {
        "name": {
          "description": "The fully qualified name of the interface which is included.",
          "type": "string"
        },
        "root": {
          "description": "If non-empty specifies a path under which inherited HTTP paths\nare rooted.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "MonitoredResourceDescriptor": {
      "description": "An object that describes the schema of a MonitoredResource object using a\ntype name and a set of labels.  For example, the monitored resource\ndescriptor for Google Compute Engine VM instances has a type of\n`\"gce_instance\"` and specifies the use of the labels `\"instance_id\"` and\n`\"zone\"` to identify particular VM instances.\n\nDifferent APIs can support different monitored resource types. APIs generally\nprovide a `list` method that returns the monitored resource descriptors used\nby the API.",
      "id": "MonitoredResourceDescriptor",
      "properties": {
        "description": {
          "description": "Optional. A detailed description of the monitored resource type that might\nbe used in documentation.",
          "type": "string"
        },
        "displayName": {
          "description": "Optional. A concise name for the monitored resource type that might be\ndisplayed in user interfaces. It should be a Title Cased Noun Phrase,\nwithout any article or other determiners. For example,\n`\"Google Cloud SQL Database\"`.",
          "type": "string"
        },
        "labels": {
          "description": "Required. A set of labels used to describe instances of this monitored\nresource type. For example, an individual Google Cloud SQL database is\nidentified by values for the labels `\"database_id\"` and `\"zone\"`.",
          "items": {
            "$ref": "LabelDescriptor"
          },
          "type": "array"
        },
        "launchStage": {
          "description": "Optional. The launch stage of the monitored resource definition.",
          "enum": [
            "LAUNCH_STAGE_UNSPECIFIED",
            "EARLY_ACCESS",
            "ALPHA",
            "BETA",
            "GA",
            "DEPRECATED"
          ],
          "enumDescriptions": [
            "Do not use this default value.",
            "Early Access features are limited to a closed group of testers. To use\nthese features, you must sign up in advance and sign a Trusted Tester\nagreement (which includes confidentiality provisions). These features may\nbe unstable, changed in backward-incompatible ways, and are not\nguaranteed to be released.",
            "Alpha is a limited availability test for releases before they are cleared\nfor widespread use. By Alpha, all significant design issues are resolved\nand we are in the process of verifying functionality. Alpha customers\nneed to apply for access, agree to applicable terms, and have their\nprojects whitelisted. Alpha releases don’t have to be feature complete,\nno SLAs are provided, and there are no technical support obligations, but\nthey will be far enough along that customers can actually use them in\ntest environments or for limited-use tests -- just like they would in\nnormal production cases.",
            "Beta is the point at which we are ready to open a release for any\ncustomer to use. There are no SLA or technical support obligations in a\nBeta release. Products will be complete from a feature perspective, but\nmay have some open outstanding issues. Beta releases are suitable for\nlimited production use cases.",
            "GA features are open to all developers and are considered stable and\nfully qualified for production use.",
            "Deprecated features are scheduled to be shut down and removed. For more\ninformation, see the “Deprecation Policy” section of our [Terms of\nService](https://cloud.google.com/terms/)\nand the [Google Cloud Platform Subject to the Deprecation\nPolicy](https://cloud.google.com/terms/deprecation) documentation."
          ],
          "type": "string"
        },
        "name": {
          "description": "Optional. The resource name of the monitored resource descriptor:\n`\"projects/{project_id}/monitoredResourceDescriptors/{type}\"` where\n{type} is the value of the `type` field in this object and\n{project_id} is a project ID that provides API-specific context for\naccessing the type.  APIs that do not use project information can use the\nresource name format `\"monitoredResourceDescriptors/{type}\"`.",
          "type": "string"
        },
        "type": {
          "description": "Required. The monitored resource type. For example, the type\n`\"cloudsql_database\"` represents databases in Google Cloud SQL.\nThe maximum length of this value is 256 characters.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Monitoring": {
      "description": "Monitoring configuration of the service.\n\nThe example below shows how to configure monitored resources and metrics\nfor monitoring. In the example, a monitored resource and two metrics are\ndefined. The `library.googleapis.com/book/returned_count` metric is sent\nto both producer and consumer projects, whereas the\n`library.googleapis.com/book/overdue_count` metric is only sent to the\nconsumer project.\n\n    monitored_resources:\n    - type: library.googleapis.com/branch\n      labels:\n      - key: /city\n        description: The city where the library branch is located in.\n      - key: /name\n        description: The name of the branch.\n    metrics:\n    - name: library.googleapis.com/book/returned_count\n      metric_kind: DELTA\n      value_type: INT64\n      labels:\n      - key: /customer_id\n    - name: library.googleapis.com/book/overdue_count\n      metric_kind: GAUGE\n      value_type: INT64\n      labels:\n      - key: /customer_id\n    monitoring:\n      producer_destinations:\n      - monitored_resource: library.googleapis.com/branch\n        metrics:\n        - library.googleapis.com/book/returned_count\n      consumer_destinations:\n      - monitored_resource: library.googleapis.com/branch\n        metrics:\n        - library.googleapis.com/book/returned_count\n        - library.googleapis.com/book/overdue_count",
      "id": "Monitoring",
      "properties": {
        "consumerDestinations": {
          "description": "Monitoring configurations for sending metrics to the consumer project.\nThere can be multiple consumer destinations. A monitored resouce type may\nappear in multiple monitoring destinations if different aggregations are\nneeded for different sets of metrics associated with that monitored\nresource type. A monitored resource and metric pair may only be used once\nin the Monitoring configuration.",
          "items": {
            "$ref": "MonitoringDestination"
          },
          "type": "array"
        },
        "producerDestinations": {
          "description": "Monitoring configurations for sending metrics to the producer project.\nThere can be multiple producer destinations. A monitored resouce type may\nappear in multiple monitoring destinations if different aggregations are\nneeded for different sets of metrics associated with that monitored\nresource type. A monitored resource and metric pair may only be used once\nin the Monitoring configuration.",
          "items": {
            "$ref": "MonitoringDestination"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "MonitoringDestination": {
      "description": "Configuration of a specific monitoring destination (the producer project\nor the consumer project).",
      "id": "MonitoringDestination",
      "properties": {
        "metrics": {
          "description": "Types of the metrics to report to this monitoring destination.\nEach type must be defined in Service.metrics section.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "monitoredResource": {
          "description": "The monitored resource type. The type must be defined in\nService.monitored_resources section.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "OAuthRequirements": {
      "description": "OAuth scopes are a way to define data and permissions on data. For example,\nthere are scopes defined for \"Read-only access to Google Calendar\" and\n\"Access to Cloud Platform\". Users can consent to a scope for an application,\ngiving it permission to access that data on their behalf.\n\nOAuth scope specifications should be fairly coarse grained; a user will need\nto see and understand the text description of what your scope means.\n\nIn most cases: use one or at most two OAuth scopes for an entire family of\nproducts. If your product has multiple APIs, you should probably be sharing\nthe OAuth scope across all of those APIs.\n\nWhen you need finer grained OAuth consent screens: talk with your product\nmanagement about how developers will use them in practice.\n\nPlease note that even though each of the canonical scopes is enough for a\nrequest to be accepted and passed to the backend, a request can still fail\ndue to the backend requiring additional scopes or permissions.",
      "id": "OAuthRequirements",
      "properties": {
        "canonicalScopes": {
          "description": "The list of publicly documented OAuth scopes that are allowed access. An\nOAuth token containing any of these scopes will be accepted.\n\nExample:\n\n     canonical_scopes: https://www.googleapis.com/auth/calendar,\n                       https://www.googleapis.com/auth/calendar.read",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Operation": {
      "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
      "id": "Operation",
      "properties": {
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
          "type": "boolean"
        },
        "error": {
          "$ref": "Status",
          "description": "The error result of the operation in case of failure or cancellation."
        },
        "metadata": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "Service-specific metadata associated with the operation.  It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata.  Any method that returns a\nlong-running operation should document the metadata type, if any.",
          "type": "object"
        },
        "name": {
          "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should be a resource name ending with `operations/{unique_id}`.",
          "type": "string"
        },
        "response": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "The normal response of the operation in case of success.  If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`.  If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource.  For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name.  For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "Option": {
      "description": "A protocol buffer option, which can be attached to a message, field,\nenumeration, etc.",
      "id": "Option",
      "properties": {
        "name": {
          "description": "The option's name. For protobuf built-in options (options defined in\ndescriptor.proto), this is the short name. For example, `\"map_entry\"`.\nFor custom options, it should be the fully-qualified name. For example,\n`\"google.api.http\"`.",
          "type": "string"
        },
        "value": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "The option's value packed in an Any message. If the value is a primitive,\nthe corresponding wrapper type defined in google/protobuf/wrappers.proto\nshould be used. If the value is an enum, it should be stored as an int32\nvalue using the google.protobuf.Int32Value type.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "Page": {
      "description": "Represents a documentation page. A page can contain subpages to represent\nnested documentation set structure.",
      "id": "Page",
      "properties": {
        "content": {
          "description": "The Markdown content of the page. You can use \u003ccode\u003e\u0026#40;== include {path}\n==\u0026#41;\u003c/code\u003e to include content from a Markdown file.",
          "type": "string"
        },
        "name": {
          "description": "The name of the page. It will be used as an identity of the page to\ngenerate URI of the page, text of the link to this page in navigation,\netc. The full page name (start from the root page name to this page\nconcatenated with `.`) can be used as reference to the page in your\ndocumentation. For example:\n\u003cpre\u003e\u003ccode\u003epages:\n- name: Tutorial\n  content: \u0026#40;== include tutorial.md ==\u0026#41;\n  subpages:\n  - name: Java\n    content: \u0026#40;== include tutorial_java.md ==\u0026#41;\n\u003c/code\u003e\u003c/pre\u003e\nYou can reference `Java` page using Markdown reference link syntax:\n`Java`.",
          "type": "string"
        },
        "subpages": {
          "description": "Subpages of this page. The order of subpages specified here will be\nhonored in the generated docset.",
          "items": {
            "$ref": "Page"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "PolicyBinding": {
      "description": "Translates to IAM Policy bindings (without auditing at this level)",
      "id": "PolicyBinding",
      "properties": {
        "members": {
          "description": "Uses the same format as in IAM policy.\n`member` must include both a prefix and ID. For example, `user:{emailId}`,\n`serviceAccount:{emailId}`, `group:{emailId}`.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "role": {
          "description": "Role. (https://cloud.google.com/iam/docs/understanding-roles)\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Quota": {
      "description": "Quota configuration helps to achieve fairness and budgeting in service\nusage.\n\nThe metric based quota configuration works this way:\n- The service configuration defines a set of metrics.\n- For API calls, the quota.metric_rules maps methods to metrics with\n  corresponding costs.\n- The quota.limits defines limits on the metrics, which will be used for\n  quota checks at runtime.\n\nAn example quota configuration in yaml format:\n\n   quota:\n     limits:\n\n     - name: apiWriteQpsPerProject\n       metric: library.googleapis.com/write_calls\n       unit: \"1/min/{project}\"  # rate limit for consumer projects\n       values:\n         STANDARD: 10000\n\n\n     # The metric rules bind all methods to the read_calls metric,\n     # except for the UpdateBook and DeleteBook methods. These two methods\n     # are mapped to the write_calls metric, with the UpdateBook method\n     # consuming at twice rate as the DeleteBook method.\n     metric_rules:\n     - selector: \"*\"\n       metric_costs:\n         library.googleapis.com/read_calls: 1\n     - selector: google.example.library.v1.LibraryService.UpdateBook\n       metric_costs:\n         library.googleapis.com/write_calls: 2\n     - selector: google.example.library.v1.LibraryService.DeleteBook\n       metric_costs:\n         library.googleapis.com/write_calls: 1\n\n Corresponding Metric definition:\n\n     metrics:\n     - name: library.googleapis.com/read_calls\n       display_name: Read requests\n       metric_kind: DELTA\n       value_type: INT64\n\n     - name: library.googleapis.com/write_calls\n       display_name: Write requests\n       metric_kind: DELTA\n       value_type: INT64\n\n",
      "id": "Quota",
      "properties": {
        "limits": {
          "description": "List of `QuotaLimit` definitions for the service.",
          "items": {
            "$ref": "QuotaLimit"
          },
          "type": "array"
        },
        "metricRules": {
          "description": "List of `MetricRule` definitions, each one mapping a selected method to one\nor more metrics.",
          "items": {
            "$ref": "MetricRule"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "QuotaLimit": {
      "description": "`QuotaLimit` defines a specific limit that applies over a specified duration\nfor a limit type. There can be at most one limit for a duration and limit\ntype combination defined within a `QuotaGroup`.",
      "id": "QuotaLimit",
      "properties": {
        "defaultLimit": {
          "description": "Default number of tokens that can be consumed during the specified\nduration. This is the number of tokens assigned when a client\napplication developer activates the service for his/her project.\n\nSpecifying a value of 0 will block all requests. This can be used if you\nare provisioning quota to selected consumers and blocking others.\nSimilarly, a value of -1 will indicate an unlimited quota. No other\nnegative values are allowed.\n\nUsed by group-based quotas only.",
          "format": "int64",
          "type": "string"
        },
        "description": {
          "description": "Optional. User-visible, extended description for this quota limit.\nShould be used only when more context is needed to understand this limit\nthan provided by the limit's display name (see: `display_name`).",
          "type": "string"
        },
        "displayName": {
          "description": "User-visible display name for this limit.\nOptional. If not set, the UI will provide a default display name based on\nthe quota configuration. This field can be used to override the default\ndisplay name generated from the configuration.",
          "type": "string"
        },
        "duration": {
          "description": "Duration of this limit in textual notation. Must be \"100s\" or \"1d\".\n\nUsed by group-based quotas only.",
          "type": "string"
        },
        "freeTier": {
          "description": "Free tier value displayed in the Developers Console for this limit.\nThe free tier is the number of tokens that will be subtracted from the\nbilled amount when billing is enabled.\nThis field can only be set on a limit with duration \"1d\", in a billable\ngroup; it is invalid on any other limit. If this field is not set, it\ndefaults to 0, indicating that there is no free tier for this service.\n\nUsed by group-based quotas only.",
          "format": "int64",
          "type": "string"
        },
        "maxLimit": {
          "description": "Maximum number of tokens that can be consumed during the specified\nduration. Client application developers can override the default limit up\nto this maximum. If specified, this value cannot be set to a value less\nthan the default limit. If not specified, it is set to the default limit.\n\nTo allow clients to apply overrides with no upper bound, set this to -1,\nindicating unlimited maximum quota.\n\nUsed by group-based quotas only.",
          "format": "int64",
          "type": "string"
        },
        "metric": {
          "description": "The name of the metric this quota limit applies to. The quota limits with\nthe same metric will be checked together during runtime. The metric must be\ndefined within the service config.",
          "type": "string"
        },
        "name": {
          "description": "Name of the quota limit.\n\nThe name must be provided, and it must be unique within the service. The\nname can only include alphanumeric characters as well as '-'.\n\nThe maximum length of the limit name is 64 characters.",
          "type": "string"
        },
        "unit": {
          "description": "Specify the unit of the quota limit. It uses the same syntax as\nMetric.unit. The supported unit kinds are determined by the quota\nbackend system.\n\nHere are some examples:\n* \"1/min/{project}\" for quota per minute per project.\n\nNote: the order of unit components is insignificant.\nThe \"1\" at the beginning is required to follow the metric unit syntax.",
          "type": "string"
        },
        "values": {
          "additionalProperties": {
            "format": "int64",
            "type": "string"
          },
          "description": "Tiered limit values. You must specify this as a key:value pair, with an\ninteger value that is the maximum number of requests allowed for the\nspecified unit. Currently only STANDARD is supported.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "RemoveTenantProjectRequest": {
      "description": "Request message to remove a tenant project resource from the tenancy unit.",
      "id": "RemoveTenantProjectRequest",
      "properties": {
        "tag": {
          "description": "Tag of the resource within the tenancy unit.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SearchTenancyUnitsResponse": {
      "description": "Response for the search query.",
      "id": "SearchTenancyUnitsResponse",
      "properties": {
        "nextPageToken": {
          "description": "Pagination token for large results.",
          "type": "string"
        },
        "tenancyUnits": {
          "description": "Tenancy Units matching the request.",
          "items": {
            "$ref": "TenancyUnit"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Service": {
      "description": "`Service` is the root object of Google service configuration schema. It\ndescribes basic information about a service, such as the name and the\ntitle, and delegates other aspects to sub-sections. Each sub-section is\neither a proto message or a repeated proto message that configures a\nspecific aspect, such as auth. See each proto message definition for details.\n\nExample:\n\n    type: google.api.Service\n    config_version: 3\n    name: calendar.googleapis.com\n    title: Google Calendar API\n    apis:\n    - name: google.calendar.v3.Calendar\n    authentication:\n      providers:\n      - id: google_calendar_auth\n        jwks_uri: https://www.googleapis.com/oauth2/v1/certs\n        issuer: https://securetoken.google.com\n      rules:\n      - selector: \"*\"\n        requirements:\n          provider_id: google_calendar_auth",
      "id": "Service",
      "properties": {
        "apis": {
          "description": "A list of API interfaces exported by this service. Only the `name` field\nof the google.protobuf.Api needs to be provided by the configuration\nauthor, as the remaining fields will be derived from the IDL during the\nnormalization process. It is an error to specify an API interface here\nwhich cannot be resolved against the associated IDL files.",
          "items": {
            "$ref": "Api"
          },
          "type": "array"
        },
        "authentication": {
          "$ref": "Authentication",
          "description": "Auth configuration."
        },
        "backend": {
          "$ref": "Backend",
          "description": "API backend configuration."
        },
        "billing": {
          "$ref": "Billing",
          "description": "Billing configuration."
        },
        "configVersion": {
          "description": "The semantic version of the service configuration. The config version\naffects the interpretation of the service configuration. For example,\ncertain features are enabled by default for certain config versions.\nThe latest config version is `3`.",
          "format": "uint32",
          "type": "integer"
        },
        "context": {
          "$ref": "Context",
          "description": "Context configuration."
        },
        "control": {
          "$ref": "Control",
          "description": "Configuration for the service control plane."
        },
        "customError": {
          "$ref": "CustomError",
          "description": "Custom error configuration."
        },
        "documentation": {
          "$ref": "Documentation",
          "description": "Additional API documentation."
        },
        "endpoints": {
          "description": "Configuration for network endpoints.  If this is empty, then an endpoint\nwith the same name as the service is automatically generated to service all\ndefined APIs.",
          "items": {
            "$ref": "Endpoint"
          },
          "type": "array"
        },
        "enums": {
          "description": "A list of all enum types included in this API service.  Enums\nreferenced directly or indirectly by the `apis` are automatically\nincluded.  Enums which are not referenced but shall be included\nshould be listed here by name. Example:\n\n    enums:\n    - name: google.someapi.v1.SomeEnum",
          "items": {
            "$ref": "Enum"
          },
          "type": "array"
        },
        "http": {
          "$ref": "Http",
          "description": "HTTP configuration."
        },
        "id": {
          "description": "A unique ID for a specific instance of this message, typically assigned\nby the client for tracking purpose. Must be no longer than 63 characters\nand only lower case letters, digits, '.', '_' and '-' are allowed. If\nempty, the server may choose to generate one instead.",
          "type": "string"
        },
        "logging": {
          "$ref": "Logging",
          "description": "Logging configuration."
        },
        "logs": {
          "description": "Defines the logs used by this service.",
          "items": {
            "$ref": "LogDescriptor"
          },
          "type": "array"
        },
        "metrics": {
          "description": "Defines the metrics used by this service.",
          "items": {
            "$ref": "MetricDescriptor"
          },
          "type": "array"
        },
        "monitoredResources": {
          "description": "Defines the monitored resources used by this service. This is required\nby the Service.monitoring and Service.logging configurations.",
          "items": {
            "$ref": "MonitoredResourceDescriptor"
          },
          "type": "array"
        },
        "monitoring": {
          "$ref": "Monitoring",
          "description": "Monitoring configuration."
        },
        "name": {
          "description": "The service name, which is a DNS-like logical identifier for the\nservice, such as `calendar.googleapis.com`. The service name\ntypically goes through DNS verification to make sure the owner\nof the service also owns the DNS name.",
          "type": "string"
        },
        "producerProjectId": {
          "description": "The Google project that owns this service.",
          "type": "string"
        },
        "quota": {
          "$ref": "Quota",
          "description": "Quota configuration."
        },
        "sourceInfo": {
          "$ref": "SourceInfo",
          "description": "Output only. The source information for this configuration if available."
        },
        "systemParameters": {
          "$ref": "SystemParameters",
          "description": "System parameter configuration."
        },
        "systemTypes": {
          "description": "A list of all proto message types included in this API service.\nIt serves similar purpose as [google.api.Service.types], except that\nthese types are not needed by user-defined APIs. Therefore, they will not\nshow up in the generated discovery doc. This field should only be used\nto define system APIs in ESF.",
          "items": {
            "$ref": "Type"
          },
          "type": "array"
        },
        "title": {
          "description": "The product title for this service.",
          "type": "string"
        },
        "types": {
          "description": "A list of all proto message types included in this API service.\nTypes referenced directly or indirectly by the `apis` are\nautomatically included.  Messages which are not referenced but\nshall be included, such as types used by the `google.protobuf.Any` type,\nshould be listed here by name. Example:\n\n    types:\n    - name: google.protobuf.Int32",
          "items": {
            "$ref": "Type"
          },
          "type": "array"
        },
        "usage": {
          "$ref": "Usage",
          "description": "Configuration controlling usage of this service."
        }
      },
      "type": "object"
    },
    "ServiceAccountConfig": {
      "description": "Describes the service account configuration for the tenant project.",
      "id": "ServiceAccountConfig",
      "properties": {
        "accountId": {
          "description": "ID of the IAM service account to be created in tenant project.\nThe email format of the service account is\n\"\u003caccount-id\u003e@\u003ctenant-project-id\u003e.iam.gserviceaccount.com\".\nThis account ID must be unique within tenant project and service\nproducers have to guarantee it. The ID must be 6-30 characters long, and\nmatch the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])`.",
          "type": "string"
        },
        "tenantProjectRoles": {
          "description": "Roles for the associated service account for the tenant project.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "SourceContext": {
      "description": "`SourceContext` represents information about the source of a\nprotobuf element, like the file in which it is defined.",
      "id": "SourceContext",
      "properties": {
        "fileName": {
          "description": "The path-qualified name of the .proto file that contained the associated\nprotobuf element.  For example: `\"google/protobuf/source_context.proto\"`.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SourceInfo": {
      "description": "Source information used to create a Service Config",
      "id": "SourceInfo",
      "properties": {
        "sourceFiles": {
          "description": "All files used during config generation.",
          "items": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            },
            "type": "object"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Status": {
      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors).",
      "id": "Status",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32",
          "type": "integer"
        },
        "details": {
          "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use.",
          "items": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            },
            "type": "object"
          },
          "type": "array"
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SystemParameter": {
      "description": "Define a parameter's name and location. The parameter may be passed as either\nan HTTP header or a URL query parameter, and if both are passed the behavior\nis implementation-dependent.",
      "id": "SystemParameter",
      "properties": {
        "httpHeader": {
          "description": "Define the HTTP header name to use for the parameter. It is case\ninsensitive.",
          "type": "string"
        },
        "name": {
          "description": "Define the name of the parameter, such as \"api_key\" . It is case sensitive.",
          "type": "string"
        },
        "urlQueryParameter": {
          "description": "Define the URL query parameter name to use for the parameter. It is case\nsensitive.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SystemParameterRule": {
      "description": "Define a system parameter rule mapping system parameter definitions to\nmethods.",
      "id": "SystemParameterRule",
      "properties": {
        "parameters": {
          "description": "Define parameters. Multiple names may be defined for a parameter.\nFor a given method call, only one of them should be used. If multiple\nnames are used the behavior is implementation-dependent.\nIf none of the specified names are present the behavior is\nparameter-dependent.",
          "items": {
            "$ref": "SystemParameter"
          },
          "type": "array"
        },
        "selector": {
          "description": "Selects the methods to which this rule applies. Use '*' to indicate all\nmethods in all APIs.\n\nRefer to selector for syntax details.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SystemParameters": {
      "description": "### System parameter configuration\n\nA system parameter is a special kind of parameter defined by the API\nsystem, not by an individual API. It is typically mapped to an HTTP header\nand/or a URL query parameter. This configuration specifies which methods\nchange the names of the system parameters.",
      "id": "SystemParameters",
      "properties": {
        "rules": {
          "description": "Define system parameters.\n\nThe parameters defined here will override the default parameters\nimplemented by the system. If this field is missing from the service\nconfig, default system parameters will be used. Default system parameters\nand names is implementation-dependent.\n\nExample: define api key for all methods\n\n    system_parameters\n      rules:\n        - selector: \"*\"\n          parameters:\n            - name: api_key\n              url_query_parameter: api_key\n\n\nExample: define 2 api key names for a specific method.\n\n    system_parameters\n      rules:\n        - selector: \"/ListShelves\"\n          parameters:\n            - name: api_key\n              http_header: Api-Key1\n            - name: api_key\n              http_header: Api-Key2\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.",
          "items": {
            "$ref": "SystemParameterRule"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TenancyUnit": {
      "description": "Representation of a tenancy unit.",
      "id": "TenancyUnit",
      "properties": {
        "consumer": {
          "description": "@OutputOnly Cloud resource name of the consumer of this service.\nFor example 'projects/123456'.",
          "type": "string"
        },
        "createTime": {
          "description": "@OutputOnly The time this tenancy unit was created.",
          "format": "google-datetime",
          "type": "string"
        },
        "name": {
          "description": "Globally unique identifier of this tenancy unit\n\"services/{service}/{collection id}/{resource id}/tenancyUnits/{unit}\"",
          "type": "string"
        },
        "service": {
          "description": "Output only. Google Cloud API name of the managed service owning this\ntenancy unit.\nFor example 'serviceconsumermanagement.googleapis.com'.",
          "type": "string"
        },
        "tenantResources": {
          "description": "Resources constituting the tenancy unit.\nThere can be at most 512 tenant resources in a tenancy unit.",
          "items": {
            "$ref": "TenantResource"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TenantProjectConfig": {
      "description": "This structure defines a tenant project to be added to the specified tenancy\nunit and its initial configuration and properties. A project lien is created\nfor the tenant project to prevent the tenant project from being deleted\naccidentally. The lien is deleted as part of tenant project removal.",
      "id": "TenantProjectConfig",
      "properties": {
        "billingConfig": {
          "$ref": "BillingConfig",
          "description": "Billing account properties. The billing account must be specified."
        },
        "folder": {
          "description": "Folder where project in this tenancy unit must be located\nThis folder must have been previously created with the required\npermissions for the caller to create and configure a project in it.\nValid folder resource names have the format `folders/{folder_number}`\n(for example, `folders/123456`).",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels that are applied to this project.",
          "type": "object"
        },
        "serviceAccountConfig": {
          "$ref": "ServiceAccountConfig",
          "description": "Configuration for the IAM service account on the tenant project."
        },
        "services": {
          "description": "Google Cloud API names of services that are activated on this project\nduring provisioning.  If any of these services can't be activated,\nthe request fails.\nFor example: 'compute.googleapis.com','cloudfunctions.googleapis.com'",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "tenantProjectPolicy": {
          "$ref": "TenantProjectPolicy",
          "description": "Describes ownership and policies for the new tenant project. Required."
        }
      },
      "type": "object"
    },
    "TenantProjectPolicy": {
      "description": "Describes policy settings that need to be applied to a newly\ncreated tenant project.",
      "id": "TenantProjectPolicy",
      "properties": {
        "policyBindings": {
          "description": "Policy bindings to be applied to the tenant project, in addition to the\n'roles/owner' role granted to the Service Consumer Management service\naccount.\nAt least one binding must have the role `roles/owner`. Among the list of\nmembers for `roles/owner`, at least one of them must be either the `user`\nor `group` type.",
          "items": {
            "$ref": "PolicyBinding"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "TenantResource": {
      "description": "Resource constituting the TenancyUnit.",
      "id": "TenantResource",
      "properties": {
        "resource": {
          "description": "@OutputOnly Identifier of the tenant resource.\nFor cloud projects, it is in the form 'projects/{number}'.\nFor example 'projects/123456'.",
          "type": "string"
        },
        "status": {
          "description": "Status of tenant resource.",
          "enum": [
            "STATUS_UNSPECIFIED",
            "PENDING_CREATE",
            "ACTIVE",
            "PENDING_DELETE",
            "FAILED",
            "DELETED"
          ],
          "enumDescriptions": [
            "Unspecified status is the default unset value.",
            "Creation of the tenant resource is ongoing.",
            "Active resource.",
            "Deletion of the resource is ongoing.",
            "Tenant resource creation or deletion has failed.",
            "Tenant resource has been deleted."
          ],
          "type": "string"
        },
        "tag": {
          "description": "Unique per single tenancy unit.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Type": {
      "description": "A protocol buffer message type.",
      "id": "Type",
      "properties": {
        "fields": {
          "description": "The list of fields.",
          "items": {
            "$ref": "Field"
          },
          "type": "array"
        },
        "name": {
          "description": "The fully qualified message name.",
          "type": "string"
        },
        "oneofs": {
          "description": "The list of types appearing in `oneof` definitions in this type.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "options": {
          "description": "The protocol buffer options.",
          "items": {
            "$ref": "Option"
          },
          "type": "array"
        },
        "sourceContext": {
          "$ref": "SourceContext",
          "description": "The source context."
        },
        "syntax": {
          "description": "The source syntax.",
          "enum": [
            "SYNTAX_PROTO2",
            "SYNTAX_PROTO3"
          ],
          "enumDescriptions": [
            "Syntax `proto2`.",
            "Syntax `proto3`."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "UndeleteTenantProjectRequest": {
      "description": "Request message to undelete tenant project resource previously deleted from\nthe tenancy unit.",
      "id": "UndeleteTenantProjectRequest",
      "properties": {
        "tag": {
          "description": "Tag of the resource within the tenancy unit.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Usage": {
      "description": "Configuration controlling usage of a service.",
      "id": "Usage",
      "properties": {
        "producerNotificationChannel": {
          "description": "The full resource name of a channel used for sending notifications to the\nservice producer.\n\nGoogle Service Management currently only supports\n[Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification\nchannel. To use Google Cloud Pub/Sub as the channel, this must be the name\nof a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format\ndocumented in https://cloud.google.com/pubsub/docs/overview.",
          "type": "string"
        },
        "requirements": {
          "description": "Requirements that must be satisfied before a consumer project can use the\nservice. Each requirement is of the form \u003cservice.name\u003e/\u003crequirement-id\u003e;\nfor example 'serviceusage.googleapis.com/billing-enabled'.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "rules": {
          "description": "A list of usage rules that apply to individual API methods.\n\n**NOTE:** All service configuration rules follow \"last one wins\" order.",
          "items": {
            "$ref": "UsageRule"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "UsageRule": {
      "description": "Usage configuration rules for the service.\n\nNOTE: Under development.\n\n\nUse this rule to configure unregistered calls for the service. Unregistered\ncalls are calls that do not contain consumer project identity.\n(Example: calls that do not contain an API key).\nBy default, API methods do not allow unregistered calls, and each method call\nmust be identified by a consumer project identity. Use this rule to\nallow/disallow unregistered calls.\n\nExample of an API that wants to allow unregistered calls for entire service.\n\n    usage:\n      rules:\n      - selector: \"*\"\n        allow_unregistered_calls: true\n\nExample of a method that wants to allow unregistered calls.\n\n    usage:\n      rules:\n      - selector: \"google.example.library.v1.LibraryService.CreateBook\"\n        allow_unregistered_calls: true",
      "id": "UsageRule",
      "properties": {
        "allowUnregisteredCalls": {
          "description": "If true, the selected method allows unregistered calls, e.g. calls\nthat don't identify any user or application.",
          "type": "boolean"
        },
        "selector": {
          "description": "Selects the methods to which this rule applies. Use '*' to indicate all\nmethods in all APIs.\n\nRefer to selector for syntax details.",
          "type": "string"
        },
        "skipServiceControl": {
          "description": "If true, the selected method should skip service control and the control\nplane features, such as quota and billing, will not be available.\nThis flag is used by Google Cloud Endpoints to bypass checks for internal\nmethods, such as service health check methods.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "V1AddVisibilityLabelsResponse": {
      "description": "Response message for the `AddVisibilityLabels` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.",
      "id": "V1AddVisibilityLabelsResponse",
      "properties": {
        "labels": {
          "description": "The updated set of visibility labels for this consumer on this service.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "V1Beta1BatchCreateProducerOverridesResponse": {
      "description": "Response message for BatchCreateProducerOverrides",
      "id": "V1Beta1BatchCreateProducerOverridesResponse",
      "properties": {
        "overrides": {
          "description": "The overrides that were created.",
          "items": {
            "$ref": "V1Beta1QuotaOverride"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "V1Beta1DisableConsumerResponse": {
      "description": "Response message for the `DisableConsumer` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.",
      "id": "V1Beta1DisableConsumerResponse",
      "properties": {},
      "type": "object"
    },
    "V1Beta1EnableConsumerResponse": {
      "description": "Response message for the `EnableConsumer` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.",
      "id": "V1Beta1EnableConsumerResponse",
      "properties": {},
      "type": "object"
    },
    "V1Beta1GenerateServiceIdentityResponse": {
      "description": "Response message for the `GenerateServiceIdentity` method.\n\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.",
      "id": "V1Beta1GenerateServiceIdentityResponse",
      "properties": {
        "identity": {
          "$ref": "V1Beta1ServiceIdentity",
          "description": "ServiceIdentity that was created or retrieved."
        }
      },
      "type": "object"
    },
    "V1Beta1ImportProducerOverridesResponse": {
      "description": "Response message for ImportProducerOverrides",
      "id": "V1Beta1ImportProducerOverridesResponse",
      "properties": {
        "overrides": {
          "description": "The overrides that were created from the imported data.",
          "items": {
            "$ref": "V1Beta1QuotaOverride"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "V1Beta1QuotaOverride": {
      "description": "A quota override",
      "id": "V1Beta1QuotaOverride",
      "properties": {
        "dimensions": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "If this map is nonempty, then this override applies only to specific values\nfor dimensions defined in the limit unit.\n\nFor example, an override on a limit with the unit 1/{project}/{region}\ncould contain an entry with the key \"region\" and the value \"us-east-1\";\nthe override is only applied to quota consumed in that region.\n\nThis map has the following restrictions:\n- Keys that are not defined in the limit's unit are not valid keys.\n  Any string appearing in {brackets} in the unit (besides {project} or\n  {user}) is a defined key.\n- \"project\" is not a valid key; the project is already specified in\n  the parent resource name.\n- \"user\" is not a valid key; the API does not support quota overrides\n  that apply only to a specific user.\n- If \"region\" appears as a key, its value must be a valid Cloud region.\n- If \"zone\" appears as a key, its value must be a valid Cloud zone.\n- If any valid key other than \"region\" or \"zone\" appears in the map, then\n  all valid keys other than \"region\" or \"zone\" must also appear in the map.",
          "type": "object"
        },
        "metric": {
          "description": "The name of the metric to which this override applies.\n\nAn example name would be:\n`compute.googleapis.com/cpus`",
          "type": "string"
        },
        "name": {
          "description": "The resource name of the producer override.\nAn example name would be:\n`services/compute.googleapis.com/projects/123/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerOverrides/4a3f2c1d`",
          "type": "string"
        },
        "overrideValue": {
          "description": "The overriding quota limit value.\nCan be any nonnegative integer, or -1 (unlimited quota).",
          "format": "int64",
          "type": "string"
        },
        "unit": {
          "description": "The limit unit of the limit to which this override applies.\n\nAn example unit would be:\n`1/{project}/{region}`\nNote that `{project}` and `{region}` are not placeholders in this example;\nthe literal characters `{` and `}` occur in the string.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "V1Beta1RefreshConsumerResponse": {
      "description": "Response message for the `RefreshConsumer` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.",
      "id": "V1Beta1RefreshConsumerResponse",
      "properties": {},
      "type": "object"
    },
    "V1Beta1ServiceIdentity": {
      "description": "A service identity in the Identity and Access Management API.",
      "id": "V1Beta1ServiceIdentity",
      "properties": {
        "email": {
          "description": "The email address of the service identity.",
          "type": "string"
        },
        "name": {
          "description": "P4 service identity resource name.\n\nAn example name would be:\n`services/serviceconsumermanagement.googleapis.com/projects/123/serviceIdentities/default`",
          "type": "string"
        },
        "tag": {
          "description": "The P4 service identity configuration tag. This must be defined in\nactivation_grants. If not specified when creating the account, the tag is\nset to \"default\".",
          "type": "string"
        },
        "uniqueId": {
          "description": "The unique and stable id of the service identity.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "V1DisableConsumerResponse": {
      "description": "Response message for the `DisableConsumer` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.",
      "id": "V1DisableConsumerResponse",
      "properties": {},
      "type": "object"
    },
    "V1EnableConsumerResponse": {
      "description": "Response message for the `EnableConsumer` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.",
      "id": "V1EnableConsumerResponse",
      "properties": {},
      "type": "object"
    },
    "V1GenerateServiceAccountResponse": {
      "description": "Response message for the `GenerateServiceAccount` method.\n\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.",
      "id": "V1GenerateServiceAccountResponse",
      "properties": {
        "account": {
          "$ref": "V1ServiceAccount",
          "description": "ServiceAccount that was created or retrieved."
        }
      },
      "type": "object"
    },
    "V1RefreshConsumerResponse": {
      "description": "Response message for the `RefreshConsumer` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.",
      "id": "V1RefreshConsumerResponse",
      "properties": {},
      "type": "object"
    },
    "V1RemoveVisibilityLabelsResponse": {
      "description": "Response message for the `RemoveVisibilityLabels` method.\nThis response message is assigned to the `response` field of the returned\nOperation when that operation is done.",
      "id": "V1RemoveVisibilityLabelsResponse",
      "properties": {
        "labels": {
          "description": "The updated set of visibility labels for this consumer on this service.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "V1ServiceAccount": {
      "description": "A service account in the Identity and Access Management API.",
      "id": "V1ServiceAccount",
      "properties": {
        "email": {
          "description": "The email address of the service account.",
          "type": "string"
        },
        "iamAccountName": {
          "description": "Deprecated. See b/136209818.",
          "type": "string"
        },
        "name": {
          "description": "P4 SA resource name.\n\nAn example name would be:\n`services/serviceconsumermanagement.googleapis.com/projects/123/serviceAccounts/default`",
          "type": "string"
        },
        "tag": {
          "description": "The P4 SA configuration tag. This must be defined in activation_grants.\nIf not specified when creating the account, the tag is set to \"default\".",
          "type": "string"
        },
        "uniqueId": {
          "description": "The unique and stable id of the service account.",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "Service Consumer Management API",
  "version": "v1",
  "version_module": true
}