swagger: '2.0'
info:
  version: ADM 13.0
  title: ADM StyleBooks APIs
  description: StyleBooks REST APIs
host: 'adm.cloud.com'
#basePath: /stylebook/nitro/v2/config
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
##Please do not uncomment the commented lines. The commented lines are used by a different module to generate the spec

#-------------------------------------------- Parameters in Path Section ------------------------------------------------------
parameters:
  authHeaderParam:
    in: header
    name: Authorization
    type: string
    required: true
    description: Session ID for authentication.Should be mentioned in the format CwcAuth bearer=sessionIdValue.
  iscloudHeaderParam:
    in: header
    name: isCloud
    type: string
    description: Set the value to true in case of Cloud services. Set to false for on-premises deployment.
    required: true
  namespaceParam:
    name: namespace
    in: path
    type: string
    description: Namespace of the StyleBook.
    required: true
  versionParam:
    name: version
    in: path
    type: string
    description: Version of the StyleBook.
    required: true
  nameParam:
    name: name
    in: path
    type: string
    description: Name of the StyleBook.
    required: true
  configpackIDParam:
    name: configpack-id
    in: path
    type: string
    description: ConfigPack ID.
    required: true
  resourceParam:
    name: resource
    in: path
    type: string
    description: Resource represents stylebooks/configpacks.
    required: true
  resourceIDParam:
    name: resource-id
    in: path
    type: string
    description: Unique ID of the resource.
    required: true
  dataSourceIdParam:
    name: datasource-id
    in: path
    type: string
    description: Data Source ID.
    required: true
  dataSourceCollectionTypeNameParam:
    name: collection-type-name
    in: path
    type: string
    description: Data Source collection type name.
    required: true
  dataSourceTypeIdParam:
    name: datasource-type-id
    in: path
    type: string
    description: Data Source type ID.
    required: true
  collectionTypeIdParam:
    name: collection-type-id
    in: path
    type: string
    description: Data Source collection type ID.
    required: true
  collectionIdParam:
    name: collection-id
    in: path
    type: string
    description: Data Source collection ID.
    required: true
  jobIDParam: 
    name: job-id  
    in: path  
    type: string  
    description: Job ID.
    required: true
  tagNameParam:
    name: tag-name
    in: path
    type: string
    description: Tag name.
    required: true
  repositoryNameParam:
    name: repository-name
    in: path
    type: string
    description: Repository name.
    required: true
  repositoryIdParam:
    name: repository-id
    in: path
    type: string
    description: Repository ID.
    required: true
  customerid:
    in: path
    name: customerid
    type: string
    required: true
    description: Customer ID of the user.
  requestExecutionMode:
    name: mode
    in: query
    type: string
    description: Mode of the method can be async or sync
    required: false
    enum:
      - async
      - sync
  modeOfMethod:
    name: mode
    in: query
    type: string
    description: Mode of the method can be dry_run, async or sync.
    required: false
    enum:
      - async
      - dry_run
      - sync
    default: async
  configPackId:
    name: configpackid
    in: query
    type: string
    description: ConfigPack ID.
    required: false
  pageNo:
    name: pageno
    in: query
    type: number
    description: Page number to be fetched for the request.
    required: false
  pageSize:
    name: pagesize
    in: query
    type: number
    description: Page size to be fetched for the request.
    required: false
  reconcileConfig:
    name: reconcile
    in: query
    type: boolean
    description: Reconcile the configpack actual state drift from the desired state.
    required: false
  forceOperation:
    name: force
    in: query
    type: boolean
    description: Process the request despite any exceptions.
    required: false
  countResponse:
    name: count
    in: query
    type: boolean
    description: Retrieve count of the objects in the response.
    required: false
  bestEffort:
    name: best_effort
    in: query
    type: boolean
    description: |
          This flag is used when the configuration has more than one ADC target. It specifies the behavior of the config operation in the case where the operation fails on one of the ADC targets. If best_effort is true, then the config operation will skip ADC targets for which the operation failed and continue updating other targets. If best_effort is false, then the config operation is "atomic": it either succeeds on all targets, or fails. 
    required: false
  skipSaveOnTargets:
    name: skip_save_on_targets
    in: query
    type: boolean
    description: Skip saving the configuration in ns conf of the ADC instance.
    required: false
  compressType:
    name: compress_type
    in: query
    type: string
    enum:
      - zip
      - tgz
    description: Identify the compress type of the resource being retieved.
    required: false
  dependencies:
    name: dependencies
    in: query
    type: boolean
    description: Get the dependencies of a stylebook being retieved.
    required: false
  status:
    name: status
    in: query
    type: string
    description: Status of a configpack that is being returned.
    required: false
paths:
  #------------------------------------------- Start of StyleBook APIs ---------------------------------------------------------
  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks:
    get:
      summary: "Fetch the info of all StyleBooks in the system"
      description: Retrieves description of all StyleBooks in the system.
      operationId: GetAllStylebooks
      produces:
        - application/json
      tags:
        - StyleBooks
      parameters:
        - $ref: '#/parameters/pageNo'
        - $ref: '#/parameters/pageSize'
        - $ref: '#/parameters/countResponse'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '200':
          description: Successful retrieval of all StyleBooks in the system.
          schema:
            $ref: '#/definitions/GetAllStyleBooksResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/namespaces:
    get:
      summary: "Fetch a unique list of namespaces of all StyleBooks in the system."
      description: Retrieves distinct Namespaces of all StyleBooks in the system.
      operationId: GetDistinctNamespacesStylebooks
      produces:
        - application/json
      tags:
        - StyleBooks
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '200':
          description: Successful retrieval of all distinct Namespaces of StyleBooks and the versions they support in the system.
          schema:
            $ref: '#/definitions/GetDistinctNamespacesStyleBooksResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/{namespace}/{version}/{name}:
    get:
      summary: "Fetch the stylebook with name, namespace, version as specified in the request."
      description: Retrieve a StyleBook.
      operationId: GetStylebook
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/dependencies'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      tags:
        - StyleBooks
      responses:
        '200':
          description: Successful retrieval of a StyleBook definition.
          schema:
            $ref: '#/definitions/GetStyleBookResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    delete:
      summary: "Delete an imported stylebook with name, namespace, version as specified in the request."
      description: >-
        Deletes a StyleBook from the system. Only imported StyleBooks can be
        deleted.
      operationId: DeleteStylebook
      produces:
        - application/json
      tags:
        - StyleBooks
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/dependencies'
        - $ref: '#/parameters/forceOperation'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '204':
          description: Successful removal of a StyleBook.
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/{namespace}/{version}/{name}/schema:
    get:
      summary: "Fetch the schema of the stylebook with name, namespace, version as specified in the request."
      description: Retrieve the schema for a StyleBook (its Parameters description).
      operationId: GetStylebookSchema
      produces:
        - application/json
      tags:
        - StyleBooks
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '200':
          description: Successful retrieval of a StyleBook schema.
          schema:
            $ref: '#/definitions/GetStyleBookSchemaResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/{namespace}/{version}/{name}/actions/clone:
    post:
      summary: "Clones the StyleBook and import the new one into ADM"
      description: Clone the StyleBook and import the new one into ADM.
      operationId: CloneStyleBook
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - attachment
      tags:
        - StyleBooks
      responses:
        '202':
          description: Successful initiation of Clone of StyleBooks in async mode of operation
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody' 
  

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/{namespace}/{version}/{name}/actions/compute_clone_mappings:
    post:
      summary: "Computes the suggested clone mappings"
      description: Computes the suggested clone mappings.
      operationId: ComputeCloneStyleBook
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - attachment
      tags:
        - StyleBooks
      responses:
        '200':
          description: Successful recommendation for cloning a StyleBook
          schema:
            $ref: '#/definitions/ComputeCloneStyleBookResponseBody'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'


  #---------------------------------------------- End of StyleBook APIs ---------------------------------------------------------

  #---------------------------------------------- Start of ConfigPack APIs ------------------------------------------------------

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/{namespace}/{version}/{name}/configpacks:
    get:
      summary: "Fetch the info of all ConfigPacks in the system belonging to StyleBook with namespace, version, name specified in the request."
      description: Retrieve all Configpacks of a StyleBook.
      operationId: GetConfigpacks
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/pageNo'
        - $ref: '#/parameters/pageSize'
        - $ref: '#/parameters/countResponse'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - Configpacks
      responses:
        '200':
          description: Successful Retrieval of all ConfigPacks of a StyleBook.
          schema:
            $ref: '#/definitions/GetConfigpacksResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks:
    get:
      summary: "Fetch the info of all ConfigPacks in the system."
      description: Retrieve all ConfigPacks in the system.
      operationId: GetAllConfigpacks
      produces:
        - application/json
      tags:
        - Configpacks
      parameters:
        - $ref: '#/parameters/status'
        - $ref: '#/parameters/pageNo'
        - $ref: '#/parameters/pageSize'
        - $ref: '#/parameters/countResponse'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '200':
          description: Successful retrieval of all ConfigPacks in the system.
          schema:
            $ref: '#/definitions/GetConfigpacksResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    post:
      summary: "Create a ConfigPack in the system belonging to StyleBook with namespace, version, name as specified in the request"
      description: Create a ConfigPack of a StyleBook.
      operationId: CreateConfigpack
      produces:
        - application/json
      tags:
        - Configpacks
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/modeOfMethod'
        - $ref: '#/parameters/bestEffort'
        - $ref: '#/parameters/skipSaveOnTargets'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/CreateConfigpackRequestBody'
      responses:
        '201':
          description: Successful creation/dry_run of a ConfigPack.
          schema:
            $ref: '#/definitions/CreateConfigpackSynchronousResponseBody'
        '202':
          description: Successful initiation of a ConfigPack create process with asynchronous mode of operation.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/{configpack-id}:
    get:
      summary: "Fetch the info of the ConfigPack in the system with given configpack-id in the request."
      description: Retrieve a ConfigPack of a StyleBook.
      operationId: GetConfigpackWithNameNamespaceVersion
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - Configpacks
      responses:
        '200':
          description: Successful retrieval of the Configpack.
          schema:
            $ref: '#/definitions/GetConfigpackResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    put:
      summary: "Update the ConfigPack in the system with given configpack-id and belonging to StyleBook with namespace, version, name as specified in the request."
      description: Update a ConfigPack.
      operationId: UpdateConfigpack
      produces:
        - application/json
      tags:
        - Configpacks
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/modeOfMethod'
        - $ref: '#/parameters/bestEffort'
        - $ref: '#/parameters/skipSaveOnTargets'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/CreateConfigpackRequestBody'
      responses:
        '200':
          description: Successful dry run/update of a ConfigPack.
          schema:
            $ref: '#/definitions/CreateConfigpackSynchronousResponseBody'
        '202':
          description: Successful initiation of update of a ConfigPack with asynchronous mode of operation.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    delete:
      summary: "Delete the ConfigPack in the system with given configpack-id and belonging to StyleBook with namespace, version, name as specified in the request."
      description: Delete a ConfigPack.
      operationId: DeleteConfigpack
      produces:
        - application/json
      tags:
        - Configpacks
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/forceOperation'
        - $ref: '#/parameters/requestExecutionMode'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '202' :
          description: Successful initiation to delete a ConfigPack with asynchronous mode of operation.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '204':
          description: Successful removal of a ConfigPack.
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/{configpack-id}/audit:
    get:
      summary: "Fetch the result of the last audit on the Configpack with given configpack-id which contains the diff between the configpack objects data stored in the DB and the objects deployed on ADC."
      description: Gets the audit data of Configpack for the objects present.
      operationId: GetAuditConfigpack
      produces:
        - application/json
      tags:
        - Configpacks
      parameters:
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '200':
          description: Successful retrieval of the Audit data of a ConfigPack.
          schema:
            $ref: '#/definitions/GetAuditConfigpackResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/{configpack-id}/graph:
    get:
      summary: "Fetch the object graph of the ConfigPack in the system with given configpack-id and belonging to StyleBook with namespace, version, name as specified in the request."
      description: Retrieve the objects created for a configpack.
      operationId: GetGraphSchema
      produces:
        - application/json
      tags:
        - Configpacks
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '200':
          description: Successful retrieval of objects created in a configpack.
          schema:
            $ref: '#/definitions/GetConfigGraphResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  #----------------------------------------------- End of ConfigPack APIs --------------------------------------------------------------------

  #---------------------------------------------------- actions APIs for StyleBooks -------------------------------------------------------------------------

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/actions/import:
    post:
      summary: "Import a new custom StyleBook into the system."
      description: Uploads (Imports) a new StyleBook.
      operationId: ImportStylebook
      produces:
        - application/json
      tags:
        - StyleBooks
      parameters:
        - $ref: '#/parameters/requestExecutionMode'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/ImportStyleBookRequestBody'
      responses:
        '200':
          description: Successful import of a StyleBook.
          schema:
            $ref: '#/definitions/ImportStyleBookSynchronousResponseBody'
        '202':
          description: Successful initiation of the process for importing a StyleBook.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/{namespace}/{version}/{name}/actions/computeSchema:
    post:
      summary: "Fetch the updated schema for a StyleBook based on given parameter values (updated Parameters description)."
      description: Computes and returns the updated schema for a StyleBook based on given parameter values so far (updated Parameters description). Used mainly by the UI to update parameters based on parameter conditions.
      operationId: GetStylebooksUpdatedSchema
      produces:
        - application/json
      tags:
        - StyleBooks
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/computeSchemaRequestBody'
      responses:
        '200':
          description: Successful retrieval of updated schema for a StyleBook.
          schema:
            $ref: '#/definitions/computeSchemaResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/actions/validate:
    post:
      summary: "Validate the StyleBook definition without importing the StyleBook."
      description: Validates the contents of a StyleBook without importing it.
      operationId: ValidateStylebook
      produces:
        - application/json
      tags:
        - StyleBooks
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/ValidateStyleBookRequestBody'
      responses:
        '200':
          description: Valid StyleBook.
          schema:
            $ref: '#/definitions/ValidateStyleBookSynchronousResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
            
  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/{namespace}/{version}/{name}/actions/update:
    post:
      summary: "Sync the git repository present on the ADM with repository-name as specified in the request body."
      description: Update the definition of the current StyleBook.
      operationId: UpdateStyleBook
      produces:
        - application/json
      tags:
        - StyleBooks
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/requestExecutionMode'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/UpdateStyleBookRequestBody'
      responses:
        '200':
          description: Successful update of the StyleBook.
          schema:
            $ref: '#/definitions/UpdateStyleBookSynchronousResponseBody'
        '202':
          description: Started asynchronous Job  to update the StyleBook.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/{namespace}/{version}/{name}/actions/download:
    post:
      summary: "Download the StyleBook bundle as a tarball."
      description: >-
          Download the StyleBook as tarball.
      operationId: DownloadStyleBook
      parameters:
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/dependencies'
        - $ref: '#/parameters/compressType'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - attachment
      tags:
        - StyleBooks
      responses:
        '200':
          description: Successful download of StyleBook. The Content-Type returned is 'application/zip'. 
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody' 

  #----------------------------------------------- end of actions APIs for StyleBooks ------------------------------------------------------------------------          
                
  #---------------------------------------------------- actions APIs for ConfigPacks -------------------------------------------------------------------------

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/actions/upgrade:
    post:
      description: Upgrade the list of Configpacks from current StyleBook to another StyleBook.
      operationId: UpgradeConfigpacks
      produces:
        - application/json
      tags:
        - Configpacks
      parameters:
        - $ref: '#/parameters/requestExecutionMode'
        - $ref: '#/parameters/customerid'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/UpgradeConfigpacksListRequestBody'
      responses:
        '200':
          description: Successful ConfigPacks upgrade to a new StyleBook.
          #TODO: Please add a description of a synchronous response payload here
        '202':
          description: Successful initiation of ConfigPacks upgrade to a new StyleBook.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/{configpack-id}/actions/upgrade:
    post:
      summary: "Upgrade the Configpack with given configpack-id belonging to current StyleBook to a different StyleBook."
      description: Upgrade the Configpack from current StyleBook to another StyleBook.
      operationId: UpgradeConfigpack
      produces:
        - application/json
      tags:
        - Configpacks
      parameters:
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/modeOfMethod'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/UpgradeConfigpackRequestBody'
      responses:
        '200':
          description: Successful ConfigPack upgrade to a new StyleBook.
          #TODO: Please add a description of a synchronous response payload here
          schema:
            $ref: '#/definitions/UpgradeConfigpackResponseBody'
        '202':
          description: Successful Initiation of a ConfigPack upgrade to a new StyleBook.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/{configpack-id}/actions/detach_targets:
    post:
      summary: "Detach target instances from the configpack to another configpack."
      description: Detach target instances from the configpack to another configpack.
      operationId: DetachTargetFromConfigpack
      produces:
        - application/json
      tags:
        - Configpacks
      parameters:
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/DetachTargetsRequestBody'
      responses:
        '200':
          description: Detached target instances from the configpack.
          #TODO: Please add a description of a synchronous response payload here
          schema:
            $ref: '#/definitions/DetachTargetsResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/actions/import:
    post:
      summary: "Import the Configpack json file and create/update a configpack using the json data."
      description: Import the Configpack details as a json file.
      operationId: ImportConfigpack
      produces:
        - application/json
      tags:
        - Configpacks
      parameters:
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/requestExecutionMode'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/ImportConfigpackRequestBody'
      responses:
        '200':
          description: Successful import of a ConfigPack.
          schema:
            $ref: '#/definitions/CreateConfigpackSynchronousResponseBody'
        '202':
          description: Successful import of a ConfigPack in asynchronous mode.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/{configpack-id}/actions/export:
    post:
      summary: "Download the Configpack bundle as a tarball."
      description: >-
          Download the Configpack as a tarball.
      operationId: ExportConfigpack
      parameters:
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: false
          x-is-map: false
          schema:
            $ref: '#/definitions/GetExportConfig'
      produces:
        - attachment
      tags:
        - Configpacks
      responses:
        '200':
          description: Successful download of Configpack.
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/{configpack-id}/actions/audit:
    post:
      summary: "Perform an Audit on the Configpack with given configpack-id to determine the diff between the configpack objects' data stored in the DB and the objects deployed on ADC."
      description: Audit the Configpack for the objects present.
      operationId: AuditConfigpack
      parameters:
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/requestExecutionMode'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - Configpacks
      responses:
        '200':
          description: Successful Audit of a ConfigPack.
          schema:
            $ref: '#/definitions/GetAuditConfigpackResponseBody'
        '202':
          description: Successful initiation of audit operation in asynchronous mode.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'


  #-------------------------------------------- End of actions APIs for configpacks -------------------------------------------------------------------


  #--------------------------------------------------- Start of Repositories APIs ---------------------------------------------------------------------

  /massvc/{customerid}/stylebook/nitro/v2/config/repositories:
    get:
      summary: "Fetch all the info of existing GIT repositories present on the ADM."
      description: >-
          List all exisiting GIT repositories present on the ADM.
      operationId: GetAllRepository
      produces:
        - application/json
      tags:
        - Repositories
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '200':
          description: Successfully list all GIT repository present on the ADM.
          schema:
            $ref: '#/definitions/GetAllRepository'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    post:
      summary: "Add a repository to ADM."
      description: >-
          Add a repository to ADM.
      operationId: AddRepository
      produces:
        - application/json
      tags:
        - Repositories
      parameters:
        - $ref: '#/parameters/repositoryNameParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/AddIndividualRepository'
      responses:
        '200':
          description: Successful addition of the GIT repository to the ADM.
          schema:
            $ref: '#/definitions/GetIndividualRepository'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/repositories/{repository-id}:
    get:
      summary: "Fetch all the info of GIT repository present on the ADM with repository-name as specified in the request."
      description: Retrieves the repository.
      operationId: GetRepository
      parameters:
        - $ref: '#/parameters/repositoryIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - Repositories
      responses:
        '200':
          description: Successful retrieval of the attributes of the repository.
          schema:
            $ref: '#/definitions/GetIndividualRepository'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

    put:
      summary: "Update the info of GIT repository present on the ADM with repository-name as specified in the request."
      description: >-
          Modify the added git repository to the ADM.
      operationId: PutRepository
      produces:
        - application/json
      tags:
        - Repositories
      parameters:
        - $ref: '#/parameters/repositoryIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/AddIndividualRepository'
      responses:
        '200':
          description: Successful modification of the attributes of the git repository.
          schema:
            $ref: '#/definitions/GetIndividualRepository'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

    delete:
      summary: "Delete GIT repository present on the ADM with repository-name as specified in the request."
      description: Delete the repository.
      operationId: DeleteRepository
      parameters:
        - $ref: '#/parameters/repositoryIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
       - application/json
      tags:
        - Repositories
      responses:
        '202':
          description: Successful initiation of deletion of the Repository.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '204':
          description: Successful removal of a Repository.
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/repositories/{repository-id}/files:
    get:
      summary: "Fetch the stylebook files in GIT repository present on the ADM with repository-name as specified in the request."
      description: Retrieves the files synced from the remote repository.
      operationId: GetRepositoryFiles
      parameters:
        - $ref: '#/parameters/repositoryIdParam'
        - $ref: '#/parameters/resourceParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - Repositories
      responses:
        '200':
          description: Successful file in the repository.
          schema:
            $ref: '#/definitions/RepositoryListFiles'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
  #--------------------------------------------------- End of Repositories APIs -----------------------------------------------------------------------

  #--------------------------------------------------- Start of Datasources API -----------------------------------------------------------------------

  /massvc/{customerid}/stylebook/nitro/v2/config/data/collection_types/{collection-type-name}/schema:
    get:
      description: Retrieves the schema of the given data source collection.
      operationId: GetBuiltinDataSourceSchema
      parameters:
        - $ref: '#/parameters/dataSourceCollectionTypeNameParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful retrieval of the attributes of the data source collection.
          schema:
            $ref: '#/definitions/GetDataSourceCollectionSchema'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/data/datasources/{datasource-id}/collection_types/{collection-type-name}/massvc/{customerid}/stylebook/nitro/v2/config/collections:
    get:
      description: Computes the specified collection data of given data source.
      operationId: ComputeDataSourceCollectionData
      parameters:
        - $ref: '#/parameters/dataSourceIdParam'
        - $ref: '#/parameters/dataSourceCollectionTypeNameParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful retrieval of the data of the given data source collection.
          schema:
            $ref: '#/definitions/ComputeDataSourceCollectionDataResponse'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/data/datasource_types:
    get:
      description: Returns the available list of data source types.
      operationId: GetDatasourceTypeList
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful retrieval of the available list of data source types.
          schema:
            $ref: '#/definitions/GetDatasourceTypeResponse'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    post:
      description: Adds a new data source type.
      operationId: AddDatasourceType
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/GetIndividualDatasourceType'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '201':
          description: Successful creation of the given data source type.
          schema:
            $ref: '#/definitions/GetIndividualDatasourceType'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/data/datasource_types/{datasource-type-id}:
    get:
      description: Returns the given data source type.
      operationId: GetDatasourceTypeResource
      parameters:
        - $ref: '#/parameters/dataSourceTypeIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful retrieval of the given data source type.
          schema:
            $ref: '#/definitions/GetIndividualDatasourceType'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    put:
      description: Updates a given data source type.
      operationId: UpdateDatasourceType
      parameters:
        - $ref: '#/parameters/dataSourceTypeIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/GetIndividualDatasourceType'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful update of the given data source type.
          schema:
            $ref: '#/definitions/GetIndividualDatasourceType'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    delete:
      summary: "Delete data source type present on the ADM with data source type ID as specified in the request."
      description: Delete the data source type ID.
      operationId: DeleteDtasourceTypeId
      parameters:
        - $ref: '#/parameters/dataSourceTypeIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
       - application/json
      tags:
        - datasources
      responses:
        '204':
          description: Successful removal of a Data source Type.
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/data/collection_types:
    get:
      description: Returns the available list of collection types.
      operationId: GetCollectionTypeList
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful retrieval of the available list of data source collection types.
          schema:
            $ref: '#/definitions/GetCollectionTypeResponse'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    post:
      description: Adds a new collection type to the list of collection types.
      operationId: AddCollectionType
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/GetIndividualCollectionType'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '201':
          description: Successful creation of the given data source type.
          schema:
            $ref: '#/definitions/GetIndividualCollectionType'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/data/collection_types/{collection-type-id}:
    get:
      description: Returns the given collection type.
      operationId: GetCollectionTypeResource
      parameters:
        - $ref: '#/parameters/collectionTypeIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful retrieval of the given data source collection type.
          schema:
            $ref: '#/definitions/GetIndividualCollectionType'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    put:
      description: Returns the available list of collection types.
      operationId: UpdateCollectionType
      parameters:
        - $ref: '#/parameters/collectionTypeIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/GetIndividualCollectionType'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful update of the given data source collection type.
          schema:
            $ref: '#/definitions/GetIndividualCollectionType'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    delete:
      summary: "Delete data source collection type present on the ADM with data source collection type ID as specified in the request"
      description: Delete the collection type ID.
      operationId: DeleteCollectionTypeId
      parameters:
        - $ref: '#/parameters/collectionTypeIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
       - application/json
      tags:
        - datasources
      responses:
        '204':
          description: Successful removal of a Datasource collection type.
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/data/datasources:
    get:
      description: Returns the available list of data sources.
      operationId: GetDatasourceList
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful retrieval of the available list of data sources.
          schema:
            $ref: '#/definitions/GetDatasourceResponse'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    post:
      description: Returns the available list of data sources.
      operationId: AddDatasource
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/GetIndividualDatasource'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '201':
          description: Successful creation of the given data sources.
          schema:
            $ref: '#/definitions/GetIndividualDatasource'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/data/datasources/{datasource-id}:
    get:
      description: Returns the given datasource.
      operationId: GetDatasource
      parameters:
        - $ref: '#/parameters/dataSourceIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful retrieval of the given data source.
          schema:
            $ref: '#/definitions/GetIndividualDatasource'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    put:
      description: Updates the given data source.
      operationId: UpdateDatasource
      parameters:
        - $ref: '#/parameters/dataSourceIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/GetIndividualDatasource'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful update of the given data source.
          schema:
            $ref: '#/definitions/GetIndividualDatasource'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    delete:
      summary: "Delete data source present on the ADM with datasource ID as specified in the request."
      description: Delete the given data source type ID.
      operationId: DeleteDtasourceId
      parameters:
        - $ref: '#/parameters/dataSourceIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
       - application/json
      tags:
        - datasources
      responses:
        '204':
          description: Successful removal of a Data sources.
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/data/collections:
    get:
      description: Returns the available list of collections.
      operationId: GetCollectionList
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful retrieval of the available list of data source collections.
          schema:
            $ref: '#/definitions/GetCollectionResponse'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    post:
      description: Returns the available list of collections.
      operationId: AddCollection
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/AddIndividualCollection'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '201':
          description: Successful creation of the given data source collection.
          schema:
            $ref: '#/definitions/GetIndividualCollection'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/data/collections/{collection-id}:
    get:
      description: Returns the given collection.
      operationId: GetCollectionResource
      parameters:
        - $ref: '#/parameters/collectionIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful retrieval of the given data source collection.
          schema:
            $ref: '#/definitions/GetIndividualCollection'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    put:
      description: Updates the given collection .
      operationId: UpdateCollection
      parameters:
        - $ref: '#/parameters/collectionIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/AddIndividualCollection'
      produces:
        - application/json
      tags:
        - datasources
      responses:
        '200':
          description: Successful update of the given data source collection.
          schema:
            $ref: '#/definitions/GetIndividualCollection'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    delete:
      summary: "Delete data source collection present on the ADM with datasource collection ID as specified in the request."
      description: Delete the collection ID.
      operationId: DeleteCollectionId
      parameters:
        - $ref: '#/parameters/collectionIdParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
       - application/json
      tags:
        - datasources
      responses:
        '204':
          description: Successful removal of a Datasource collection.
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  #--------------------------------------------------- End of Datasources API -----------------------------------------------------------------------

  #-----------------------------------------------Start of Repositories action APIs -------------------------------------------------------------------

  /massvc/{customerid}/stylebook/nitro/v2/config/repositories/{repository-id}/actions/sync:
    post:
      summary: "Sync the GIT repository present on the ADM with repository-name as specified in the request body."
      description: >-
        Sync the repository to fetch the latest files from the remote repository.
      operationId: SyncReposotory
      tags:
        - Repositories
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - $ref: '#/parameters/repositoryIdParam'
      produces:
        - application/json
      responses:
        '202':
          description: This is an asynchronous API call. Successful intiation of syncing of the repository.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/repositories/{repository-id}/actions/reset:
    post:
      summary: "Reset the GIT repository present on the ADM with repository-name as specified in the request body."
      description: >-
        Sync the repository to fetch the latest files from the remote repository.
      operationId: ResetRepository
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - $ref: '#/parameters/repositoryIdParam'
      produces:
        - application/json
      tags:
        - Repositories
      responses:
        '202':
          description: This is an asynchronous API call. Successful initiation of resetting the repository.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  #------------------------------------------------ End of Repositories action APIs -------------------------------------------------------------------

  #--------------------------------------------------- Start of Migrate ADC APIs ----------------------------------------------------------------------

  /massvc/{customerid}/stylebook/nitro/v2/config/adc_configs/actions/extract_vservers:
    post:
      summary: "Extract the candidate root vservers from the source ADC"
      description: >-
        This API extracts the candidate root vservers from the source. The source can be an ADC instance ID or a set of 
        CLI commands, from which the vservers will be extracted. The Target ADC is needed so that it can be used for some 
        helper utility to validate the extracted config. The Target is always an instance ID and can be the same as source. 
        You can also filter the result of extracted vservers by various filters such as vserver name, type or protocol, or 
        any combination.
      operationId: ExtractApps
      produces:
        - application/json
      tags:
        - Config Migration
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - $ref: '#/parameters/requestExecutionMode'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/ExtractVServersRequestSchema'
      responses:
        '200':
          description: Successful retrieval of the configuration from the ADC instance.
          schema:
            $ref: '#/definitions/ExtractVServersResponseSchema'
        '202':
          description: Asynchronous processing. A job ID is returned that can be tracked and used to retrieve results.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/adc_configs/actions/convert_pe_to_pi:
    post:
      summary: "Convert all the classic expressions in the source config to advanced policies"
      description: |
        This API converts all the classic expressions in the source config to advance policy expressions. The source config 
        could be a set of CLI commands which is given directly or extracted from the given ADC instance ID. 
        The Target ADC is needed so that it can be used for some helper utility to validate the extracted config. The Target 
        is always an instance ID and can be the same as source. Converted config is returned back to the user.
      operationId: ConvertPeToPi
      produces:
        - application/json
      tags:
        - Config Migration
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/ConvertPeToPiRequestSchema'
      responses:
        '200':
          description: Successful conversion of classic policies to advanced policies
          schema:
            $ref: '#/definitions/ConvertPeToPiResponseSchema'
        '202':
          description: Asynchronous processing. A job ID is returned that can be tracked and used to retrieve results
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/adc_configs/actions/filter_vservers:
    post:
      summary: "Helper API used to filter an input list of vservers as per input filter options."
      description: >-
        This API is a helper API used to filter an input list of vservers as per input filter options. A filtering option is already 
        provided by the Extract Vservers API. This is an additional API that can be used if filtering was not done during 
        the extraction and the user wants to filter the vservers after extraction. 
      operationId: FilterVservers
      produces:
        - application/json
      tags:
        - Config Migration
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - $ref: '#/parameters/requestExecutionMode'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/FilterVServersRequestSchema'
      responses:
        '200':
          description: Successful retrieval of the configuration from the ADC instance.
          schema:
            $ref: '#/definitions/FilterVServersResponseSchema'
        '202':
          description: Asynchronous processing. A job ID is returned that can be tracked and used to retrieve results.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/adc_configs/actions/extract_vservers_config:
    post:
      summary: "API that intelligently extracts all the configuration to be migrated"
      description: >-
        This is the main API that intelligently extracts all the configuration to be migrated. Given a source, a target and a list of vserver names, it extracts the complete ADC 
        configuration for all the vservers in the input list. This configuration is the one that will get migrated to the target ADC by a subsequent 
        migrate API.
      operationId: ExtractVserversConfig
      produces:
        - application/json
      tags:
        - Config Migration
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - $ref: '#/parameters/requestExecutionMode'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/ExtractConfigRequestSchema'
      responses:
        '200':
          description: Successful retrieval of the configuration from the ADC instance.
          schema:
            $ref: '#/definitions/ExtractConfigResponseSchema'
        '202':
          description: Asynchronous processing. A job ID is returned that can be tracked and used to retrieve results.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/adc_configs/actions/migrate_vservers_config:
    post:
      summary: "API that extracts and migrates the configuration of the mentioned vservers from the source to the target."
      description: Extracts and Migrates the configuration of the mentioned vservers from the source to the target.
      operationId: MigrateConfig
      produces:
        - application/json
      tags:
        - Config Migration
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - $ref: '#/parameters/requestExecutionMode'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/MigrateConfigRequestSchema'
      responses:
        '200':
          description: Successful retrieval of the configuration from the ADC instance.
          schema:
            $ref: '#/definitions/MigrateConfigResponseSchema'
        '202':
          description: Asynchronous processing. A job ID is returned that can be tracked and used to retrieve results.
          schema:
            $ref: '#/definitions/AsyncAPIJobResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

#--------------------------------------------------- End of Migrate ADC APIs --------------------------------------------------------------------------

  #---------------------------------------------------- Start of tags APIs ------------------------------------------------------------------------

  /massvc/{customerid}/stylebook/nitro/v2/config/tags:
    get:
      summary: "Fetch all tags that are created for StyleBooks and their associated ConfigPacks in the ADM ."
      description: >-
          Retrieves all the labels, if any, associated with  StyleBooks/Configpacks in the ADM GUI.
      operationId: GetLabels
      produces:
        - application/json
      tags:
        - Tags
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '200':
          description: Successful retrieval of labels of the StyleBook.
          schema:
            $ref: '#/definitions/GetLabelsResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/tags/{tag-name}:
    get:
      summary: "Fetch all tags with the given tag-name in the request that are created for StyleBooks and their associated ConfigPacks in the ADM GUI"
      description: >-
          Retrieves all the labels with given tag-name, if any, associated with StyleBooks/Configpacks in the ADM GUI.
      operationId: GetLabelValue
      parameters:
        - $ref: '#/parameters/tagNameParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - Tags
      responses:
        '200':
          description: Successful retrieval of labels of the StyleBook.
          schema:
            $ref: '#/definitions/GetLabelValueResponseBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service .
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/{configpack-id}/tags:
    get:
      summary: "Fetch all tags that are created for ConfigPack with given configpack-id and belonging to StyleBook with namespace, version, name as specified in the request in ADM GUI."
      description: >-
          Retrieves all the tags, if any, associated with the given configpack in the ADM GUI.
      operationId: GetLabelConfigpackValue
      parameters:
        - $ref: '#/parameters/tagNameParam'
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - Tags
      responses:
        '200':
          description: Successful retrieval of labels of the Configpack.
          schema:
            $ref: '#/definitions/CreateConfigLabelBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    post:
      summary: "Create Tags for ConfigPack with given configpack-id and belonging to StyleBook with namespace, version, name as specified in the request in ADM GUI."
      description: >-
        Create labels to be associated with configpack created by the user in the ADM GUI.
      operationId: CreateLabel
      parameters:
        - $ref: '#/parameters/tagNameParam'
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/CreateConfigLabelBody'
      produces:
        - application/json
      tags:
        - Tags
      responses:
        '201':
          description: Successful creation of label for the configpack.
          schema:
            $ref: '#/definitions/CreateLabelBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/configpacks/{configpack-id}/tags/actions/inherit:
    post:
      summary: "Create tag inheritance for ConfigPack with given configpack-id and belonging to StyleBook with namespace, version, name as specified in the request in ADM GUI."
      description: >-
        Introduce tag inherit configuration data to be associated with configpack imported by the user in the ADM GUI.
      operationId: CreateLabelInheritance
      parameters:
        - $ref: '#/parameters/tagNameParam'
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/configpackIDParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/InheritActionRequestBody'
      produces:
        - application/json
      tags:
        - Tags
      responses:
        '200':
          description: Successful retrieval of the inheritance data for the configpack.
          schema:
            $ref: '#/definitions/InheritActionRequestBody'
        '400':
          description: Bad Request.
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request.
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found.
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict.
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error.
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/stylebooks/{namespace}/{version}/{name}/tags:
    get:
      summary: "Fetch all tags that are created for StyleBook with namespace, version, name as specified in the request in ADM GUI."
      description: >-
          Retrieves all the labels, if any, associated with stylebook imported by the user in the ADM GUI.
      operationId: GetLabelStylebookValue
      parameters:
        - $ref: '#/parameters/tagNameParam'
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      produces:
        - application/json
      tags:
        - Tags
      responses:
        '200':
          description: Successful retrieval of labels of the StyleBook.
          schema:
            $ref: '#/definitions/CreateLabelBody'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    post:
      summary: "Create tags for StyleBook with namespace, version, name as specified in the request in ADM GUI."
      description: >-
        Create labels, if any, associated with stylebooks in the ADM GUI.
      operationId: CreateLabelStylebook
      parameters:
        - $ref: '#/parameters/tagNameParam'
        - $ref: '#/parameters/namespaceParam'
        - $ref: '#/parameters/versionParam'
        - $ref: '#/parameters/nameParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/CreateLabelBody'
      produces:
        - application/json
      tags:
        - Tags
      responses:
        '201':
          description: Successful creation of label for the StyleBooks.
          schema:
            $ref: '#/definitions/CreateLabelBody'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  #---------------------------------------------------- End of Tags APIs -------------------------------------------------------------------------------


  #---------------------------------------------------- Start of System APIs ---------------------------------------------------------------------------

  /massvc/{customerid}/stylebook/nitro/v2/config/system_settings:
    get:
      description: >-
          Retrieves the Systems settings for the display of defaults Stylebooks in the ADM GUI.
      operationId: GetSystemSettings
      produces:
        - application/json
      tags:
        - Global System Settings
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '200':
          description: Successful retrieval of system settings for the Default StyleBooks.
          schema:
            $ref: '#/definitions/GetSystemSettings'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'
    put:
      description: >-
          Modify the system settings for the display of default Stylebooks in the ADM GUI.
      operationId: PutSystemSettings
      produces:
        - application/json
      tags:
        - Global System Settings
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: true
          x-is-map: false
          schema:
            $ref: '#/definitions/PutSystemSettings'
      responses:
        '200':
          description: Successful retrieval of system settings for the Default StyleBooks.
          schema:
            $ref: '#/definitions/PutSystemSettings'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  #--------------------------------------------------- End of Systems API -----------------------------------------------------------------------------
  /troubleshooting/{resource}/{resource-id}/actions/collectsupportbundle:
    post:
      summary: "Download the resource data bundle as a tarball."
      description: |
          Download the resource data in the form of tarball by specifying the resource name and the resource id in the request url. The resource name can be either stylebooks or configpacks. For instance,
          if you wish to download a configpack tarball, the url should be of the form /troubleshooting/configpacks/12346/actions/collectsupportbundle
          where configpacks is the resource name and 123456 is the configpack id. At present, we support this api for only configpack resource.
      operationId: ExportSupportResourceBundle
      parameters:
        - $ref: '#/parameters/resourceParam'
        - $ref: '#/parameters/resourceIDParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
        - name: Body
          in: body
          required: false
          x-is-map: false
          schema:
            $ref: '#/definitions/GetExportResourceBundle'
      produces:
        - attachment
      tags:
        - Support TechBundles
      responses:
        '200':
          description: Successful download of resource bundle. 
          schema:
            $ref: '#/definitions/SupportBundleResponseBody'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  #---------------------------------------------------- Start of Jobs APIs --------------------------------------------------------------------------

  /massvc/{customerid}/stylebook/nitro/v2/config/jobs:
    get:
      summary: "Retrieves all StyleBook Jobs data in the system."
      description: Retrieves all StyleBook Jobs in the system.
      operationId: GetJobsStatus
      tags:
        - Asynchronous Jobs
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      responses:
        '200':
          description: Successful retrieval of status of an operation.
          schema:
            $ref: '#/definitions/GetAsyncJobStatusResponseBody'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  /massvc/{customerid}/stylebook/nitro/v2/config/jobs/{job-id}:
    get:
      summary: "Fetch the progress info of the async operation in the system with job-id given in the request."
      description: Retrieves the progress of an asynchronous operation.
      operationId: GetJobsAsyncJobStatus
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/jobIDParam'
        - $ref: '#/parameters/customerid'
        - $ref: '#/parameters/authHeaderParam'
        - $ref: '#/parameters/iscloudHeaderParam'
      tags:
        - Asynchronous Jobs
      responses:
        '200':
          description: Successful retrieval of progress on a resource operation.
          schema:
            $ref: '#/definitions/JobStatusResponse'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error400ResponseBody'
        '401':
          description: Unauthorized Request
          schema:
            $ref: '#/definitions/Error401ResponseBody'
        '404':
          description: Resource Not found
          schema:
            $ref: '#/definitions/Error404ResponseBody'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error409ResponseBody'
        '500':
          description: Service Error
          schema:
            $ref: '#/definitions/Error500ResponseBody'

  ###------------------------------------------------- End of Jobs APIs -----------------------------------------------------------------------------
##---------------------------------------------------------------- End of API Paths ----------------------------------------------------------------------

#---------------------------------------------------------------- Start of Definitions ------------------------------------------------------------------

definitions:
  ImportStyleBookRequestBody:
    title: Import a new StyleBook Request
    type: object
    properties:
      import:
        type: object
        properties:
          source:
            description: The YAML contents of the StyleBook. Use this field for the content of the StyleBook when the imported StyleBook is one file.
            type: string
          content:
            description: The YAML contents of the StyleBook. Use this field for the content of the StyleBook when the imported StyleBook is a bundle (e.g. zip file) .
            type: string
          icon:
            description: The icon for the StyleBook being imported as base64 encoded.
            type: string
          encoding:
            description: >-
              Optional. The encoding used to encode the value for the source
              property. Valid values are: base64.
            type: string
    required:
      - import
    example:
      import:
          source: "name: Hello-World-StyleBook123\ndescription: \"Hello World StyleBook.\"\nnamespace: com.citrix.adc.stylebooks\nschema-version: \"1.0\"\nversion: \"1.1\"\nimport-stylebooks: \n  - \n    namespace: netscaler.nitro.config\n    prefix: ns\n    version: \"10.5\"\nparameters: \n  - \n    name: lb-appname\n    type: string\n    label: \"Load Balanced Application Name\"\n    description: \"Name of the Load Balanced application\"\n    key: true\n    required: true\n    updatable: false\n  - \n    name: lb-virtual-ip\n    type: ipaddress\n    label: \"Load Balanced Application IP\"\n    description: \"IP address of the virtual server\"\n    required: true\n    updatable: false\n  - \n    name: lb-virtual-port\n    type: tcp-port\n    label: \"Port of the virtual server\"\n    description: \"Name of the Load Balanced application\"\n    required: true\n    updatable: false\ncomponents: \n  - \n    name: lbvserver\n    type: ns::lbvserver\n    properties: \n      name: $parameters.lb-appname + \"-lb\"\n      ipv46: $parameters.lb-virtual-ip\n      port: $parameters.lb-virtual-port\n      servicetype: \"\\\"HTTP\\\"\"\noutputs: \n  - \n    name: lbvserver\n    value: $components.lbvserver.properties.name"
          icon: "/9j/4AAQSkZJRgABAQEBLAEsAAD"
      

  GetExportResourceBundle:
    title: Export a resource request.
    type: object
    properties:
      collectsupportbundle:
        type: object
        properties:
          options:
            type: object
            properties:
              compress_type:
                description: Compress type of a resource.
                type: string
                enum:
                  - zip
                  - tgz
              password_protect:
                description: Encrypt the configpack data to protect sensitive data.
                type: boolean
          passphrase:
            description: The passphrase key to be used for encrypting the resource to be exported.
            type: string
    required:
      - collectsupportbundle
    example:
      collectsupportbundle:
        options:
          compress_type: zip
          password_protect: true
        passphrase: "12345"
      

  GetExportConfig:
    title: Export a Configpack request.
    type: object
    properties:
      export:
        type: object
        properties:
          options:
            type: object
            properties:
              include_stylebook:
                description: Include the stylebook during export of a configpack.
                type: boolean
              include_targets:
                description: Include the targets of a configpack during export of a configpack.
                type: boolean
              compress_type:
                description: Compress type of a resource.
                type: string
                enum:
                  - zip
                  - tgz
              password_protect:
                description: Encrypt the configpack data to protect sensitive data.
                type: boolean
          passphrase:
            description: The passphrase key to be used for encrypting the configpack to be exported.
            type: string
    required:
     - export
    example:
      export:
        options:
          include_stylebook: false
          include_targets: false
          compress_type: "zip"
          password_protect: false
          passphrase: ""

  ImportConfigpackRequestBody:
    title: Import a new Configpack Request
    type: object
    properties:
      import:
        type: object
        properties:
          options:
            type: object
            description: The options to be specified for import.
          configpack_details:
            type: object
            properties:
              config_key:
                description: The unique ID that identifies the configpack across ADMs.
                type: string
              stylebook:
                $ref: '#/definitions/ImportStyleBookRequestBody'
              source:
                description: The json contents of the configpack.
                type: string
              content:
                description: The contents of the configpack.
                type: string
              encoding:
                description: >-
                  Optional. The encoding used to encode the value for the source
                  property. Valid values are: base64.
                type: string
              compress_type:
                description: Compress type of a resource.
                type: string
                enum:
                  - zip
                  - tgz
              passphrase:
                type: string
                description: The key to be used for decryption of the bundle.
          targets:
            type: object
    required:
      - import
    example:
      - 
        import:
          options:
            skip_targets: false
          configpack_details:
            compress_type: "zip"
            passphrase: "passphrasE@1"
            content: "Y29uZmlncGFja18xMDk3Nzc2NDQwLmpzb24AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMTc3Nzc2ADAwMDA"
            encoding: "base64"
            stylebook:
              source: "name: lb\ndescription: \"An LB StyleBook.\"\nnamespace: com.citrix.adc.stylebooks\nschema-version: \"1.0\"\nversion: \"1.1\"\nimport-stylebooks: \n  - \n    namespace: netscaler.nitro.config\n    prefix: ns\n    version: \"10.5\"\nparameters: \n  - \n    name: lb-appname\n    type: string\n    label: \"Load Balanced Application Name\"\n    description: \"Name of the Load Balanced application\"\n    key: true\n    required: true\n    updatable: false\n  - \n    name: lb-virtual-ip\n    type: ipaddress\n    label: \"Load Balanced Application IP\"\n    description: \"IP address of the virtual server\"\n    required: true\n    updatable: false\n  - \n    name: lb-virtual-port\n    type: tcp-port\n    label: \"Port of the virtual server\"\n    description: \"Name of the Load Balanced application\"\n    required: true\n    updatable: false\ncomponents: \n  - \n    name: lbvserver\n    type: ns::lbvserver\n    properties: \n      name: $parameters.lb-appname + \"-lb\"\n      ipv46: $parameters.lb-virtual-ip\n      port: $parameters.lb-virtual-port\n      servicetype: \"\\\"HTTP\\\"\"\noutputs: \n  - \n    name: lbvserver\n    value: $components.lbvserver.properties.name"
              icon: "/9j/4AAQSkZJRgABAQEBLAEsAAD"
      - import:
          options:
            skip_targets: false
          configpack_details:
            compress_type: "zip"
            passphrase: "passphrasE@1"
            content: "Y29uZmlncGFja18xMDk3Nzc2NDQwLmpzb24AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMTc3Nzc2ADAwMDA"
            encoding: "base64"

  ImportStyleBookSynchronousResponseBody:
    title: Import a new StyleBook Response
    type: object
    properties:
      import:
        $ref: '#/definitions/StyleBookSynchronousResponseReference'
    required:
      - import
    example:
      import:
          namespace: com.citrix.adc.stylebooks
          version: "1.1"
          name: Hello-World-StyleBook123


  ValidateStyleBookRequestBody:
    title: Validate a new StyleBook Request
    type: object
    properties:
      validate:
        type: object
        properties:
          source:
            description: The YAML contents of the StyleBook.
            type: string
          encoding:
            description: The encoding used for source property.
            type: string
            enum:
              - BASE64
            default: BASE64
        required:
          - source
    required:
      - validate
    example:
      validate:
        source: "name: Hello-World-StyleBook123\ndescription: \"Hello World StyleBook.\"\nnamespace: com.citrix.adc.stylebooks\nschema-version: \"1.0\"\nversion: \"1.1\"\nimport-stylebooks: \n  - \n    namespace: netscaler.nitro.config\n    prefix: ns\n    version: \"10.5\"\nparameters: \n  - \n    name: lb-appname\n    type: string\n    label: \"Load Balanced Application Name\"\n    description: \"Name of the Load Balanced application\"\n    key: true\n    required: true\n    updatable: false\n  - \n    name: lb-virtual-ip\n    type: ipaddress\n    label: \"Load Balanced Application IP\"\n    description: \"IP address of the virtual server\"\n    required: true\n    updatable: false\n  - \n    name: lb-virtual-port\n    type: tcp-port\n    label: \"Port of the virtual server\"\n    description: \"Name of the Load Balanced application\"\n    required: true\n    updatable: false\ncomponents: \n  - \n    name: lbvserver\n    type: ns::lbvserver\n    properties: \n      name: $parameters.lb-appname + \"-lb\"\n      ipv46: $parameters.lb-virtual-ip\n      port: $parameters.lb-virtual-port\n      servicetype: \"\\\"HTTP\\\"\"\noutputs: \n  - \n    name: lbvserver\n    value: $components.lbvserver.properties.name"


  UpdateStyleBookRequestBody:
    title: Update a StyleBook Request
    type: object
    properties:
      update:
        type: object
        properties:
          source:
            description: The YAML contents of the StyleBook.
            type: string
          content:
            description: The YAML contents of the StyleBook.
            type: string
          icon:
            description: The icon for the StyleBook being imported as base64 encoded.
            type: string
          encoding:
            description: >-
              Optional. The encoding used to encode the value for the source
              property. Valid values are: base64.
            type: string
    required:
      - update
    example:
      update:
        source: "name: Hello-World-StyleBook123\ndescription: \"Hello World StyleBook.\"\nnamespace: com.citrix.adc.stylebooks\nschema-version: \"1.0\"\nversion: \"1.1\"\nimport-stylebooks: \n  - \n    namespace: netscaler.nitro.config\n    prefix: ns\n    version: \"10.5\"\nparameters: \n  - \n    name: lb-appname\n    type: string\n    label: \"Load Balanced Application Name\"\n    description: \"Name of the Load Balanced application\"\n    key: true\n    required: true\n    updatable: false\n  - \n    name: lb-virtual-ip\n    type: ipaddress\n    label: \"Load Balanced Application IP\"\n    description: \"IP address of the virtual server\"\n    required: true\n    updatable: false\n  - \n    name: lb-virtual-port\n    type: tcp-port\n    label: \"Port of the virtual server\"\n    description: \"Name of the Load Balanced application\"\n    required: true\n    updatable: false\ncomponents: \n  - \n    name: lbvserver\n    type: ns::lbvserver\n    properties: \n      name: $parameters.lb-appname + \"-lb\"\n      ipv46: $parameters.lb-virtual-ip\n      port: $parameters.lb-virtual-port\n      servicetype: \"\\\"HTTP\\\"\"\noutputs: \n  - \n    name: lbvserver\n    value: $components.lbvserver.properties.name"
        icon: "/9j/4AAQSkZJRgABAQEBLAEsAAD"



  UpdateStyleBookResponseBody:
    title: Updated StyleBook Content
    type: object
    properties:
      update:
        type: object
        properties:
          job_id:
            description: The resource ID for the operation.
            type: string
          name:
            description: Name of the StyleBook.
            type: string
          namespace:
            description: Namespace of the StyleBook.
            type: string
          version:
            description: Version of the StyleBook.
            type: string
    required:
      - update
    example:
      update:
          job_id: 1234568
          namespace: com.citrix.adc.stylebooks
          version: 1.1
          name: Hello-World-StyleBook123

  UpgradeConfigpacksListRequestBody:
    title: upgrade the StyleBook for configpacks
    type: object
    properties:
      upgrade:
        type: object
        properties:
          stylebook:
            "$ref": "#/definitions/UpgradeStyleBookReference"
          configpack_ids:
            type: array
            items:
              description: Configpack IDs that need to be upgraded.
              type: string
    required:
      - upgrade
    example:
      upgrade:
        stylebook:
          namespace: com.citrix.adc.stylebooks
          version: 1.1
          name: lb
        configpack_ids:
          - 1234568
      
  UpdateStyleBookSynchronousResponseBody:
    title: Synchronous Response to Update StyleBook.
    type: object
    properties:
      stylebook:
        allOf:
          - $ref: "#/definitions/StyleBookSynchronousResponseReference"
          
  ValidateStyleBookSynchronousResponseBody:
    title: Synchronous Response to Validate StyleBook.
    type: object
    properties:
      validate:
        $ref: "#/definitions/StyleBookSynchronousResponseReference"

  ValidConfigPackChangeResponseBody:
    title: Validate configpack change
    type: object
    properties:
      upgrade:
        description: The upgrade stylebook operation for configpacks.
        type: object
        properties:
          job_id:
            description: The ID of the asynchronous job.
            type: string
    required:
      - upgrade
    example:
      upgrade:
        job_id: 1234568
      
  computeSchemaRequestBody:
    title: Compute new schema based on current parameter values
    type: object
    properties:
      computeSchema:
        type: object
        properties:
          parameters:
            $ref: '#/definitions/Parameters'
    required:
      - computeSchema
    example:
      computeSchema:
        parameters:
          lb-appname: myapp1
          lb-virtual-ip: 3.4.5.6
          lb-virtual-port: '80'
          lb-service-type: SSL
          svc-service-type: SSL
          certificates:
            - cert-name: cs-p1
              cert-file:
                name: lb-certificate-sample.pem
                contents: >-
                  Q2VydGlmaWNhdGU6CiAgICBEYXRhOgogICAgICAgIFZlcnNpb246IDMgKDB4MikKICAgICAgICBTZXJpYWwgTnVtYmVyOiAtMTQxMjYyMzc4NiAoLTB4NTQzMmVkYWEpCiAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogbWQ1V2l0aFJTQUVuY3J5cHRpb24KICAgICAgICBJc3N1ZXI6IENOPU5HRklQUy1DQSwgU1Q9S0EsIEM9SU4vZW1haWxBZGRyZXNzPWFzaG9rZS1uZ2ZpcHNAbXljYS5jb20sIE89Q0lUUklYCiAgICAgICAgVmFsaWRpdHkKICAgICAgICAgICAgTm90IEJlZm9yZTogTm92IDE1IDA4OjM2OjA3IDIwMTAgR01UCiAgICAgICAgICAgIE5vdCBBZnRlciA6IE5vdiAxMiAwODozNjowNyAyMDIwIEdNVAogICAgICAgIFN1YmplY3Q6IFNUPUtBLCBDPUlOLCBDTj1hc2hva2VfY2xpZW50X2NsaWVudCwgTz1DSVRSSVgKICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KICAgICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgyMDQ4IGJpdCkKICAgICAgICAgICAgICAgIE1vZHVsdXMgKDIwNDggYml0KToKICAgICAgICAgICAgICAgICAgICAwMDpkMDpjZDpkNDpmMToxMDo5ZTpmMTphYTo1YjpmYzpiZjplMDo2Mjo1ZToKICAgICAgICAgICAgICAgICAgICA4YjpiODo1MzpjZDplODpmNjo3ODo0MjphNzphMjplODo1ZTo4Mjo3OTpiZjoKICAgICAgICAgICAgICAgICAgICAxMDpjYjplMzozNTozMTowMDpjYzpiMTpjMTo5MDowZjo5ZDoxNTpkZTo4NzoKICAgICAgICAgICAgICAgICAgICA0ZDo1Nzo2ZTozYzoyZjpmYjpjYTo3YTozZjpjNTphNjozZTo0Yzo5ZTo5ZjoKICAgICAgICAgICAgICAgICAgICBkNTowZTo4Mjo3ODo1MDpjZTowYjo3MDpjNjoxZDo0OTplNjo4MzoxNDpmOToKICAgICAgICAgICAgICAgICAgICBkNjo4YzpiYjoxZjowNTplMzoyNDplNDozMjpjOTo0MDo1NjoxNDoyZjplZjoKICAgICAgICAgICAgICAgICAgICAxNzo2MjozMjo4Yzo2MDpjNzoyZDpiODpiNzowMDo0Zjo4NjpiNDowOTo4MDoKICAgICAgICAgICAgICAgICAgICBmYjo0ZjphYTo4NTpkNTphOTplYzo5ZDpiNzoyNjpiMjo2YTowZDo5MzpjNjoKICAgICAgICAgICAgICAgICAgICBiNjphMTplNTpjODpkMjo2YzpiODo1ZTowZjpiYjozZToxNDo4OToxMzo3YjoKICAgICAgICAgICAgICAgICAgICBlODo0NTpkOTozMjoyMToyMDo5YTo5MjoxZDoxODpiYTo2NzpkZDo4NTphMToKICAgICAgICAgICAgICAgICAgICBmNzpjODo1NDoxMDo3NDpiODpmMToyNDpjNzoxMTpjYTowYjo1Mzo0OTo2NDoKICAgICAgICAgICAgICAgICAgICBjZTozMTozOToxZjowZDowZjpjYzpkMzpjZTphMzphMjo5YjphZDo4ZDo3MzoKICAgICAgICAgICAgICAgICAgICBjZjpjYzpjMDplNDpjNDpmZTowOTo4Mjo0NDo1ZToxMzplMDozNzpiZTo2MzoKICAgICAgICAgICAgICAgICAgICAwZjo2OTo4OTpiMzpiNjowOTozNjo4ODplYjo1MjozYzozMTplMTo0Nzo1MjoKICAgICAgICAgICAgICAgICAgICA2OTozYTpiYjozZjplODo5Mjo1MjpmYjo2NzoxMDpjMzozZDo1Zjo5YjpkODoKICAgICAgICAgICAgICAgICAgICBiMzo5YzpkNjoxYzpiNTo5Mjo3NjphMjo0Mjo5MDowNzo1ZjowODo5MzowMToKICAgICAgICAgICAgICAgICAgICBjZTozMTo0YzoxMzozMzoxNjo5OTo0ZTpmNzozMTo4MDo2YTo0ZToyMzo5MDoKICAgICAgICAgICAgICAgICAgICBmNjpkZgogICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQogICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgogICAgICAgICAgICBYNTA5djMgQmFzaWMgQ29uc3RyYWludHM6IAogICAgICAgICAgICAgICAgQ0E6RkFMU0UKICAgICAgICAgICAgTmV0c2NhcGUgQ2VydCBUeXBlOiAKICAgICAgICAgICAgICAgIFNTTCBDbGllbnQKICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNVdpdGhSU0FFbmNyeXB0aW9uCiAgICAgICAgN2U6YTg6ODU6NmY6OGY6MzI6ZWY6YjU6MWE6ZDI6ODk6NTk6MmE6NTU6MmY6YjA6ZTQ6Yjk6CiAgICAgICAgZjQ6ZmY6YmE6NDE6Zjk6Njc6NzI6NDI6ZTQ6Mzg6MmE6OTM6ZjE6ZWI6YzI6ZWY6ZmE6Yjk6CiAgICAgICAgNDM6YmM6MTE6MGM6MzI6ZDY6M2Q6ZWI6ZTA6MGE6NDU6Zjg6ZTc6Njk6MDQ6M2Q6NjE6MzY6CiAgICAgICAgNzM6NzA6ZjQ6Njk6Y2I6NDg6OWM6OWM6NzU6MmU6Y2I6OGM6NWQ6Yzg6YTY6Y2U6ZWE6NmI6CiAgICAgICAgOTY6MGE6M2I6YmQ6ZjA6YjI6NTk6YmQ6ZWM6N2Q6Njk6MTA6ZDk6OTQ6ODk6Y2E6YTI6Y2U6CiAgICAgICAgYTU6M2I6MTA6NDA6Yjc6MDI6OWI6MGU6MGY6ZjE6NjM6YWQ6MmQ6ZDM6NDQ6M2Q6OTY6ZDI6CiAgICAgICAgYzU6OWE6YmY6ZmI6NzI6Mjk6ZDI6N2Y6MTA6NTU6ZmY6ZGE6N2I6YjE6Y2E6NmY6ZmY6M2Q6CiAgICAgICAgODY6ZmQKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN6akNDQWplZ0F3SUJBZ0lGQUt2TkVsWXdEUVlKS29aSWh2Y05BUUVFQlFBd1pqRVNNQkFHQTFVRUF4TUoKVGtkR1NWQlRMVU5CTVFzd0NRWURWUVFJRXdKTFFURUxNQWtHQTFVRUJoTUNTVTR4SlRBakJna3Foa2lHOXcwQgpDUUVXRm1GemFHOXJaUzF1WjJacGNITkFiWGxqWVM1amIyMHhEekFOQmdOVkJBb1RCa05KVkZKSldEQWVGdzB4Ck1ERXhNVFV3T0RNMk1EZGFGdzB5TURFeE1USXdPRE0yTURkYU1Fb3hDekFKQmdOVkJBZ1RBa3RCTVFzd0NRWUQKVlFRR0V3SkpUakVkTUJzR0ExVUVBeFFVWVhOb2IydGxYMk5zYVdWdWRGOWpiR2xsYm5ReER6QU5CZ05WQkFvVApCa05KVkZKSldEQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5ETjFQRVFudkdxClcveS80R0plaTdoVHplajJlRUtub3VoZWdubS9FTXZqTlRFQXpMSEJrQStkRmQ2SFRWZHVQQy83eW5vL3hhWSsKVEo2ZjFRNkNlRkRPQzNER0hVbm1neFQ1MW95N0h3WGpKT1F5eVVCV0ZDL3ZGMkl5akdESExiaTNBRStHdEFtQQorMCtxaGRXcDdKMjNKckpxRFpQR3RxSGx5TkpzdUY0UHV6NFVpUk43NkVYWk1pRWdtcElkR0xwbjNZV2g5OGhVCkVIUzQ4U1RIRWNvTFUwbGt6akU1SHcwUHpOUE9vNkticlkxeno4ekE1TVQrQ1lKRVhoUGdONzVqRDJtSnM3WUoKTm9qclVqd3g0VWRTYVRxN1AraVNVdnRuRU1NOVg1dllzNXpXSExXU2RxSkNrQWRmQ0pNQnpqRk1Fek1XbVU3MwpNWUJxVGlPUTl0OENBd0VBQWFNZ01CNHdDUVlEVlIwVEJBSXdBREFSQmdsZ2hrZ0JodmhDQVFFRUJBTUNCNEF3CkRRWUpLb1pJaHZjTkFRRUVCUUFEZ1lFQWZxaUZiNDh5NzdVYTBvbFpLbFV2c09TNTlQKzZRZmxuY2tMa09DcVQKOGV2QzcvcTVRN3dSRERMV1BldmdDa1g0NTJrRVBXRTJjM0QwYWN0SW5KeDFMc3VNWGNpbXp1cHJsZ283dmZDeQpXYjNzZldrUTJaU0p5cUxPcFRzUVFMY0NtdzRQOFdPdExkTkVQWmJTeFpxLyszSXAwbjhRVmYvYWU3SEtiLzg5Cmh2MD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
                encoding_type: base64
              ssl-inform: PEM
              key-name: cs-k1
              key-file:
                name: lb-keyone-sample.pem
                contents: >-
                  LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBME0zVThSQ2U4YXBiL0wvZ1lsNkx1RlBONlBaNFFxZWk2RjZDZWI4UXkrTTFNUURNCnNjR1FENTBWM29kTlYyNDhML3ZLZWovRnBqNU1ucC9WRG9KNFVNNExjTVlkU2VhREZQbldqTHNmQmVNazVETEoKUUZZVUwrOFhZaktNWU1jdHVMY0FUNGEwQ1lEN1Q2cUYxYW5zbmJjbXNtb05rOGEyb2VYSTBteTRYZys3UGhTSgpFM3ZvUmRreUlTQ2FraDBZdW1mZGhhSDN5RlFRZExqeEpNY1J5Z3RUU1dUT01Ua2ZEUS9NMDg2am9wdXRqWFBQCnpNRGt4UDRKZ2tSZUUrQTN2bU1QYVltenRnazJpT3RTUERIaFIxSnBPcnMvNkpKUysyY1F3ejFmbTlpem5OWWMKdFpKMm9rS1FCMThJa3dIT01Vd1RNeGFaVHZjeGdHcE9JNUQyM3dJREFRQUJBb0lCQUJmOERNSEVEdjNqZTcyRQpyTm1mMHB6Unc0MUhBbmxsbUNqbzhrUFoxcXdVNVQ5RHdEK0s1R2xtdWVSZDFseDhwUjA5NXZ3ejV4ZzVmOE9ZCnlIaHFORGZUOHl4NUZWUXZ6azdTZy9xV1kvSGhMWk9vNGNVcUhoZURkMFFvV2tlam1YVG1VSHJTRmt3aExMengKOFgyaGp6UnVuVnRSSTA0ZVBVeExnTTNxL3lLT3B1b2lRY2F2dENmdzg0VmV3U0xkakJWQmdabi9DMllySlp5VQpaVXJNNEIrYkVPSExzL1FqMmRaNXEvWEQ5RmExOWd3c1JyaEFFNzZYdm9sT3c3QUkwNzJ5LzFPems2Nk9qM2JKClA0a2Z3c1VaTWZxeHFoV2FGZmNlNGFzQitKSUc3Z0xiVjFhMVRIODF1Q25qZXk5MThialZlTUhuazA5OUlqS0UKdDJhSEFNRUNnWUVBN0w0QTE4NWxWT3U5bmQ1RnR3K1pRcGtPbVByTjM3YnpmRzc1dVRIWnkyT2tLTUdqMTAyQQprR3h6alk4REd4RVN2K1RNUmpRWVRna0ZPd3BxKytHd2hrN21ZK0ZNd1FuYmVhdWlpdFF2TWNmWDdtaG1Ld3QyCllWZ2FpeG4rL2NqckFPTHlxQXNlVDVJUCs4eWNZSEtBUnUzWm9HY2JucmpJbDZxL25QbEJtL3NDZ1lFQTRjb0kKOHhMN0FIVGQrbFpkaGlRb2RvdUgwOHRJV1M3TzV3SGV0bnJnN3V0VDFYd3I5UDJTaWV4a3FublpFSURjanVtWQplZTk3MWlyWm5rZUVEODR3cHlYTjE2WVFuK1dCVXlCMDZJUU9RRlg5NldvRFRiOVFWQlJPcS9UQUIxMzJySzRrCjhnTDhFYkNoM29OR0tDbTNvRlZ1Q3A5YVNwbjV4QU91S2RoNkYyMENnWUVBbGNrdGpWMG9IYys5dS9tYkVGVE4KT2liTzVwbWcway9WeEVBT3ZrNjlKd05YSlBaSGJIeTd3Q1R1QTMyZGtHMS8rR3VSbDBWMHIwTGp6VlF0RmtyWQpQbElEVU9TR2hJaHhGWTB6blRUYzIxaysxTGUzRkxyKzNsNDVCUk9na3YraE9JRmUyRldZaXUyMk1URm5LMXFtCnNMbmlmS3RmL1UrYWt1TlVzc085OENzQ2dZQXJKZHpIOXR5WW5ieTkxanRSSXgvSVo2bXhRNnV6djBveXd4eTQKYW9zSm5WY0wrUXE5YXFmU1M2YUJIWC9wczNaeXFSbEdWQW1xUjg0R2ZVd3phUWZMS1dKSXo2ZGxwd29yeEl3Uwowd21XS2RpMy9sWmJTVEFrb1N6WGw1SUsxbDRKYWM0Tm9aeGlGUXNaNXFSRmtKTlN4SUNlN3d6bUxMNmFRc25KCm5XRFhrUUtCZ1FDSThXRW1wQ3V3TCtlSkxoeDlrakhWNDlaUXFsS3RoK1pxNFJIbDV0ZCsxZjdxaWhtRnNYNFQKMm1va2RCWDFHaWVoaXR3OGxJaW16dlROY3huNjdBNG9ndTV6UlZKSndxZGcyZjBNTFNjdzNIL2NhREs1RURMWQpocnRsVzM0UjF6SDB4Y1UyNEFoeVRPeFB6SW1Gb3hUZCtBSnJmNENicE5LdDlFdFVnZCtnU1E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
                encoding_type: base64
              cert-password: '123456'

  CreateConfigpackRequestBody:
    title: Create Configpack Payload Request
    type: object
    properties:
      configpack:
        $ref: '#/definitions/ConfigpackRequestBody'
    required:
      - configpack
    example:
      configpack:
        stylebook:
          name: lb
          namespace: com.citrix.adc.stylebooks
          version: 1.1
        targets:
          instance_id: "9284e6e5-1476-4f97-9c46-cf379921a1fb"
        parameters:
          lb-appname: myapp1
          lb-virtual-ip: 3.4.5.6
          lb-virtual-port: '80'
          lb-service-type: SSL
          svc-service-type: SSL
          certificates:
            - cert-name: cs-p1
              cert-file:
                name: lb-certificate-sample.pem
                contents: >-
                  Q2VydGlmaWNhdGU6CiAgICBEYXRhOgogICAgICAgIFZlcnNpb246IDMgKDB4MikKICAgICAgICBTZXJpYWwgTnVtYmVyOiAtMTQxMjYyMzc4NiAoLTB4NTQzMmVkYWEpCiAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogbWQ1V2l0aFJTQUVuY3J5cHRpb24KICAgICAgICBJc3N1ZXI6IENOPU5HRklQUy1DQSwgU1Q9S0EsIEM9SU4vZW1haWxBZGRyZXNzPWFzaG9rZS1uZ2ZpcHNAbXljYS5jb20sIE89Q0lUUklYCiAgICAgICAgVmFsaWRpdHkKICAgICAgICAgICAgTm90IEJlZm9yZTogTm92IDE1IDA4OjM2OjA3IDIwMTAgR01UCiAgICAgICAgICAgIE5vdCBBZnRlciA6IE5vdiAxMiAwODozNjowNyAyMDIwIEdNVAogICAgICAgIFN1YmplY3Q6IFNUPUtBLCBDPUlOLCBDTj1hc2hva2VfY2xpZW50X2NsaWVudCwgTz1DSVRSSVgKICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KICAgICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgyMDQ4IGJpdCkKICAgICAgICAgICAgICAgIE1vZHVsdXMgKDIwNDggYml0KToKICAgICAgICAgICAgICAgICAgICAwMDpkMDpjZDpkNDpmMToxMDo5ZTpmMTphYTo1YjpmYzpiZjplMDo2Mjo1ZToKICAgICAgICAgICAgICAgICAgICA4YjpiODo1MzpjZDplODpmNjo3ODo0MjphNzphMjplODo1ZTo4Mjo3OTpiZjoKICAgICAgICAgICAgICAgICAgICAxMDpjYjplMzozNTozMTowMDpjYzpiMTpjMTo5MDowZjo5ZDoxNTpkZTo4NzoKICAgICAgICAgICAgICAgICAgICA0ZDo1Nzo2ZTozYzoyZjpmYjpjYTo3YTozZjpjNTphNjozZTo0Yzo5ZTo5ZjoKICAgICAgICAgICAgICAgICAgICBkNTowZTo4Mjo3ODo1MDpjZTowYjo3MDpjNjoxZDo0OTplNjo4MzoxNDpmOToKICAgICAgICAgICAgICAgICAgICBkNjo4YzpiYjoxZjowNTplMzoyNDplNDozMjpjOTo0MDo1NjoxNDoyZjplZjoKICAgICAgICAgICAgICAgICAgICAxNzo2MjozMjo4Yzo2MDpjNzoyZDpiODpiNzowMDo0Zjo4NjpiNDowOTo4MDoKICAgICAgICAgICAgICAgICAgICBmYjo0ZjphYTo4NTpkNTphOTplYzo5ZDpiNzoyNjpiMjo2YTowZDo5MzpjNjoKICAgICAgICAgICAgICAgICAgICBiNjphMTplNTpjODpkMjo2YzpiODo1ZTowZjpiYjozZToxNDo4OToxMzo3YjoKICAgICAgICAgICAgICAgICAgICBlODo0NTpkOTozMjoyMToyMDo5YTo5MjoxZDoxODpiYTo2NzpkZDo4NTphMToKICAgICAgICAgICAgICAgICAgICBmNzpjODo1NDoxMDo3NDpiODpmMToyNDpjNzoxMTpjYTowYjo1Mzo0OTo2NDoKICAgICAgICAgICAgICAgICAgICBjZTozMTozOToxZjowZDowZjpjYzpkMzpjZTphMzphMjo5YjphZDo4ZDo3MzoKICAgICAgICAgICAgICAgICAgICBjZjpjYzpjMDplNDpjNDpmZTowOTo4Mjo0NDo1ZToxMzplMDozNzpiZTo2MzoKICAgICAgICAgICAgICAgICAgICAwZjo2OTo4OTpiMzpiNjowOTozNjo4ODplYjo1MjozYzozMTplMTo0Nzo1MjoKICAgICAgICAgICAgICAgICAgICA2OTozYTpiYjozZjplODo5Mjo1MjpmYjo2NzoxMDpjMzozZDo1Zjo5YjpkODoKICAgICAgICAgICAgICAgICAgICBiMzo5YzpkNjoxYzpiNTo5Mjo3NjphMjo0Mjo5MDowNzo1ZjowODo5MzowMToKICAgICAgICAgICAgICAgICAgICBjZTozMTo0YzoxMzozMzoxNjo5OTo0ZTpmNzozMTo4MDo2YTo0ZToyMzo5MDoKICAgICAgICAgICAgICAgICAgICBmNjpkZgogICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQogICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgogICAgICAgICAgICBYNTA5djMgQmFzaWMgQ29uc3RyYWludHM6IAogICAgICAgICAgICAgICAgQ0E6RkFMU0UKICAgICAgICAgICAgTmV0c2NhcGUgQ2VydCBUeXBlOiAKICAgICAgICAgICAgICAgIFNTTCBDbGllbnQKICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNVdpdGhSU0FFbmNyeXB0aW9uCiAgICAgICAgN2U6YTg6ODU6NmY6OGY6MzI6ZWY6YjU6MWE6ZDI6ODk6NTk6MmE6NTU6MmY6YjA6ZTQ6Yjk6CiAgICAgICAgZjQ6ZmY6YmE6NDE6Zjk6Njc6NzI6NDI6ZTQ6Mzg6MmE6OTM6ZjE6ZWI6YzI6ZWY6ZmE6Yjk6CiAgICAgICAgNDM6YmM6MTE6MGM6MzI6ZDY6M2Q6ZWI6ZTA6MGE6NDU6Zjg6ZTc6Njk6MDQ6M2Q6NjE6MzY6CiAgICAgICAgNzM6NzA6ZjQ6Njk6Y2I6NDg6OWM6OWM6NzU6MmU6Y2I6OGM6NWQ6Yzg6YTY6Y2U6ZWE6NmI6CiAgICAgICAgOTY6MGE6M2I6YmQ6ZjA6YjI6NTk6YmQ6ZWM6N2Q6Njk6MTA6ZDk6OTQ6ODk6Y2E6YTI6Y2U6CiAgICAgICAgYTU6M2I6MTA6NDA6Yjc6MDI6OWI6MGU6MGY6ZjE6NjM6YWQ6MmQ6ZDM6NDQ6M2Q6OTY6ZDI6CiAgICAgICAgYzU6OWE6YmY6ZmI6NzI6Mjk6ZDI6N2Y6MTA6NTU6ZmY6ZGE6N2I6YjE6Y2E6NmY6ZmY6M2Q6CiAgICAgICAgODY6ZmQKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN6akNDQWplZ0F3SUJBZ0lGQUt2TkVsWXdEUVlKS29aSWh2Y05BUUVFQlFBd1pqRVNNQkFHQTFVRUF4TUoKVGtkR1NWQlRMVU5CTVFzd0NRWURWUVFJRXdKTFFURUxNQWtHQTFVRUJoTUNTVTR4SlRBakJna3Foa2lHOXcwQgpDUUVXRm1GemFHOXJaUzF1WjJacGNITkFiWGxqWVM1amIyMHhEekFOQmdOVkJBb1RCa05KVkZKSldEQWVGdzB4Ck1ERXhNVFV3T0RNMk1EZGFGdzB5TURFeE1USXdPRE0yTURkYU1Fb3hDekFKQmdOVkJBZ1RBa3RCTVFzd0NRWUQKVlFRR0V3SkpUakVkTUJzR0ExVUVBeFFVWVhOb2IydGxYMk5zYVdWdWRGOWpiR2xsYm5ReER6QU5CZ05WQkFvVApCa05KVkZKSldEQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5ETjFQRVFudkdxClcveS80R0plaTdoVHplajJlRUtub3VoZWdubS9FTXZqTlRFQXpMSEJrQStkRmQ2SFRWZHVQQy83eW5vL3hhWSsKVEo2ZjFRNkNlRkRPQzNER0hVbm1neFQ1MW95N0h3WGpKT1F5eVVCV0ZDL3ZGMkl5akdESExiaTNBRStHdEFtQQorMCtxaGRXcDdKMjNKckpxRFpQR3RxSGx5TkpzdUY0UHV6NFVpUk43NkVYWk1pRWdtcElkR0xwbjNZV2g5OGhVCkVIUzQ4U1RIRWNvTFUwbGt6akU1SHcwUHpOUE9vNkticlkxeno4ekE1TVQrQ1lKRVhoUGdONzVqRDJtSnM3WUoKTm9qclVqd3g0VWRTYVRxN1AraVNVdnRuRU1NOVg1dllzNXpXSExXU2RxSkNrQWRmQ0pNQnpqRk1Fek1XbVU3MwpNWUJxVGlPUTl0OENBd0VBQWFNZ01CNHdDUVlEVlIwVEJBSXdBREFSQmdsZ2hrZ0JodmhDQVFFRUJBTUNCNEF3CkRRWUpLb1pJaHZjTkFRRUVCUUFEZ1lFQWZxaUZiNDh5NzdVYTBvbFpLbFV2c09TNTlQKzZRZmxuY2tMa09DcVQKOGV2QzcvcTVRN3dSRERMV1BldmdDa1g0NTJrRVBXRTJjM0QwYWN0SW5KeDFMc3VNWGNpbXp1cHJsZ283dmZDeQpXYjNzZldrUTJaU0p5cUxPcFRzUVFMY0NtdzRQOFdPdExkTkVQWmJTeFpxLyszSXAwbjhRVmYvYWU3SEtiLzg5Cmh2MD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
                encoding_type: base64
              ssl-inform: PEM
              key-name: cs-k1
              key-file:
                name: lb-keyone-sample.pem
                contents: >-
                  LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBME0zVThSQ2U4YXBiL0wvZ1lsNkx1RlBONlBaNFFxZWk2RjZDZWI4UXkrTTFNUURNCnNjR1FENTBWM29kTlYyNDhML3ZLZWovRnBqNU1ucC9WRG9KNFVNNExjTVlkU2VhREZQbldqTHNmQmVNazVETEoKUUZZVUwrOFhZaktNWU1jdHVMY0FUNGEwQ1lEN1Q2cUYxYW5zbmJjbXNtb05rOGEyb2VYSTBteTRYZys3UGhTSgpFM3ZvUmRreUlTQ2FraDBZdW1mZGhhSDN5RlFRZExqeEpNY1J5Z3RUU1dUT01Ua2ZEUS9NMDg2am9wdXRqWFBQCnpNRGt4UDRKZ2tSZUUrQTN2bU1QYVltenRnazJpT3RTUERIaFIxSnBPcnMvNkpKUysyY1F3ejFmbTlpem5OWWMKdFpKMm9rS1FCMThJa3dIT01Vd1RNeGFaVHZjeGdHcE9JNUQyM3dJREFRQUJBb0lCQUJmOERNSEVEdjNqZTcyRQpyTm1mMHB6Unc0MUhBbmxsbUNqbzhrUFoxcXdVNVQ5RHdEK0s1R2xtdWVSZDFseDhwUjA5NXZ3ejV4ZzVmOE9ZCnlIaHFORGZUOHl4NUZWUXZ6azdTZy9xV1kvSGhMWk9vNGNVcUhoZURkMFFvV2tlam1YVG1VSHJTRmt3aExMengKOFgyaGp6UnVuVnRSSTA0ZVBVeExnTTNxL3lLT3B1b2lRY2F2dENmdzg0VmV3U0xkakJWQmdabi9DMllySlp5VQpaVXJNNEIrYkVPSExzL1FqMmRaNXEvWEQ5RmExOWd3c1JyaEFFNzZYdm9sT3c3QUkwNzJ5LzFPems2Nk9qM2JKClA0a2Z3c1VaTWZxeHFoV2FGZmNlNGFzQitKSUc3Z0xiVjFhMVRIODF1Q25qZXk5MThialZlTUhuazA5OUlqS0UKdDJhSEFNRUNnWUVBN0w0QTE4NWxWT3U5bmQ1RnR3K1pRcGtPbVByTjM3YnpmRzc1dVRIWnkyT2tLTUdqMTAyQQprR3h6alk4REd4RVN2K1RNUmpRWVRna0ZPd3BxKytHd2hrN21ZK0ZNd1FuYmVhdWlpdFF2TWNmWDdtaG1Ld3QyCllWZ2FpeG4rL2NqckFPTHlxQXNlVDVJUCs4eWNZSEtBUnUzWm9HY2JucmpJbDZxL25QbEJtL3NDZ1lFQTRjb0kKOHhMN0FIVGQrbFpkaGlRb2RvdUgwOHRJV1M3TzV3SGV0bnJnN3V0VDFYd3I5UDJTaWV4a3FublpFSURjanVtWQplZTk3MWlyWm5rZUVEODR3cHlYTjE2WVFuK1dCVXlCMDZJUU9RRlg5NldvRFRiOVFWQlJPcS9UQUIxMzJySzRrCjhnTDhFYkNoM29OR0tDbTNvRlZ1Q3A5YVNwbjV4QU91S2RoNkYyMENnWUVBbGNrdGpWMG9IYys5dS9tYkVGVE4KT2liTzVwbWcway9WeEVBT3ZrNjlKd05YSlBaSGJIeTd3Q1R1QTMyZGtHMS8rR3VSbDBWMHIwTGp6VlF0RmtyWQpQbElEVU9TR2hJaHhGWTB6blRUYzIxaysxTGUzRkxyKzNsNDVCUk9na3YraE9JRmUyRldZaXUyMk1URm5LMXFtCnNMbmlmS3RmL1UrYWt1TlVzc085OENzQ2dZQXJKZHpIOXR5WW5ieTkxanRSSXgvSVo2bXhRNnV6djBveXd4eTQKYW9zSm5WY0wrUXE5YXFmU1M2YUJIWC9wczNaeXFSbEdWQW1xUjg0R2ZVd3phUWZMS1dKSXo2ZGxwd29yeEl3Uwowd21XS2RpMy9sWmJTVEFrb1N6WGw1SUsxbDRKYWM0Tm9aeGlGUXNaNXFSRmtKTlN4SUNlN3d6bUxMNmFRc25KCm5XRFhrUUtCZ1FDSThXRW1wQ3V3TCtlSkxoeDlrakhWNDlaUXFsS3RoK1pxNFJIbDV0ZCsxZjdxaWhtRnNYNFQKMm1va2RCWDFHaWVoaXR3OGxJaW16dlROY3huNjdBNG9ndTV6UlZKSndxZGcyZjBNTFNjdzNIL2NhREs1RURMWQpocnRsVzM0UjF6SDB4Y1UyNEFoeVRPeFB6SW1Gb3hUZCtBSnJmNENicE5LdDlFdFVnZCtnU1E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
                encoding_type: base64
              cert-password: '123456'

  UpdateConfigpackRequestBody:
    title: Update Configpack Payload Request.
    type: object
    properties:
      configpack:
        $ref: '#/definitions/ConfigpackUpdateBody'
    required:
      - configpack
    example:
      configpack:
        stylebook:
          name: lb
          namespace: com.citrix.adc.stylebooks
          version: 1.1
        targets:
          instance_id: "9284e6e5-1476-4f97-9c46-cf379921a1fb"
        parameters:
          lb-appname: myapp1
          lb-virtual-ip: 3.4.5.6
          lb-virtual-port: '80'
          lb-service-type: SSL
          svc-service-type: SSL
          certificates:
            - cert-name: cs-p1
              cert-file:
                name: lb-certificate-sample.pem
                contents: >-
                  Q2VydGlmaWNhdGU6CiAgICBEYXRhOgogICAgICAgIFZlcnNpb246IDMgKDB4MikKICAgICAgICBTZXJpYWwgTnVtYmVyOiAtMTQxMjYyMzc4NiAoLTB4NTQzMmVkYWEpCiAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogbWQ1V2l0aFJTQUVuY3J5cHRpb24KICAgICAgICBJc3N1ZXI6IENOPU5HRklQUy1DQSwgU1Q9S0EsIEM9SU4vZW1haWxBZGRyZXNzPWFzaG9rZS1uZ2ZpcHNAbXljYS5jb20sIE89Q0lUUklYCiAgICAgICAgVmFsaWRpdHkKICAgICAgICAgICAgTm90IEJlZm9yZTogTm92IDE1IDA4OjM2OjA3IDIwMTAgR01UCiAgICAgICAgICAgIE5vdCBBZnRlciA6IE5vdiAxMiAwODozNjowNyAyMDIwIEdNVAogICAgICAgIFN1YmplY3Q6IFNUPUtBLCBDPUlOLCBDTj1hc2hva2VfY2xpZW50X2NsaWVudCwgTz1DSVRSSVgKICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KICAgICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgyMDQ4IGJpdCkKICAgICAgICAgICAgICAgIE1vZHVsdXMgKDIwNDggYml0KToKICAgICAgICAgICAgICAgICAgICAwMDpkMDpjZDpkNDpmMToxMDo5ZTpmMTphYTo1YjpmYzpiZjplMDo2Mjo1ZToKICAgICAgICAgICAgICAgICAgICA4YjpiODo1MzpjZDplODpmNjo3ODo0MjphNzphMjplODo1ZTo4Mjo3OTpiZjoKICAgICAgICAgICAgICAgICAgICAxMDpjYjplMzozNTozMTowMDpjYzpiMTpjMTo5MDowZjo5ZDoxNTpkZTo4NzoKICAgICAgICAgICAgICAgICAgICA0ZDo1Nzo2ZTozYzoyZjpmYjpjYTo3YTozZjpjNTphNjozZTo0Yzo5ZTo5ZjoKICAgICAgICAgICAgICAgICAgICBkNTowZTo4Mjo3ODo1MDpjZTowYjo3MDpjNjoxZDo0OTplNjo4MzoxNDpmOToKICAgICAgICAgICAgICAgICAgICBkNjo4YzpiYjoxZjowNTplMzoyNDplNDozMjpjOTo0MDo1NjoxNDoyZjplZjoKICAgICAgICAgICAgICAgICAgICAxNzo2MjozMjo4Yzo2MDpjNzoyZDpiODpiNzowMDo0Zjo4NjpiNDowOTo4MDoKICAgICAgICAgICAgICAgICAgICBmYjo0ZjphYTo4NTpkNTphOTplYzo5ZDpiNzoyNjpiMjo2YTowZDo5MzpjNjoKICAgICAgICAgICAgICAgICAgICBiNjphMTplNTpjODpkMjo2YzpiODo1ZTowZjpiYjozZToxNDo4OToxMzo3YjoKICAgICAgICAgICAgICAgICAgICBlODo0NTpkOTozMjoyMToyMDo5YTo5MjoxZDoxODpiYTo2NzpkZDo4NTphMToKICAgICAgICAgICAgICAgICAgICBmNzpjODo1NDoxMDo3NDpiODpmMToyNDpjNzoxMTpjYTowYjo1Mzo0OTo2NDoKICAgICAgICAgICAgICAgICAgICBjZTozMTozOToxZjowZDowZjpjYzpkMzpjZTphMzphMjo5YjphZDo4ZDo3MzoKICAgICAgICAgICAgICAgICAgICBjZjpjYzpjMDplNDpjNDpmZTowOTo4Mjo0NDo1ZToxMzplMDozNzpiZTo2MzoKICAgICAgICAgICAgICAgICAgICAwZjo2OTo4OTpiMzpiNjowOTozNjo4ODplYjo1MjozYzozMTplMTo0Nzo1MjoKICAgICAgICAgICAgICAgICAgICA2OTozYTpiYjozZjplODo5Mjo1MjpmYjo2NzoxMDpjMzozZDo1Zjo5YjpkODoKICAgICAgICAgICAgICAgICAgICBiMzo5YzpkNjoxYzpiNTo5Mjo3NjphMjo0Mjo5MDowNzo1ZjowODo5MzowMToKICAgICAgICAgICAgICAgICAgICBjZTozMTo0YzoxMzozMzoxNjo5OTo0ZTpmNzozMTo4MDo2YTo0ZToyMzo5MDoKICAgICAgICAgICAgICAgICAgICBmNjpkZgogICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQogICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgogICAgICAgICAgICBYNTA5djMgQmFzaWMgQ29uc3RyYWludHM6IAogICAgICAgICAgICAgICAgQ0E6RkFMU0UKICAgICAgICAgICAgTmV0c2NhcGUgQ2VydCBUeXBlOiAKICAgICAgICAgICAgICAgIFNTTCBDbGllbnQKICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNVdpdGhSU0FFbmNyeXB0aW9uCiAgICAgICAgN2U6YTg6ODU6NmY6OGY6MzI6ZWY6YjU6MWE6ZDI6ODk6NTk6MmE6NTU6MmY6YjA6ZTQ6Yjk6CiAgICAgICAgZjQ6ZmY6YmE6NDE6Zjk6Njc6NzI6NDI6ZTQ6Mzg6MmE6OTM6ZjE6ZWI6YzI6ZWY6ZmE6Yjk6CiAgICAgICAgNDM6YmM6MTE6MGM6MzI6ZDY6M2Q6ZWI6ZTA6MGE6NDU6Zjg6ZTc6Njk6MDQ6M2Q6NjE6MzY6CiAgICAgICAgNzM6NzA6ZjQ6Njk6Y2I6NDg6OWM6OWM6NzU6MmU6Y2I6OGM6NWQ6Yzg6YTY6Y2U6ZWE6NmI6CiAgICAgICAgOTY6MGE6M2I6YmQ6ZjA6YjI6NTk6YmQ6ZWM6N2Q6Njk6MTA6ZDk6OTQ6ODk6Y2E6YTI6Y2U6CiAgICAgICAgYTU6M2I6MTA6NDA6Yjc6MDI6OWI6MGU6MGY6ZjE6NjM6YWQ6MmQ6ZDM6NDQ6M2Q6OTY6ZDI6CiAgICAgICAgYzU6OWE6YmY6ZmI6NzI6Mjk6ZDI6N2Y6MTA6NTU6ZmY6ZGE6N2I6YjE6Y2E6NmY6ZmY6M2Q6CiAgICAgICAgODY6ZmQKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN6akNDQWplZ0F3SUJBZ0lGQUt2TkVsWXdEUVlKS29aSWh2Y05BUUVFQlFBd1pqRVNNQkFHQTFVRUF4TUoKVGtkR1NWQlRMVU5CTVFzd0NRWURWUVFJRXdKTFFURUxNQWtHQTFVRUJoTUNTVTR4SlRBakJna3Foa2lHOXcwQgpDUUVXRm1GemFHOXJaUzF1WjJacGNITkFiWGxqWVM1amIyMHhEekFOQmdOVkJBb1RCa05KVkZKSldEQWVGdzB4Ck1ERXhNVFV3T0RNMk1EZGFGdzB5TURFeE1USXdPRE0yTURkYU1Fb3hDekFKQmdOVkJBZ1RBa3RCTVFzd0NRWUQKVlFRR0V3SkpUakVkTUJzR0ExVUVBeFFVWVhOb2IydGxYMk5zYVdWdWRGOWpiR2xsYm5ReER6QU5CZ05WQkFvVApCa05KVkZKSldEQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5ETjFQRVFudkdxClcveS80R0plaTdoVHplajJlRUtub3VoZWdubS9FTXZqTlRFQXpMSEJrQStkRmQ2SFRWZHVQQy83eW5vL3hhWSsKVEo2ZjFRNkNlRkRPQzNER0hVbm1neFQ1MW95N0h3WGpKT1F5eVVCV0ZDL3ZGMkl5akdESExiaTNBRStHdEFtQQorMCtxaGRXcDdKMjNKckpxRFpQR3RxSGx5TkpzdUY0UHV6NFVpUk43NkVYWk1pRWdtcElkR0xwbjNZV2g5OGhVCkVIUzQ4U1RIRWNvTFUwbGt6akU1SHcwUHpOUE9vNkticlkxeno4ekE1TVQrQ1lKRVhoUGdONzVqRDJtSnM3WUoKTm9qclVqd3g0VWRTYVRxN1AraVNVdnRuRU1NOVg1dllzNXpXSExXU2RxSkNrQWRmQ0pNQnpqRk1Fek1XbVU3MwpNWUJxVGlPUTl0OENBd0VBQWFNZ01CNHdDUVlEVlIwVEJBSXdBREFSQmdsZ2hrZ0JodmhDQVFFRUJBTUNCNEF3CkRRWUpLb1pJaHZjTkFRRUVCUUFEZ1lFQWZxaUZiNDh5NzdVYTBvbFpLbFV2c09TNTlQKzZRZmxuY2tMa09DcVQKOGV2QzcvcTVRN3dSRERMV1BldmdDa1g0NTJrRVBXRTJjM0QwYWN0SW5KeDFMc3VNWGNpbXp1cHJsZ283dmZDeQpXYjNzZldrUTJaU0p5cUxPcFRzUVFMY0NtdzRQOFdPdExkTkVQWmJTeFpxLyszSXAwbjhRVmYvYWU3SEtiLzg5Cmh2MD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
                encoding_type: base64
              ssl-inform: PEM
              key-name: cs-k1
              key-file:
                name: lb-keyone-sample.pem
                contents: >-
                  LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBME0zVThSQ2U4YXBiL0wvZ1lsNkx1RlBONlBaNFFxZWk2RjZDZWI4UXkrTTFNUURNCnNjR1FENTBWM29kTlYyNDhML3ZLZWovRnBqNU1ucC9WRG9KNFVNNExjTVlkU2VhREZQbldqTHNmQmVNazVETEoKUUZZVUwrOFhZaktNWU1jdHVMY0FUNGEwQ1lEN1Q2cUYxYW5zbmJjbXNtb05rOGEyb2VYSTBteTRYZys3UGhTSgpFM3ZvUmRreUlTQ2FraDBZdW1mZGhhSDN5RlFRZExqeEpNY1J5Z3RUU1dUT01Ua2ZEUS9NMDg2am9wdXRqWFBQCnpNRGt4UDRKZ2tSZUUrQTN2bU1QYVltenRnazJpT3RTUERIaFIxSnBPcnMvNkpKUysyY1F3ejFmbTlpem5OWWMKdFpKMm9rS1FCMThJa3dIT01Vd1RNeGFaVHZjeGdHcE9JNUQyM3dJREFRQUJBb0lCQUJmOERNSEVEdjNqZTcyRQpyTm1mMHB6Unc0MUhBbmxsbUNqbzhrUFoxcXdVNVQ5RHdEK0s1R2xtdWVSZDFseDhwUjA5NXZ3ejV4ZzVmOE9ZCnlIaHFORGZUOHl4NUZWUXZ6azdTZy9xV1kvSGhMWk9vNGNVcUhoZURkMFFvV2tlam1YVG1VSHJTRmt3aExMengKOFgyaGp6UnVuVnRSSTA0ZVBVeExnTTNxL3lLT3B1b2lRY2F2dENmdzg0VmV3U0xkakJWQmdabi9DMllySlp5VQpaVXJNNEIrYkVPSExzL1FqMmRaNXEvWEQ5RmExOWd3c1JyaEFFNzZYdm9sT3c3QUkwNzJ5LzFPems2Nk9qM2JKClA0a2Z3c1VaTWZxeHFoV2FGZmNlNGFzQitKSUc3Z0xiVjFhMVRIODF1Q25qZXk5MThialZlTUhuazA5OUlqS0UKdDJhSEFNRUNnWUVBN0w0QTE4NWxWT3U5bmQ1RnR3K1pRcGtPbVByTjM3YnpmRzc1dVRIWnkyT2tLTUdqMTAyQQprR3h6alk4REd4RVN2K1RNUmpRWVRna0ZPd3BxKytHd2hrN21ZK0ZNd1FuYmVhdWlpdFF2TWNmWDdtaG1Ld3QyCllWZ2FpeG4rL2NqckFPTHlxQXNlVDVJUCs4eWNZSEtBUnUzWm9HY2JucmpJbDZxL25QbEJtL3NDZ1lFQTRjb0kKOHhMN0FIVGQrbFpkaGlRb2RvdUgwOHRJV1M3TzV3SGV0bnJnN3V0VDFYd3I5UDJTaWV4a3FublpFSURjanVtWQplZTk3MWlyWm5rZUVEODR3cHlYTjE2WVFuK1dCVXlCMDZJUU9RRlg5NldvRFRiOVFWQlJPcS9UQUIxMzJySzRrCjhnTDhFYkNoM29OR0tDbTNvRlZ1Q3A5YVNwbjV4QU91S2RoNkYyMENnWUVBbGNrdGpWMG9IYys5dS9tYkVGVE4KT2liTzVwbWcway9WeEVBT3ZrNjlKd05YSlBaSGJIeTd3Q1R1QTMyZGtHMS8rR3VSbDBWMHIwTGp6VlF0RmtyWQpQbElEVU9TR2hJaHhGWTB6blRUYzIxaysxTGUzRkxyKzNsNDVCUk9na3YraE9JRmUyRldZaXUyMk1URm5LMXFtCnNMbmlmS3RmL1UrYWt1TlVzc085OENzQ2dZQXJKZHpIOXR5WW5ieTkxanRSSXgvSVo2bXhRNnV6djBveXd4eTQKYW9zSm5WY0wrUXE5YXFmU1M2YUJIWC9wczNaeXFSbEdWQW1xUjg0R2ZVd3phUWZMS1dKSXo2ZGxwd29yeEl3Uwowd21XS2RpMy9sWmJTVEFrb1N6WGw1SUsxbDRKYWM0Tm9aeGlGUXNaNXFSRmtKTlN4SUNlN3d6bUxMNmFRc25KCm5XRFhrUUtCZ1FDSThXRW1wQ3V3TCtlSkxoeDlrakhWNDlaUXFsS3RoK1pxNFJIbDV0ZCsxZjdxaWhtRnNYNFQKMm1va2RCWDFHaWVoaXR3OGxJaW16dlROY3huNjdBNG9ndTV6UlZKSndxZGcyZjBNTFNjdzNIL2NhREs1RURMWQpocnRsVzM0UjF6SDB4Y1UyNEFoeVRPeFB6SW1Gb3hUZCtBSnJmNENicE5LdDlFdFVnZCtnU1E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
                encoding_type: base64
              cert-password: '123456'

  CreateConfigpackSynchronousResponseBody:
    title: CreateConfigpackSynchronousResponseBody
    type: object
    properties:
      configpack:
        description: This property defines an object that either represents the structure of the synchronous API or The simulation of the create/update of configpack.
        type: object
    required:
      - configpack
    example:
      configpack:
        id: 749894685
        stylebook:
          namespace: com.citrix.adc.stylebooks
          version: 1.1
          name: lb
        parameters:
          lb-appname: myapp1
          lb-virtual-ip: 3.4.5.6
          lb-virtual-port: '80'
          lb-service-type: SSL
          svc-service-type: SSL
          certificates:
            - cert-name: cs-p1
              cert-file:
                name: lb-certificate-sample.pem
                contents: >-
                  Q2VydGlmaWNhdGU6CiAgICBEYXRhOgogICAgICAgIFZlcnNpb246IDMgKDB4MikKICAgICAgICBTZXJpYWwgTnVtYmVyOiAtMTQxMjYyMzc4NiAoLTB4NTQzMmVkYWEpCiAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogbWQ1V2l0aFJTQUVuY3J5cHRpb24KICAgICAgICBJc3N1ZXI6IENOPU5HRklQUy1DQSwgU1Q9S0EsIEM9SU4vZW1haWxBZGRyZXNzPWFzaG9rZS1uZ2ZpcHNAbXljYS5jb20sIE89Q0lUUklYCiAgICAgICAgVmFsaWRpdHkKICAgICAgICAgICAgTm90IEJlZm9yZTogTm92IDE1IDA4OjM2OjA3IDIwMTAgR01UCiAgICAgICAgICAgIE5vdCBBZnRlciA6IE5vdiAxMiAwODozNjowNyAyMDIwIEdNVAogICAgICAgIFN1YmplY3Q6IFNUPUtBLCBDPUlOLCBDTj1hc2hva2VfY2xpZW50X2NsaWVudCwgTz1DSVRSSVgKICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KICAgICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgyMDQ4IGJpdCkKICAgICAgICAgICAgICAgIE1vZHVsdXMgKDIwNDggYml0KToKICAgICAgICAgICAgICAgICAgICAwMDpkMDpjZDpkNDpmMToxMDo5ZTpmMTphYTo1YjpmYzpiZjplMDo2Mjo1ZToKICAgICAgICAgICAgICAgICAgICA4YjpiODo1MzpjZDplODpmNjo3ODo0MjphNzphMjplODo1ZTo4Mjo3OTpiZjoKICAgICAgICAgICAgICAgICAgICAxMDpjYjplMzozNTozMTowMDpjYzpiMTpjMTo5MDowZjo5ZDoxNTpkZTo4NzoKICAgICAgICAgICAgICAgICAgICA0ZDo1Nzo2ZTozYzoyZjpmYjpjYTo3YTozZjpjNTphNjozZTo0Yzo5ZTo5ZjoKICAgICAgICAgICAgICAgICAgICBkNTowZTo4Mjo3ODo1MDpjZTowYjo3MDpjNjoxZDo0OTplNjo4MzoxNDpmOToKICAgICAgICAgICAgICAgICAgICBkNjo4YzpiYjoxZjowNTplMzoyNDplNDozMjpjOTo0MDo1NjoxNDoyZjplZjoKICAgICAgICAgICAgICAgICAgICAxNzo2MjozMjo4Yzo2MDpjNzoyZDpiODpiNzowMDo0Zjo4NjpiNDowOTo4MDoKICAgICAgICAgICAgICAgICAgICBmYjo0ZjphYTo4NTpkNTphOTplYzo5ZDpiNzoyNjpiMjo2YTowZDo5MzpjNjoKICAgICAgICAgICAgICAgICAgICBiNjphMTplNTpjODpkMjo2YzpiODo1ZTowZjpiYjozZToxNDo4OToxMzo3YjoKICAgICAgICAgICAgICAgICAgICBlODo0NTpkOTozMjoyMToyMDo5YTo5MjoxZDoxODpiYTo2NzpkZDo4NTphMToKICAgICAgICAgICAgICAgICAgICBmNzpjODo1NDoxMDo3NDpiODpmMToyNDpjNzoxMTpjYTowYjo1Mzo0OTo2NDoKICAgICAgICAgICAgICAgICAgICBjZTozMTozOToxZjowZDowZjpjYzpkMzpjZTphMzphMjo5YjphZDo4ZDo3MzoKICAgICAgICAgICAgICAgICAgICBjZjpjYzpjMDplNDpjNDpmZTowOTo4Mjo0NDo1ZToxMzplMDozNzpiZTo2MzoKICAgICAgICAgICAgICAgICAgICAwZjo2OTo4OTpiMzpiNjowOTozNjo4ODplYjo1MjozYzozMTplMTo0Nzo1MjoKICAgICAgICAgICAgICAgICAgICA2OTozYTpiYjozZjplODo5Mjo1MjpmYjo2NzoxMDpjMzozZDo1Zjo5YjpkODoKICAgICAgICAgICAgICAgICAgICBiMzo5YzpkNjoxYzpiNTo5Mjo3NjphMjo0Mjo5MDowNzo1ZjowODo5MzowMToKICAgICAgICAgICAgICAgICAgICBjZTozMTo0YzoxMzozMzoxNjo5OTo0ZTpmNzozMTo4MDo2YTo0ZToyMzo5MDoKICAgICAgICAgICAgICAgICAgICBmNjpkZgogICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQogICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgogICAgICAgICAgICBYNTA5djMgQmFzaWMgQ29uc3RyYWludHM6IAogICAgICAgICAgICAgICAgQ0E6RkFMU0UKICAgICAgICAgICAgTmV0c2NhcGUgQ2VydCBUeXBlOiAKICAgICAgICAgICAgICAgIFNTTCBDbGllbnQKICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNVdpdGhSU0FFbmNyeXB0aW9uCiAgICAgICAgN2U6YTg6ODU6NmY6OGY6MzI6ZWY6YjU6MWE6ZDI6ODk6NTk6MmE6NTU6MmY6YjA6ZTQ6Yjk6CiAgICAgICAgZjQ6ZmY6YmE6NDE6Zjk6Njc6NzI6NDI6ZTQ6Mzg6MmE6OTM6ZjE6ZWI6YzI6ZWY6ZmE6Yjk6CiAgICAgICAgNDM6YmM6MTE6MGM6MzI6ZDY6M2Q6ZWI6ZTA6MGE6NDU6Zjg6ZTc6Njk6MDQ6M2Q6NjE6MzY6CiAgICAgICAgNzM6NzA6ZjQ6Njk6Y2I6NDg6OWM6OWM6NzU6MmU6Y2I6OGM6NWQ6Yzg6YTY6Y2U6ZWE6NmI6CiAgICAgICAgOTY6MGE6M2I6YmQ6ZjA6YjI6NTk6YmQ6ZWM6N2Q6Njk6MTA6ZDk6OTQ6ODk6Y2E6YTI6Y2U6CiAgICAgICAgYTU6M2I6MTA6NDA6Yjc6MDI6OWI6MGU6MGY6ZjE6NjM6YWQ6MmQ6ZDM6NDQ6M2Q6OTY6ZDI6CiAgICAgICAgYzU6OWE6YmY6ZmI6NzI6Mjk6ZDI6N2Y6MTA6NTU6ZmY6ZGE6N2I6YjE6Y2E6NmY6ZmY6M2Q6CiAgICAgICAgODY6ZmQKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN6akNDQWplZ0F3SUJBZ0lGQUt2TkVsWXdEUVlKS29aSWh2Y05BUUVFQlFBd1pqRVNNQkFHQTFVRUF4TUoKVGtkR1NWQlRMVU5CTVFzd0NRWURWUVFJRXdKTFFURUxNQWtHQTFVRUJoTUNTVTR4SlRBakJna3Foa2lHOXcwQgpDUUVXRm1GemFHOXJaUzF1WjJacGNITkFiWGxqWVM1amIyMHhEekFOQmdOVkJBb1RCa05KVkZKSldEQWVGdzB4Ck1ERXhNVFV3T0RNMk1EZGFGdzB5TURFeE1USXdPRE0yTURkYU1Fb3hDekFKQmdOVkJBZ1RBa3RCTVFzd0NRWUQKVlFRR0V3SkpUakVkTUJzR0ExVUVBeFFVWVhOb2IydGxYMk5zYVdWdWRGOWpiR2xsYm5ReER6QU5CZ05WQkFvVApCa05KVkZKSldEQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5ETjFQRVFudkdxClcveS80R0plaTdoVHplajJlRUtub3VoZWdubS9FTXZqTlRFQXpMSEJrQStkRmQ2SFRWZHVQQy83eW5vL3hhWSsKVEo2ZjFRNkNlRkRPQzNER0hVbm1neFQ1MW95N0h3WGpKT1F5eVVCV0ZDL3ZGMkl5akdESExiaTNBRStHdEFtQQorMCtxaGRXcDdKMjNKckpxRFpQR3RxSGx5TkpzdUY0UHV6NFVpUk43NkVYWk1pRWdtcElkR0xwbjNZV2g5OGhVCkVIUzQ4U1RIRWNvTFUwbGt6akU1SHcwUHpOUE9vNkticlkxeno4ekE1TVQrQ1lKRVhoUGdONzVqRDJtSnM3WUoKTm9qclVqd3g0VWRTYVRxN1AraVNVdnRuRU1NOVg1dllzNXpXSExXU2RxSkNrQWRmQ0pNQnpqRk1Fek1XbVU3MwpNWUJxVGlPUTl0OENBd0VBQWFNZ01CNHdDUVlEVlIwVEJBSXdBREFSQmdsZ2hrZ0JodmhDQVFFRUJBTUNCNEF3CkRRWUpLb1pJaHZjTkFRRUVCUUFEZ1lFQWZxaUZiNDh5NzdVYTBvbFpLbFV2c09TNTlQKzZRZmxuY2tMa09DcVQKOGV2QzcvcTVRN3dSRERMV1BldmdDa1g0NTJrRVBXRTJjM0QwYWN0SW5KeDFMc3VNWGNpbXp1cHJsZ283dmZDeQpXYjNzZldrUTJaU0p5cUxPcFRzUVFMY0NtdzRQOFdPdExkTkVQWmJTeFpxLyszSXAwbjhRVmYvYWU3SEtiLzg5Cmh2MD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
                encoding_type: base64
              ssl-inform: PEM
              key-name: cs-k1
              key-file:
                name: lb-keyone-sample.pem
                contents: >-
                  LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBME0zVThSQ2U4YXBiL0wvZ1lsNkx1RlBONlBaNFFxZWk2RjZDZWI4UXkrTTFNUURNCnNjR1FENTBWM29kTlYyNDhML3ZLZWovRnBqNU1ucC9WRG9KNFVNNExjTVlkU2VhREZQbldqTHNmQmVNazVETEoKUUZZVUwrOFhZaktNWU1jdHVMY0FUNGEwQ1lEN1Q2cUYxYW5zbmJjbXNtb05rOGEyb2VYSTBteTRYZys3UGhTSgpFM3ZvUmRreUlTQ2FraDBZdW1mZGhhSDN5RlFRZExqeEpNY1J5Z3RUU1dUT01Ua2ZEUS9NMDg2am9wdXRqWFBQCnpNRGt4UDRKZ2tSZUUrQTN2bU1QYVltenRnazJpT3RTUERIaFIxSnBPcnMvNkpKUysyY1F3ejFmbTlpem5OWWMKdFpKMm9rS1FCMThJa3dIT01Vd1RNeGFaVHZjeGdHcE9JNUQyM3dJREFRQUJBb0lCQUJmOERNSEVEdjNqZTcyRQpyTm1mMHB6Unc0MUhBbmxsbUNqbzhrUFoxcXdVNVQ5RHdEK0s1R2xtdWVSZDFseDhwUjA5NXZ3ejV4ZzVmOE9ZCnlIaHFORGZUOHl4NUZWUXZ6azdTZy9xV1kvSGhMWk9vNGNVcUhoZURkMFFvV2tlam1YVG1VSHJTRmt3aExMengKOFgyaGp6UnVuVnRSSTA0ZVBVeExnTTNxL3lLT3B1b2lRY2F2dENmdzg0VmV3U0xkakJWQmdabi9DMllySlp5VQpaVXJNNEIrYkVPSExzL1FqMmRaNXEvWEQ5RmExOWd3c1JyaEFFNzZYdm9sT3c3QUkwNzJ5LzFPems2Nk9qM2JKClA0a2Z3c1VaTWZxeHFoV2FGZmNlNGFzQitKSUc3Z0xiVjFhMVRIODF1Q25qZXk5MThialZlTUhuazA5OUlqS0UKdDJhSEFNRUNnWUVBN0w0QTE4NWxWT3U5bmQ1RnR3K1pRcGtPbVByTjM3YnpmRzc1dVRIWnkyT2tLTUdqMTAyQQprR3h6alk4REd4RVN2K1RNUmpRWVRna0ZPd3BxKytHd2hrN21ZK0ZNd1FuYmVhdWlpdFF2TWNmWDdtaG1Ld3QyCllWZ2FpeG4rL2NqckFPTHlxQXNlVDVJUCs4eWNZSEtBUnUzWm9HY2JucmpJbDZxL25QbEJtL3NDZ1lFQTRjb0kKOHhMN0FIVGQrbFpkaGlRb2RvdUgwOHRJV1M3TzV3SGV0bnJnN3V0VDFYd3I5UDJTaWV4a3FublpFSURjanVtWQplZTk3MWlyWm5rZUVEODR3cHlYTjE2WVFuK1dCVXlCMDZJUU9RRlg5NldvRFRiOVFWQlJPcS9UQUIxMzJySzRrCjhnTDhFYkNoM29OR0tDbTNvRlZ1Q3A5YVNwbjV4QU91S2RoNkYyMENnWUVBbGNrdGpWMG9IYys5dS9tYkVGVE4KT2liTzVwbWcway9WeEVBT3ZrNjlKd05YSlBaSGJIeTd3Q1R1QTMyZGtHMS8rR3VSbDBWMHIwTGp6VlF0RmtyWQpQbElEVU9TR2hJaHhGWTB6blRUYzIxaysxTGUzRkxyKzNsNDVCUk9na3YraE9JRmUyRldZaXUyMk1URm5LMXFtCnNMbmlmS3RmL1UrYWt1TlVzc085OENzQ2dZQXJKZHpIOXR5WW5ieTkxanRSSXgvSVo2bXhRNnV6djBveXd4eTQKYW9zSm5WY0wrUXE5YXFmU1M2YUJIWC9wczNaeXFSbEdWQW1xUjg0R2ZVd3phUWZMS1dKSXo2ZGxwd29yeEl3Uwowd21XS2RpMy9sWmJTVEFrb1N6WGw1SUsxbDRKYWM0Tm9aeGlGUXNaNXFSRmtKTlN4SUNlN3d6bUxMNmFRc25KCm5XRFhrUUtCZ1FDSThXRW1wQ3V3TCtlSkxoeDlrakhWNDlaUXFsS3RoK1pxNFJIbDV0ZCsxZjdxaWhtRnNYNFQKMm1va2RCWDFHaWVoaXR3OGxJaW16dlROY3huNjdBNG9ndTV6UlZKSndxZGcyZjBNTFNjdzNIL2NhREs1RURMWQpocnRsVzM0UjF6SDB4Y1UyNEFoeVRPeFB6SW1Gb3hUZCtBSnJmNENicE5LdDlFdFVnZCtnU1E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
                encoding_type: base64
              cert-password: '123456'

  UpgradeConfigpackRequestBody:
    title: Upgrade Configpack Payload Request
    type: object
    properties:
      upgrade:
        $ref: '#/definitions/UpgradeConfigpackDetailsRequestBody'
    required:
      - upgrade
    example:
      upgrade:
        stylebook:
          name: "Hello-World-StyleBook123"
          namespace: "com.citrix.adc.stylebooks"
          version: "1.2"
        parameters:
          lb-appname: "lb-app"
          lb-virtual-ip: "6.5.4.3"
          lb-virtual-port: "80"
        targets:
          instance_id: "9284e6e5-1476-4f97-9c46-cf379921a1fb"
  DetachTargetsRequestBody:
    title: Detach Targets from Configpack
    type: object
    properties:
      detach_targets:
        $ref: '#/definitions/TargetDevices'
    required:
      - detach_targets
    example:
      detach_targets:
          instance_id: "9284e6e5-1476-4f97-9c46-cf379921a1fb"

  UpgradeConfigpackResponseBody:
    title: UpgradeConfigpackResponse
    type: object
    required:
      - upgrade
    example:
      upgrade:
        job_id: 1234568
        stylebook:
          - name: "Hello-World-StyleBook123"
            namespace: "com.citrix.adc.stylebooks"
            version: "1.1"

  SupportBundleResponseBody:
    title: SupportBundleResponseBody
    type: object
    required:
      - supportbundle
    example:
      supportbundle:
        job_id: 1234568

  DetachTargetsResponseBody:
    title: DetachTargetsResponse
    type: object
    required:
      - detach_targets
    example:
      detach_targets:
        new_configpack_id: 87684

  GetAuditConfigpackResponseBody:
    title: AuditConfigpackResponse
    type: object
    properties:
      audit:
        type: object
        properties:
          id:
            type: string
          targets:
            type: array
            items:
              $ref: '#/definitions/ConfigpackAuditTargetResponse'
          last_audit_datetime:
            description: "The date timestamp of the last audit performed."
            type: string
    required:
      - audit
    example:
      audit:
        id: '749894685'
        last_audit_datetime: "2021-08-11 09:20:40"
        targets:
          - 
            instance_id: cc0684ec-6c6b-4f76-8bc9-15d18ca19fc6
            instance_ip: 10.102.201.72
            config_objects:
              - 
                resource_type: lbvserver
                desired_state:
                  ipv46: 3.4.5.6
                  name: myapp1
                  port: 80
                  servicetype: SSL
                actual_state: null
                is_resource_removed: true
              - 
                resource_type: servicegroup
                desired_state:
                  servicegroupname: myapp1-svcgrp
                  servicetype: SSL
                actual_state: null
                is_resource_removed: true
              - 
                resource_type: lbvserver_servicegroup_binding
                desired_state:
                  name: myapp1
                  servicegroupname: myapp1-svcgrp
                actual_state: null
                is_resource_removed: true

  ConfigpackAuditTargetResponse:
    title: ConfigpackAuditTargetResponse
    type: object
    properties:
      config_objects:
        type: array
        items:
          $ref: '#/definitions/ConfigpackObjectsResponse'
      instance_id:
        type: string
      instance_ip:
        type: string
        
  ConfigpackObjectsResponse:
    title: ConfigpackObjectsResponse
    type: object
    properties:
      type:
        type: string
      actual_state:
        type: object
      desired_state:
        type: object
      has_resource_changed: 
        type: boolean
      is_resource_removed: 
        type: boolean
      resource_type:
        type: string
  
  ComputeCloneStyleBookResponseBody:
    title: ComputeCloneStyleBookResponseBody
    type: object
    properties:
      clone:
        type: object
        properties:
          suggested_mappings:
            type: array
            items:
              $ref: '#/definitions/RecommendNameSpaceCloneResponse'      
    required:
      - clone
  
  RecommendNameSpaceCloneResponse:
    title: RecommendNameSpaceCloneResponse
    type: object
    properties:
      existing_namespace:
        type: object
      stylebooks: 
        type: array
        items:
          type: string
      new_namespace:
        type: object

  GetAllStyleBooksResponseBody:
    title: GetAllStyleBooksResponse
    type: object
    required:
      - stylebooks
    properties:
      _total_count:
        $ref: '#/definitions/total_count'
      _count: 
        $ref: '#/definitions/count'
      stylebooks:
        type: array
        items:
          $ref: '#/definitions/StyleBookSummaryDescription'
    example:
      _total_count: 1
      stylebooks:
        -
          id: lbc957df10536842c383e55a8114a92b96
          name: lb
          namespace: com.citrix.adc.stylebooks
          version: '1.1'
          description: '"This stylebook defines a typical Load Balanced Application configuration."'
          display_name: HTTP/SSL LoadBalancing StyleBook
          schema_version: '1.0'
          created_datetime: '2021-08-23 01:28:54'
          primary_keys:
            - lb-appname
          private: false
          custom: false
          deprecate: false
          builtin_namespaces:
            - namespace: netscaler.nitro.config
              version: '10.5'
          dependencies:
            - id: vser18ca8e41e91080a27b4d2ee65a7520c3
              name: vserver-certs-binds
              namespace: com.citrix.adc.stylebooks
              version: '1.0'
            - id: lbvsa4938ff76786c561305cc8f647f95c79
              name: lbvserver-params
              namespace: com.citrix.adc.commontypes
              version: '1.0'
            - id: cert994a1f0f1de1c77f3b882e58643a4750
              name: certificate
              namespace: com.citrix.adc.commontypes
              version: '1.0'
            - id: servb718a601d59cefff85d5665b4ef21adb
              name: services-params
              namespace: com.citrix.adc.commontypes
              version: '1.0'
          reverse_dependencies: []
          encoding: BASE64
          source: LS0tIApuYW1lOiBsYgpuYW1lc3BhY2U6IGNvbS5jaXRyaXguYWRjLnN0eWxlYm9va3MKdmVyc2lvbjogIjEuMSIKZGlzcGxheS1uYW1lOiAiSFRUUC9TU0wgTG9hZEJhbGFuY2luZyBTdHlsZUJvb2siCmRlc2NyaXB0aW9uOiAiVGhpcyBzdHlsZWJvb2sgZGVmaW5lcyBhIHR5cGljYWwgTG9hZCBCYWxhbmNlZCBBcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLiIKc2NoZW1hLXZlcnNpb246ICIxLjAiCmltcG9ydC1zdHlsZWJvb2tzOiAKICAtIAogICAgbmFtZXNwYWNlOiBuZXRzY2FsZXIubml0cm8uY29uZmlnCiAgICBwcmVmaXg6IG5zCiAgICB2ZXJzaW9uOiAiMTAuNSIKICAtIAogICAgbmFtZXNwYWNlOiBjb20uY2l0cml4LmFkYy5jb21tb250eXBlcwogICAgcHJlZml4OiBjbXR5cGVzCiAgICB2ZXJzaW9uOiAiMS4wIgogIC0gCiAgICBuYW1lc3BhY2U6IGNvbS5jaXRyaXguYWRjLnN0eWxlYm9va3MKICAgIHByZWZpeDogc3RsYgogICAgdmVyc2lvbjogIjEuMCIKcGFyYW1ldGVycy1kZWZhdWx0LXNvdXJjZXM6CiAgLSBjbXR5cGVzOjpsYnZzZXJ2ZXItcGFyYW1zCiAgLSBjbXR5cGVzOjpzZXJ2aWNlcy1wYXJhbXMKcGFyYW1ldGVyczogCiAgLSAKICAgIG5hbWU6IGNlcnRpZmljYXRlcwogICAgbGFiZWw6ICJTU0wgQ2VydGlmaWNhdGUgU2V0dGluZ3MiCiAgICBkZXNjcmlwdGlvbjogIkNlcnRpZmljYXRlcyBmb3IgdGhpcyB2aXJ0dWFsIHNlcnZlciBpZiB0aGlzIGxvYWQgQmFsYW5jZWQgYXBwbGljYXRpb24gaXMgZXhwb3NlZCB1c2luZyBTU0wiCiAgICB0eXBlOiAiY210eXBlczo6Y2VydGlmaWNhdGVbXSIKY29tcG9uZW50czogCiAgLSAKICAgIG5hbWU6IGxidnNlcnZlci1jb21wCiAgICB0eXBlOiBuczo6bGJ2c2VydmVyCiAgICBwcm9wZXJ0aWVzOiAKICAgICAgbmFtZTogJHBhcmFtZXRlcnMubGItYXBwbmFtZSArICItbGIiCiAgICAgIHNlcnZpY2V0eXBlOiAkcGFyYW1ldGVycy5sYi1zZXJ2aWNlLXR5cGUKICAgICAgaXB2NDY6ICRwYXJhbWV0ZXJzLmxiLXZpcnR1YWwtaXAKICAgICAgcG9ydD86ICRwYXJhbWV0ZXJzLmxiLXZpcnR1YWwtcG9ydAogICAgICBsYm1ldGhvZD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLmFsZ29yaXRobQogICAgICBwZXJzaXN0ZW5jZXR5cGU/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5wZXJzaXN0ZW5jZQogICAgICBwZXJzaXN0ZW5jZWJhY2t1cD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLnBlcnNpc3RlbmNlLWJhY2t1cAogICAgICBiYWNrdXBwZXJzaXN0ZW5jZXRpbWVvdXQ/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5iYWNrdXAtcGVyc2lzdGVuY2UtdGltZW91dAogICAgICBjbHR0aW1lb3V0PzogJHBhcmFtZXRlcnMubGItYWR2YW5jZWQuY2xpZW50LXRpbWVvdXQKICAgICAgdGltZW91dD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLnRpbWVvdXQKICAgICAgaW5zZXJ0dnNlcnZlcmlwcG9ydD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLmluc2VydC12c2VydmVyLWlwcG9ydAogICAgICByZWRpcnVybD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLnJlZGlyZWN0LXVybAogICAgICBzb21ldGhvZD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLnNwaWxsb3Zlci1tZXRob2QKICAgICAgc290aHJlc2hvbGQ/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5zcGlsbG92ZXItdGhyZXNob2xkCiAgICAgIGh0dHBwcm9maWxlbmFtZT86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLmh0dHAtcHJvZmlsZQogICAgICBkb3duc3RhdGVmbHVzaD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLmZsdXNoLW9uLXN0YXRlLWRvd24KICAgICAgYXV0aGVudGljYXRpb24/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5hdXRoLXBhcmFtcy5hdXRoZW50aWNhdGlvbgogICAgICBhdXRoZW50aWNhdGlvbmhvc3Q/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5hdXRoLXBhcmFtcy5hdXRoZW50aWNhdGlvbi1ob3N0CiAgICAgIGF1dGhudnNuYW1lPzogJHBhcmFtZXRlcnMubGItYWR2YW5jZWQuYXV0aC1wYXJhbXMuYXV0aGVudGljYXRpb24tdnNlcnZlci1uYW1lCiAgICAgIGF1dGhuNDAxPzogJHBhcmFtZXRlcnMubGItYWR2YW5jZWQuYXV0aC1wYXJhbXMuYXV0aGVudGljYXRpb24taHR0cC00MDEKICAgICAgYXBwZmxvd2xvZz86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLmFwcGZsb3ctbG9nCiAgICAgIGNvbW1lbnQ/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5jb21tZW50CiAgICBjb21wb25lbnRzOiAKICAgICAgLSAKICAgICAgICBuYW1lOiBzZXJ2aWNlZ3JvdXAtY29tcAogICAgICAgIHR5cGU6IG5zOjpzZXJ2aWNlZ3JvdXAKICAgICAgICBwcm9wZXJ0aWVzOiAKICAgICAgICAgIHNlcnZpY2Vncm91cG5hbWU6ICRwYXJhbWV0ZXJzLmxiLWFwcG5hbWUgKyAiLXN2Y2dycCIKICAgICAgICAgIHNlcnZpY2V0eXBlOiAkcGFyYW1ldGVycy5zdmMtc2VydmljZS10eXBlCiAgICAgICAgICBjaXA/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1jbGllbnQtaXAKICAgICAgICAgIGNpcGhlYWRlcj86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLWNsaWVudC1pcC1oZWFkZXIKICAgICAgICAgIGNrYT86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLWNsaWVudC1rZWVwYWxpdmUKICAgICAgICAgIGNsdHRpbWVvdXQ/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1jbGllbnQtdGltZW91dAogICAgICAgICAgc3ZydGltZW91dD86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLXNlcnZlci10aW1lb3V0CiAgICAgICAgICBtYXhjbGllbnQ/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1tYXgtY2xpZW50cwogICAgICAgICAgbWF4cmVxPzogJHBhcmFtZXRlcnMuc3ZjZy1hZHZhbmNlZC5zdmMtbWF4LXJlcXVlc3RzCiAgICAgICAgICB0Y3BiPzogJHBhcmFtZXRlcnMuc3ZjZy1hZHZhbmNlZC5zdmMtdGNwLWJ1ZmZlcmluZwogICAgICAgICAgdXNpcD86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLXVzZS1zb3VyY2UtaXAKICAgICAgICAgIHVzZXByb3h5cG9ydD86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLXVzZS1wcm94eS1wb3J0CiAgICAgICAgICBjbXA/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1jb21wcmVzc2lvbgogICAgICAgICAgc2M/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1zdXJlLWNvbm5lY3QKICAgICAgICAgIHNwPzogJHBhcmFtZXRlcnMuc3ZjZy1hZHZhbmNlZC5zdmMtc3VyZ2UtcHJvdGVjdGlvbgogICAgICAgICAgY3VzdG9tc2VydmVyaWQ/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1jdXN0b20tc2VydmVyLWlkCiAgICAgICAgICBkb3duc3RhdGVmbHVzaD86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLWRvd25zdGF0ZS1mbHVzaAogICAgICAgICAgc3RhdGU/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1zdGF0ZQogICAgICAgICAgaGVhbHRobW9uaXRvcj86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLWVuYWJsZS1oZWFsdGgtbW9uaXRvcgogICAgICAgICAgY29tbWVudD86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLWNvbW1lbnQKICAgICAgICBjb21wb25lbnRzOiAKICAgICAgICAgIC0gCiAgICAgICAgICAgIG5hbWU6IGxidnNlcnZlci1zdmctYmluZGluZwogICAgICAgICAgICB0eXBlOiBuczo6bGJ2c2VydmVyX3NlcnZpY2Vncm91cF9iaW5kaW5nCi
          icon: iVBORw0KGgoAAAANSUhEUgAAACEAAAAhCAYAAABX5MJvAAAAAXNSR0IArs4c6QAAAxhJREFUWAm9lluITVEYx437/a6GxiUaxgkdiahxeVKKaUp58KAmEZowDy6lpOad8kCS3J5QkksybiUvQzFNuZ6HYYYw7rcMY/D7a69aVmvvObNbzr9+Z6/1rdu31/6+tU5Rt8KomGWynqUeYHta5GkIbRrOhC3w1TPxUGxlPT0NIUwZJmmFNzAZesMAcNWMYUZ31xqoXs48OaiBHoHmzHuaifQ8Aq/hd0QTz3bwSTtRGXIntO23YBxcAKkeav+WCvRzlXUuguJsGawCBf5cSNwJ2oPILDTeM5sy4BN89vAd24RQKXomWkhv75PSdLqn4RG2lx57l01TGdEB07o8MhpgdqI/9dVQmjBRG21XoM7pc4y6trzCseddVRApj6/BGLgOSi2fFPWbYDPsjzrI8ZUwJ6qnesiJmTALSuAVJGkrjTtAY+aBPkU13IEkjaAxLiZeyImR8B7kQC/YAmPB6CeFw6CFHsJAkE7CCXisSoL0qZpi2vtgnyInbC2msg20gJECbg8sjAy6iNZG5bjHIhpa4T6UQT/QC7rSiZl1nRiEUTuyxuqt8nqrrmAeZdV9xfkYd8I+OO/rYNtcJ+y2uPIwGvSW+WgjnZZ31jGNEx+YtLNs0O4pgA/BaTgHsXKd+EjPYjhujSilLLvRLwotphLzvIFdizeAjvREuU5cpvcusLNDx6oOJKO+FHReyJFLoEB1pUPNSNnzA3S9uxqCoVFOvAOlkYJNHXdDnLQrHbACsvANdFjVQZw0/yRQf1fKnmZFuhypBzmiN4g7MdVeAdthL2hHakGZozR+Aqlk7g6l5jrQm8apjQY5edbqoPH6JM+hyrIXvFjOivrmJWlXNjuRdrwZd5PCbagxBuc5mHrGsamag7ceeyrTUkZ9Af15cSUHdDe1e1Bg25lINb20o41wIJpCn2h2VNY5IQd80t1RqcwIIWXUBtD/EpWVlsqio3AKCqoFrKbYkCMGXYiJO0H7f1E1s+pQOwhLINGJUJ+Ddf7RXWr6t9YAiolEhUrRpEX01+4Z6EpwNRpDphBOaGGloXbG1T0MuT/nfZ2AwLWPrgAAAABJRU5ErkJggg==


  GetDistinctNamespacesStyleBooksResponseBody:
    title: GetDistinctNamespacesStyleBooksResponse
    type: object
    properties:
      _total_count:
        $ref: '#/definitions/total_count'
      namespaces:
        type: array
        items:
          type: object
          properties:
            namespace: 
              type: string
            versions:
              type: array
              items:
                type: string
    required:
      - namespaces
    example:
      _total_count: 2
      namespaces: 
        - namespace: "com.acme-corp.stylebooks"
          versions: ["1.0", "1.1"]
        - namespace: "com.bizcorp.stylebooks"
          versions: ["1.3"]

  GetStyleBookResponseBody:
    title: GetStyleBookResponse
    type: object
    properties:
      stylebook:
        $ref: '#/definitions/StyleBookSummaryDescription'
    required:
      - stylebook
    example:
      stylebook:
        id: lbc957df10536842c383e55a8114a92b96
        name: lb
        namespace: com.citrix.adc.stylebooks
        version: '1.1'
        description: '"This stylebook defines a typical Load Balanced Application configuration."'
        display_name: HTTP/SSL LoadBalancing StyleBook
        schema_version: '1.0'
        created_datetime: '2021-08-23 01:28:54'
        primary_keys:
          - lb-appname
        private: false
        custom: false
        deprecate: false
        builtin_namespaces:
          - namespace: netscaler.nitro.config
            version: '10.5'
        dependencies:
          - id: vser18ca8e41e91080a27b4d2ee65a7520c3
            name: vserver-certs-binds
            namespace: com.citrix.adc.stylebooks
            version: '1.0'
          - id: lbvsa4938ff76786c561305cc8f647f95c79
            name: lbvserver-params
            namespace: com.citrix.adc.commontypes
            version: '1.0'
          - id: cert994a1f0f1de1c77f3b882e58643a4750
            name: certificate
            namespace: com.citrix.adc.commontypes
            version: '1.0'
          - id: servb718a601d59cefff85d5665b4ef21adb
            name: services-params
            namespace: com.citrix.adc.commontypes
            version: '1.0'
        reverse_dependencies: []
        encoding: BASE64
        source: LS0tIApuYW1lOiBsYgpuYW1lc3BhY2U6IGNvbS5jaXRyaXguYWRjLnN0eWxlYm9va3MKdmVyc2lvbjogIjEuMSIKZGlzcGxheS1uYW1lOiAiSFRUUC9TU0wgTG9hZEJhbGFuY2luZyBTdHlsZUJvb2siCmRlc2NyaXB0aW9uOiAiVGhpcyBzdHlsZWJvb2sgZGVmaW5lcyBhIHR5cGljYWwgTG9hZCBCYWxhbmNlZCBBcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uLiIKc2NoZW1hLXZlcnNpb246ICIxLjAiCmltcG9ydC1zdHlsZWJvb2tzOiAKICAtIAogICAgbmFtZXNwYWNlOiBuZXRzY2FsZXIubml0cm8uY29uZmlnCiAgICBwcmVmaXg6IG5zCiAgICB2ZXJzaW9uOiAiMTAuNSIKICAtIAogICAgbmFtZXNwYWNlOiBjb20uY2l0cml4LmFkYy5jb21tb250eXBlcwogICAgcHJlZml4OiBjbXR5cGVzCiAgICB2ZXJzaW9uOiAiMS4wIgogIC0gCiAgICBuYW1lc3BhY2U6IGNvbS5jaXRyaXguYWRjLnN0eWxlYm9va3MKICAgIHByZWZpeDogc3RsYgogICAgdmVyc2lvbjogIjEuMCIKcGFyYW1ldGVycy1kZWZhdWx0LXNvdXJjZXM6CiAgLSBjbXR5cGVzOjpsYnZzZXJ2ZXItcGFyYW1zCiAgLSBjbXR5cGVzOjpzZXJ2aWNlcy1wYXJhbXMKcGFyYW1ldGVyczogCiAgLSAKICAgIG5hbWU6IGNlcnRpZmljYXRlcwogICAgbGFiZWw6ICJTU0wgQ2VydGlmaWNhdGUgU2V0dGluZ3MiCiAgICBkZXNjcmlwdGlvbjogIkNlcnRpZmljYXRlcyBmb3IgdGhpcyB2aXJ0dWFsIHNlcnZlciBpZiB0aGlzIGxvYWQgQmFsYW5jZWQgYXBwbGljYXRpb24gaXMgZXhwb3NlZCB1c2luZyBTU0wiCiAgICB0eXBlOiAiY210eXBlczo6Y2VydGlmaWNhdGVbXSIKY29tcG9uZW50czogCiAgLSAKICAgIG5hbWU6IGxidnNlcnZlci1jb21wCiAgICB0eXBlOiBuczo6bGJ2c2VydmVyCiAgICBwcm9wZXJ0aWVzOiAKICAgICAgbmFtZTogJHBhcmFtZXRlcnMubGItYXBwbmFtZSArICItbGIiCiAgICAgIHNlcnZpY2V0eXBlOiAkcGFyYW1ldGVycy5sYi1zZXJ2aWNlLXR5cGUKICAgICAgaXB2NDY6ICRwYXJhbWV0ZXJzLmxiLXZpcnR1YWwtaXAKICAgICAgcG9ydD86ICRwYXJhbWV0ZXJzLmxiLXZpcnR1YWwtcG9ydAogICAgICBsYm1ldGhvZD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLmFsZ29yaXRobQogICAgICBwZXJzaXN0ZW5jZXR5cGU/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5wZXJzaXN0ZW5jZQogICAgICBwZXJzaXN0ZW5jZWJhY2t1cD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLnBlcnNpc3RlbmNlLWJhY2t1cAogICAgICBiYWNrdXBwZXJzaXN0ZW5jZXRpbWVvdXQ/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5iYWNrdXAtcGVyc2lzdGVuY2UtdGltZW91dAogICAgICBjbHR0aW1lb3V0PzogJHBhcmFtZXRlcnMubGItYWR2YW5jZWQuY2xpZW50LXRpbWVvdXQKICAgICAgdGltZW91dD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLnRpbWVvdXQKICAgICAgaW5zZXJ0dnNlcnZlcmlwcG9ydD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLmluc2VydC12c2VydmVyLWlwcG9ydAogICAgICByZWRpcnVybD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLnJlZGlyZWN0LXVybAogICAgICBzb21ldGhvZD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLnNwaWxsb3Zlci1tZXRob2QKICAgICAgc290aHJlc2hvbGQ/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5zcGlsbG92ZXItdGhyZXNob2xkCiAgICAgIGh0dHBwcm9maWxlbmFtZT86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLmh0dHAtcHJvZmlsZQogICAgICBkb3duc3RhdGVmbHVzaD86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLmZsdXNoLW9uLXN0YXRlLWRvd24KICAgICAgYXV0aGVudGljYXRpb24/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5hdXRoLXBhcmFtcy5hdXRoZW50aWNhdGlvbgogICAgICBhdXRoZW50aWNhdGlvbmhvc3Q/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5hdXRoLXBhcmFtcy5hdXRoZW50aWNhdGlvbi1ob3N0CiAgICAgIGF1dGhudnNuYW1lPzogJHBhcmFtZXRlcnMubGItYWR2YW5jZWQuYXV0aC1wYXJhbXMuYXV0aGVudGljYXRpb24tdnNlcnZlci1uYW1lCiAgICAgIGF1dGhuNDAxPzogJHBhcmFtZXRlcnMubGItYWR2YW5jZWQuYXV0aC1wYXJhbXMuYXV0aGVudGljYXRpb24taHR0cC00MDEKICAgICAgYXBwZmxvd2xvZz86ICRwYXJhbWV0ZXJzLmxiLWFkdmFuY2VkLmFwcGZsb3ctbG9nCiAgICAgIGNvbW1lbnQ/OiAkcGFyYW1ldGVycy5sYi1hZHZhbmNlZC5jb21tZW50CiAgICBjb21wb25lbnRzOiAKICAgICAgLSAKICAgICAgICBuYW1lOiBzZXJ2aWNlZ3JvdXAtY29tcAogICAgICAgIHR5cGU6IG5zOjpzZXJ2aWNlZ3JvdXAKICAgICAgICBwcm9wZXJ0aWVzOiAKICAgICAgICAgIHNlcnZpY2Vncm91cG5hbWU6ICRwYXJhbWV0ZXJzLmxiLWFwcG5hbWUgKyAiLXN2Y2dycCIKICAgICAgICAgIHNlcnZpY2V0eXBlOiAkcGFyYW1ldGVycy5zdmMtc2VydmljZS10eXBlCiAgICAgICAgICBjaXA/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1jbGllbnQtaXAKICAgICAgICAgIGNpcGhlYWRlcj86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLWNsaWVudC1pcC1oZWFkZXIKICAgICAgICAgIGNrYT86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLWNsaWVudC1rZWVwYWxpdmUKICAgICAgICAgIGNsdHRpbWVvdXQ/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1jbGllbnQtdGltZW91dAogICAgICAgICAgc3ZydGltZW91dD86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLXNlcnZlci10aW1lb3V0CiAgICAgICAgICBtYXhjbGllbnQ/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1tYXgtY2xpZW50cwogICAgICAgICAgbWF4cmVxPzogJHBhcmFtZXRlcnMuc3ZjZy1hZHZhbmNlZC5zdmMtbWF4LXJlcXVlc3RzCiAgICAgICAgICB0Y3BiPzogJHBhcmFtZXRlcnMuc3ZjZy1hZHZhbmNlZC5zdmMtdGNwLWJ1ZmZlcmluZwogICAgICAgICAgdXNpcD86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLXVzZS1zb3VyY2UtaXAKICAgICAgICAgIHVzZXByb3h5cG9ydD86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLXVzZS1wcm94eS1wb3J0CiAgICAgICAgICBjbXA/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1jb21wcmVzc2lvbgogICAgICAgICAgc2M/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1zdXJlLWNvbm5lY3QKICAgICAgICAgIHNwPzogJHBhcmFtZXRlcnMuc3ZjZy1hZHZhbmNlZC5zdmMtc3VyZ2UtcHJvdGVjdGlvbgogICAgICAgICAgY3VzdG9tc2VydmVyaWQ/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1jdXN0b20tc2VydmVyLWlkCiAgICAgICAgICBkb3duc3RhdGVmbHVzaD86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLWRvd25zdGF0ZS1mbHVzaAogICAgICAgICAgc3RhdGU/OiAkcGFyYW1ldGVycy5zdmNnLWFkdmFuY2VkLnN2Yy1zdGF0ZQogICAgICAgICAgaGVhbHRobW9uaXRvcj86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLWVuYWJsZS1oZWFsdGgtbW9uaXRvcgogICAgICAgICAgY29tbWVudD86ICRwYXJhbWV0ZXJzLnN2Y2ctYWR2YW5jZWQuc3ZjLWNvbW1lbnQKICAgICAgICBjb21wb25lbnRzOiAKICAgICAgICAgIC0gCiAgICAgICAgICAgIG5hbWU6IGxidnNlcnZlci1zdmctYmluZGluZwogICAgICAgICAgICB0eXBlOiBuczo6bGJ2c2VydmVyX3NlcnZpY2Vncm91cF9iaW5kaW5nCiAg
        icon: iVBORw0KGgoAAAANSUhEUgAAACEAAAAhCAYAAABX5MJvAAAAAXNSR0IArs4c6QAAAxhJREFUWAm9lluITVEYx437/a6GxiUaxgkdiahxeVKKaUp58KAmEZowDy6lpOad8kCS3J5QkksybiUvQzFNuZ6HYYYw7rcMY/D7a69aVmvvObNbzr9+Z6/1rdu31/6+tU5Rt8KomGWynqUeYHta5GkIbRrOhC3w1TPxUGxlPT0NIUwZJmmFNzAZesMAcNWMYUZ31xqoXs48OaiBHoHmzHuaifQ8Aq/hd0QTz3bwSTtRGXIntO23YBxcAKkeav+WCvRzlXUuguJsGawCBf5cSNwJ2oPILDTeM5sy4BN89vAd24RQKXomWkhv75PSdLqn4RG2lx57l01TGdEB07o8MhpgdqI/9dVQmjBRG21XoM7pc4y6trzCseddVRApj6/BGLgOSi2fFPWbYDPsjzrI8ZUwJ6qnesiJmTALSuAVJGkrjTtAY+aBPkU13IEkjaAxLiZeyImR8B7kQC/YAmPB6CeFw6CFHsJAkE7CCXisSoL0qZpi2vtgnyInbC2msg20gJECbg8sjAy6iNZG5bjHIhpa4T6UQT/QC7rSiZl1nRiEUTuyxuqt8nqrrmAeZdV9xfkYd8I+OO/rYNtcJ+y2uPIwGvSW+WgjnZZ31jGNEx+YtLNs0O4pgA/BaTgHsXKd+EjPYjhujSilLLvRLwotphLzvIFdizeAjvREuU5cpvcusLNDx6oOJKO+FHReyJFLoEB1pUPNSNnzA3S9uxqCoVFOvAOlkYJNHXdDnLQrHbACsvANdFjVQZw0/yRQf1fKnmZFuhypBzmiN4g7MdVeAdthL2hHakGZozR+Aqlk7g6l5jrQm8apjQY5edbqoPH6JM+hyrIXvFjOivrmJWlXNjuRdrwZd5PCbagxBuc5mHrGsamag7ceeyrTUkZ9Af15cSUHdDe1e1Bg25lINb20o41wIJpCn2h2VNY5IQd80t1RqcwIIWXUBtD/EpWVlsqio3AKCqoFrKbYkCMGXYiJO0H7f1E1s+pQOwhLINGJUJ+Ddf7RXWr6t9YAiolEhUrRpEX01+4Z6EpwNRpDphBOaGGloXbG1T0MuT/nfZ2AwLWPrgAAAABJRU5ErkJggg==
        
  GetRecentActivityConfigpacksResponseBody:
    title: GetRecentActivityConfigpacksResponse
    type: object
    properties:
      configpacks:
        type: array
        items:
          $ref: '#/definitions/ConfigpackActivityLogDescription'
  GetRecentActivityStyleBooksResponseBody:
    title: GetRecentActivityStyleBooksResponse
    type: object
    properties:
      stylebooks:
        type: array
        items:
          $ref: '#/definitions/ConfigpackActivityLogDescription'    

  GetConfigpacksResponseBody:
    title: GetConfigpacksResponse
    type: object
    properties:
      _total_count:
        $ref: '#/definitions/total_count'
      _count: 
        $ref: '#/definitions/count'
      configpacks:
        type: array
        items:
          $ref: '#/definitions/ConfigpackSummaryDescription'
    required:
      - configpacks
    example:
      _total_count: 1
      configpacks:
        -
          id: '749894685'
          config_key: '749894685'
          created_by: nw970378+arpitasetup@gmail.com
          created_datetime: '2021-08-10 05:40:49'
          last_modified_by: nsroot
          last_modified_datetime: '2021-08-11 09:20:40'
          last_status: completed
          stylebook:
            name: lb
            namespace: com.citrix.adc.stylebooks
            version: '1.1'
          parameters:
            lb-appname: myapp1
            lb-service-type: SSL
            lb-virtual-ip: 3.4.5.6
            lb-virtual-port: 80
            svc-service-type: SSL
            certificates:
                cert-name: cs-p1
                cert-file:
                  id: a9134db902de92313d501d997ed007df
                  name: lb-certificate-sample.pem
                cert-password: '123456'
                key-name: cs-k1
                key-file:
                  id: 6704a67386ab43fff7d8892ba56f1c31
                  name: lb-keyone-sample.pem
                ssl-inform: PEM
          primary_keys:
            lb-appname: myapp1

          targets:
            - instance_id: cc0684ec-6c6b-4f76-8bc9-15d18ca19fc6
              instance_ip: 10.102.201.72
              roles:
                - default

  GetConfigpackResponseBody:
    title: GetConfigpackResponse
    type: object
    properties:
      configpack:
        $ref: '#/definitions/ConfigpackSummaryDescription'
    required:
      - configpack
    example:
      configpack:
          id: '749894685'
          config_key: 'mygreat_app'
          created_by: nw970378+arpitasetup@gmail.com
          created_datetime: '2021-08-10 05:40:49'
          last_modified_by: nsroot
          last_modified_datetime: '2021-08-11 09:20:40'
          last_status: completed
          stylebook:
            name: lb
            namespace: com.citrix.adc.stylebooks
            version: '1.1'
          parameters:
            lb-appname: myapp1
            lb-service-type: SSL
            lb-virtual-ip: 3.4.5.6
            lb-virtual-port: 80
            svc-service-type: SSL
            certificates:
                cert-file:
                  id: a9134db902de92313d501d997ed007df
                  name: lb-certificate-sample.pem
                cert-name: cs-p1
                cert-password: '123456'
                key-file:
                  id: 6704a67386ab43fff7d8892ba56f1c31
                  name: lb-key-sample.pem
                key-name: cs-k1
                ssl-inform: PEM
          primary_keys:
            lb-appname: myapp1
          targets:
            - instance_id: cc0684ec-6c6b-4f76-8bc9-15d18ca19fc6
              instance_ip: 10.102.201.72
              roles:
                - default

  computeSchemaResponseBody:
    title: computeSchemaResponseBody
    type: object
    properties:
      computeSchema:
        $ref: '#/definitions/StyleBookSchemaResponse'
    required:
      - computeSchema
    example:
      schema:
        stylebook: 
            name: "lb"
            namespace: "com.citrix.adc.stylebooks"
            version: "1.1"
        
        parameters:
          - 
            name: lb-appname
            type: string
            label: Load Balanced Application Name
            description: Name of the Load Balanced application
            required: true
            updatable: true
            key: true
            allow-new-values: false
            gui:
              hidden: false
              layout: false
              updatable: false

          - 
            name: lb-virtual-ip
            type: ipaddress
            label: Load Balanced App Virtual IP address
            description: Virtual IP address representing the Load Balanced application
            required: true
            updatable: true
            key: false
            allow-new-values: false

          - 
            name: lb-virtual-port
            type: tcp-port
            label: Load Balanced App Virtual Port
            description: TCP port representing the Load Balanced application
            default: 80
            required: false
            updatable: true
            key: false
            allow-new-values: false
            gui:
              hidden: false
              layout: false
              updatable: false
        prompt_instance_credentials: false


  GetStyleBookSchemaResponseBody:
    title: GetStyleBookSchemaResponse
    type: object
    properties:
      schema:
        $ref: '#/definitions/StyleBookSchemaResponse'
    required:
      - schema
    example:
      schema:
        stylebook: 
            name: "lb"
            namespace: "com.citrix.adc.stylebooks"
            version: "1.1"
        
        parameters:
          - 
            name: lb-appname
            type: string
            label: Load Balanced Application Name
            description: Name of the Load Balanced application
            required: true
            updatable: true
            key: true
            allow-new-values: false
            gui:
              hidden: false
              layout: false
              updatable: false

          - 
            name: lb-virtual-ip
            type: ipaddress
            label: Load Balanced App Virtual IP address
            description: Virtual IP address representing the Load Balanced application
            required: true
            updatable: true
            key: false
            allow-new-values: false

          - 
            name: lb-virtual-port
            type: tcp-port
            label: Load Balanced App Virtual Port
            description: TCP port representing the Load Balanced application
            default: 80
            required: false
            updatable: true
            key: false
            allow-new-values: false
            gui:
              hidden: false
              layout: false
              updatable: false
        prompt_instance_credentials: false


  GetAsyncJobStatusResponseBody:
    title: GetAsyncJobStatusResponse
    type: object
    properties:
      jobs:
        type: array
        items:
          $ref: '#/definitions/JobStatusPropertiesResponse'
    required:
      - jobs
    example:
      jobs:
        - job_id: 1234568
          status: inprogress
          progress_info:
            - status: inprogress
              message: creating configpack...
              is_last: false
              resource_type: configpack
              payload_properties: {"type": "lbvserver", "key": "name", "ipv46": "66.7.88.54",
                            "name": "collectsupport-lb",
                             "port": 80,
                            "servicetype": "SSL"}
      
    
  Parameters:
    description: >-
      A JSON dictionary containing the values for the Parameters of the
      StyleBook, where the key of each item in the dictionary is the name of the
      parameter and the value is the value of the parameter (note that the value
      can be an arbitrary JSON object depending on the type of the parameter
      (refer to the StyleBook schema).
    title: Parameters
    type: object

  ConfigpackRequestBody:
    title: ConfigpackRequest
    type: object
    properties:
      stylebook:
        $ref: '#/definitions/UpgradeStyleBookReference'
      parameters:
        $ref: '#/definitions/Parameters'
      targets:
        $ref: '#/definitions/TargetDevices'
    required:
      - stylebook
      - parameters

  ConfigpackUpdateBody:
    title: ConfigpackUpdate
    type: object
    properties:
      stylebook:
        $ref: '#/definitions/UpgradeStyleBookReference'
      parameters:
        $ref: '#/definitions/Parameters'
      targets:
        $ref: '#/definitions/TargetDevices'

  UpgradeConfigpackDetailsRequestBody:
    title: UpgradeConfigpackRequest
    type: object
    properties:
      parameters:
        $ref: '#/definitions/Parameters'
      targets:
        $ref: '#/definitions/TargetDevices'
      stylebook:
        $ref: '#/definitions/UpgradeStyleBookReference'
    required:
      - parameters

  UpgradeStyleBookReference:
    title: StyleBookReference
    type: object
    properties:
      name:
        description: Name of the StyleBook
        type: string
      namespace:
        description: Namespace of the StyleBook
        type: string
      version:
        description: Version of the StyleBook
        type: string

  TargetDevices:
    description: >-
      A dictionary specifying the devices to which the configpack is applied.
      The key of each item in the dictionary is the device's IP address and the
      value is a dictionary that contains one item which corresponds to the
      devices's ID in ADM in the form 'id':'<id-value>'
    title: Targets
    type: array
    items:
      type: object
      properties:
        instance_id :
          description: >-
            The internal unique identifier for the ADC instance added in the ADM.
          type: string
        instance_ip:
          description: The IP of the ADC instance.
          type: string
        roles:
          description: The role assigned to the ADC instance as per the Stylebook definition.
          type: array
          items:
            type: string
        instance_group_id:
            description: The unique ID of the instance group.
            type: string
        instance_group_details:
            description: The instances' details of the instance group.
            type: array
            items:
              type: object
              properties:
                instance_id:
                  type: string
                instance_ip:
                  type: string

  ConfigpackIDSynchronousResponse:
    title: Response ConfigPack ID
    type: object
    properties:
      id:
        description: 'The ID of the configPack created, updated or deleted.'
        type: string
      stylebook:
        $ref: '#/definitions/StyleBookResponseReference'
      parameters:
        type: object

  ConfigpackIDResponse:
    title: Response ConfigPack ID
    type: object
    properties:
      job_id:
        description: 'The job ID Of the configPack created, updated or deleted when async API call is made.'
        type: string
      stylebook:
        items:
          $ref: '#/definitions/StyleBookResponseReference'

  StyleBookReference:
    title: StyleBookReference
    type: object
    properties:
      id:
        description: ID of the StyleBook.
        type: string
      name:
        description: Name of the StyleBook.
        type: string
      namespace:
        description: Namespace of the StyleBook.
        type: string
      version:
        description: Version of the StyleBook.
        type: string
      dependencies:
        description: A list of StyleBooks directly used by the current StyleBook.
        type: array
        items:
          $ref: '#/definitions/StyleBookReference'
      reverse_dependencies:
        description: A list of all the Stylebooks which use or depend on the current stylebook.
        type: array
        items:
          $ref: '#/definitions/StyleBookReference'

  StyleBookSynchronousResponseReference:
    title: StyleBookSynchronousResponseReference
    type: object
    properties:
      name:
        description: Name of the StyleBook.
        type: string
      namespace:
        description: Namespace of the StyleBook.
        type: string
      version:
        description: Version of the StyleBook.
        type: string

  StyleBookResponseReference:
    title: StyleBookResponseReference
    type: object
    properties:
      name:
        description: Name of the StyleBook.
        type: string
      namespace:
        description: Namespace of the StyleBook.
        type: string
      version:
        description: Version of the StyleBook.
        type: string


  StyleBookSummaryDescription:
    title: StyleBookSummaryDescription
    type: object
    properties:
      id:
        description: ID of the StyleBook.
        type: string
      name:
        description: Name of the StyleBook.
        type: string
      namespace:
        description: Namespace of the StyleBook.
        type: string
      version:
        description: Version of the StyleBook.
        type: string
      description:
        description: Description of the StyleBook.
        type: string
      display_name:
        description: Display name of the StyleBook (used in ADM GUI).
        type: string
      header:
        description: User friendly Description of the Configuration created using this StyleBook (used in ADM GUI).
        type: string
      author:
        description:  The author of this StyleBook.
        type: string
      schema_version:
        description: Schema Version of the StyleBook DSL Language.
        type: string
      created_datetime:
        description: Date on which the StyleBook was imported into ADM.
        type: string
      tenant_id:
        description:  The ID of the tenant/customer to which this StyleBook belongs.
        type: string
      custom:
        description: >-
          A boolean, which when true indicates that this StyleBook is listed in
          the list of StyleBooks by ADM. When false, this StyleBook is
          hidden (for example used by other top-level StyleBooks, which are user
          visible).
        type: boolean
      private:
        description: >-
            A boolean, which when true indicates that this StyleBook is a private StyleBook.
        type: boolean
      builtin:
        description: >-
            A boolean, which when true indicates that this StyleBook is a builtin StyleBook.
        type: boolean
      deprecate:
        description: >-
            A boolean, which when true indicates that this StyleBook is now deprecated and a configpack cannot be created.
        type: boolean
      type:
        description:  >-
            The attribute that indicates the type of the StyleBook used in certain use cases such as autoscale, apisec etc. This attribute is not used for regular stylebooks.
            All enumerated values of this attribute except autoscale are valid only for non custom stylebooks.
        type: string
        enum:
          - autoscale
          - apisec
          - building-block
      repository_name:
        description:  >-
            The name of the GITHUB repository if the StyleBook was synced from one.
        type: string
      username:
        description:  The name of the user who imported the StyleBook.
        type: string
      is_updatable:
        type: boolean
        description: The status info indicating if update of a custom stylebook is supported at a given point.
      primary_keys:
        description: >-
              dictionary of the parameters that are keys for this StyleBook. The key
              of each item is the name of the parameter and the value of the item is
              the value of the parameter.
        type: object
      primary_key:
        description: >-
            A key whose value is used to name the configpack created using the StyleBook.
        type: array
        items:
          type: string
      builtin_namespaces:
        description: >-
          A dictionary whose keys/values are in the form of '<namespace>':
          '<version>' where each item designates a builtin namespace (and its
          version) used by this StyleBook (currently the ADC Nitro builtin
          namespace is the only builtin namespace).
        type: array
        items:
          type: string
      dependencies:
        description: A list of StyleBooks directly used by the current StyleBook.
        type: array
        items:
          $ref: '#/definitions/StyleBookReference'
      reverse_dependencies:
        description: >-
          A list of StyleBooks in ADM that use the current StyleBook.
        type: array
        items:
          $ref: '#/definitions/StyleBookReference'
      source:
        description:  The source of the Stylebook as base64 encoded.
        type: string
      encoding:
        description:  The encoding used for the source attribute.
        type: string
        enum:
          - BASE64
          - plain-text
      icon:
        description: The icon of the Stylebook as base64 encoded.
        type: string
    example:
      id: lbc957df10536842c383e55a8114a92b96
      name: lb
      namespace: com.citrix.adc.stylebooks
      version: '1.1'
      schema_version: '1.0'
      description: '"This stylebook defines a typical Load Balanced Application configuration."'
      display_name: HTTP/SSL LoadBalancing StyleBook
      created_datetime: '2021-08-23 01:28:54'
      primary_keys:
        - lb-appname
      private: false
      custom: false
      deprecate: 'false'
      builtin_namespaces:
        - namespace: netscaler.nitro.config
          version: '10.5'
      icon: iVBORw0KGgoAAAANSUhEUgAAACEAAAAhCAYAAABX5MJvAAAAAXNSR0IArs4c6QAAAxhJREFUWAm9lluITVEYx437/a6GxiUaxgkdiahxeVKKaUp58KAmEZowDy6lpOad8kCS3J5QkksybiUvQzFNuZ6HYYYw7rcMY/D7a69aVmvvObNbzr9+Z6/1rdu31/6+tU5Rt8KomGWynqUeYHta5GkIbRrOhC3w1TPxUGxlPT0NIUwZJmmFNzAZesMAcNWMYUZ31xqoXs48OaiBHoHmzHuaifQ8Aq/hd0QTz3bwSTtRGXIntO23YBxcAKkeav+WCvRzlXUuguJsGawCBf5cSNwJ2oPILDTeM5sy4BN89vAd24RQKXomWkhv75PSdLqn4RG2lx57l01TGdEB07o8MhpgdqI/9dVQmjBRG21XoM7pc4y6trzCseddVRApj6/BGLgOSi2fFPWbYDPsjzrI8ZUwJ6qnesiJmTALSuAVJGkrjTtAY+aBPkU13IEkjaAxLiZeyImR8B7kQC/YAmPB6CeFw6CFHsJAkE7CCXisSoL0qZpi2vtgnyInbC2msg20gJECbg8sjAy6iNZG5bjHIhpa4T6UQT/QC7rSiZl1nRiEUTuyxuqt8nqrrmAeZdV9xfkYd8I+OO/rYNtcJ+y2uPIwGvSW+WgjnZZ31jGNEx+YtLNs0O4pgA/BaTgHsXKd+EjPYjhujSilLLvRLwotphLzvIFdizeAjvREuU5cpvcusLNDx6oOJKO+FHReyJFLoEB1pUPNSNnzA3S9uxqCoVFOvAOlkYJNHXdDnLQrHbACsvANdFjVQZw0/yRQf1fKnmZFuhypBzmiN4g7MdVeAdthL2hHakGZozR+Aqlk7g6l5jrQm8apjQY5edbqoPH6JM+hyrIXvFjOivrmJWlXNjuRdrwZd5PCbagxBuc5mHrGsamag7ceeyrTUkZ9Af15cSUHdDe1e1Bg25lINb20o41wIJpCn2h2VNY5IQd80t1RqcwIIWXUBtD/EpWVlsqio3AKCqoFrKbYkCMGXYiJO0H7f1E1s+pQOwhLINGJUJ+Ddf7RXWr6t9YAiolEhUrRpEX01+4Z6EpwNRpDphBOaGGloXbG1T0MuT/nfZ2AwLWPrgAAAABJRU5ErkJggg==
  ConfigpackSummaryDescription:
    title: ConfigpackSummaryDescription
    type: object
    properties:
          id:
            description: ID of the Configpack
            type: string
          stylebook:
            $ref: '#/definitions/StyleBookResponseReference'
          tenant_id:
            description: The id of the tenant who has created the configpack.
            type: string
          created_datetime:
            description: Date and Time of this configpack creation.
            type: string
          last_modified_datetime:
            description: Date and Time the configpack was last modified.
            type: string
          created_by:
            description: The username of the user who created the configpack.
            type: string
          last_modified_by:
            description: The username of the user who last modified the configpack.
            type: string
          sb_id:
            description: The unique ID of the stylebook associated with the configpack.
            type: string
          config_key:
            description: The unique user chosen ID to identify the configpack in the system.
            type: string
          primary_keys:
            description: >-
              dictionary of the parameters that are keys for this StyleBook. The key
              of each item is the name of the parameter and the value of the item is
              the value of the parameter.
            type: object
          parameters:
            description: >-
              A dictionary containg the inputs to the StyleBook: the parameter names
              (dictionary keys) and the parameter values (dictionary key values) of
              this configPack.
            type: object
          outputs:
            description: >-
              A dictionary containg the outputs of the StyleBook. Each item of the
              dictionary has as a key the name of the output, and as a value a
              dictionary describing the output. See OutputDescription object.
            type: object
          targets:
            description: The target ADC where the configuration is deployed.
            type: array
            items:
              type: object
              properties:
                instance_id :
                  description: >-
                    The internal unique identifier for the ADC instance added in the ADM.
                  type: string
                instance_ip:
                  description: The IP of the ADC instance
                  type: string
                roles:
                  description: The role assigned to the ADC instance as per the Stylebook definition.
                  type: array
                  items:
                    type: string
                instance_group_id:
                    description: The unique ID of the instance group.
                    type: string
                instance_group_details:
                    description: The instances' details of the instance group
                    type: array
                    items:
                      type: object
                      properties:
                        instance_id:
                          type: string
                        instance_ip:
                          type: string
          tags:
            description: The tags
            type: string
          status:
            description: The status of the deployed configpack. The possible values are completed (the last operation on the configpack was successfully completed), inprogress (the last operation on the configpack is currently in progress) and failed (the last operation on the configpack was unsuccessful).
            type: string
            enum:
              - completed
              - inprogress
              - failed
          autoscale_id:
            description: The autoscale ID.
            type: string
          application_id:
            description: The application ID.
            type: string

  ConfigpackActivityLogDescription:
    title: ConfigpackActivityLogDescription
    type: object
    properties:
      id:
        description: ID of the Configpack.
        type: string
      name:
        description: Configpack's StyleBook name.
        type: string
      namespace:
        description: Configpack's StyleBook namespace.
        type: string
      version:
        description: Configpack's StyleBook version.
        type: string
      last_modified_datetime:
        description: Date and Time the configpack was last modified.
        type: string
      last_modified_by:
        description: The username of the user who last modified the configpack.
        type: string
      status:
        description: Configpack status.
        type: string
      operation:
        description: Operation on the Configpack.
        type: string
      operation_status:
        description: The status of the Operation.
        type: string

  StyleBookSchemaResponse:
    title: StyleBookSchemaResponse
    type: object
    properties:
      prompt_instance_credentials:
        description: Prompt for instance credentials
        type: boolean
      header:
        description: User friendly Description of the Configuration created using this StyleBook (used in ADM GUI).
        type: string
      stylebook:
        $ref: '#/definitions/StyleBookSynchronousResponseReference'
      parameters:
        description: List of Parameter Descriptions of the StyleBook's parameters.
        type: array
        items:
          $ref: '#/definitions/StyleBookParameterDescription'
      target_roles:
            description: The target roles for the configuration deployed.
            type: array
            items:
              type: object
              properties:
                min_targets :
                  description: The minimum targets for each role.
                  type: string
                max_targets :
                  description: The maximum targets for each role.
                  type: string
                name :
                  description: The name of the role.
                  type: string

  GetConfigGraphResponseBody:
    title: GetObjectsResponse
    type: object
    properties:
      graph:
        description: The graph of the Configpack contains all the ADC entities that this configpack contains. See example for the format of the this payload.
        type: object
    example:
     graph:
      cc0684ec-6c6b-4f76-8bc9-15d18ca19fc6:
        instance_ip: 10.102.201.72
        objects:
          - meta-properties: {}
            properties:
              ipv46: 3.4.5.6
              name: myapp1
              port: 80
              servicetype: SSL
            type: lbvserver
          - meta-properties: {}
            properties:
              servicegroupname: myapp1-svcgrp
              servicetype: SSL
            type: servicegroup
          - meta-properties: {}
            properties:
              name: myapp1
              servicegroupname: myapp1-svcgrp
            type: lbvserver_servicegroup_binding
          - meta-properties: {}
            properties:
              filecontent: '******'
              fileencoding: BASE64
              filelocation: /nsconfig/ssl
              filename: lb-certificate-sample.pem
            type: systemfile
          - meta-properties: {}
            properties:
              filecontent: '******'
              fileencoding: BASE64
              filelocation: /nsconfig/ssl
              filename: lb-keyone-sample.pem
            type: systemfile
          - meta-properties: {}
            properties:
              cert: lb-certificate-sample.pem
              certkey: cs-p1
              inform: PEM
              key: lb-keyone-sample.pem
              passplain: '******'
            type: sslcertkey
          - meta-properties: {}
            properties:
              certkeyname: cs-p1
              vservername: myapp1
            type: sslvserver_sslcertkey_binding
        roles:
          - default

  StyleBookModifiedParametersDescription:
    title: StyleBookModifiedParametersDescription
    type: array
    items:
      $ref: '#/definitions/StyleBookParameterDescription'

  StyleBookParameterDescription:
    title: StyleBookParameterDescription
    type: object
    properties:
      name:
        description: Name of the parameter.
        type: string
      default:
        description: Default value of the parameter.
        type: string
      label:
        description: Label of the parameter used in ADM GUI.
        type: string
      description:
        description: Verbose description of the parameter.
        type: string
      type:
        description: >-
          The type of the parameter. A valid value can be: string, number,
          boolean, ipaddress, tcp-port, object, or an imported stylebook type.
        type: boolean
      network:
        description: >-
          The IPAM Network to fetch the IPAddress for a given parameter.
        type: string
      condition_trigger:
        description: Trigger for parameters condition to get refreshed schema.
        type: boolean
      value:
        description: Value for the parameter.
      min-length:
        description: Minimum number of characters allowed in the parameter.
        type: number
      max-length:
        description: Maximum number of characters allowed in the parameter.
        type: number
      min-items:
        description: Minimum number of items allowed in list type parameter.
        type: number
      max-items:
        description: Maximum number of items allowed in list type parameter.
        type: number
      pattern:
        description: A pattern to validate the input against.
        type: string
      data-source:
        description: Specifies a data source entity belonging to the parameter.
        type: object
        properties:
          name:
            description: Name of the data source.
            type: string
          type:
            description: Type of the data source.
            type: string
          collection:
            description: Name of the data source collection.
            type: string
          primary_key:
            description: The primary key of the collection.
            type: string
          id:
            description: Unique ID of the data source.
            type: string
          collection_id:
            description: Unique ID of the datasource collection.
            type: string
          builtin-version:
            description: A flag that identifies if the data source is a builtin datasource type.
            type: boolean
      dynamic-network:
        description: >-
          The IPAM Network to fetch the IPAddress for a given parameter when the choice of network is made through dynamic-allocation.
        type: object
        properties:
          name:
            description: Name of the IPAM Network.
            type: string
          reserve_ip:
            description: IP to be requested from the IPAM network.
            type: string
      key:
        description: A boolean indicating whether this parameter is a key (unique value).
        type: boolean
      required:
        description: >-
          A boolean indicating whether this parameter must be given a value by
          the StyleBook user (a required parameter). Default value is false.
        type: boolean
      updatable:
        description: >-
          A boolean indicating whether this parameter can be updated after
          creation of the configpack (is it updatable?). Default value is true.
        type: boolean
      dynamic-allocation:
        description: >-
          The dynamically chosen IPAM Network to fetch the IPAddress for a given parameter.
        type: boolean
      allowed-values:
        description: >-
          A list of values that are allowed for this parameter. A user can only
          choose one of the values in this list.
        type: array
        items:
          type: string
      allow-new-values:
        description: A boolean indicating whether or not dynamic values are allowed in the list.
        type: boolean
      allowed-dynamic-values:
        description: >-
          A list of values that are allowed for this parameter. A user can only
          choose one of the values in this list that gets dynamically populated.
        type: object
      gui:
        description: >-
          An dictionary object used to customize the visual rendering the
          parameter in the ADM GUI.
        type: object
      parameters:
        description: >-
          A list of descriptions for inner parameters scoped by this parameter
          when its type is object. Each inner parameter is described using the
          StyleBookParameterDescription definition.
        type: array
        items:
          $ref: '#/definitions/StyleBookParameterDescription'
      modified_parameters:
        description: >-
          A list of descriptions for inner parameters scoped by this parameter
          when its type is object. Each inner parameter is described using the
          StyleBookParameterDescription definition.
        type: array
        items:
          $ref: '#/definitions/StyleBookModifiedParametersDescription'
    required:
      - name
      - type


  AsyncAPIJobResponseBody:
    title: Response object for Async APIs
    type: object
    properties:
      job:
        type: object
        properties:
          job_id:
            type: string
            example: 38922001
        required:
          - job_id
    required:
      - job
      
  JobStatusPropertiesResponse:
    type: object
    properties:
      job_id:
        description: The ID of the ConfigPack which concerns the Job.
        type: string
      status:
        description: >-
          Overall status of the Job. When the status is set to 'completed', this
          mean that the Job has ended and the configpack operation has finished.
        type: string
      reasons:
        description: An array of strings explaining the failure if there was one.
        type: array
        items:
          type: string
      progress_info:
        description: >-
          A list of dictionaries. Each describes a step of the Job and its
          outcome status.
        type: array
        items:
          $ref: '#/definitions/JobStepStatus'
      result:
        description: An object depicting the result of the operation indicated by the job ID.
        type: object
    required:
      - job_id
      - status
    example:
          job_id: 1234568
          status: inprogress
          progress_info:
            - status: inprogress
              message: creating configpack...
              is_last: false
              resource_type: configpack
              payload_properties: {"type": "lbvserver", "key": "name", "ipv46": "66.7.88.54",
                            "name": "collectsupport-lb",
                             "port": 80,
                            "servicetype": "SSL"}
  JobStatusResponse:
    title: JobStatusResponse
    type: object
    properties:
      job:
        allOf:
          - $ref: '#/definitions/JobStatusPropertiesResponse'
    required:
      - job

  JobStepStatus:
    title: JobStepStatus
    type: object
    properties:
      status:
        description: >-
          The current status of this step. The value is 'success' or 'completedi
          if completed successfully.
        type: string
      message:
        description: A textual message explaining the step and its current status.
        type: string
      is_last:
        description: A boolean indicating whether this is the last step of the Job.
        type: boolean
      resource_type:
        description: >-
          If this step concerns the configuration of a ADC resource, the
          type of this resource.
        type: string
      payload_properties:
        description: The payload/results returned by the asynchronous job. The results format will depend on the job that was performed.
        type: object
    required:
      - message
      - status
      - is_last

  GetSystemSettings:
    title: GetSystemSettings
    type: object
    properties:
      system_settings:
        description: ->
          List the system settings set for the display of default stylebooks on the ADM GUI.
        type: object
        properties:
          hide_default_sb:
            description: ->
              The flag indicating if the default stylebooks  displayed on the ADM GUI. The value is boolean converted into string.
            type: string
          global_reconcile:
            description: ->
              The flag indicating if reconcile should be done automatically. If set to true, this flag automatically reconciles the ADC config on audit failures detected  by StyleBooks.
            type: boolean
          prompt_instance_credentials:
            description: ->
              The flag indicating if instance credentials needs to be prompted for making api calls to ADCs.
            type: string
          config_settings:
            description: ->
              The general config settings across StyleBooks that include the config batch size, audit batch size
            type: string
    required:
      - system_settings
    example:
      system_settings:
        hide_default_sb: false


  PutSystemSettings:
    title: PutSystemSettings
    type: object
    properties:
      system_settings:
        description: ->
          List the system settings set for the display of default stylebooks on the ADM GUI.
        type: object
        properties:
          hide_default_sb:
            description: ->
              The flag indicating if the default stylebooks displayed on the ADM GUI. The value is boolean converted into string.
            type: string
          global_reconcile:
            description: ->
              The flag indicating if reconcile should be done automatically. If set to true, this flag automatically reconciles the ADC config on audit failures detected  by StyleBooks.
            type: boolean
          config_settings:
            description: ->
              The general config settings across StyleBooks that include the config batch size, audit batch size
            type: string
    required:
      - system_settings
    example:
      system_settings:
        hide_default_sb: false

  GetLabelsResponseBody:
    title: GetLabelsResponseBody
    type: object
    properties:
      tags:
        description: List of all the labels associated with any of the StyleBooks.
        type: array
        items:
          $ref: '#/definitions/GetKeyValuePair'
    required:
      - tags
    example:
      tags:
        - key: cs-key
          values:
            - cs-value

  GetKeyValuePair:
    title: GetKeyValuePair
    type: object
    properties:
      key:
        description: Identifies the key of a tag.
        type: string
      values:
        description: Identifies the value associated with the key of a tag.
        type: array
        items:
          type: string

  GetLabelValueResponseBody:
    title: GetLabelValueResponseBody
    type: object
    properties:
      tag:
        description: List the key and all the values associated with label.
        type: object
        properties:
          key:
            description: List the key associated with the tag.
            type: string
          values:
            description: List of all the values of the key associated with label.
            type: array
            items:
              type: string
    example:
      tag:
        key: lb-key
        values:
          - lb-val

  ComputeDataSourceCollectionDataResponse:
    title: ComputeDataSourceCollectionDataResponse
    description: The response data containing the details of the collection data dynamically
    type: object
    properties:
      collections:
        type: array
        items:
          type: object
    required:
      - collections
    example:
      collections:
        - Static: true
          adv: false
          bgp: false
          cost: '0'
          cost1: '0'
          data: true
          data0: false
          detail: false
          dhcp: false
          direct: false
          distance: '1'
          dynamic: false
          failedprobes: '0'
          flags: false
          gateway: 10.102.201.1
          isis: false
          lbroute: false
          monstatcode: 0
          monstatparam1: 0
          monstatparam2: 0
          monstatparam3: 0
          msr: DISABLED
          nat: false
          netmask: 0.0.0.0
          network: 0.0.0.0
          ospf: false
          permanent: false
          protocol:
            - OSPF
            - ISIS
            - RIP
            - BGP
          retain: 0
          rip: false
          routetype: STATIC
          state: '1'
          td: '0'
          totalfailedprobes: '0'
          totalprobes: '0'
          tunnel: false
          type: true
          weight: '1'
        - Static: false
          adv: false
          bgp: false
          cost: '0'
          cost1: '0'
          data: true
          data0: false
          detail: false
          dhcp: false
          direct: true
          distance: '0'
          dynamic: false
          failedprobes: '0'
          flags: false
          gateway: 127.0.0.1
          isis: false
          lbroute: false
          monstatcode: 0
          monstatparam1: 0
          monstatparam2: 0
          monstatparam3: 0
          msr: DISABLED
          nat: false
          netmask: 255.0.0.0
          network: 127.0.0.0
          ospf: false
          permanent: true
          retain: 0
          rip: false
          routetype: CONNECTED
          state: '1'
          td: '0'
          totalfailedprobes: '0'
          totalprobes: '0'
          tunnel: false
          type: true
          weight: '1'
      

  GetDataSourceCollectionSchema:
    title: GetDataSourceCollectionSchema
    type: object
    properties:
      schema:
        description: The set of all attributes associated with the collection.
        type: object
        properties:
          attributes:
            description: The list of all the atrributes of collection and their property details .
            type: array
            items:
              type: object
        example:
          schema:
            attributes:
              - name: name
                type: string
              - name: ipv46
                type: ipaddress

  GetDatasourceTypeResponse:
    title: GetDatasourceTypeResponse
    type: object
    properties:
      _total_count:
        $ref: '#/definitions/total_count'
      _count: 
        $ref: '#/definitions/count'
      datasource_types:
        type: array
        items:
          $ref: '#/definitions/GetDatasourceType'
    required:
      - datasource_types

  GetIndividualDatasourceType:
    title: GetIndividualDatasourceType
    type: object
    properties:
      datasource_type:
        $ref: '#/definitions/GetDatasourceType'
    required:
      - datasource_type

  GetDatasourceType:
    title: GetDatasourceType
    type: object
    properties:
      id: 
        type: string
        description: Unique ID of the data source type.
      name:
        type: string
        description: Name of the data source type.
      description:
        type: string
        description: Description of the data source type.

  GetCollectionTypeResponse:
    title: GetCollectionTypeResponse
    type: object
    properties:
      _total_count:
        $ref: '#/definitions/total_count'
      _count: 
        $ref: '#/definitions/count'
      collection_types:
        type: array
        items:
          $ref: '#/definitions/GetCollectionType'
    required:
      - collection_types

  GetIndividualCollectionType:
    title: GetIndividualCollectionType
    type: object
    properties:
      collection_type:
        $ref: '#/definitions/GetCollectionType'
    required:
      - collection_type

  GetCollectionType:
    title: GetCollectionType
    type: object
    properties:
      id: 
        type: string
        description: Unique ID of the data source collection type.
      name:
        type: string
        description: Name of the data source collection type.
      description:
        type: string
        description: Description of the data source type.
      datasource_type_id: 
        type: string
        description: Unique ID of the data source type.
      datasource_type:
        type: string
        description: The data source type to which the collection belongs to.
      schema:
        type: object
        properties:
          attributes:
            type: array
            items:
              $ref: '#/definitions/GetAttributeSchema'

  GetAttributeSchema:
    title: GetAttributeSchema
    type: object
    properties:
      name:
        type: string
        description: The name of the attribute.
      type:
        type: string
        description: The data type of the attribute.

  GetDatasourceResponse:
    title: GetDatasourceResponse
    type: object
    properties:
      _total_count:
        $ref: '#/definitions/total_count'
      _count: 
        $ref: '#/definitions/count'
      datasources:
        type: array
        items:
          $ref: '#/definitions/GetDatasource'
    required:
      - datasources

  GetIndividualDatasource:
    title: GetIndividualDatasource
    type: object
    properties:
      datasource:
        $ref: '#/definitions/GetDatasource'
    required:
      - datasource

  GetDatasource:
    title: GetDatasource
    type: object
    properties:
      id: 
        type: string
        description: Unique ID of the data source.
      name:
        type: string
        description: Name of the data source.
      type:
        type: string
        description: Type of the data source.
      description:
        type: string
        description: Description of the data source.
      datasource_type_id: 
        type: string
        description: Unique ID of the data source type.
      
  GetCollectionResponse:
    title: GetCollectionResponse
    type: object
    properties:
      _total_count:
        $ref: '#/definitions/total_count'
      _count: 
        $ref: '#/definitions/count'
      collections:
        type: array
        items:
          $ref: '#/definitions/GetCollection'
    required:
      - collections

  GetIndividualCollection:
    title: GetIndividualCollection
    type: object
    properties:
      collection:
        $ref: '#/definitions/GetCollection'
    required:
      - collection

  AddIndividualCollection:
    title: AddIndividualCollection
    type: object
    properties:
      collection:
        $ref: '#/definitions/AddCollection'
    required:
      - collection

  AddCollection:
    title: AddCollection
    type: object
    properties:
      id: 
        type: string
        description: Unique ID of the data source collection.
      name:
        type: string
        description: Name of the data source collection.
      description:
        type: string
        description: Description of the data source collection.
      datasource_id: 
        type: string
        description: Unique ID of the data source.
      collection_type_id: 
        type: string
        description: Unique ID of the data source collection type.
      collection_type:
        type: string
        description: The collection type to which the collection belongs to
      source:
        type: string
        description: The source format of the data.
        enum:
          - data
          - file
      file_data:
        type: object
        properties:
          encoding:
            type: string
            description: The encoding used to encode the value for the source property. Valid values are- base64.
          filename:
            type: string
            description: Filename of the .csv file if source is file.
          contents:
            type: string
            description: Contents of the file when .csv file if source is file.
      data:
        type: array
        items:
          $ref: '#/definitions/GetAttributes'

  GetCollection:
    title: GetCollection
    type: object
    properties:
      id: 
        type: string
        description: Unique ID of the data source collection.
      name:
        type: string
        description: Name of the data source collection.
      description:
        type: string
        description: Description of the data source collection.
      datasource_id: 
        type: string
        description: Unique ID of the data source.
      datasource_name:
        type: string
        description: Datasource name of the data source.
      collection_type_id: 
        type: string
        description: Unique ID of the data source collection type.
      collection_type:
        type: string
        description: The collection Type to which the collection belongs to.
      data:
        type: array
        items:
          $ref: '#/definitions/GetAttributes'

  GetAttributes:
    title: GetAttributes
    type: object
              
  AddIndividualRepository:
    title: AddIndividualRepository
    type: object
    properties:
      repository:
        type: object
        properties:
          type:
            type: string
            enum:
              - github
          repository_name:
            type: string
          repository_url:
            type: string
          repository_branch:
            type: string
          username:
            type: string
          apikey:
            type: string
        required:
          - type
          - repository_name
          - repository_url
          - repository_branch
          - username
    required:
      - repository
    example:
      repository:
          type: github
          repository_name: nsr
          repository_url: https://github.com/arpitabhat27/Neustar
          repository_branch: master
          username: arpitabhat27
          apikey: '********'
    

  GetIndividualRepository:
    title: GetIndividualRepository
    type: object
    properties:
      repository:
        $ref: '#/definitions/GetIndividualRepositoryObject'
    example:
      repository:
          id: c51aad94e14e90412ce3a062daaed30a
          type: github
          repository_name: nsr
          repository_url: https://github.com/arpitabhat27/Neustar
          repository_branch: master
          last_sync_time: '1600870464.853238'
          sha: 9ad4ffd3517eecf33f9bf49bc1e005fefe95b185
          status: Ready to sync
          tenant_id: 3228fd5f-2ad7-49c2-8860-e84f2418dd89
          username: arpitabhat27
          clientid: null 
    required:
      - repository
        
  GetIndividualRepositoryObject:
    title: GetIndividualRepositoryObject
    type: object
    properties:  
      id:
        type: string
      type:
        type: string
        enum:
          - github
      repository_name:
        type: string
      repository_url:
        type: string
      repository_branch:
        type: string
      last_sync_time:
        type: string
      sha:
        type: string
      status:
        type: string
        enum:
          - Ready to sync
          - sync
          - reset   
      tenant_id:
        type: string
      username:
        type: string
      clientid:
        type: string
    required:
      - type
      - id
      - repository_name
      - repository_url
      - repository_branch
      - last_sync_time
      - status

  GetAllRepository:
    title: GetAllRepository
    type: object
    properties:
      _total_count:
        $ref: '#/definitions/total_count'
      _count: 
        $ref: '#/definitions/count'
      repositories:
        description: The list of all git repositories registered in the ADM.
        type: array
        items:
          $ref: '#/definitions/GetIndividualRepositoryObject'
    required:
      - repositories
    example:
      _total_count: 2
      repositories:
        - 
          id: c51aad94e14e90412ce3a062daaed30a
          type: github
          repository_name: nsr
          repository_url: https://github.com/arpitabhat27/Neustar
          repository_branch: master
          status: Ready to sync
          sha: 9ad4ffd3517eecf33f9bf49bc1e005fefe95b185
          last_sync_time: '1600870464.853238'
          tenant_id: 3228fd5f-2ad7-49c2-8860-e84f2418dd89
          username: arpitabhat27
          clientid: null

        - 
          id: 735e52c8de6a6d52c3407c30831912f2
          type: github
          repository_name: stylebooks_repo
          repository_url: https://github.com/hello12349/Stylebooks_Repo
          repository_branch: master
          status: Ready to sync
          last_sync_time: '0'
          sha: null
          tenant_id: 3228fd5f-2ad7-49c2-8860-e84f2418dd89
          username: hello12349
          clientid: null
      


  SyncRepositoriesActionBody:
    title: SyncRepositoriesActionBody
    type: object
    properties:
      sync:
        type: object
        properties:
          repositories:
            description: The list of all GIT repositories to sync.
            type: array
            items:
              type: string
              description: Repository ID
    required:
      - sync
    example:
      sync:
        repositories:
          - "735e52c8de6a6d52c3407c30831912f2"

  DownloadStyleBookActionRequestBody:
    title: DownloadStyleBookActionRequestBody
    type: object
    properties:
      download:
        type: object
        properties:
          format:
            type: string
            enum:
              - zip
            default: zip

  ResetRepositoriesActionBody:
    title: ResetRepositoriesActionBody
    type: object
    properties:
      reset:
        type: object
        properties:
          repositories:
            description: The list of all GIT repositories registered in the ADM.
            type: array
            items:
              type: string
              description: Repository ID.
    required:
      - reset
    example:
      reset:
        repositories:
          - "735e52c8de6a6d52c3407c30831912f2"

  RepositoryAsyncResponseBody:
    title: RepositoryAsyncResponse
    type: object
    properties:
      repository:
        description: The response for asynchronous operation initiated on the repository.
        type: object
        properties:
          job_id:
            type: string
    required:
      - repository
    example:
      repository:
        job_id: "1234568"
      

  RepositoryListFiles:
    title: RepositoryListFiles
    type: object
    properties:
      _total_count:
        $ref: '#/definitions/total_count'
      _count: 
        $ref: '#/definitions/count'
      files:
        description: The list of all files in the local repository registered in the ADM.
        type: array
        items:
          $ref: '#/definitions/RepositoryFile'
    required:
      - files
    example:
      files:
        - 
          id: "c51aad94e14e90412ce3a062daaed30a"
          resource: "stylebooks"
          resource_id: "c51aad94e14e90412ce3a062daaed50a"
          filename: "file1.yaml"
          filepath: "file1.yaml"
          repository_name: "mab"
          last_sync_time: "1600870464.853238"
          sha: "9ad4ffd3517eecf33f9bf49bc1e005fefe95b185"
          message: ""
          source: "UEsDBBQAAAAAAAY9UVLz5DXp9RAAAPUQAAAaAAAAY3VzdG9tZXItdGVtcGxhdGUtdjU0LnlhbWxuYW1lOiBjdXN0b21lci10ZW1"
          status: "synced"
          tenant_id: "3228fd5f-2ad7-49c2-8860-e84f2418dd89"
      

  RepositoryFile:
    title: RepositoryAsyncResponse
    type: object
    properties:
      id:
        description: The internal unique ID of the repository file.
        type: string
      resource:
        description: The type of the resource (e.g. configpacks or stylebooks).
        type: string
        enum:
          - stylebooks
          - configpacks
      resource_id:
        description: The unique ID of the resource.
        type: string
      filename:
        description: >-
          The name of repository file as defined in the remote git repository.
        type: string
      filepath:
        description: The path of the repository files in the ADM file system.
        type: string
      repository_name:
        description: The name of the repository in the ADM.
        type: string
      last_sync_time:
        description: >-
          The timestamp when the file was last synced from the remote repository in the ADM.
        type: string
      message:
        description: The status of the last action taken on the file.
        type: string
      sha:
        description: >-
          ID (a.k.a. the "SHA" or "hash") that allows you to keep record of what changes were made when and by who.
        type: string
      source:
        description: The base64 encoded file contents.
        type: string
      status:
        description: The sync status of the file.
        type: string
        enum:
          - synced
      tenant_id:
        description: ->
          The internal unique ID of the tenant associated with the user.
        type: string


  CreateLabelBody:
    title: CreateLabelBody
    type: object
    properties:
      tags:
         type: array
         items:
            $ref: '#/definitions/LabelValue'
    required:
      - tags
    example:
      tags:
        - key: "lb-key"
          value: "val1"
          is_inherit: false
      

  CreateConfigLabelBody:
    title: CreateConfigLabelBody
    type: object
    properties:
      tags:
         type: object
         properties:
            tag-data:
              type: array
              items:
                $ref: '#/definitions/LabelValue' 
            inherit-data:
              $ref: '#/definitions/InheritLabelData'
    required:
      - tags
    example:
      tags:
        inherit-data:
          - inherit_all: true
            parent_id: lbc957df10536842c383e55a8114a92b96
        tag-data:
          - key: lb-key
            value: lb-val
            is_inherit: false
            
  InheritLabelData:
    title: InheritLabelData
    type: object
    properties:
      parent_id:
         description: The parent StyleBook name if exists.
         type: string
      inherit_all:
         description: Flag to specify if all tags of parent have been set to inherit.
         type: boolean

  InheritActionRequestBody:
    title: InheritActionRequestBody
    type: object
    properties:
      inherit:
        $ref: '#/definitions/InheritLabelData'
    required:
      - inherit
    example:
      inherit:
        inherit_all: true
        parent_id: lbc957df10536842c383e55a8114a92b
  
  LabelValue:
    title: LabelValue
    type: object
    properties:
      key:
        description: The string indication of the label attached.
        type: string
      value:
        description: The string indicating the value of the label.
        type: string
      is_inherit:
         description: The parent StyleBook if exists responds with true value.
         type: boolean
         default: false  #TODO Check this default is correct
    required:
      - key
      - value

  ConvertPeToPiRequestSchema:
    title: ConvertPeToPiRequestSchema
    type: object
    properties:
      adc_config:
        $ref: '#/definitions/SourceAndTargetSchema'
        required:
          - source
          - target
        example:
          source:
            instance_id: f2380661-2d0d-478c-8c1d-f40be9e75227
          target:
            instance_id: 94a3ec30-f4e5-411b-aa19-1a8a564b7f73

  ExtractVServersRequestSchema:
    title: ExtractVserversSchema
    type: object
    properties:
      adc_config:
        allOf:
          - $ref: '#/definitions/SourceAndTargetSchema'
          - $ref: '#/definitions/FilterOptionsSchema'
        required:
          - source
          - target
        example:
          source:
            instance_id: f2380661-2d0d-478c-8c1d-f40be9e75227
          target:
            instance_id: 94a3ec30-f4e5-411b-aa19-1a8a564b7f73
          filter_options:
            vserver_protocol: SSL

  FilterVServersRequestSchema:
    title: FilterVserversSchema
    type: object
    properties:
      adc_config:
        allOf:
          -
            type: object
            description: The ADC configuration
            properties:
              vservers:
                description: List of vservers on which filter needs to be applied.
                type: array
                items:
                    $ref: '#/definitions/VServerBaseAttributesSchema'
          -
            $ref: '#/definitions/FilterOptionsSchema'
        required:
          - vservers
          - filter_options
        example:
            vservers:
                -
                  vserver_name: csv1
                  vserver_type: CSVSserver
                  vserver_protocol: SSL
                  vserver_ipaddress: 10.70.35.20
                -
                  vserver_name: lbv1
                  vserver_type: LBVSserver
                  vserver_protocol: HTTP
                  vserver_ipaddress: 10.70.35.31
            filter_options:
              vserver_ipaddress: 10.70.35.31

  ExtractConfigRequestSchema:
    title: ExtractConfigSchema
    type: object
    properties:
      adc_config:
        allOf:
          - $ref: "#/definitions/SourceAndTargetSchema"
          - $ref: "#/definitions/VServersToExtractSchema"
          -
            type: object
            properties:
              validate_extracted_config:
                description: A boolean which is set to true for validating the source ADC configuration.
                type: boolean
                default: false
        required:
          - source
          - target
          - vservers
        example:
          source:
            instance_id: f2380661-2d0d-478c-8c1d-f40be9e75227
          target:
            instance_id: 94a3ec30-f4e5-411b-aa19-1a8a564b7f73
          vservers:
            -
              vserver_name: csv1
              vserver_type: CSVServer
              target_vservers:
                - 
                  vserver_type: LBVServer
                  vserver_name: lbv1
                - 
                  vserver_type: LBVServer
                  vserver_name: lbv2
          validate_extracted_config: false

  MigrateConfigRequestSchema:
    title: MigrateConfigSchema
    type: object
    properties:
      adc_config:
        allOf:
          -
            type: object
            properties:
              appname:
                description: Name of the application.
                type: string
          - $ref: "#/definitions/SourceAndTargetSchema"
          - $ref: "#/definitions/VServersToExtractSchema"
          - $ref: "#/definitions/CommonExtractConfigSchema"
          -
            type: object
            properties:
              is_manage_through_adm:
                description: Manage config pack in ADM. Based on the user input, configuration created with configpack or without configpack. 
                type: boolean
          -
            type: object
            properties:
              autoscale_params:
                description: Autoscale Parameters when the target is an AutoScaleGroup ID (rather than Instance ID).
                type: object
                properties:
                  zonename:
                    description: Name of the zone.
                    type: string
                  domainname:
                    description: Name of the domain.
                    type: string
                  accesstype:
                    description: Access type.
                    type: string
                  auto_allocated:
                    description: Auto allocated. 
                    type: boolean
                    default: false
                  is_https_redirect:
                    type: boolean
                    default: false
                  redirect_port:
                    type: integer
                    format: int32
                    minimum: 1
                    maximum: 65535
              global_config:
                description: List of global configuration settings to apply on the target.
                type: array
                items:
                  type: string
            required:
              - source
              - target
              - vservers
              - appname
        example:
          appname: App1
          source:
            instance_id: f2380661-2d0d-478c-8c1d-f40be9e75227
          target:
            instance_id: 94a3ec30-f4e5-411b-aa19-1a8a564b7f73
          vservers:
            -
              vserver_name: csv1
              vserver_type: CSVServer
              target_vservers:
                - 
                  vserver_type: LBVServer
                  vserver_name: lbv1
                - 
                  vserver_type: LBVServer
                  vserver_name: lbv2

  PiConfigSchema:
    type: object
    properties:
      advanced_policy_config:
        description: List of cli commands after PE to PI conversion if any.
        type: array
        items:
          type: string
      advanced_policy_config_errors:
        description: List of errors in PE to PI conversion if any.
        type: array
        items:
          type: object
      is_config_same_after_conversion:
        description: Check if the given config and converted config are same.
        type: boolean
    required:
      - advanced_policy_config
      - advanced_policy_config_errors
      - is_config_same_after_conversion
  ConvertPeToPiResponseSchema:
    title: ConvertPeToPiResponseSchema
    type: object
    properties:
      adc_config:
        description: The ADC configuration.
        type: object
        $ref: "#/definitions/PiConfigSchema"
    example:
      adc_config:
        pi_config: [ 
          'add lbvserver lbv http 4.4.4.4 34',
          'add lbvserver lbv http 4.4.4.5 36',
        ]

  ExtractVServersResponseSchema:
    title: ExtractVserversResponseSchema
    type: object
    properties:
      adc_config:
        $ref: "#/definitions/ExtractedVServersSchema"
    example:
      adc_config:
        vservers:
          - vserver_type: csvserver
            vserver_name: my_csv1
            vserver_protocol: SSL
            vserver_port: 443
            vserver_ipaddress: y.y.y.y
            target_vservers:
              - vserver_type: lbvserver
                vserver_name: my_lbv1
                vserver_protocol: HTTP
                vserver_port: 80
                vserver_ipaddress: x.x.x.x

  FilterVServersResponseSchema:
    title: FilterVserversResponseSchema
    type: object
    properties:
      adc_config:
        description: The ADC configuration.
        type: object
        properties:
          vservers:
            description: List of vservers after applying the filter options.
            type: array
            items:
              $ref: "#/definitions/VServerBaseAttributesSchema"
        required:
          - vservers
    example:
      adc_config:
        vservers:
          - vserver_type: csvserver
            vserver_name: my_csv1
            vserver_protocol: SSL
            vserver_port: 443
            vserver_ipaddress: y.y.y.y

  ExtractConfigResponseSchema:
    title: ExtractConfigResponseSchema
    description: The response results of the Extract VServers Config API.
    type: object
    properties:
      adc_config:
        allOf:
          -
            type: object
            properties:
              application_config:
                description: ADC configuration related to the selected vservers that constitute the application as a list of CLI commands.
                type: array
                items:
                  type: string
          - $ref: "#/definitions/CommonExtractConfigSchema"
          -
            type: object
            properties:
              global_config:
                description: List of global configuration settings to apply on the target.
                type: array
                items:
                  type: object
                  properties:
                    source_config:
                      description: Global configuration settings on the source.
                      type: string
                    target_config:
                      description: Global configuration settings on the target.
                      type: string
                    corrective_config:
                      description: Corrective configuration to be applied on the target.
                      type: string
              unsupported_config:
                description: Unsupported configuration related to the selected vservers that constitute the application.
                type: object
                properties:
                  premigration_config:
                    type: array 
                    items:
                      description: List of unsupported CLI configuration commands that need to be applied manually prior to migrating the config.
                      type: string
                  postmigration_config:
                    type: array 
                    description: List of unsupported CLI configuration commands that need to be applied manually post migration of the config.
                    items:
                      type: string
              modified_application_config:
                description: Modified list of configuration settings to apply on the target.
                type: array
                items:
                  type: string
              config_inspection:
                description: Details of issues found in the application config.
                type: object
                properties:
                  not_applicable_for_ads_migration:
                    description: Configuration is not applicable for migration on ADS.
                    type: array
                    items:
                      allOf:
                        - $ref: "#/definitions/CommonConfigInspectionSchema"
                  currently_not_supported_in_migration:
                    description: Configuration is currently not supported in migration.
                    type: array
                    items:
                      allOf:
                        - $ref: "#/definitions/CommonConfigInspectionSchema"
                  reference_to_non_existing_entities:
                    description: Configuration is referring to entities that does not exist.
                    type: array
                    items:
                      allOf:
                        - $ref: "#/definitions/CommonConfigInspectionSchema"
                  reference_of_config_errors:
                    description: Configuration is referring to entities that already have some errors.
                    type: array
                    items:
                      allOf:
                        - $ref: "#/definitions/CommonConfigInspectionSchema"
                  builtin_entities_references:
                    description: Configuration referred by ADC builtin entities.
                    type: array
                    items:
                      allOf:
                        - $ref: "#/definitions/CommonConfigInspectionSchema"

    example:
      adc_config:
        application_config:
          - add csvserver csv1 http 1.1.1.1 80 -targetlbvserver lbv1
          - add lbvserver lbv1 SSL 2.1.1.1 443
          - add lbvserver lbv2 http 3.1.1.1 80
          - add ssl certkey cert1 -cert app_cert.cer -key app_key.pem -passcrypt abcdef
          - bind ssl vserver lbv1 -certkeyName cert1
          - set ssl parameter -default profile enabled
        file_uploads:
          - resource_type: sslcertkey
            resource_name: cert1
            filename: app_cert.cer
            file_content: CERT_NEEDED
        password_attributes:
          - resource_type: sslcertkey
            resource_name: app_key.pem
            attribute_name: passcrypt
            attribute_value: PASSWORD_NEEDED
        ip_port_configs:
          - vserver_type: csvserver
            vserver_name: csv1
            ip_port_config:
              - resource_type: csvserver
                resource_name: csv1
                ip: 1.1.1.1
                port: 80
                node_id: 0
                parent: NULL
              - resource_type: lbvserver
                resource_name: lbv1
                ip: 2.1.1.1
                port: 443
                node_id: 1
                parent: 0
        global_config:
          - source_config: set ssl parameter -default profile disabled
            target_config: set ssl parameter -default profile enabled
            corrective_config: set ssl parameter -default profile enabled
                      

  MigrateConfigResponseSchema:
    title: MigrateConfigResponseSchema
    description: The response payload for a successful migration of configuration from source to target.
    type: object
    properties:
      adc_config:
        description: The ADC configuration
        type: object
        properties:
          configpack_id:
            type: string
          message:
            type: string
    example:
     adc_config:
       configpack_id: 456364746746
       message: Migration Succesful

  SourceAndTargetSchema:
    type: object
    properties:
      source:
        description: Contains either a reference to source ADC instance  or a list of CLI configuration commands.
        type: object
        properties:
          instance_id:
            description: Unique id of the managed ADC from where the configuration to be migrated is extracted.
            type: string
          cli_commands:
            description: List of initial configration commands from which the configuration to be migrated is extracted.
            type: array
            items:
              type: string
      target:
        description:  Contains either a reference to target ADC instance or target ADC AutoScaleGroup ID.
        type: object
        properties:
          instance_id:
            description: Unique id of the managed ADC where the configuration needs to be migrated.
            type: string
          autoscalegroup_id:
            description: Unique id of the managed ASG where the configuration needs to be migrated.
            type: string

  FilterOptionsSchema:
    description: Specify the filter criteria for extracting the vservers. The values provided for the filter fields will be run through a 'contains' on the vserver list. The final vserver list will be a boolean AND of the filter options.
    type: object
    properties:
      filter_options:
        description: List of filter options.
        type: array
        items:
          $ref: '#/definitions/FilterOptionsObjectSchema'
  
  FilterOptionsObjectSchema:
    description: Filter condition which contains key, value and operator.
    type: object
    properties:
      key: 
        description: The parameter name.
        type: string
      value:
        description: The parameter value.
        type: string
      operator:
        description: The filter operator.
        type: string

  VServerBaseAttributesSchema:
    allOf:
      - $ref: '#/definitions/VServerNameAndTypeSchema'
      - 
        type: object
        properties:
          vserver_protocol:
            description: Protocol used by the vserver.
            type: string
          vserver_ipaddress:
            description: IP address of the vserver.
            type: string
          vserver_port:
            description: Listening port of the vserver.
            type: number

  VServerNameAndTypeSchema:
    type: object
    properties:
      vserver_type:
        description: Type of vserver.
        type: string
      vserver_name:
        description: Name of the vserver.
        type: string

  VServersToExtractSchema:
    type: object
    properties:
      vservers:
        description:  List of vservers for which ADC configuration needs to be extracted.
        type: array
        items:
          allOf:
            - $ref: '#/definitions/VServerNameAndTypeSchema'
            - 
              type: object
              properties:
                target_vservers:
                  description:  List of targets for a content switching endpoint. This option is applicable only if a subset of target vservers needs to included in the extracted configuration.
                  type: array
                  items:
                    $ref: '#/definitions/VServerNameAndTypeSchema'
    required:
      - vservers

  ExtractedVServersSchema:
    type: object
    properties:
      vservers:
        description:  List of extracted vservers 
        type: array
        items:
          allOf:
            - $ref: '#/definitions/VServerBaseAttributesSchema'
            - 
              type: object
              properties:
                target_vservers:
                  description:  List of nested vservers referenced by the parent vserver.
                  type: array
                  items:
                    $ref: '#/definitions/VServerBaseAttributesSchema'
    required:
      - vservers

  PasswordAttributesSchema:
    description: The description of a password attribute used in the configuration.
    type: object
    properties:
      resource_type:
        description: Type of ADC entity .
        type: string
      resource_name:
        description: Name of the ADC entity.
        type: string
      attribute_name:
        description: Name of the entity's attribute that denotes a password.
        type: string
      attribute_value:
        description: Value of the password.
        type: string

  FileUploadSchema:
    description: The description of a file to upload on the target.
    type: object
    properties:
      resource_type:
        description: Type of resource.
        type: string
      resource_name:
        description: Name of the resource.
        type: string
      filename:
        description: Name of the file.
        type: string
      file_content:
        description: Content of file.
        type: string

  CertificatesSchema:
    description: The description of a certificate to upload on the target.
    type: object
    properties:
      id:
        description: The Cerstore ID of certificates.
        type: string
      name:
        description: Name of resource.
        type: string
      cert:
        description: Name of certfile.
        type: string
      key:
        description: Name of keyfile.
        type: string
      certkeyname:
        description: Name of certkey.
        type: string

  IPPortConfigsSchema:
    description: Description of IP/Port configuration for backend vserver and services for a root vserver.
    allOf:
      - $ref: '#/definitions/VServerNameAndTypeSchema'
      -
        type: object
        properties:
          ip_port_config:
            description:  List describing the IP/Port configuration of referenced entities.
            type: array
            items:
              $ref: "#/definitions/IPPortConfigSchema"
  IPPortConfigSchema:
    description: Description of an IP/Port configuration for a vserver or a backend service.
    type: object
    properties:
      resource_type:
        description: Type of resource.
        type: string
      resource_name:
        description: Name of the resource.
        type: string
      ip:
        description: IP address
        type: string
      port:
        description: Listening port of the resource.
        type: number
      node_id:
        description: Unique Identifier for the resource object.
        type: string
      parent:
        description: Node ID of the parent entity.
        type: string
      servername:
        description: Name of the servicegroup member/server in case of servicegroup/service.
        type: string
  AuthConfigsSchema:
    description: Description of IP,Port and Auth config for backend authentication vserver and actions for a root vserver.
    allOf:
      - $ref: '#/definitions/VServerNameAndTypeSchema'
      -
        type: object
        properties:
          auth_config:
            description:  List describing the Auth config of referenced entities.
            type: array
            items:
              $ref: "#/definitions/AuthConfigSchema"
  AuthConfigSchema:
    description: Description of IP,Port and Auth config for an authentication vserver and actions.
    type: object
    properties:
      resource_type:
        description: Type of resource.
        type: string
      resource_name:
        description: Name of the resource.
        type: string
      ip:
        description: IP address.
        type: string
      port:
        description: Listening port of the resource.
        type: number
      range:
        description: Range.
        type: number
      node_id:
        description: Unique Identifier for the resource object.
        type: string
      metadataurl:
        description: URL used for obtaining saml metadata.
        type: string
      samlredirecturl:
        description: URL to which users are redirected for authentication.
        type: string
      parent:
        description: Node id of the parent entity.
        type: string
      serverip:
        description: IP address of server.
        type: string
      serverport:
        description: Listening port of the server in case of authentication action.
        type: number
      servername:
        description: Name of the server in case of authentication action.
        type: string

  StylebookInfoSchema:
    description: Description of a stylebook used to create configpack.
    type: object
    properties:
      name:
        description: Name of Stylebook.
        type: string
      version:
        description: Version of Stylebook.
        type: string
      namespace:
        description: Namespace of Stylebook.
        type: string
  CommonExtractConfigSchema:
    description: Common sets of configuration in request/response of ExtractConfig API.
    type: object
    properties:
      file_uploads:
        description: List of files to upload on the target.
        type: array
        items:
          $ref: "#/definitions/FileUploadSchema"
      certificates:
        description: List of ssl certificates.
        type: array
        items:
          $ref: "#/definitions/CertificatesSchema"
      password_attributes:
        description: List of values for password accepting attributes.
        type: array
        items:
          $ref: "#/definitions/PasswordAttributesSchema"
      ip_port_configs:
        description: Modified IP and Port information of endpoints and backend servers as per the migration target.
        type: array
        items:
          $ref: "#/definitions/IPPortConfigsSchema"
      auth_configs:
        description: Modified IP,Port and Auth config for backend authentication vserver and actions for a root vserver.
        type: array
        items:
          $ref: "#/definitions/AuthConfigsSchema"

  CommonConfigInspectionSchema:
    description: Common sets of configuration in configuration inspection object.
    type: object
    properties:
      index:
        description: Index of the configuration in application_config.
        type: string
      issue:
        description: Issues in the configuration.
        type: object
        properties:
          message:
            description: Error Message.
            type: string
          feature:
            description: ADC feature corresponding to the configuration.
            type: string
      action:
        description: Action taken on the config.
        type: string

  total_count:
    title: totalCountMetaProperty
    type: number

  count:
    title: CountReturnedMetaProperty
    type: number 

  Error400ResponseBody:
    properties:
      errorcode:
        type: integer
        example: 45633
      message:
        type: string
        example: bad request. url attribute missing.
  Error401ResponseBody:
    properties:
      errorcode:
        type: integer
        example: 45655
      message:
        type: string
        example: configpack with ID 829102 is not authorized for this user.
  Error404ResponseBody:
    properties:
      errorcode:
        type: integer
        example: 45654
      message:
        type: string
        example: configpack with ID 829102 cannot be found.
  Error409ResponseBody:
    properties:
      errorcode:
        type: integer
        example: 45712
      message:
        type: string
        example: conflict. StyleBook with name A, namespace B and version C already exists.
  Error500ResponseBody:
    properties:
      errorcode:
        type: integer
        example: 45724
      message:
        type: string
        example: Internal Service error. Please report error 289101-8sa672-210a to service support.


#---------------------------------------------------------------- End of Definitions --------------------------------------------------------------------