openapi: 3.0.1
info:
  contact:
    email: onap-discuss@lists.onap.org
    name: ONAP
    url: https://onap.readthedocs.io
  description: SDC API for distribution subscription (SDCE-6)
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  title: "SPC API: SDCE-6"
  version: "1.0"
servers:
- description: SDCE-6 APIs
  url: /sdc
paths:
  /v1/artifactTypes:
    get:
      description: Artifact types list
      operationId: getValidArtifactTypes
      parameters:
      - description: X-ECOMP-RequestID header
        in: header
        name: X-ECOMP-RequestID
        schema:
          type: string
      - description: X-ECOMP-InstanceID header
        in: header
        name: X-ECOMP-InstanceID
        required: true
        schema:
          type: string
      - description: The username and password
        in: header
        name: Authorization
        required: true
        schema:
          type: string
      - description: The username and password
        in: header
        name: Accept
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
          description: Artifact types list fetched successfully
        "400":
          description: Missing  'X-ECOMP-InstanceID'  HTTP header - POL5001
        "401":
          description: ECOMP component  should authenticate itself  and  to  re-send  again  HTTP  request  with
            its Basic Authentication credentials - POL5002
        "403":
          description: ECOMP component is not authorized - POL5003
        "405":
          description: "Method  Not Allowed  :  Invalid HTTP method type used to \
            \ register for  distribution ( POST,PUT,DELETE  will be rejected) - POL4050"
        "500":
          description: The registration failed due to internal SDC problem or Cambria
            Service failure ECOMP Component  should  continue the attempts to  register
            for  distribution - POL5000
      servers:
      - url: /sdc
        variables: {}
      summary: Fetches available artifact types list
      tags:
      - SDCE-6 APIs
  /v1/distributionKafkaData:
    get:
      description: Kafka data
      operationId: getKafkaData
      parameters:
      - description: X-ECOMP-RequestID header
        in: header
        name: X-ECOMP-RequestID
        schema:
          type: string
      - description: X-ECOMP-InstanceID header
        in: header
        name: X-ECOMP-InstanceID
        required: true
        schema:
          type: string
      - description: Determines the format of the body of the response
        in: header
        name: Accept
        schema:
          type: string
      - description: The username and password
        in: header
        name: Authorization
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/KafkaDataResponse'
          description: ECOMP component is authenticated and kafka endpoint and topic
            list is returned
        "400":
          description: Missing 'X-ECOMP-InstanceID'  HTTP header - POL5001
        "401":
          description: ECOMP component  should authenticate itself  and  to  re-send  again  HTTP  request  with
            its credentials  for  Basic Authentication - POL5002
        "403":
          description: ECOMP component is not authorized - POL5003
        "405":
          description: "Method  Not Allowed: Invalid HTTP method type used ( PUT,DELETE,POST\
            \ will be rejected) - POL4050"
        "500":
          description: The GET request failed either due to internal SDC problem or
            Cambria Service failure. ECOMP Component should continue the attempts
            to get the needed information - POL5000
      servers:
      - url: /sdc
        variables: {}
      summary: return the kafka cluster and topic list
      tags:
      - SDCE-6 APIs
  /v1/distributionUebCluster:
    get:
      description: UEB Server List
      operationId: getUebServerList
      parameters:
      - description: X-ECOMP-RequestID header
        in: header
        name: X-ECOMP-RequestID
        schema:
          type: string
      - description: X-ECOMP-InstanceID header
        in: header
        name: X-ECOMP-InstanceID
        required: true
        schema:
          type: string
      - description: Determines the format of the body of the response
        in: header
        name: Accept
        schema:
          type: string
      - description: The username and password
        in: header
        name: Authorization
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServerListResponse'
          description: ECOMP component is authenticated and list of Cambria API server’s
            FQDNs is returned
        "400":
          description: Missing  'X-ECOMP-InstanceID'  HTTP header - POL5001
        "401":
          description: ECOMP component  should authenticate itself  and  to  re-send  again  HTTP  request  with
            its credentials  for  Basic Authentication - POL5002
        "403":
          description: ECOMP component is not authorized - POL5003
        "405":
          description: "Method  Not Allowed: Invalid HTTP method type used ( PUT,DELETE,POST\
            \ will be rejected) - POL4050"
        "500":
          description: The GET request failed either due to internal SDC problem or
            Cambria Service failure. ECOMP Component should continue the attempts
            to get the needed information - POL5000
      servers:
      - url: /sdc
        variables: {}
      summary: return the available UEB Server List
      tags:
      - SDCE-6 APIs
  /v1/registerForDistribution:
    post:
      description: Subscription status
      operationId: registerForDistribution
      parameters:
      - description: X-ECOMP-RequestID header
        in: header
        name: X-ECOMP-RequestID
        schema:
          type: string
      - description: X-ECOMP-InstanceID header
        in: header
        name: X-ECOMP-InstanceID
        required: true
        schema:
          type: string
      - description: Determines the format of the body of the response
        in: header
        name: Accept
        schema:
          type: string
      - description: Determines the format of the body of the request
        in: header
        name: Content-Type
        required: true
        schema:
          type: string
      - description: Length  of  the request body
        in: header
        name: Content-Length
        required: true
        schema:
          type: string
      - description: The username and password
        in: header
        name: Authorization
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TopicRegistrationResponse'
          description: ECOMP component is successfully registered for distribution
        "400":
          description: "Invalid Body :  Specified 'distrEnvName' doesn’t exist - POL4137"
        "401":
          description: ECOMP component  should authenticate itself  and  to  re-send  again  HTTP  request  with
            its Basic Authentication credentials - POL5002
        "403":
          description: ECOMP component is not authorized - POL5003
        "405":
          description: "Method  Not Allowed  :  Invalid HTTP method type used to \
            \ register for  distribution ( PUT,DELETE,GET  will be rejected) - POL4050"
        "500":
          description: The registration failed due to internal SDC problem or Cambria
            Service failure ECOMP Component  should  continue the attempts to  register
            for  distribution - POL5000
      servers:
      - url: /sdc
        variables: {}
      summary: Subscribes for distribution notifications
      tags:
      - SDCE-6 APIs
  /v1/unRegisterForDistribution:
    post:
      description: Subscription status
      operationId: unRegisterForDistribution
      parameters:
      - description: X-ECOMP-RequestID header
        in: header
        name: X-ECOMP-RequestID
        schema:
          type: string
      - description: X-ECOMP-InstanceID header
        in: header
        name: X-ECOMP-InstanceID
        required: true
        schema:
          type: string
      - description: Determines the format of the body of the response
        in: header
        name: Accept
        schema:
          type: string
      - description: Determines the format of the body of the request
        in: header
        name: Content-Type
        required: true
        schema:
          type: string
      - description: Length  of  the request body
        in: header
        name: Content-Length
        required: true
        schema:
          type: string
      - description: The username and password
        in: header
        name: Authorization
        required: true
        schema:
          type: string
      responses:
        "204":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TopicUnregistrationResponse'
          description: ECOMP component is successfully unregistered
        "400":
          description: "Invalid Body :  Specified 'distrEnvName' doesn’t exist - POL4137"
        "401":
          description: ECOMP component  should authenticate itself  and  to  re-send  again  HTTP  request  with
            its Basic Authentication credentials - POL5002
        "403":
          description: ECOMP component is not authorized - POL5003
        "405":
          description: "Method  Not Allowed  :  Invalid HTTP method type used to \
            \ register for  distribution ( PUT,DELETE,GET will be rejected) - POL4050"
        "500":
          description: The registration failed due to internal SDC problem or Cambria
            Service failure ECOMP Component  should  continue the attempts to  register
            for  distribution - POL5000
      servers:
      - url: /sdc
        variables: {}
      summary: Removes from subscription for distribution notifications
      tags:
      - SDCE-6 APIs
components:
  schemas:
    KafkaDataResponse:
      type: object
      properties:
        distrNotificationTopicName:
          type: string
        distrStatusTopicName:
          type: string
        kafkaBootStrapServer:
          type: string
    RegistrationRequest:
      type: object
      properties:
        apiPublicKey:
          type: string
        distEnvEndPoints:
          type: array
          items:
            type: string
        distrEnvName:
          type: string
        isConsumerToSdcDistrStatusTopic:
          type: boolean
        managerApiPublicKey:
          type: string
        managerApiSecretKey:
          type: string
    ServerListResponse:
      type: object
      properties:
        uebServerList:
          type: array
          items:
            type: string
    TopicRegistrationResponse:
      type: object
      properties:
        distrNotificationTopicName:
          type: string
        distrStatusTopicName:
          type: string
    TopicUnregistrationResponse:
      type: object
      properties:
        distrNotificationTopicName:
          type: string
        distrStatusTopicName:
          type: string
        notificationUnregisterResult:
          type: string
          enum:
          - OK
          - CONNNECTION_ERROR
          - NOT_FOUND
          - TOPIC_ALREADY_EXIST
          - OBJECT_NOT_FOUND
          - INTERNAL_SERVER_ERROR
          - AUTHENTICATION_ERROR
          - UNKNOWN_HOST_ERROR
        statusUnregisterResult:
          type: string
          enum:
          - OK
          - CONNNECTION_ERROR
          - NOT_FOUND
          - TOPIC_ALREADY_EXIST
          - OBJECT_NOT_FOUND
          - INTERNAL_SERVER_ERROR
          - AUTHENTICATION_ERROR
          - UNKNOWN_HOST_ERROR