openapi: 3.0.1
info:
  contact:
    email: onap-discuss@lists.onap.org
    name: ONAP
    url: https://onap.readthedocs.io
  description: SDC API for certifying services (SDCE-4)
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  title: "SPC API: SDCE-4"
  version: "1.0"
servers:
- description: SDCE-4 APIs
  url: /sdc
paths:
  /v1/catalog/{componentCollection}/{componentId}/lifecycleState/{lifecycleOperation}:
    post:
      description: Change Resource lifecycle State
      operationId: changeResourceState
      parameters:
      - description: "validValues: resources / services / products"
        in: path
        name: componentCollection
        required: true
        schema:
          type: string
          enum:
          - resources
          - services
          - products
      - in: path
        name: lifecycleOperation
        required: true
        schema:
          type: string
          enum:
          - "checkout, undoCheckout, checkin, certificationRequest, startCertification,\
            \ failCertification,  cancelCertification, certify"
      - description: id of component to be changed
        in: path
        name: componentId
        required: true
        schema:
          type: string
      - description: id of user initiating the operation
        in: header
        name: USER_ID
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: string
        description: "LifecycleChangeInfo - relevant for checkin, failCertification,\
          \ cancelCertification"
      responses:
        "200":
          description: Resource state changed
        "403":
          description: Restricted operation
        "409":
          description: Resource already exist
        default:
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    allowedMethods:
                      type: array
                      items:
                        type: string
                      uniqueItems: true
                    cookies:
                      type: object
                      additionalProperties:
                        type: object
                        properties:
                          comment:
                            type: string
                          domain:
                            type: string
                          expiry:
                            type: string
                            format: date-time
                          httpOnly:
                            type: boolean
                          maxAge:
                            type: integer
                            format: int32
                          name:
                            type: string
                          path:
                            type: string
                          secure:
                            type: boolean
                          value:
                            type: string
                          version:
                            type: integer
                            format: int32
                    date:
                      type: string
                      format: date-time
                    entity:
                      type: object
                    entityTag:
                      type: object
                      properties:
                        value:
                          type: string
                        weak:
                          type: boolean
                    headers:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          type: object
                    language:
                      type: object
                      properties:
                        country:
                          type: string
                        displayCountry:
                          type: string
                        displayLanguage:
                          type: string
                        displayName:
                          type: string
                        displayScript:
                          type: string
                        displayVariant:
                          type: string
                        extensionKeys:
                          type: array
                          items:
                            type: string
                          uniqueItems: true
                        iso3Country:
                          type: string
                        iso3Language:
                          type: string
                        language:
                          type: string
                        script:
                          type: string
                        unicodeLocaleAttributes:
                          type: array
                          items:
                            type: string
                          uniqueItems: true
                        unicodeLocaleKeys:
                          type: array
                          items:
                            type: string
                          uniqueItems: true
                        variant:
                          type: string
                    lastModified:
                      type: string
                      format: date-time
                    length:
                      type: integer
                      format: int32
                    links:
                      type: array
                      items:
                        type: object
                        properties:
                          params:
                            type: object
                            additionalProperties:
                              type: string
                          rel:
                            type: string
                          rels:
                            type: array
                            items:
                              type: string
                          title:
                            type: string
                          type:
                            type: string
                          uri:
                            type: string
                            format: uri
                          uriBuilder:
                            type: object
                      uniqueItems: true
                    location:
                      type: string
                      format: uri
                    mediaType:
                      type: object
                      properties:
                        parameters:
                          type: object
                          additionalProperties:
                            type: string
                        subtype:
                          type: string
                        type:
                          type: string
                        wildcardSubtype:
                          type: boolean
                        wildcardType:
                          type: boolean
                    metadata:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          type: object
                    status:
                      type: integer
                      format: int32
                    statusInfo:
                      type: object
                      properties:
                        family:
                          type: string
                          enum:
                          - INFORMATIONAL
                          - SUCCESSFUL
                          - REDIRECTION
                          - CLIENT_ERROR
                          - SERVER_ERROR
                          - OTHER
                        reasonPhrase:
                          type: string
                        statusCode:
                          type: integer
                          format: int32
                    stringHeaders:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          type: string
      servers:
      - url: /sdc2/rest
        variables: {}
      tags:
      - SDCE-4 APIs