Memorystore for Redis API

The Memorystore for Redis API enables programmatic management of fully managed Redis instances on Google Cloud. It supports creating, updating, deleting, and scaling Redis instances, configuring high availability with automatic failover, managing data persistence, and performing version upgrades. The API provides operations for both basic single-node and standard high-availability configurations.

OpenAPI Specification

cloud-memorystore-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Google Cloud Memorystore for Redis API
  description: >-
    The Google Cloud Memorystore for Redis API provides programmatic management
    of fully managed Redis instances on Google Cloud. It enables creating,
    configuring, scaling, and monitoring Redis instances for use as in-memory
    data stores and caches, with support for high availability, automatic
    failover, and data persistence.
  version: v1
  contact:
    name: Google Cloud
    url: https://cloud.google.com/memorystore/docs/redis/reference/rest
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: https://redis.googleapis.com/v1
    description: Memorystore for Redis API v1
tags:
  - name: Instances
    description: Operations on Memorystore Redis instances
paths:
  /projects/{project}/locations/{location}/instances:
    get:
      tags:
        - Instances
      summary: Google Cloud Memorystore List instances
      description: Lists all Redis instances owned by a project in either the specified location or all locations.
      operationId: listInstances
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          description: Use '-' for all locations.
          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/ListInstancesResponse'
      security:
        - oauth2:
            - https://www.googleapis.com/auth/cloud-platform
    post:
      tags:
        - Instances
      summary: Google Cloud Memorystore Create an instance
      description: Creates a Redis instance based on the specified tier and memory size.
      operationId: createInstance
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: instanceId
          in: query
          required: true
          description: The logical name of the Redis instance.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Instance'
      responses:
        '200':
          description: Instance creation initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
      security:
        - oauth2:
            - https://www.googleapis.com/auth/cloud-platform
  /projects/{project}/locations/{location}/instances/{instance}:
    get:
      tags:
        - Instances
      summary: Google Cloud Memorystore Get an instance
      description: Gets the details of a specific Redis instance.
      operationId: getInstance
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: instance
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Instance'
      security:
        - oauth2:
            - https://www.googleapis.com/auth/cloud-platform
    patch:
      tags:
        - Instances
      summary: Google Cloud Memorystore Update an instance
      description: Updates the metadata and configuration of a specific Redis instance.
      operationId: updateInstance
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: instance
          in: path
          required: true
          schema:
            type: string
        - name: updateMask
          in: query
          required: true
          description: Fields to update.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Instance'
      responses:
        '200':
          description: Instance update initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
      security:
        - oauth2:
            - https://www.googleapis.com/auth/cloud-platform
    delete:
      tags:
        - Instances
      summary: Google Cloud Memorystore Delete an instance
      description: Deletes a specific Redis instance. Instance stops serving and data is deleted.
      operationId: deleteInstance
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: instance
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Instance deletion initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
      security:
        - oauth2:
            - https://www.googleapis.com/auth/cloud-platform
  /projects/{project}/locations/{location}/instances/{instance}:upgrade:
    post:
      tags:
        - Instances
      summary: Google Cloud Memorystore Upgrade an instance
      description: Upgrades the Redis instance to a newer Redis version.
      operationId: upgradeInstance
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: instance
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                redisVersion:
                  type: string
                  description: Target Redis version (e.g., REDIS_7_0).
              required:
                - redisVersion
      responses:
        '200':
          description: Instance upgrade initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
      security:
        - oauth2:
            - https://www.googleapis.com/auth/cloud-platform
  /projects/{project}/locations/{location}/instances/{instance}:failover:
    post:
      tags:
        - Instances
      summary: Google Cloud Memorystore Failover an instance
      description: Initiates a failover of the primary node to current replica node for a specific STANDARD tier Cloud Memorystore for Redis instance.
      operationId: failoverInstance
      parameters:
        - name: project
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: instance
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dataProtectionMode:
                  type: string
                  enum:
                    - DATA_PROTECTION_MODE_UNSPECIFIED
                    - LIMITED_DATA_LOSS
                    - FORCE_DATA_LOSS
      responses:
        '200':
          description: Failover initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
      security:
        - oauth2:
            - https://www.googleapis.com/auth/cloud-platform
components:
  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
  schemas:
    Instance:
      type: object
      properties:
        name:
          type: string
          description: Unique name of the resource.
        displayName:
          type: string
          description: An arbitrary user-provided name for the instance.
        labels:
          type: object
          additionalProperties:
            type: string
        locationId:
          type: string
          description: The zone where the instance will be provisioned.
        alternativeLocationId:
          type: string
          description: The alternative zone for a STANDARD tier instance.
        redisVersion:
          type: string
          description: The version of Redis software (e.g., REDIS_7_0).
        reservedIpRange:
          type: string
          description: IP range for the instance.
        host:
          type: string
          description: Hostname or IP address of the exposed Redis endpoint.
        port:
          type: integer
          description: The port number of the exposed Redis endpoint.
        currentLocationId:
          type: string
        createTime:
          type: string
          format: date-time
        state:
          type: string
          enum:
            - STATE_UNSPECIFIED
            - CREATING
            - READY
            - UPDATING
            - DELETING
            - REPAIRING
            - MAINTENANCE
            - IMPORTING
            - FAILING_OVER
        statusMessage:
          type: string
        memorySizeGb:
          type: integer
          description: Redis memory size in GiB.
        authorizedNetwork:
          type: string
          description: The full name of the VPC network to connect the instance to.
        persistenceIamIdentity:
          type: string
        connectMode:
          type: string
          enum:
            - CONNECT_MODE_UNSPECIFIED
            - DIRECT_PEERING
            - PRIVATE_SERVICE_ACCESS
        authEnabled:
          type: boolean
        tier:
          type: string
          enum:
            - TIER_UNSPECIFIED
            - BASIC
            - STANDARD_HA
          description: The service tier of the instance.
        replicaCount:
          type: integer
        readReplicasMode:
          type: string
          enum:
            - READ_REPLICAS_MODE_UNSPECIFIED
            - READ_REPLICAS_DISABLED
            - READ_REPLICAS_ENABLED
        transitEncryptionMode:
          type: string
          enum:
            - TRANSIT_ENCRYPTION_MODE_UNSPECIFIED
            - SERVER_AUTHENTICATION
            - DISABLED
    ListInstancesResponse:
      type: object
      properties:
        instances:
          type: array
          items:
            $ref: '#/components/schemas/Instance'
        nextPageToken:
          type: string
        unreachable:
          type: array
          items:
            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
        response:
          type: object