openapi: 3.0.0
servers:
  - url: https://tpu.googleapis.com/
info:
  contact:
    name: Google
    url: https://google.com
    x-twitter: youtube
  description: TPU API provides customers with access to Google TPU technology.
  license:
    name: Creative Commons Attribution 3.0
    url: http://creativecommons.org/licenses/by/3.0/
  termsOfService: https://developers.google.com/terms/
  title: Cloud TPU API
  version: v2alpha1
  x-apiClientRegistration:
    url: https://console.developers.google.com
  x-apisguru-categories:
    - analytics
    - media
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_www.google.com_images_branding_googlelogo_2x_googlelogo_color_272x92dp.png
  x-origin:
    - format: google
      url: https://tpu.googleapis.com/$discovery/rest?version=v2alpha1
      version: v1
  x-preferred: false
  x-providerName: googleapis.com
  x-serviceName: tpu
externalDocs:
  url: https://cloud.google.com/tpu/
tags:
  - name: projects
paths:
  "/v2alpha1/{name}":
    delete:
      description: Deletes a QueuedResource TPU instance.
      operationId: tpu.projects.locations.queuedResources.delete
      parameters:
        - description: Required. The resource name.
          in: path
          name: name
          required: true
          schema:
            type: string
        - description: Idempotent request UUID.
          in: query
          name: requestId
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Operation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    get:
      description: Gets a runtime version.
      operationId: tpu.projects.locations.runtimeVersions.get
      parameters:
        - description: Required. The resource name.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RuntimeVersion"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    patch:
      description: Updates the configurations of a node.
      operationId: tpu.projects.locations.nodes.patch
      parameters:
        - description: Output only. Immutable. The name of the TPU.
          in: path
          name: name
          required: true
          schema:
            type: string
        - description: "Required. Mask of fields from Node to update. Supported fields: [description, tags, labels, metadata, network_config.enable_external_ips]."
          in: query
          name: updateMask
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Node"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Operation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v2alpha1/{name}/locations":
    get:
      description: Lists information about the supported locations for this service.
      operationId: tpu.projects.locations.list
      parameters:
        - description: The resource that owns the locations collection, if applicable.
          in: path
          name: name
          required: true
          schema:
            type: string
        - description: A filter to narrow down results to a preferred subset. The filtering language accepts strings like `"displayName=tokyo"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
          in: query
          name: filter
          schema:
            type: string
        - description: The maximum number of results to return. If not set, the service selects a default.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListLocationsResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
  "/v2alpha1/{name}/operations":
    get:
      description: Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.
      operationId: tpu.projects.locations.operations.list
      parameters:
        - description: The name of the operation's parent resource.
          in: path
          name: name
          required: true
          schema:
            type: string
        - description: The standard list filter.
          in: query
          name: filter
          schema:
            type: string
        - description: The standard list page size.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: The standard list page token.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListOperationsResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
  "/v2alpha1/{name}:cancel":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
      operationId: tpu.projects.locations.operations.cancel
      parameters:
        - description: The name of the operation resource to be cancelled.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v2alpha1/{name}:getGuestAttributes":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Retrieves the guest attributes for the node.
      operationId: tpu.projects.locations.nodes.getGuestAttributes
      parameters:
        - description: Required. The resource name.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GetGuestAttributesRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetGuestAttributesResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v2alpha1/{name}:simulateMaintenanceEvent":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Simulates a maintenance event.
      operationId: tpu.projects.locations.nodes.simulateMaintenanceEvent
      parameters:
        - description: Required. The resource name.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SimulateMaintenanceEventRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Operation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v2alpha1/{name}:start":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Starts a node.
      operationId: tpu.projects.locations.nodes.start
      parameters:
        - description: Required. The resource name.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StartNodeRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Operation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v2alpha1/{name}:stop":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Stops a node. This operation is only available with single TPU nodes.
      operationId: tpu.projects.locations.nodes.stop
      parameters:
        - description: Required. The resource name.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StopNodeRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Operation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v2alpha1/{parent}/acceleratorTypes":
    get:
      description: Lists accelerator types supported by this API.
      operationId: tpu.projects.locations.acceleratorTypes.list
      parameters:
        - description: Required. The parent resource name.
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: List filter.
          in: query
          name: filter
          schema:
            type: string
        - description: Sort results.
          in: query
          name: orderBy
          schema:
            type: string
        - description: The maximum number of items to return.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: The next_page_token value returned from a previous List request, if any.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListAcceleratorTypesResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
  "/v2alpha1/{parent}/nodes":
    get:
      description: Lists nodes.
      operationId: tpu.projects.locations.nodes.list
      parameters:
        - description: Required. The parent resource name.
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: The maximum number of items to return.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: The next_page_token value returned from a previous List request, if any.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListNodesResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Creates a node.
      operationId: tpu.projects.locations.nodes.create
      parameters:
        - description: Required. The parent resource name.
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: The unqualified resource name.
          in: query
          name: nodeId
          schema:
            type: string
        - description: Idempotent request UUID.
          in: query
          name: requestId
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Node"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Operation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v2alpha1/{parent}/queuedResources":
    get:
      description: Lists queued resources.
      operationId: tpu.projects.locations.queuedResources.list
      parameters:
        - description: Required. The parent resource name.
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: The maximum number of items to return.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: The next_page_token value returned from a previous List request, if any.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListQueuedResourcesResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Creates a QueuedResource TPU instance.
      operationId: tpu.projects.locations.queuedResources.create
      parameters:
        - description: Required. The parent resource name.
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: The unqualified resource name. Should follow the `^[A-Za-z0-9_.~+%-]+$` regex format.
          in: query
          name: queuedResourceId
          schema:
            type: string
        - description: Idempotent request UUID.
          in: query
          name: requestId
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QueuedResource"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Operation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v2alpha1/{parent}/runtimeVersions":
    get:
      description: Lists runtime versions supported by this API.
      operationId: tpu.projects.locations.runtimeVersions.list
      parameters:
        - description: Required. The parent resource name.
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: List filter.
          in: query
          name: filter
          schema:
            type: string
        - description: Sort results.
          in: query
          name: orderBy
          schema:
            type: string
        - description: The maximum number of items to return.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: The next_page_token value returned from a previous List request, if any.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ListRuntimeVersionsResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
  "/v2alpha1/{parent}:generateServiceIdentity":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Generates the Cloud TPU service identity for the project.
      operationId: tpu.projects.locations.generateServiceIdentity
      parameters:
        - description: Required. The parent resource name.
          in: path
          name: parent
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GenerateServiceIdentityRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenerateServiceIdentityResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
components:
  parameters:
    _.xgafv:
      description: V1 error format.
      in: query
      name: $.xgafv
      schema:
        enum:
          - "1"
          - "2"
        type: string
    access_token:
      description: OAuth access token.
      in: query
      name: access_token
      schema:
        type: string
    alt:
      description: Data format for response.
      in: query
      name: alt
      schema:
        enum:
          - json
          - media
          - proto
        type: string
    callback:
      description: JSONP
      in: query
      name: callback
      schema:
        type: string
    fields:
      description: Selector specifying which fields to include in a partial response.
      in: query
      name: fields
      schema:
        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.
      in: query
      name: key
      schema:
        type: string
    oauth_token:
      description: OAuth 2.0 token for the current user.
      in: query
      name: oauth_token
      schema:
        type: string
    prettyPrint:
      description: Returns response with indentations and line breaks.
      in: query
      name: prettyPrint
      schema:
        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.
      in: query
      name: quotaUser
      schema:
        type: string
    uploadType:
      description: Legacy upload protocol for media (e.g. "media", "multipart").
      in: query
      name: uploadType
      schema:
        type: string
    upload_protocol:
      description: Upload protocol for media (e.g. "raw", "multipart").
      in: query
      name: upload_protocol
      schema:
        type: string
  schemas:
    AcceleratorConfig:
      description: A TPU accelerator configuration.
      properties:
        topology:
          description: Required. Topology of TPU in chips.
          type: string
        type:
          description: Required. Type of TPU.
          enum:
            - TYPE_UNSPECIFIED
            - V2
            - V3
            - V4
          type: string
      type: object
    AcceleratorType:
      description: A accelerator type that a Node can be configured with.
      properties:
        acceleratorConfigs:
          description: The accelerator config.
          items:
            $ref: "#/components/schemas/AcceleratorConfig"
          type: array
        name:
          description: The resource name.
          type: string
        type:
          description: The accelerator type.
          type: string
      type: object
    AcceptedData:
      description: Further data for the accepted state.
      properties: {}
      type: object
    AccessConfig:
      description: An access config attached to the TPU worker.
      properties:
        externalIp:
          description: Output only. An external IP address associated with the TPU worker.
          readOnly: true
          type: string
      type: object
    ActiveData:
      description: Further data for the active state.
      properties: {}
      type: object
    AttachedDisk:
      description: "A node-attached disk resource. Next ID: 8;"
      properties:
        mode:
          description: The mode in which to attach this disk. If not specified, the default is READ_WRITE mode. Only applicable to data_disks.
          enum:
            - DISK_MODE_UNSPECIFIED
            - READ_WRITE
            - READ_ONLY
          type: string
        sourceDisk:
          description: 'Specifies the full path to an existing disk. For example: "projects/my-project/zones/us-central1-c/disks/my-disk".'
          type: string
      type: object
    BestEffort:
      description: BestEffort tier definition.
      properties: {}
      type: object
    CreatingData:
      description: Further data for the creating state.
      properties: {}
      type: object
    DeletingData:
      description: Further data for the deleting state.
      properties: {}
      type: object
    Empty:
      description: "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }"
      properties: {}
      type: object
    FailedData:
      description: Further data for the failed state.
      properties:
        error:
          $ref: "#/components/schemas/Status"
          description: The error that caused the queued resource to enter the FAILED state.
      type: object
    GenerateServiceIdentityRequest:
      description: Request for GenerateServiceIdentity.
      properties: {}
      type: object
    GenerateServiceIdentityResponse:
      description: Response for GenerateServiceIdentity.
      properties:
        identity:
          $ref: "#/components/schemas/ServiceIdentity"
          description: ServiceIdentity that was created or retrieved.
      type: object
    GetGuestAttributesRequest:
      description: Request for GetGuestAttributes.
      properties:
        queryPath:
          description: The guest attributes path to be queried.
          type: string
        workerIds:
          description: The 0-based worker ID. If it is empty, all workers' GuestAttributes will be returned.
          items:
            type: string
          type: array
      type: object
    GetGuestAttributesResponse:
      description: Response for GetGuestAttributes.
      properties:
        guestAttributes:
          description: The guest attributes for the TPU workers.
          items:
            $ref: "#/components/schemas/GuestAttributes"
          type: array
      type: object
    Guaranteed:
      description: Guaranteed tier definition.
      properties:
        minDuration:
          description: Optional. Defines the minimum duration of the guarantee. If specified, the requested resources will only be provisioned if they can be allocated for at least the given duration.
          format: google-duration
          type: string
        reserved:
          description: Optional. Specifies the request should be scheduled on reserved capacity.
          type: boolean
      type: object
    GuestAttributes:
      description: A guest attributes.
      properties:
        queryPath:
          description: The path to be queried. This can be the default namespace ('/') or a nested namespace ('/\/') or a specified key ('/\/\')
          type: string
        queryValue:
          $ref: "#/components/schemas/GuestAttributesValue"
          description: The value of the requested queried path.
      type: object
    GuestAttributesEntry:
      description: A guest attributes namespace/key/value entry.
      properties:
        key:
          description: Key for the guest attribute entry.
          type: string
        namespace:
          description: Namespace for the guest attribute entry.
          type: string
        value:
          description: Value for the guest attribute entry.
          type: string
      type: object
    GuestAttributesValue:
      description: Array of guest attribute namespace/key/value tuples.
      properties:
        items:
          description: The list of guest attributes entries.
          items:
            $ref: "#/components/schemas/GuestAttributesEntry"
          type: array
      type: object
    Interval:
      description: Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.
      properties:
        endTime:
          description: Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.
          format: google-datetime
          type: string
        startTime:
          description: Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.
          format: google-datetime
          type: string
      type: object
    ListAcceleratorTypesResponse:
      description: Response for ListAcceleratorTypes.
      properties:
        acceleratorTypes:
          description: The listed nodes.
          items:
            $ref: "#/components/schemas/AcceleratorType"
          type: array
        nextPageToken:
          description: The next page token or empty if none.
          type: string
        unreachable:
          description: Locations that could not be reached.
          items:
            type: string
          type: array
      type: object
    ListLocationsResponse:
      description: The response message for Locations.ListLocations.
      properties:
        locations:
          description: A list of locations that matches the specified filter in the request.
          items:
            $ref: "#/components/schemas/Location"
          type: array
        nextPageToken:
          description: The standard List next-page token.
          type: string
      type: object
    ListNodesResponse:
      description: Response for ListNodes.
      properties:
        nextPageToken:
          description: The next page token or empty if none.
          type: string
        nodes:
          description: The listed nodes.
          items:
            $ref: "#/components/schemas/Node"
          type: array
        unreachable:
          description: Locations that could not be reached.
          items:
            type: string
          type: array
      type: object
    ListOperationsResponse:
      description: The response message for Operations.ListOperations.
      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: "#/components/schemas/Operation"
          type: array
      type: object
    ListQueuedResourcesResponse:
      description: Response for ListQueuedResources.
      properties:
        nextPageToken:
          description: The next page token or empty if none.
          type: string
        queuedResources:
          description: The listed queued resources.
          items:
            $ref: "#/components/schemas/QueuedResource"
          type: array
        unreachable:
          description: Locations that could not be reached.
          items:
            type: string
          type: array
      type: object
    ListRuntimeVersionsResponse:
      description: Response for ListRuntimeVersions.
      properties:
        nextPageToken:
          description: The next page token or empty if none.
          type: string
        runtimeVersions:
          description: The listed nodes.
          items:
            $ref: "#/components/schemas/RuntimeVersion"
          type: array
        unreachable:
          description: Locations that could not be reached.
          items:
            type: string
          type: array
      type: object
    Location:
      description: A resource that represents Google Cloud Platform location.
      properties:
        displayName:
          description: The friendly name for this location, typically a nearby city name. For example, "Tokyo".
          type: string
        labels:
          additionalProperties:
            type: string
          description: 'Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}'
          type: object
        locationId:
          description: 'The canonical id for this location. For example: `"us-east1"`.'
          type: string
        metadata:
          additionalProperties:
            description: Properties of the object. Contains field @type with type URL.
          description: Service-specific metadata. For example the available capacity at the given location.
          type: object
        name:
          description: 'Resource name for the location, which may vary between implementations. For example: `"projects/example-project/locations/us-east1"`'
          type: string
      type: object
    NetworkConfig:
      description: Network related configurations.
      properties:
        canIpForward:
          description: Allows the TPU node to send and receive packets with non-matching destination or source IPs. This is required if you plan to use the TPU workers to forward routes.
          type: boolean
        enableExternalIps:
          description: Indicates that external IP addresses would be associated with the TPU workers. If set to false, the specified subnetwork or network should have Private Google Access enabled.
          type: boolean
        network:
          description: The name of the network for the TPU node. It must be a preexisting Google Compute Engine network. If none is provided, "default" will be used.
          type: string
        subnetwork:
          description: The name of the subnetwork for the TPU node. It must be a preexisting Google Compute Engine subnetwork. If none is provided, "default" will be used.
          type: string
      type: object
    NetworkEndpoint:
      description: A network endpoint over which a TPU worker can be reached.
      properties:
        accessConfig:
          $ref: "#/components/schemas/AccessConfig"
          description: The access config for the TPU worker.
        ipAddress:
          description: The internal IP address of this network endpoint.
          type: string
        port:
          description: The port of this network endpoint.
          format: int32
          type: integer
      type: object
    Node:
      description: A TPU instance.
      properties:
        acceleratorConfig:
          $ref: "#/components/schemas/AcceleratorConfig"
          description: The AccleratorConfig for the TPU Node.
        acceleratorType:
          description: The type of hardware accelerators associated with this node.
          type: string
        apiVersion:
          description: Output only. The API version that created this Node.
          enum:
            - API_VERSION_UNSPECIFIED
            - V1_ALPHA1
            - V1
            - V2_ALPHA1
          readOnly: true
          type: string
        cidrBlock:
          description: The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user's provided network, or the provided network is peered with another network that is using that CIDR block.
          type: string
        createTime:
          description: Output only. The time when the node was created.
          format: google-datetime
          readOnly: true
          type: string
        dataDisks:
          description: The additional data disks for the Node.
          items:
            $ref: "#/components/schemas/AttachedDisk"
          type: array
        description:
          description: The user-supplied description of the TPU. Maximum of 512 characters.
          type: string
        health:
          description: The health status of the TPU node.
          enum:
            - HEALTH_UNSPECIFIED
            - HEALTHY
            - TIMEOUT
            - UNHEALTHY_TENSORFLOW
            - UNHEALTHY_MAINTENANCE
          type: string
        healthDescription:
          description: Output only. If this field is populated, it contains a description of why the TPU Node is unhealthy.
          readOnly: true
          type: string
        id:
          description: Output only. The unique identifier for the TPU Node.
          format: int64
          readOnly: true
          type: string
        labels:
          additionalProperties:
            type: string
          description: Resource labels to represent user-provided metadata.
          type: object
        metadata:
          additionalProperties:
            type: string
          description: Custom metadata to apply to the TPU Node. Can set startup-script and shutdown-script
          type: object
        name:
          description: Output only. Immutable. The name of the TPU.
          readOnly: true
          type: string
        networkConfig:
          $ref: "#/components/schemas/NetworkConfig"
          description: Network configurations for the TPU node.
        networkEndpoints:
          description: Output only. The network endpoints where TPU workers can be accessed and sent work. It is recommended that runtime clients of the node reach out to the 0th entry in this map first.
          items:
            $ref: "#/components/schemas/NetworkEndpoint"
          readOnly: true
          type: array
        queuedResource:
          description: Output only. The qualified name of the QueuedResource that requested this Node.
          readOnly: true
          type: string
        runtimeVersion:
          description: Required. The runtime version running in the Node.
          type: string
        schedulingConfig:
          $ref: "#/components/schemas/SchedulingConfig"
          description: The scheduling options for this node.
        serviceAccount:
          $ref: "#/components/schemas/ServiceAccount"
          description: The Google Cloud Platform Service Account to be used by the TPU node VMs. If None is specified, the default compute service account will be used.
        shieldedInstanceConfig:
          $ref: "#/components/schemas/ShieldedInstanceConfig"
          description: Shielded Instance options.
        state:
          description: Output only. The current state for the TPU Node.
          enum:
            - STATE_UNSPECIFIED
            - CREATING
            - READY
            - RESTARTING
            - REIMAGING
            - DELETING
            - REPAIRING
            - STOPPED
            - STOPPING
            - STARTING
            - PREEMPTED
            - TERMINATED
            - HIDING
            - HIDDEN
            - UNHIDING
          readOnly: true
          type: string
        symptoms:
          description: Output only. The Symptoms that have occurred to the TPU Node.
          items:
            $ref: "#/components/schemas/Symptom"
          readOnly: true
          type: array
        tags:
          description: Tags to apply to the TPU Node. Tags are used to identify valid sources or targets for network firewalls.
          items:
            type: string
          type: array
      type: object
    NodeSpec:
      description: Details of the TPU node(s) being requested. Users can request either a single node or multiple nodes. NodeSpec provides the specification for node(s) to be created.
      properties:
        node:
          $ref: "#/components/schemas/Node"
          description: Required. The node.
        nodeId:
          description: The unqualified resource name. Should follow the `^[A-Za-z0-9_.~+%-]+$` regex format. This is only specified when requesting a single node. In case of multi-node requests, multi_node_params must be populated instead. It's an error to specify both node_id and multi_node_params.
          type: string
        parent:
          description: Required. The parent resource name.
          type: string
      type: object
    Operation:
      description: This resource represents a long-running operation that is the result of a network API call.
      properties:
        done:
          description: If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
          type: boolean
        error:
          $ref: "#/components/schemas/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.
          description: Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
          type: object
        name:
          description: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
          type: string
        response:
          additionalProperties:
            description: Properties of the object. Contains field @type with type URL.
          description: The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
          type: object
      type: object
    OperationMetadata:
      description: Metadata describing an Operation
      properties:
        apiVersion:
          description: API version.
          type: string
        cancelRequested:
          description: Specifies if cancellation was requested for the operation.
          type: boolean
        createTime:
          description: The time the operation was created.
          format: google-datetime
          type: string
        endTime:
          description: The time the operation finished running.
          format: google-datetime
          type: string
        statusDetail:
          description: Human-readable status of the operation, if any.
          type: string
        target:
          description: Target of the operation - for example projects/project-1/connectivityTests/test-1
          type: string
        verb:
          description: Name of the verb executed by the operation.
          type: string
      type: object
    ProvisioningData:
      description: Further data for the provisioning state.
      properties: {}
      type: object
    QueuedResource:
      description: A QueuedResource represents a request for resources that will be placed in a queue and fulfilled when the necessary resources are available.
      properties:
        bestEffort:
          $ref: "#/components/schemas/BestEffort"
          description: The BestEffort tier.
        guaranteed:
          $ref: "#/components/schemas/Guaranteed"
          description: The Guaranteed tier
        name:
          description: Output only. Immutable. The name of the QueuedResource.
          readOnly: true
          type: string
        queueingPolicy:
          $ref: "#/components/schemas/QueueingPolicy"
          description: The queueing policy of the QueuedRequest.
        reservationName:
          description: "Name of the reservation in which the resource should be provisioned. Format: projects/{project}/locations/{zone}/reservations/{reservation}"
          type: string
        state:
          $ref: "#/components/schemas/QueuedResourceState"
          description: Output only. State of the QueuedResource request.
          readOnly: true
        tpu:
          $ref: "#/components/schemas/Tpu"
          description: Defines a TPU resource.
      type: object
    QueuedResourceState:
      description: QueuedResourceState defines the details of the QueuedResource request.
      properties:
        acceptedData:
          $ref: "#/components/schemas/AcceptedData"
          description: Further data for the accepted state.
        activeData:
          $ref: "#/components/schemas/ActiveData"
          description: Further data for the active state.
        creatingData:
          $ref: "#/components/schemas/CreatingData"
          description: Further data for the creating state.
        deletingData:
          $ref: "#/components/schemas/DeletingData"
          description: Further data for the deleting state.
        failedData:
          $ref: "#/components/schemas/FailedData"
          description: Further data for the failed state.
        provisioningData:
          $ref: "#/components/schemas/ProvisioningData"
          description: Further data for the provisioning state.
        state:
          description: State of the QueuedResource request.
          enum:
            - STATE_UNSPECIFIED
            - CREATING
            - ACCEPTED
            - PROVISIONING
            - FAILED
            - DELETING
            - ACTIVE
            - SUSPENDING
            - SUSPENDED
          type: string
        suspendedData:
          $ref: "#/components/schemas/SuspendedData"
          description: Further data for the suspended state.
        suspendingData:
          $ref: "#/components/schemas/SuspendingData"
          description: Further data for the suspending state.
      type: object
    QueueingPolicy:
      description: Defines the policy of the QueuedRequest.
      properties:
        validAfterDuration:
          description: A relative time after which resources may be created.
          format: google-duration
          type: string
        validAfterTime:
          description: An absolute time at which resources may be created.
          format: google-datetime
          type: string
        validInterval:
          $ref: "#/components/schemas/Interval"
          description: An absolute time interval within which resources may be created.
        validUntilDuration:
          description: A relative time after which resources should not be created. If the request cannot be fulfilled by this time the request will be failed.
          format: google-duration
          type: string
        validUntilTime:
          description: An absolute time after which resources should not be created. If the request cannot be fulfilled by this time the request will be failed.
          format: google-datetime
          type: string
      type: object
    RuntimeVersion:
      description: A runtime version that a Node can be configured with.
      properties:
        name:
          description: The resource name.
          type: string
        version:
          description: The runtime version.
          type: string
      type: object
    SchedulingConfig:
      description: Sets the scheduling options for this node.
      properties:
        preemptible:
          description: Defines whether the node is preemptible.
          type: boolean
        reserved:
          description: Whether the node is created under a reservation.
          type: boolean
      type: object
    ServiceAccount:
      description: A service account.
      properties:
        email:
          description: Email address of the service account. If empty, default Compute service account will be used.
          type: string
        scope:
          description: The list of scopes to be made available for this service account. If empty, access to all Cloud APIs will be allowed.
          items:
            type: string
          type: array
      type: object
    ServiceIdentity:
      description: The per-product per-project service identity for Cloud TPU service.
      properties:
        email:
          description: The email address of the service identity.
          type: string
      type: object
    ShieldedInstanceConfig:
      description: A set of Shielded Instance options.
      properties:
        enableSecureBoot:
          description: Defines whether the instance has Secure Boot enabled.
          type: boolean
      type: object
    SimulateMaintenanceEventRequest:
      description: Request for SimulateMaintenanceEvent.
      properties:
        workerIds:
          description: The 0-based worker ID. If it is empty, worker ID 0 will be selected for maintenance event simulation. A maintenance event will only be fired on the first specified worker ID. Future implementations may support firing on multiple workers.
          items:
            type: string
          type: array
      type: object
    StartNodeRequest:
      description: Request for StartNode.
      properties: {}
      type: object
    Status:
      description: "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors)."
      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 message types for APIs to use.
          items:
            additionalProperties:
              description: Properties of the object. Contains field @type with type URL.
            type: object
          type: array
        message:
          description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
          type: string
      type: object
    StopNodeRequest:
      description: Request for StopNode.
      properties: {}
      type: object
    SuspendedData:
      description: Further data for the suspended state.
      properties: {}
      type: object
    SuspendingData:
      description: Further data for the suspending state.
      properties: {}
      type: object
    Symptom:
      description: A Symptom instance.
      properties:
        createTime:
          description: Timestamp when the Symptom is created.
          format: google-datetime
          type: string
        details:
          description: Detailed information of the current Symptom.
          type: string
        symptomType:
          description: Type of the Symptom.
          enum:
            - SYMPTOM_TYPE_UNSPECIFIED
            - LOW_MEMORY
            - OUT_OF_MEMORY
            - EXECUTE_TIMED_OUT
            - MESH_BUILD_FAIL
            - HBM_OUT_OF_MEMORY
            - PROJECT_ABUSE
          type: string
        workerId:
          description: A string used to uniquely distinguish a worker within a TPU node.
          type: string
      type: object
    Tpu:
      description: Details of the TPU resource(s) being requested.
      properties:
        nodeSpec:
          description: The TPU node(s) being requested.
          items:
            $ref: "#/components/schemas/NodeSpec"
          type: array
      type: object
  securitySchemes:
    Oauth2:
      description: Oauth 2.0 implicit authentication
      flows:
        implicit:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          scopes:
            https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.
      type: oauth2
    Oauth2c:
      description: Oauth 2.0 authorizationCode authentication
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          scopes:
            https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.
          tokenUrl: https://accounts.google.com/o/oauth2/token
      type: oauth2
