Google Cloud Spanner Databases API

Operations on Spanner databases

OpenAPI Specification

google-cloud-spanner-databases-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Google Cloud Spanner Databases API
  description: The Cloud Spanner API provides programmatic access to Google Cloud Spanner, a globally distributed, strongly consistent relational database service. It enables management of instances, databases, sessions, and execution of SQL queries and DML statements with full ACID transaction support.
  version: v1
  contact:
    name: Google Cloud
    url: https://cloud.google.com/spanner/docs/reference/rest
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://spanner.googleapis.com/v1
  description: Cloud Spanner API v1
tags:
- name: Databases
  description: Operations on Spanner databases
paths:
  /projects/{project}/instances/{instance}/databases:
    get:
      tags:
      - Databases
      summary: Google Cloud Spanner List databases
      description: Lists Cloud Spanner databases.
      operationId: listDatabases
      parameters:
      - name: project
        in: path
        required: true
        schema:
          type: string
      - name: instance
        in: path
        required: true
        schema:
          type: string
      - name: pageSize
        in: query
        schema:
          type: integer
      - name: pageToken
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDatabasesResponse'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-platform
        - https://www.googleapis.com/auth/spanner.admin
    post:
      tags:
      - Databases
      summary: Google Cloud Spanner Create a database
      description: Creates a new Cloud Spanner database and starts preparing it to begin serving.
      operationId: createDatabase
      parameters:
      - name: project
        in: path
        required: true
        schema:
          type: string
      - name: instance
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDatabaseRequest'
      responses:
        '200':
          description: Database creation initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-platform
        - https://www.googleapis.com/auth/spanner.admin
  /projects/{project}/instances/{instance}/databases/{database}:
    get:
      tags:
      - Databases
      summary: Google Cloud Spanner Get a database
      description: Gets the state of a Cloud Spanner database.
      operationId: getDatabase
      parameters:
      - name: project
        in: path
        required: true
        schema:
          type: string
      - name: instance
        in: path
        required: true
        schema:
          type: string
      - name: database
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Database'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-platform
        - https://www.googleapis.com/auth/spanner.admin
    delete:
      tags:
      - Databases
      summary: Google Cloud Spanner Drop a database
      description: Drops (deletes) a Cloud Spanner database.
      operationId: dropDatabase
      parameters:
      - name: project
        in: path
        required: true
        schema:
          type: string
      - name: instance
        in: path
        required: true
        schema:
          type: string
      - name: database
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Database dropped successfully
      security:
      - oauth2:
        - https://www.googleapis.com/auth/cloud-platform
        - https://www.googleapis.com/auth/spanner.admin
components:
  schemas:
    ListDatabasesResponse:
      type: object
      properties:
        databases:
          type: array
          items:
            $ref: '#/components/schemas/Database'
        nextPageToken:
          type: string
    Operation:
      type: object
      properties:
        name:
          type: string
        done:
          type: boolean
        metadata:
          type: object
        error:
          type: object
          properties:
            code:
              type: integer
            message:
              type: string
    CreateDatabaseRequest:
      type: object
      properties:
        createStatement:
          type: string
        extraStatements:
          type: array
          items:
            type: string
        databaseDialect:
          type: string
      required:
      - createStatement
    Database:
      type: object
      properties:
        name:
          type: string
        state:
          type: string
          enum:
          - STATE_UNSPECIFIED
          - CREATING
          - READY
          - READY_OPTIMIZING
        createTime:
          type: string
          format: date-time
        versionRetentionPeriod:
          type: string
        earliestVersionTime:
          type: string
          format: date-time
        defaultLeader:
          type: string
        databaseDialect:
          type: string
          enum:
          - DATABASE_DIALECT_UNSPECIFIED
          - GOOGLE_STANDARD_SQL
          - POSTGRESQL
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/cloud-platform: Full access to Cloud Platform
            https://www.googleapis.com/auth/spanner.admin: Administer Spanner databases
            https://www.googleapis.com/auth/spanner.data: View and manage Spanner data