Tessell azure-netapp-admin-controller API

The azure-netapp-admin-controller API from Tessell — 11 operation(s) for azure-netapp-admin-controller.

OpenAPI Specification

tessell-azure-netapp-admin-controller-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tessell APIs activity-center azure-netapp-admin-controller 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: azure-netapp-admin-controller
paths:
  /storages/governance/azure-netapp/discovery:
    post:
      tags:
      - azure-netapp-admin-controller
      summary: Discover Azure NetApp Accounts(s)
      operationId: discoverAzureNetApps
      parameters:
      - $ref: '#/components/parameters/subscription-query'
      - $ref: '#/components/parameters/region-query'
      - 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/DiscoveryAzureNetAppResponse'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /storages/governance/azure-netapp/{anf-id}/capacity-pools/discovery:
    post:
      tags:
      - azure-netapp-admin-controller
      summary: Discover Capacity Pools(s) for a Azure NetApp
      operationId: discoverAzureNetAppCapacityPools
      parameters:
      - $ref: '#/components/parameters/anf-id-path'
      - $ref: '#/components/parameters/subscription-query'
      - $ref: '#/components/parameters/region-query'
      - 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/DiscoveryAzureNetAppCapacityPoolResponse'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /storages/governance/azure-netapp/register:
    post:
      tags:
      - azure-netapp-admin-controller
      summary: Register Azure NetApp if not already registered
      operationId: registerAzureNetApp
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterAzureNetAppPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiStatus'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      parameters:
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
  /storages/governance/azure-netapp/{anf-id}/capacity-pools/register:
    post:
      tags:
      - azure-netapp-admin-controller
      summary: Register Azure NetApp Capacity Pools if not already registered
      operationId: registerAzureNetAppCapacityPools
      parameters:
      - $ref: '#/components/parameters/anf-id-path'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterAzureNetAppCapacityPoolPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiStatus'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /storages/governance/azure-netapp/{anf-id}/deregister:
    delete:
      tags:
      - azure-netapp-admin-controller
      summary: De-Register Azure NetApp
      operationId: deRegisterAzureNetApp
      parameters:
      - $ref: '#/components/parameters/anf-id-path'
      - 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/apiStatus'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /storages/governance/azure-netapp/{anf-id}/capacity-pools/{cp-id}/deregister:
    delete:
      tags:
      - azure-netapp-admin-controller
      summary: De-Register Azure NetApp
      operationId: deRegisterAzureNetAppCapacityPool
      parameters:
      - $ref: '#/components/parameters/anf-id-path'
      - $ref: '#/components/parameters/cp-id-path'
      - 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/apiStatus'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /storages/governance/azure-netapp/policy:
    get:
      tags:
      - azure-netapp-admin-controller
      summary: Get the Azure NetApp policy to enable access of resources from azure
      operationId: getAzureNetAppPolicy
      parameters:
      - $ref: '#/components/parameters/subscriptionNameMandatory'
      - 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/AzureNetAppPermissionPolicy'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /storages/governance/azure-netapp:
    get:
      tags:
      - azure-netapp-admin-controller
      summary: Get Azure NetApp(s) registered with Tessell
      operationId: getAzureNetApps
      parameters:
      - $ref: '#/components/parameters/azure-netapp-statuses'
      - $ref: '#/components/parameters/azure-netapp-skip-statuses'
      - $ref: '#/components/parameters/subscription-query'
      - $ref: '#/components/parameters/region-query'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageOffset'
      - 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/AzureNetAppsResponse'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /storages/governance/azure-netapp/{anf-id}:
    get:
      tags:
      - azure-netapp-admin-controller
      summary: Get Azure NetApp registered with Tessell
      operationId: getAzureNetApp
      parameters:
      - $ref: '#/components/parameters/anf-id-path'
      - 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/AzureNetAppDTO'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /storages/governance/azure-netapp/quotas:
    get:
      tags:
      - azure-netapp-admin-controller
      summary: Get the Azure NetApp Quotas for a region
      operationId: getAzureNetAppQuotaForSubscription
      parameters:
      - name: subscription
        description: Subscription name
        in: query
        required: true
        schema:
          type: string
      - name: region
        description: Region name
        in: query
        required: true
        schema:
          type: string
      - 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/AzureNetAppQuotaResponse'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /storages/governance/azure-netapp/{anf-id}/sync-with-cloud:
    post:
      tags:
      - azure-netapp-admin-controller
      summary: Sync details of Azure NetApp with cloud
      operationId: syncAzureNetApp
      parameters:
      - $ref: '#/components/parameters/anf-id-path'
      - 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/apiStatus'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    apiStatus:
      title: apiStatus
      type: object
      properties:
        status:
          type: string
        message:
          type: string
    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
    AzureNetAppCapacityPoolServiceLevel:
      type: string
      enum:
      - Standard
      - Premium
      - Ultra
      x-enum-varnames:
      - STANDARD
      - PREMIUM
      - ULTRA
    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
    AzureNetAppDTO:
      type: object
      description: This is a definition for Tessell Azure-NetApp Object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          description: The name of the Azure NetApp
        status:
          $ref: '#/components/schemas/AzureNetAppStatus'
        subscription:
          type: string
          description: The name of the subscription
          minLength: 1
          maxLength: 128
        owner:
          type: string
          description: The name of the Azure NetApp owner in Tessell
        infrastructureInfo:
          $ref: '#/components/schemas/AzureNetAppInfrastructureInfo'
        capacityPoolInfo:
          type: array
          items:
            $ref: '#/components/schemas/AzureNetAppCapacityPoolDTO'
        dateSynced:
          type: string
          description: Timestamp when the entity was synced to cloud
          format: date-time
        dateCreated:
          type: string
          description: Timestamp when the entity was created
          format: date-time
        dateModified:
          type: string
          description: Timestamp when the entity was modified
          format: date-time
    RegisterAzureNetAppPayload:
      type: object
      properties:
        azureNetAppId:
          type: string
          description: The id of the FSx NetApp
        subscription:
          type: string
          description: The name of the subscription
          minLength: 1
          maxLength: 128
        region:
          type: string
          description: Region of the FSx NetApp
          minLength: 1
          maxLength: 128
        capacityPoolIds:
          type: array
          maxItems: 100
          items:
            type: string
    apiPaginationInfo:
      title: apiPaginationInfo
      type: object
      properties:
        pageSize:
          type: integer
          format: int32
        pageOffset:
          type: integer
          format: int32
    cloudType:
      description: Tessell supported cloud types
      type: string
      enum:
      - AWS
      - AZURE
      - GCP
      - OCI
    AzureNetAppsResponse:
      allOf:
      - $ref: '#/components/schemas/apiResponse'
      type: object
      properties:
        response:
          type: array
          items:
            $ref: '#/components/schemas/AzureNetAppDTO'
    AzureNetAppStatus:
      enum:
      - AVAILABLE
      - DOWN
      - DELETING
    AzureNetAppInfrastructureInfo:
      type: object
      description: This is definition for Azure NetApp's infrastructure info
      properties:
        cloud:
          $ref: '#/components/schemas/cloudType'
        region:
          type: string
          description: Region of the FSx NetApp File System
        encryptionKey:
          $ref: '#/components/schemas/AzureNetAppEncryptionKeyInfo'
    DiscoveryAzureNetAppCapacityPoolDTO:
      type: object
      properties:
        cloudCapacityPoolId:
          type: string
        capacityPoolName:
          type: string
          description: The name of the Azure NetApp Capacity pool
        cloudStatus:
          type: string
          description: Status of Azure NetApp Capacity pool in cloud
        noOfVolumes:
          type: integer
          description: Number of volumes provisioned
          format: int32
          minimum: 0
          default: 0
        registeredWithTessell:
          type: boolean
        configurations:
          $ref: '#/components/schemas/AzureNetAppCapacityPoolConfigurationInfo'
        dateCreated:
          type: string
          description: Timestamp when the entity was created
          format: date-time
    apiMetadata:
      title: apiMetadata
      type: object
      properties:
        timeZone:
          type: string
        records:
          type: integer
          format: int32
        pagination:
          $ref: '#/components/schemas/apiPaginationInfo'
    AzurePermissionPolicy:
      description: Permission policy for Azure NetApp
      type: object
      properties:
        permissions:
          description: Permission policy for Azure NetApp
          type: object
          properties:
            actions:
              items:
                maxLength: 1024
                minLength: 1
                type: string
              type: array
            notActions:
              type: array
              items:
                type: string
            dataActions:
              type: array
              items:
                type: string
            notDataActions:
              type: array
              items:
                type: string
    DiscoveryAzureNetAppCapacityPoolResponse:
      type: object
      properties:
        azureNetAppId:
          type: string
          format: uuid
        azureNetAppName:
          type: string
          description: The name of the Azure NetApp
        cloudStatus:
          type: string
          description: Status of Azure NetApp in cloud
        capacityPoolInfo:
          type: array
          items:
            $ref: '#/components/schemas/DiscoveryAzureNetAppCapacityPoolDTO'
    AzureNetAppCapacityPoolStatus:
      enum:
      - AVAILABLE
      - DOWN
      - DELETING
    AzureNetAppVolumeDTO:
      type: object
      description: This is the configuration of FSx NetApp Volume
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          description: The name of the volume
        status:
          $ref: '#/components/schemas/AzureNetAppVolumeStatus'
        configurations:
          type: object
          properties:
            storageSizeInBytes:
              type: integer
              format: int64
              minimum: 0
            maxThroughput:
              type: integer
              format: int64
              minimum: 0
        noOfSnapshots:
          type: integer
          format: int32
          minimum: 0
        dateCreated:
          type: string
          description: Timestamp when the entity was created
          format: date-time
        dateModified:
          type: string
          description: Timestamp when the entity was created
          format: date-time
    AzureNetAppEncryptionKeySource:
      enum:
      - Microsoft.NetApp
      - Microsoft.KeyVault
      x-enum-varnames:
      - MICROSOFT_NET_APP
      - MICROSOFT_KEY_VAULT
    RegisterAzureNetAppCapacityPoolPayload:
      type: object
      properties:
        capacityPoolIds:
          type: array
          maxItems: 100
          items:
            type: string
    AzureNetAppVolumeStatus:
      enum:
      - CREATING
      - DELETING
      - READY
    AzureNetAppCapacityPoolConfigurationInfo:
      properties:
        availableStorage:
          type: integer
          description: Available storage in bytes
          format: int64
          minimum: 0
          default: 0
        availableThroughput:
          type: integer
          description: Available throughput in MiB per second
          format: int32
          minimum: 0
          default: 0
        maxThroughput:
          type: integer
          description: Max throughput in MiB per second
          format: int32
          minimum: 0
          default: 0
        maxStorage:
          type: integer
          description: Max storage in bytes
          format: int64
          minimum: 0
          default: 0
        usedStorage:
          type: integer
          description: Used storage in bytes
          format: int64
          minimum: 0
          default: 0
        serviceLevel:
          $ref: '#/components/schemas/AzureNetAppCapacityPoolServiceLevel'
        qosType:
          $ref: '#/components/schemas/AzureNetAppCapacityPoolQosType'
    AzureNetAppQuotaResponse:
      allOf:
      - $ref: '#/components/schemas/apiResponse'
      type: object
      properties:
        response:
          type: array
          items:
            $ref: '#/components/schemas/AzureNetAppQuota'
    AzureNetAppQuota:
      type: object
      description: Quotas available in Azure-NetApp.
      properties:
        cloudId:
          type: string
        name:
          type: string
        type:
          type: string
        currentValue:
          type: integer
          format: int32
          default: 0
          minimum: 0
        defaultValue:
          type: integer
          format: int32
          default: 0
          minimum: 0
    AzureNetAppCapacityPoolQosType:
      type: string
      enum:
      - Auto
      - Manual
      x-enum-varnames:
      - AUTO
      - MANUAL
    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'
    AzureNetAppCapacityPoolDTO:
      type: object
      description: This is a definition for Tessell Azure NetApp Capacity Pool Object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          description: The name of the Azure NetApp Capacity Pool
        azureNetappId:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/AzureNetAppCapacityPoolStatus'
        cloudResourceId:
          type: string
        configurations:
          $ref: '#/components/schemas/AzureNetAppCapacityPoolConfigurationInfo'
        volumeInfo:
          type: array
          items:
            $ref: '#/components/schemas/AzureNetAppVolumeDTO'
        dateCreated:
          type: string
          description: Timestamp when the entity was created
          format: date-time
        dateModified:
          type: string
          description: Timestamp when the entity was created
          format: date-time
    DiscoveryAzureNetAppDTO:
      type: object
      properties:
        cloudAzureNetAppId:
          type: string
        azureNetAppName:
          type: string
          description: The name of the Azure NetApp
        cloudStatus:
          type: string
          description: Status of Azure NetApp in cloud
        resourceGroup:
          type: string
          description: Resource Group of Azure NetApp in cloud
        capacityPoolInfo:
          type: array
          items:
            $ref: '#/components/schemas/DiscoveryAzureNetAppCapacityPoolDTO'
        infrastructureInfo:
          type: object
          properties:
            cloud:
              $ref: '#/components/schemas/cloudType'
            region:
              type: string
        registeredWithTessell:
          type: boolean
          default: false
    DiscoveryAzureNetAppResponse:
      allOf:
      - $ref: '#/components/schemas/apiResponse'
      type: object
      properties:
        response:
          type: array
          items:
            $ref: '#/components/schemas/DiscoveryAzureNetAppDTO'
    AzureNetAppPermissionPolicy:
      description: Representation of Azure NetApp policy
      type: object
      properties:
        azureSubscriptionPolicy:
          description: Permission policy for Azure Subscription for NetApp
          type: object
          properties:
            name:
              description: Subscription name in Azure.
              maxLength: 2048
              minLength: 1
              type: string
            policy:
              description: Reference to AzurePermissionPolicy
              $ref: '#/components/schemas/AzurePermissionPolicy'
        azureResourceGroupPolicy:
          description: Permission policy for Azure Resource Group for NetApp
          type: object
          properties:
            name:
              description: Resource group name in Azure.
              maxLength: 2048
              minLength: 1
              type: string
            policy:
              description: Reference to AzurePermissionPolicy
              $ref: '#/components/schemas/AzurePermissionPolicy'
  parameters:
    subscriptionNameMandatory:
      name: subscription-name
      in: query
      description: Subscription name
      required: true
      schema:
        type: string
        minLength: 1
        maxLength: 64
        example: Sub-Experiments-2
    pageOffset:
      name: page-offset
      in: query
      description: Page offset for get query
      required: false
      schema:
        type: integer
        format: int32
        default: 0
    azure-netapp-statuses:
      name: statuses
      description: Statuses of Azure NetApp to be included
      in: query
      required: false
      schema:
        type: array
        uniqueItems: true
        items:
          $ref: '#/components/schemas/AzureNetAppStatus'
    cp-id-path:
      name: cp-id
      description: Tessell Generated UUID of the Capacity-Pool
      in: path
      style: simple
      required: true
      schema:
        type: string
        format: uuid
    anf-id-path:
      name: anf-id
      description: Tessell Generated UUID of the Azure NetApp
      in: path
      style: simple
      required: true
      schema:
        type: string
        format: uuid
      example: 12345678-abcd-1234-abcd-1234abcd5678
    subscription-query:
      name: subscription
      description: Filter the entities based on cloud-subscription
      in: query
      required: false
      schema:
        type: string
    pageSize:
      name: page-size
      in: query
      description: Page size for get query
      required: false
      schema:
        type: integer
        format: int32
        default: 10
    azure-netapp-skip-statuses:
      name: skip-statuses
      description: Statuses of Azure NetApp to be skipped
      in: query
      required: false
      schema:
        type: array
        uniqueItems: true
        items:
          $ref: '#/components/schemas/AzureNetAppStatus'
    region-query:
      name: region
      description: Filter the entities based on cloud-region
      in: query
      required: false
      schema:
        type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer