Tessell DB Service Instance API

The DB Service Instance API from Tessell — 4 operation(s) for db service instance.

OpenAPI Specification

tessell-db-service-instance-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tessell APIs activity-center DB Service Instance API
  contact:
    email: support@tessell.com
    name: Tessell Inc
    url: https://www.tessell.com
  description: Tessell API Documentation
  termsOfService: https://www.tessell.com/terms
  version: '1.0'
servers:
- url: '{server}'
  variables:
    server:
      default: console.tessell.com
tags:
- name: DB Service Instance
paths:
  /services/{id}/service-instances:
    get:
      tags:
      - DB Service Instance
      summary: View a list of available DB Service instances
      operationId: getTessellServiceInstances
      parameters:
      - name: id
        in: path
        description: service id
        required: true
        style: simple
        schema:
          type: string
          format: uuid
      - name: instance-group-id
        in: query
        description: Filter all instances belonging to specified instance-group-id
        required: false
        style: form
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageOffset'
      - $ref: '#/components/parameters/timeZone'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TessellServiceInstancesResponse'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /services/{service-id}/service-instances/{instance-id}/private-link:
    post:
      tags:
      - DB Service Instance
      summary: Create private link for instance
      operationId: createPrivateLinkForInstance
      parameters:
      - $ref: '#/components/parameters/service-id'
      - $ref: '#/components/parameters/instance-id'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstanceConnectivityUpdateRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/taskSummary'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /services/{service-id}/service-instances/{instance-id}/private-link/{id}:
    patch:
      tags:
      - DB Service Instance
      summary: Update private link for instance
      operationId: updatePrivateLinkForInstance
      parameters:
      - $ref: '#/components/parameters/service-id'
      - $ref: '#/components/parameters/instance-id'
      - $ref: '#/components/parameters/id'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstanceConnectivityUpdateRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/taskSummary'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      tags:
      - DB Service Instance
      summary: Delete private link for instance
      operationId: deletePrivateLinkForInstance
      parameters:
      - $ref: '#/components/parameters/service-id'
      - $ref: '#/components/parameters/instance-id'
      - $ref: '#/components/parameters/id'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/taskSummary'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorOps'
  /services/{service-id}/service-instances/{id}:
    get:
      tags:
      - DB Service Instance
      summary: Get a DB Service instance by Id
      operationId: getTessellServiceInstance
      parameters:
      - $ref: '#/components/parameters/service-id'
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/timeZone'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TessellServiceInstanceDTO'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    TessellServiceInstanceRole:
      type: string
      description: DB Service instance role
      enum:
      - primary
      - read_only_replica
      - failover_replica
      - dr
    ServiceInstanceOracleEngineConfig:
      title: TessellServiceInstanceOracleEngineConfig
      type: object
      nullable: true
      properties:
        accessMode:
          $ref: '#/components/schemas/InstanceAccessMode'
    PrivateLinkPayload:
      type: object
      description: The interface endpoint or Gateway Load Balancer endpoint to connect to your DB service.
      properties:
        servicePrincipals:
          description: The list of AWS account principals that are currently enabled. This is only applicable for DB Services hosted on AWS.
          uniqueItems: true
          type: array
          items:
            type: string
        clientAzureSubscriptionIds:
          description: The list of Azure subscription Ids. This is only applicable for DB Services hosted on AZURE.
          uniqueItems: true
          type: array
          items:
            type: string
            format: uuid
    ApiError:
      type: object
      description: Common error response object for non 2xx responses
      properties:
        code:
          type: string
          description: Status code for the error response
        message:
          type: string
          description: Error message for API response
        resolution:
          type: string
        timestamp:
          type: string
          format: date-time
        contextId:
          type: string
          description: ContextId of API request
        sessionId:
          type: string
          description: SessionId of API request
        tessellErrorCode:
          type: string
          description: Unique error code specific to Tessell
    InstanceConnectivityUpdateRequest:
      type: object
      properties:
        privateLink:
          $ref: '#/components/schemas/PrivateLinkPayload'
    PerfInsightsConfig:
      title: TessellPerfInsightsConfig
      type: object
      properties:
        perfInsightsEnabled:
          type: boolean
        monitoringDeploymentId:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/PerfInsightsStatus'
    AzureNetAppCapacityPoolServiceLevel:
      type: string
      enum:
      - Standard
      - Premium
      - Ultra
      x-enum-varnames:
      - STANDARD
      - PREMIUM
      - ULTRA
    ParameterProfileStatus:
      type: string
      description: Association status of the instance to the parameter profile
      enum:
      - IN_SYNC
      - UPDATING
      - OUT_OF_SYNC
      - PENDING_REBOOT
    InstanceAccessMode:
      type: string
      description: Service instance access mode
      enum:
      - OPEN_MODE
      - MOUNT_MODE
    apiResponse:
      example:
        metadata:
          pagination:
            pageOffset: 0
            pageSize: 6
          records: 1
          timeZone: timeZone
        response: '{}'
      properties:
        metadata:
          $ref: '#/components/schemas/apiMetadata'
        response:
          type: object
      title: ApiResponse
      type: object
    apiPaginationInfo:
      title: apiPaginationInfo
      type: object
      properties:
        pageSize:
          type: integer
          format: int32
        pageOffset:
          type: integer
          format: int32
    PrivateLinkStatus:
      description: Tessell Private Link Status
      type: string
      enum:
      - CREATING
      - ACTIVE
      - FAILED
      - UPDATING
      - UPDATION_SUCCESS
      - UPDATION_FAILED
      - DELETING
      - DELETED
      - DELETION_FAILED
    InstanceStorageConfig:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/StorageProviderType'
        volumeType:
          type: string
          description: Data disk volume type
        fsxNetAppConfig:
          $ref: '#/components/schemas/InstanceFsxNetAppConfig'
        azureNetAppConfig:
          $ref: '#/components/schemas/InstanceAzureNetAppConfig'
    AwsInfraConfig:
      type: object
      title: AwsInfraConfig
      properties:
        awsCpuOptions:
          type: object
          title: AwsCpuOptions
          properties:
            vcpus:
              type: integer
              format: int32
              minimum: 0
              description: Number of vcpus for aws cpu options
    PerfInsightsStatus:
      title: PerfInsightsStatus
      type: string
      description: Perf insights status of a Service Instance
      enum:
      - ENABLED
      - ENABLING
      - DISABLED
      - DISABLING
      - FAILED_ENABLE
      - FAILED_DISABLE
    ApiErrorOps:
      type: object
      description: Common error response object for non 2xx responses of internal or ops APIs
      properties:
        code:
          type: string
          description: Status code for the error response
        message:
          type: string
          description: Error message for API response
        resolution:
          type: string
        timestamp:
          type: string
          format: date-time
        contextId:
          type: string
          description: ContextId of API request
        sessionId:
          type: string
          description: SessionId of API request
        tessellErrorCode:
          type: string
          description: Unique error code specific to Tessell
        userView:
          $ref: '#/components/schemas/TessellExceptionUserView'
    GcpInfraConfig:
      type: object
      title: GcpInfraConfig
      properties:
        gcpCpuOptions:
          type: object
          title: GcpCpuOptions
          properties:
            vcpus:
              type: integer
              format: int32
              minimum: 1
              description: Number of vCPUs for GCP custom machine type
            memory:
              type: integer
              format: int32
              minimum: 1
              description: Memory in MB for GCP custom machine type (optional)
    taskSummary:
      title: taskSummary
      type: object
      properties:
        taskId:
          type: string
          format: uuid
        taskType:
          type: string
        resourceId:
          type: string
          format: uuid
        associatedResourceIds:
          type: array
          items:
            type: string
            format: uuid
        details:
          type: object
          additionalProperties:
            type: string
    TessellServiceInstanceConnectString:
      title: TessellServiceInstanceConnectString
      type: object
      x-computed: true
      properties:
        connectDescriptor:
          type: string
          x-computed: true
        masterUser:
          type: string
          x-computed: true
        endpoint:
          type: string
          x-computed: true
        servicePort:
          type: string
          x-computed: true
    InstanceExadataComputeConfig:
      type: object
      required:
      - infrastructureId
      - infrastructureName
      - vmClusterId
      - vmClusterName
      - vcpus
      - memory
      properties:
        infrastructureId:
          type: string
          format: uuid
        infrastructureName:
          type: string
        vmClusterId:
          type: string
          format: uuid
        vmClusterName:
          type: string
        vcpus:
          type: integer
        memory:
          type: integer
          format: int64
    MonitoringConfig:
      title: MonitoringConfig
      type: object
      x-computed: true
      properties:
        perfInsights:
          $ref: '#/components/schemas/PerfInsightsConfig'
    ComputeProviderType:
      type: string
      enum:
      - AWS_EC2
      - AZURE_VM
      - GCP_GCE
      - OCI_EXADATA
      - AZURE_EXADATA
      - AWS_EXADATA
    TessellResourceUpdateInfo:
      title: TessellResourceUpdateInfo
      description: In progress update information for a Tessell Resource
      properties:
        updateType:
          x-computed: true
          type: string
          description: Type of the update
        referenceId:
          x-computed: true
          type: string
          format: uuid
          description: The reference-id of the update request
        submittedAt:
          x-computed: true
          type: string
          format: date-time
          description: Timestamp when the resource update was requested
        updateInfo:
          x-computed: true
          type: object
          description: The specific details for a Tessell resource that are being updated
          additionalProperties: {}
    TessellServiceInstancesResponse:
      title: TessellServiceInstancesResponse
      allOf:
      - $ref: '#/components/schemas/apiResponse'
      - type: object
        properties:
          response:
            type: array
            items:
              $ref: '#/components/schemas/TessellServiceInstanceDTO'
    SecurityConfigOps:
      type: object
      properties:
        securityProfile:
          $ref: '#/components/schemas/SecurityProfileInfoOps'
    PrivateLinkInfo:
      title: PrivateLinkInfo
      allOf:
      - $ref: '#/components/schemas/PrivateLinkPayload'
      type: object
      properties:
        id:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/PrivateLinkStatus'
        endpointServiceName:
          description: The configured endpoint as a result of configuring the service-principals
          type: string
          x-computed: true
        privateLinkServiceAlias:
          type: string
          description: The Azure private link service alias
    InstanceComputeConfig:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/ComputeProviderType'
        exadataConfig:
          $ref: '#/components/schemas/InstanceExadataComputeConfig'
    InstanceSyncMode:
      type: string
      description: Service instance sync mode
      enum:
      - SYNC
      - ASYNC
    OptionProfile:
      title: OptionProfile
      type: object
      x-computed: true
      properties:
        id:
          type: string
          format: uuid
          description: Tessell generated UUID for the the option profile
        name:
          type: string
          minLength: 1
          maxLength: 128
          description: The name used to identify the option profile
        version:
          type: string
          format: uuid
          description: The version of the option profile associated with the instance
        status:
          $ref: '#/components/schemas/OptionProfileStatus'
    apiMetadata:
      title: apiMetadata
      type: object
      properties:
        timeZone:
          type: string
        records:
          type: integer
          format: int32
        pagination:
          $ref: '#/components/schemas/apiPaginationInfo'
    ServiceInstanceEngineInfo:
      title: TessellServiceInstanceInfo
      description: This field details the DB Service Instance engine configuration details like - access mode
      type: object
      nullable: true
      properties:
        oracleConfig:
          $ref: '#/components/schemas/ServiceInstanceOracleEngineConfig'
    AzureNetAppNetworkFeature:
      description: Azure NetApp network feature configuration for creating volume
      type: string
      enum:
      - Standard
      - Basic
      x-enum-varnames:
      - STANDARD
      - BASIC
    AzureNetAppEncryptionKeySource:
      enum:
      - Microsoft.NetApp
      - Microsoft.KeyVault
      x-enum-varnames:
      - MICROSOFT_NET_APP
      - MICROSOFT_KEY_VAULT
    SecurityProfileInfoOps:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Id of the Security Profile
        versionId:
          type: string
          format: uuid
          description: Version Id of the Security Profile
        status:
          $ref: '#/components/schemas/SecurityProfileSyncStatus'
    ParameterProfile:
      title: ParameterProfile
      type: object
      x-computed: true
      properties:
        id:
          type: string
          format: uuid
          description: Tessell generated UUID for the the parameter profile
        name:
          type: string
          minLength: 1
          maxLength: 128
          description: The name used to identify the parameter profile
        version:
          type: string
          format: uuid
          description: The version of the parameter profile associated with the instance
        status:
          $ref: '#/components/schemas/ParameterProfileStatus'
    TessellServiceInstanceType:
      type: string
      description: DB Service instance type
      enum:
      - DC
      - DR
    TessellServiceInstanceStatus:
      type: string
      description: DB Service instance status
      enum:
      - CREATING
      - DELETING
      - UP
      - DOWN
      - STOPPED
      - REBUILDING
      - REBUILD_FAILED
      - PATCHING
      - PATCH_FAILED
      - UPDATING_PARAMETER_PROFILE
      - UPDATING_OPTION_PROFILE
      - UPDATING_SECURITY_CONFIG
      - OPTION_PROFILE_UPDATE_FAILED
      - PARAMETER_PROFILE_UPDATE_FAILED
      - SECURITY_CONFIG_UPDATE_FAILED
      - REFRESHING
    TessellServiceInstanceSubStatus:
      type: string
      description: DB Service Instance could have a sub status associated along with status
      enum:
      - SECURITY_CONFIG_UPDATE_FAILED
      - UPDATING_SECURITY_CONFIG
    InstanceFsxNetAppConfig:
      type: object
      properties:
        fileSystemName:
          type: string
        svmName:
          type: string
        volumeName:
          type: string
        fileSystemId:
          description: File System Id of the FSx NetApp registered with Tessell
          type: string
          format: uuid
        svmId:
          description: Storage Virtual Machine Id of the FSx NetApp registered with Tessell
          type: string
          format: uuid
    SecurityProfileSyncStatus:
      type: string
      description: Sync status of the security profile applied on an instance/server
      enum:
      - IN_SYNC
      - UPDATING
      - OUT_OF_SYNC
    TessellExceptionUserView:
      title: TessellExceptionUserView
      type: object
      properties:
        message:
          type: string
          description: End-user representation of the message
        resolution:
          type: string
          description: End-user representation of resolution
        errorCode:
          $ref: '#/components/schemas/TessellHTTPErrorCode'
          description: User specific code might be different in some cases with internal code (Say some internal entity is not present, so 404 for Tessell while 500 for end-user
    OptionProfileStatus:
      type: string
      description: Association status of the instance to the option profile
      enum:
      - IN_SYNC
      - UPDATING
      - OUT_OF_SYNC
      - PENDING_REBOOT
    AzureNetAppEncryptionKeyInfo:
      description: Details of encryption key
      type: object
      properties:
        id:
          type: string
          description: Id of the encryption key
          format: uuid
        name:
          type: string
          description: name of the encryption key
        keyVaultCloudResourceId:
          type: string
          description: name of the encryption key vault in cloud
        keySource:
          $ref: '#/components/schemas/AzureNetAppEncryptionKeySource'
    InstanceAzureNetAppConfig:
      description: Service instance level Azure NetApp config
      type: object
      properties:
        azureNetAppName:
          type: string
        capacityPoolName:
          type: string
        volumeName:
          type: string
        azureNetAppId:
          description: Azure NetApp Id registered with Tessell
          type: string
          format: uuid
        capacityPoolId:
          description: Capacity Pool Id of the Azure NetApp registered with Tessell
          type: string
          format: uuid
        delegatedSubnetId:
          description: Delegated Subnet name registered with Tessell for the Azure NetApp volume
          type: string
          format: uuid
        delegatedSubnetName:
          description: Delegated Subnet Id registered with Tessell for the Azure NetApp volume
          type: string
        encryptionKeyInfo:
          $ref: '#/components/schemas/AzureNetAppEncryptionKeyInfo'
        networkFeatures:
          $ref: '#/components/schemas/AzureNetAppNetworkFeature'
        serviceLevel:
          $ref: '#/components/schemas/AzureNetAppCapacityPoolServiceLevel'
    TessellHTTPErrorCode:
      type: object
      properties:
        httpCode:
          type: integer
          description: HTTP code
        code:
          type: string
          description: Tessell's specific code with more context on error
    TessellServiceInstanceContextInfo:
      type: object
      description: Provide more context of Service Instance state
      properties:
        subStatus:
          $ref: '#/components/schemas/TessellServiceInstanceSubStatus'
        description:
          type: string
    StorageProviderType:
      description: Storage Type in the cloud
      enum:
      - AWS_EBS
      - AWS_FSX_NETAPP
      - AWS_HPC
      - AWS_S3
      - AZURE_HPC
      - AZURE_MANAGED_DISK
      - GCP_HYPERDISK
      - GCP_GCS
      - AZURE_BLOB
      - MINIO
      - AZURE_NETAPP
      - OCI_EXADATA
      - AZURE_EXADATA
      - AWS_EXADATA
    TessellServiceInstanceDTO:
      title: TessellServiceInstanceDTO
      type: object
      description: This is a definition of the DB Service Instance object
      required:
      - name
      properties:
        id:
          type: string
          format: uuid
          description: Tessell generated UUID for the DB Service Instance
          x-computed: true
        name:
          type: string
          description: Name of the DB Service Instance
        instanceGroupName:
          type: string
          description: Name of the instance group
        type:
          $ref: '#/components/schemas/TessellServiceInstanceType'
          x-computed: true
          x-enum: true
        role:
          description: DB Service Topology
          $ref: '#/components/schemas/TessellServiceInstanceRole'
          x-computed: true
          x-enum: true
        status:
          $ref: '#/components/schemas/TessellServiceInstanceStatus'
          x-computed: true
          x-enum: true
        tessellServiceId:
          description: DB Service Instance's associated DB Service id
          type: string
          format: uuid
          x-computed: true
        cloud:
          description: DB Service Instance's cloud type
          type: string
          x-computed: true
        region:
          description: DB Service Instance's cloud region
          type: string
          x-computed: true
        availabilityZone:
          x-computed: true
          description: DB Service Instance's cloud availability zone
          type: string
        availabilitySet:
          type: string
          description: The availability set to which the Compute Resource belongs
          minLength: 1
          maxLength: 80
          x-computed: true
        instanceGroupId:
          description: The instance groupd Id
          type: string
          format: uuid
          x-computed: true
        computeType:
          description: The compute used for creation of the Tessell Service Instance
          type: string
          x-computed: true
        awsInfraConfig:
          $ref: '#/components/schemas/AwsInfraConfig'
          x-computed: true
        gcpInfraConfig:
          $ref: '#/components/schemas/GcpInfraConfig'
          x-computed: true
        computeId:
          description: The associated compute identifier
          type: string
          format: uuid
          x-computed: true
        computeName:
          description: The associated compute name
          type: string
        storage:
          description: The storage (in bytes) that has been provisioned for the DB Service instance.
          type: integer
          format: int64
          minimum: 0
          x-computed: true
        dataVolumeIops:
          type: integer
          format: int32
          x-computed: true
        throughput:
          type: integer
          format: int32
          description: Throughput requested for this DB Service instance
          x-computed: true
        enablePerfInsights:
          type: boolean
          x-computed: true
        parameterProfile:
          $ref: '#/components/schemas/ParameterProfile'
          x-computed: true
        optionProfile:
          $ref: '#/components/schemas/OptionProfile'
          x-computed: true
        monitoringConfig:
          $ref: '#/components/schemas/MonitoringConfig'
          x-computed: true
        vpc:
          type: string
          description: The VPC used for creation of the DB Service Instance
          x-computed: true
        publicSubnet:
          type: string
          description: The public subnet used for creation of the DB Service Instance
          x-computed: true
        privateSubnet:
          type: string
          description: The private subnet used for creation of the DB Service Instance
          x-computed: true
        encryptionKey:
          type: string
          description: The encryption key name which is used to encrypt the data at rest
          x-computed: true
        softwareImage:
          type: string
          description: Software Image to be used to create the instance
          x-computed: true
        softwareImageVersion:
          type: string
          description: Software Image Version to be used to create the instance
          x-computed: true
        dateCreated:
          type: string
          description: Timestamp when the entity was created
          format: date-time
          x-computed: true
        connectString:
          $ref: '#/components/schemas/TessellServiceInstanceConnectString'
          x-computed: true
        updatesInProgress:
          description: The updates that are in progress for this resource
          type: array
          x-computed: true
          items:
            $ref: '#/components/schemas/TessellResourceUpdateInfo'
        lastStartedAt:
          description: Timestamp when the service instance was last started at
          type: string
          format: date-time
          x-computed: true
        lastStoppedAt:
          description: Timestamp when the Service Instance was last stopped at
          type: string
          format: date-time
          x-computed: true
        syncMode:
          $ref: '#/components/schemas/InstanceSyncMode'
          x-computed: true
        engineConfiguration:
          $ref: '#/components/schemas/ServiceInstanceEngineInfo'
          x-computed: true
        computeConfig:
          $ref: '#/components/schemas/InstanceComputeConfig'
        storageConfig:
          $ref: '#/components/schemas/InstanceStorageConfig'
        archiveStorageConfig:
          $ref: '#/components/schemas/InstanceStorageConfig'
        privateLinkInfo:
          $ref: '#/components/schemas/PrivateLinkInfo'
        securityConfig:
          $ref: '#/components/schemas/SecurityConfigOps'
        contextInfo:
          $ref: '#/components/schemas/TessellServiceInstanceContextInfo'
  parameters:
    pageOffset:
      name: page-offset
      in: query
      description: Page offset for get query
      required: false
      schema:
        type: integer
        format: int32
        default: 0
    instance-id:
      name: instance-id
      in: path
      required: true
      style: simple
      schema:
        type: string
        format: uuid
    service-id:
      name: service-id
      in: path
      required: true
      style: simple
      schema:
        type: string
        format: uuid
    timeZone:
      name: time-zone
      in: query
      description: Timezone for return data
      required: false
      schema:
        type: string
        default: UTC
    id:
      name: id
      description: Id of entity
      in: path
      style: simple
      required: true
      schema:
        type: string
        format: uuid
    pageSize:
      name: page-size
      in: query
      description: Page size for get query
      required: false
      schema:
        type: integer
        format: int32
        default: 10
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer