XSKY s3-load-balancer-groups API

S3LoadBalancerGroupController API

OpenAPI Specification

xsky-s3-load-balancer-groups-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: XMS is the controller of distributed storage system
  version: SDS_4.2.000.0.200302
  title: XMS access-paths s3-load-balancer-groups API
  contact: {}
  license:
    name: Commercial
basePath: /v1
tags:
- name: s3-load-balancer-groups
  description: 'S3LoadBalancerGroupController API

    '
paths:
  /s3-load-balancer-groups/:
    get:
      tags:
      - s3-load-balancer-groups
      description: List s3 load balancer groups
      operationId: ListS3LoadBalancerGroups
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: limit
        in: query
        description: paging param
        required: false
        type: integer
        format: int64
        x-exportParamName: Limit
      - name: offset
        in: query
        description: paging param
        required: false
        type: integer
        format: int64
        x-exportParamName: Offset
      - name: q
        in: query
        description: query param of search
        required: false
        type: string
        x-exportParamName: Q
      - name: sort
        in: query
        description: sort param of search
        required: false
        type: string
        x-exportParamName: Sort
      responses:
        200:
          description: OK
          schema:
            $ref: '#/definitions/S3LoadBalancerGroupsResp'
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
    post:
      tags:
      - s3-load-balancer-groups
      description: Create a s3 load balancer group
      operationId: CreateS3LoadBalancerGroup
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - in: body
        name: body
        description: s3 load balancer group info
        required: true
        schema:
          $ref: '#/definitions/S3LoadBalancerGroupCreateReq'
        x-exportParamName: Body
      responses:
        202:
          description: Accepted
          schema:
            $ref: '#/definitions/S3LoadBalancerGroupResp'
        400:
          description: BadRequest
        500:
          description: InternalServerError
      security:
      - tokenInHeader: []
      - tokenInQuery: []
  /s3-load-balancer-groups/{group_id}:
    get:
      tags:
      - s3-load-balancer-groups
      description: Get s3 load balancer group
      operationId: GetS3LoadBalancerGroup
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: group_id
        in: path
        description: s3 load balancer group id
        required: true
        type: integer
        format: int64
        x-exportParamName: GroupId
      responses:
        200:
          description: OK
          schema:
            $ref: '#/definitions/S3LoadBalancerGroupResp'
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
    delete:
      tags:
      - s3-load-balancer-groups
      description: Delete s3 load balancer group
      operationId: DeleteS3LoadBalancerGroup
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: group_id
        in: path
        description: s3 load balancer group id
        required: true
        type: integer
        format: int64
        x-exportParamName: GroupId
      - name: force
        in: query
        description: forcedly delete or not
        required: false
        type: boolean
        x-exportParamName: Force
      responses:
        202:
          description: Accepted
          schema:
            $ref: '#/definitions/S3LoadBalancerGroupResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInHeader: []
      - tokenInQuery: []
    patch:
      tags:
      - s3-load-balancer-groups
      description: Update a s3 load balancer group
      operationId: UpdateS3LoadBalancerGroup
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: group_id
        in: path
        description: s3 load balancer group id
        required: true
        type: integer
        format: int64
        x-exportParamName: GroupId
      - in: body
        name: body
        description: s3 load balancer group info
        required: true
        schema:
          $ref: '#/definitions/S3LoadBalancerGroupUpdateReq'
        x-exportParamName: Body
      responses:
        202:
          description: Accepted
          schema:
            $ref: '#/definitions/S3LoadBalancerGroupResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
  /s3-load-balancer-groups/{group_id}/s3-load-balancers:
    put:
      tags:
      - s3-load-balancer-groups
      description: add load balancers to group
      operationId: AddS3LoadBalancersToGroup
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: group_id
        in: path
        description: group id
        required: true
        type: integer
        format: int64
        x-exportParamName: GroupId
      - in: body
        name: body
        description: load balancer ids to add
        required: true
        schema:
          $ref: '#/definitions/S3LoadBalancersAddReq'
        x-exportParamName: Body
      responses:
        202:
          description: Accepted
          schema:
            $ref: '#/definitions/S3LoadBalancerGroupResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
    delete:
      tags:
      - s3-load-balancer-groups
      description: remove load balancers from group
      operationId: RemoveS3LoadBalancersFromGroup
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: group_id
        in: path
        description: group id
        required: true
        type: integer
        format: int64
        x-exportParamName: GroupId
      - name: force
        in: query
        description: forcedly remove or not
        required: false
        type: boolean
        x-exportParamName: Force
      - in: body
        name: body
        description: load balancer ids to remove
        required: true
        schema:
          $ref: '#/definitions/S3LoadBalancersRemoveReq'
        x-exportParamName: Body
      responses:
        202:
          description: Accepted
          schema:
            $ref: '#/definitions/S3LoadBalancerGroupResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
  /s3-load-balancer-groups/{group_id}:redeploy:
    post:
      tags:
      - s3-load-balancer-groups
      description: Redeploy a s3 load balancer group
      operationId: RedeployS3LoadBalancerGroup
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: group_id
        in: path
        description: s3 load balancer group id
        required: true
        type: integer
        format: int64
        x-exportParamName: GroupId
      responses:
        202:
          description: Accepted
          schema:
            $ref: '#/definitions/S3LoadBalancerGroupResp'
        400:
          description: BadRequest
        404:
          description: NotFound
        500:
          description: InternalServerError
      security:
      - tokenInQuery: []
      - tokenInHeader: []
definitions:
  S3LoadBalancerGroupCreateReq:
    type: object
    required:
    - s3_load_balancer_group
    properties:
      s3_load_balancer_group:
        $ref: '#/definitions/S3LoadBalancerGroupCreateReq_Group'
    title: S3LoadBalancerGroupCreateReq
    example:
      s3_load_balancer_group:
        https_port: 0
        search_https_port: 5
        search_port: 5
        port: 6
        roles:
        - roles
        - roles
        name: name
        description: description
        web_console_endpoint: web_console_endpoint
        s3_load_balancers:
        - ip: ip
          interface_name: interface_name
          vip: vip
          host_id: 1
        - ip: ip
          interface_name: interface_name
          vip: vip
          host_id: 1
        sync_port: 2
  S3LoadBalancerGroup:
    type: object
    properties:
      action_status:
        type: string
      create:
        type: string
        format: date-time
      description:
        type: string
      https_port:
        type: integer
        format: int64
      id:
        type: integer
        format: int64
      name:
        type: string
      port:
        type: integer
        format: int64
      roles:
        type: array
        items:
          type: string
      search_https_port:
        type: integer
        format: int64
      search_port:
        type: integer
        format: int64
      ssl_certificate:
        $ref: '#/definitions/SSLCertificate_Nestview'
      status:
        type: string
      sync_port:
        type: integer
        format: int64
      update:
        type: string
        format: date-time
      web_console_endpoint:
        type: string
    title: S3LoadBalancerGroup
    description: S3LoadBalancerGroup groups s3 load balancer with vips
    example:
      ssl_certificate:
        force_https: true
        name: name
        id: 2
      search_port: 5
      roles:
      - roles
      - roles
      description: description
      update: '2000-01-23T04:56:07.000+00:00'
      https_port: 0
      search_https_port: 5
      port: 1
      name: name
      create: '2000-01-23T04:56:07.000+00:00'
      web_console_endpoint: web_console_endpoint
      id: 6
      sync_port: 7
      action_status: action_status
      status: status
  SSLCertificate_Nestview:
    type: object
    properties:
      force_https:
        type: boolean
        description: redirect http request to https
      id:
        type: integer
        format: int64
        description: certificate id
      name:
        type: string
        description: certificate name
    title: SSLCertificate_Nestview
    example:
      force_https: true
      name: name
      id: 2
  S3LoadBalancerGroupUpdateReq_Group:
    type: object
    properties:
      description:
        type: string
        description: group description
      https_port:
        type: integer
        format: int64
        description: group access https port
      name:
        type: string
        description: group name
      port:
        type: integer
        format: int64
        description: group access http port
      roles:
        type: array
        description: group roles
        items:
          type: string
      search_https_port:
        type: integer
        format: int64
        description: group search https port
      search_port:
        type: integer
        format: int64
        description: group search http port
      sync_port:
        type: integer
        format: int64
        description: group sync http port
      web_console_endpoint:
        type: string
    title: S3LoadBalancerGroupUpdateReq_Group
    example:
      https_port: 0
      search_https_port: 1
      search_port: 5
      port: 6
      roles:
      - roles
      - roles
      name: name
      description: description
      web_console_endpoint: web_console_endpoint
      sync_port: 5
  S3LoadBalancerGroupCreateReq_Group:
    type: object
    required:
    - name
    - s3_load_balancers
    properties:
      description:
        type: string
        description: group description
      https_port:
        type: integer
        format: int64
        description: group access https port
      name:
        type: string
        description: group name
      port:
        type: integer
        format: int64
        description: group access http port
      roles:
        type: array
        description: group roles
        items:
          type: string
      s3_load_balancers:
        type: array
        description: s3 load balancers
        items:
          $ref: '#/definitions/S3LoadBalancerGroupCreateReq_Group_LoadBalancers_Elt'
      search_https_port:
        type: integer
        format: int64
        description: group search https port
      search_port:
        type: integer
        format: int64
        description: group search http port
      sync_port:
        type: integer
        format: int64
        description: group sync http port
      web_console_endpoint:
        type: string
    title: S3LoadBalancerGroupCreateReq_Group
    example:
      https_port: 0
      search_https_port: 5
      search_port: 5
      port: 6
      roles:
      - roles
      - roles
      name: name
      description: description
      web_console_endpoint: web_console_endpoint
      s3_load_balancers:
      - ip: ip
        interface_name: interface_name
        vip: vip
        host_id: 1
      - ip: ip
        interface_name: interface_name
        vip: vip
        host_id: 1
      sync_port: 2
  S3LoadBalancerGroupUpdateReq:
    type: object
    required:
    - s3_load_balancer_group
    properties:
      s3_load_balancer_group:
        $ref: '#/definitions/S3LoadBalancerGroupUpdateReq_Group'
    title: S3LoadBalancerGroupUpdateReq
    example:
      s3_load_balancer_group:
        https_port: 0
        search_https_port: 1
        search_port: 5
        port: 6
        roles:
        - roles
        - roles
        name: name
        description: description
        web_console_endpoint: web_console_endpoint
        sync_port: 5
  S3LoadBalancersAddReq_LoadBalancers_Elt:
    type: object
    required:
    - host_id
    - vip
    properties:
      host_id:
        type: integer
        format: int64
        description: host of load balancer
      interface_name:
        type: string
        description: vip will be bound to interface, exclusive to ip
      ip:
        type: string
        description: vip will be bound to interface of the gateway ip, exclusive to interface_name
      vip:
        type: string
        description: vip of load balancer
    title: S3LoadBalancersAddReq_LoadBalancers_Elt
    example:
      ip: ip
      interface_name: interface_name
      vip: vip
      host_id: 0
  S3LoadBalancersRemoveReq:
    type: object
    required:
    - s3_load_balancer_ids
    properties:
      s3_load_balancer_ids:
        type: array
        items:
          type: integer
          format: int64
    title: S3LoadBalancersRemoveReq
    example:
      s3_load_balancer_ids:
      - 0
      - 0
  S3LoadBalancerGroupsResp:
    type: object
    required:
    - s3_load_balancer_groups
    properties:
      s3_load_balancer_groups:
        type: array
        description: s3 load balancer groups
        items:
          $ref: '#/definitions/S3LoadBalancerGroup'
    title: S3LoadBalancerGroupsResp
    example:
      s3_load_balancer_groups:
      - ssl_certificate:
          force_https: true
          name: name
          id: 2
        search_port: 5
        roles:
        - roles
        - roles
        description: description
        update: '2000-01-23T04:56:07.000+00:00'
        https_port: 0
        search_https_port: 5
        port: 1
        name: name
        create: '2000-01-23T04:56:07.000+00:00'
        web_console_endpoint: web_console_endpoint
        id: 6
        sync_port: 7
        action_status: action_status
        status: status
      - ssl_certificate:
          force_https: true
          name: name
          id: 2
        search_port: 5
        roles:
        - roles
        - roles
        description: description
        update: '2000-01-23T04:56:07.000+00:00'
        https_port: 0
        search_https_port: 5
        port: 1
        name: name
        create: '2000-01-23T04:56:07.000+00:00'
        web_console_endpoint: web_console_endpoint
        id: 6
        sync_port: 7
        action_status: action_status
        status: status
  S3LoadBalancerGroupCreateReq_Group_LoadBalancers_Elt:
    type: object
    required:
    - host_id
    - vip
    properties:
      host_id:
        type: integer
        format: int64
        description: host id of load balancer
      interface_name:
        type: string
        description: vip will be bounded to interface, exclusive to ip
      ip:
        type: string
        description: vip will be bounded to interface of the gateway ip, exclusive to interface name
      vip:
        type: string
        description: vip of load balancer
    title: S3LoadBalancerGroupCreateReq_Group_LoadBalancers_Elt
    example:
      ip: ip
      interface_name: interface_name
      vip: vip
      host_id: 1
  S3LoadBalancerGroupResp:
    type: object
    required:
    - s3_load_balancer_group
    properties:
      s3_load_balancer_group:
        description: s3 load balancer group
        $ref: '#/definitions/S3LoadBalancerGroup'
    title: S3LoadBalancerGroupResp
    example:
      s3_load_balancer_group:
        ssl_certificate:
          force_https: true
          name: name
          id: 2
        search_port: 5
        roles:
        - roles
        - roles
        description: description
        update: '2000-01-23T04:56:07.000+00:00'
        https_port: 0
        search_https_port: 5
        port: 1
        name: name
        create: '2000-01-23T04:56:07.000+00:00'
        web_console_endpoint: web_console_endpoint
        id: 6
        sync_port: 7
        action_status: action_status
        status: status
  S3LoadBalancersAddReq:
    type: object
    required:
    - s3_load_balancers
    properties:
      s3_load_balancers:
        type: array
        items:
          $ref: '#/definitions/S3LoadBalancersAddReq_LoadBalancers_Elt'
    title: S3LoadBalancersAddReq
    example:
      s3_load_balancers:
      - ip: ip
        interface_name: interface_name
        vip: vip
        host_id: 0
      - ip: ip
        interface_name: interface_name
        vip: vip
        host_id: 0
securityDefinitions:
  tokenInHeader:
    description: auth by token
    type: apiKey
    name: Xms-Auth-Token
    in: header
  tokenInQuery:
    description: auth by token
    type: apiKey
    name: token
    in: query