openapi: 3.0.3
info:
  description: The Machine Learning Pipeline Automation (MLPA) API enables CRUD operations on automation projects, which automates VDMML project creation, pipeline building and training, and the production of champion models.
  version: "4"
  title: Machine Learning Pipeline Automation
  contact:
    name: SAS Developers
    url: https://developer.sas.com
    email: devex@sas.com
  license:
    name: SAS Institute Inc.
    url: https://support.sas.com/techsup/license/index.html
tags:
  - name: AutomationProjects
    description: Contains the operations for working with machine learning pipeline automation.
  - name: AutomationAlgorithms
    description: Contains the operations for working with machine learning pipeline automation algorithms.
  - name: PipelineTemplates
    description: Contains the operations for managing machine learning pipeline templates.
  - name: Root
    description: Contains the operations for the root resource.
paths:
  /:
    get:
      tags:
        - Root
      summary: Get a collection of all currently usable links
      description: The API object contains a set of links for the supported endpoints.
      operationId: root
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/api"
              examples:
                json:
                  $ref: "#/components/examples/getMLPipelineAutomationRootResponse"
            application/vnd.sas.api+json:
              schema:
                $ref: "#/components/schemas/api"
              examples:
                json:
                  $ref: "#/components/examples/getMLPipelineAutomationRootResponse"
  /algorithms:
    get:
      tags:
        - AutomationAlgorithms
      summary: Return all supervised learning algorithms
      description: >
        The `consider`, `exclude`, `forceInclude`, and `algorithms` settings are used to specify the supervised learning algorithm that is used during automatic pipeline generation. Each algorithm has a default setting that determines its behavior when none of the settings are specified. To view these defaults you can request a list of algorithms from the `/algorithms` endpoint.
      operationId: getAlgorithms
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/algorithmCollection"
              examples:
                json:
                  $ref: "#/components/examples/getAlgorithms"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/algorithmCollection"
              examples:
                json:
                  $ref: "#/components/examples/getAlgorithms"
  /projects:
    get:
      tags:
        - AutomationProjects
      summary: Return all automation projects
      description: The endpoint to get all available automation projects.
      operationId: getAutomationProjects
      parameters:
        - name: start
          in: query
          description: start
          required: false
          schema:
            type: integer
            format: int64
            default: 0
        - name: limit
          in: query
          description: limit
          required: false
          schema:
            type: integer
            format: int32
            default: 10
        - name: sortBy
          in: query
          description: sortBy
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: filter
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mlPipelineAutomationProjectCollection"
              examples:
                json:
                  $ref: "#/components/examples/getProjects"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/mlPipelineAutomationProjectCollection"
              examples:
                json:
                  $ref: "#/components/examples/getProjects"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
    post:
      tags:
        - AutomationProjects
      summary: Create an automation project
      description: >
        A user begins using the service by creating an automation project. The Machine Learning Pipeline Automation API uses the following attributes: user-supplied project name, data table URI and target variable, and other attributes. The service creates an underlying analytics (VDMML) project, executes multiple steps of pre-processing, builds a data analysis pipeline, and runs the pipeline to completion. The entire process is fully automated without further user intervention.

        The request body is structured in three sections.

        - Key information of the automation project
          - Automation project ID (automatically created by the service, read-only)
          - Name of the project (a random string is appended to ensure uniqueness)
          - Description of the project
          - Project type (only "predictive" type is supported)
          - Data table URI
          - Project state
          - The pipeline build method (either "automatic" or "template")
        - Automation project settings, grouped under "settings"
          - A properties bag through which a user can pass arbitrary key/value pairs,
            regardless if they are used. The properties currently used are as follows.
            - applyGlobalMetadata (a flag to indicate whether to apply global metadata
              during project creation. Default is set to true.)
            - autoRun (a flag to indicate whether to automatically start pipeline
        run
              at the time of project creation. Default is set to true.)
            - numberOfModels (a positive integer to indicate maximum number of top
              models to return. Default is set to 5)
            - consider (a list of machine learning algorithms specified by ID to
              additionally consider when generating the pipeline)
            - exclude (a list of machine learning algorithms specified by ID to
              exclude from consideration when generating a pipeline)
            - forceInclude (a list of machine learning algorithms specified by ID
        to
              force into the generated pipeline)
            - algorithms (a list of machine learning algorithms used to inform
              pipeline generation)
            - subsampleCount (number of training observations to sample for
              pipeline generation)
            - subsamplePercent (percent of training observations to sample for
              pipeline generation)
            - subsampleSeed (seed to use when subsampling training data during pipeline
        generation)

        - Analytics project attributes, grouped under "analyticsProjectAttributes"

          - Analytics project ID (automatically created by the service, read-only)
          - Target variable
          - Target level (a string to indicate target level. The accepted values are
            listed below.)
            - binary: Binary target level
            - interval: Interval target level
            - nominal: Nominal target level
          - Target event level
          - classSelectionStatistic (a string to indicate class selection statistic,
            dependent upon the type of target variable. For 'BINARY' and 'NOMINAL'
            target variable types, the accepted values are listed below, where the
            default is set to 'ks'. The 'ORDINAL' target variable type is not
            supported.)
            - ase: Average squared error
            - c: Area under curve (C statistic)
            - capturedResponse: Captured response
            - cumulativeCapturedResponse: Cumulative captured response
            - cumulativeLift: Cumulative lift
            - f1: F1 score
            - fdr: False discovery rate
            - fpr: False positive rate
            - gain: Gain
            - gini: Gini
            - ks: Kolmogorov-Smirnov statistic
            - lift: Lift
            - misclassificationEvent: Misclassification (Event)
            - mce: Misclassification (MCE)
            - mcll: Multiclass log loss
            - ks2: ROC separation
            - rase: Root average squared error
            - misclassificationRateCutoff: Misclassification at cutoff
          - intervalSelectionStatistic (a string to indicate interval selection
            statistic, dependent upon the type of target variable. For 'INTERVAL'
            target variable types, the accepted values are listed below, where the
            default is set to 'ase'. This field is ignored for all other types, like
            'BINARY', 'NOMINAL', or 'ORDINAL'.)
            - ase: Average squared error
            - rase: Root average squared error
            - rmae: Root mean absolute error
            - rmsle: Root mean squared logarithmic error
          - Partition enabled flag
      operationId: createAutomationProject
      parameters:
        - name: Accept-Language
          in: header
          description: Used to set the project locale.
          required: false
          schema:
            type: string
            default: en
      requestBody:
        $ref: "#/components/requestBodies/mlPipelineAutomationProject"
      responses:
        "202":
          description: The request is accepted.
          headers:
            ETag:
              description: E-Tag for response.
              schema:
                type: string
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/mlPipelineAutomationProject"
              examples:
                json:
                  $ref: "#/components/examples/postProject"
            application/json:
              schema:
                $ref: "#/components/schemas/mlPipelineAutomationProject"
              examples:
                json:
                  $ref: "#/components/examples/postProject"
        "400":
          description: One or more parameters were invalid.
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                badData:
                  $ref: "#/components/examples/invalidDataTableError"
                requiredArguments:
                  $ref: "#/components/examples/requiredArgumentsError"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                badData:
                  $ref: "#/components/examples/invalidDataTableError"
                requiredArguments:
                  $ref: "#/components/examples/requiredArgumentsError"
  "/projects/{projectId}":
    head:
      tags:
        - AutomationProjects
      summary: Get headers for an automation project
      description: The endpoint to get headers for a specific automation project specified by an ID.
      operationId: headersForAutomationProject
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            ETag:
              description: E-Tag for response.
              schema:
                type: string
        "400":
          description: One or more parameters were invalid.
          headers:
            ETag:
              description: E-Tag for response.
              schema:
                type: string
        "404":
          description: No project with the provided ID was found.
          headers:
            ETag:
              description: E-Tag for response.
              schema:
                type: string
    get:
      tags:
        - AutomationProjects
      summary: Get an automation project
      description: The endpoint to get a specific automation project specified by an ID.
      operationId: getAutomationProject
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            ETag:
              description: E-Tag for response.
              schema:
                type: string
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/mlPipelineAutomationProject"
              examples:
                json:
                  $ref: "#/components/examples/getProject"
            application/json:
              schema:
                $ref: "#/components/schemas/mlPipelineAutomationProject"
              examples:
                json:
                  $ref: "#/components/examples/getProject"
        "400":
          description: One or more parameters were invalid.
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
        "404":
          description: No project with the provided ID was found.
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
                projectNotFound:
                  $ref: "#/components/examples/projectNotFound"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
                projectNotFound:
                  $ref: "#/components/examples/projectNotFound"
    put:
      tags:
        - AutomationProjects
      summary: Update the specified automation project
      description: >
        In some cases, the user could select the wrong data set or target variables accidentally when creating an automation project. The project might fail to run or the result might not be what the user intended. The ability to update an automation project comes to rescue in those cases, where the user can update the project's attributes and settings with the following request and rerun the project.

        This API is solely used for updating a project’s parameters. There is a separate endpoint for updating the state of a project, for example, stopping or restarting a project run.

        We do not support PATCH operation to update the automation project with changes only. According to standard, the user must enter the full project info in this PUT request, whether or not the parameters are to be changed.

        List of parameters that can be updated.

        - name - description - dataTableUri - settings - analyticsProjectAttributes (all analytics attributes can be changed, except
          analytics project ID)

        List of parameters that cannot be updated. Any changes are ignored.

        - id - type - analyticsProjectId - common fields associated with all revision tracking resources
          - creationTimestamp
          - modifiedTimestamp
          - createdBy
          - modifiedBy
          - version

        List of parameters that cannot be updated. Any changes cause 4xx error responses to be sent back to the client.

        - state (error code 400) - revision (error code 412)
      operationId: updateAutomationProject
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: If-Match
          in: header
          description: If-Match
          required: true
          schema:
            type: string
        - name: Accept-Language
          in: header
          description: Used to set the project locale
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/mlPipelineAutomationProject"
      responses:
        "200":
          description: The automation project was updated.
          headers:
            ETag:
              description: E-Tag for response.
              schema:
                type: string
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/mlPipelineAutomationProject"
              examples:
                json:
                  $ref: "#/components/examples/getProject"
            application/json:
              schema:
                $ref: "#/components/schemas/mlPipelineAutomationProject"
              examples:
                json:
                  $ref: "#/components/examples/getProject"
        "400":
          description: One or more parameters were invalid.
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                updateStateError:
                  $ref: "#/components/examples/updateProjectStateError"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                updateStateError:
                  $ref: "#/components/examples/updateProjectStateError"
        "404":
          description: No automation project with the provided entity ID was found.
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
        "412":
          description: The value supplied in the If-Match header did not match the expected value.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/preconditionFailedError"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/preconditionFailedError"
        "428":
          description: An If-Match header was not supplied on the update request.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/preconditionRequiredError"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/preconditionRequiredError"
    delete:
      tags:
        - AutomationProjects
      summary: Delete an automation project
      description: >
        When it is not needed anymore, the automation project can be deleted with the request below. By default, this API deletes the automation project while keeping its associated analytics project. To delete both projects, set the query parameter "propagate" to true.
      operationId: deleteAutomationProject
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: propagate
          in: query
          description: Propagate deletion to the underlying analytics project
          required: false
          schema:
            type: boolean
            default: false
      responses:
        "204":
          description: The project was deleted.
  "/projects/{projectId}/reports":
    head:
      tags:
        - AutomationProjects
      summary: Retrieve headers for completed project reports
      description: Retrieves headers for a list of reports for a project that has completed modeling.
      operationId: headersForProjectReports
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: reportName
          in: query
          description: If provided, only the specified are returned. To specify multiple reports with this, use the parameter once for each report. For example, to return 3 reports named report1, report2, and report3, use ?reportName=report1&reportName=report2&reportName=report3
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter
          in: query
          description: filter
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
        "400":
          description: One or more parameters were invalid.
          headers:
            Content-Type:
              schema:
                type: string
        "404":
          description: No project with the provided ID was found.
          headers:
            Content-Type:
              schema:
                type: string
    get:
      tags:
        - AutomationProjects
      summary: Retrieve reports for a completed project
      description: Retrieves a list of reports for a project that has completed modeling.
      operationId: getProjectReports
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: reportName
          in: query
          description: If provided, only the specified are returned. To specify multiple reports with this, use the parameter once for each report. For example, to return 3 reports named report1, report2, and report3, use ?reportName=report1&reportName=report2&reportName=report3
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter
          in: query
          description: filter
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/reportCollection"
              examples:
                json:
                  $ref: "#/components/examples/projectReportsResponseBody"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/reportCollection"
              examples:
                json:
                  $ref: "#/components/examples/projectReportsResponseBody"
        "400":
          description: One or more parameters were invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
        "404":
          description: No project with the provided ID was found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
  "/projects/{projectId}#retrainProject":
    put:
      tags:
        - AutomationProjects
      summary: Retrain the specified automation project
      description: To retrain an automation project with changed parameters, use the retrainProject endpoint. By default, the service generates a new automated pipeline. This behavior can be overwritten with an optional query parameter `replacePreviousPipelines`. When set to true, the parameter instructs the service to remove all previous automatically generated pipelines before creating a new pipeline.
      operationId: retrainProject
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: action
          in: query
          description: The retrain project action
          required: true
          schema:
            type: string
            enum:
              - retrainProject
            default: retrainProject
        - name: replacePreviousPipelines
          in: query
          description: Flag to replace previous pipelines
          required: false
          schema:
            type: boolean
            default: false
        - name: If-Match
          in: header
          description: If-Match
          required: true
          schema:
            type: string
        - name: Accept-Language
          in: header
          description: Accept-Language
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/mlPipelineAutomationProject"
      responses:
        "202":
          description: The action was accepted and the automation project was updated.
          headers:
            ETag:
              description: E-Tag for response.
              schema:
                type: string
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/mlPipelineAutomationProject"
              examples:
                json:
                  $ref: "#/components/examples/retrainProjectResponse"
            application/json:
              schema:
                $ref: "#/components/schemas/mlPipelineAutomationProject"
              examples:
                json:
                  $ref: "#/components/examples/retrainProjectResponse"
        "400":
          description: One or more parameters were invalid.
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                inProgressState:
                  $ref: "#/components/examples/retrainNonTerminalStateError"
                missingActionParameter:
                  $ref: "#/components/examples/retrainMissingActionError"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                inProgressState:
                  $ref: "#/components/examples/retrainNonTerminalStateError"
                missingActionParameter:
                  $ref: "#/components/examples/retrainMissingActionError"
        "404":
          description: No automation project with the provided entity ID was found.
          content:
            application/vnd.sas.analytics.ml.pipeline.automation.project+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
        "412":
          description: The value supplied in the If-Match header did not match the expected value.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/preconditionFailedError"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/preconditionFailedError"
        "428":
          description: An If-Match header was not supplied on the update request.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/preconditionRequiredError"
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/preconditionRequiredError"
  "/projects/{projectId}/models/@championModel":
    head:
      tags:
        - AutomationProjects
      summary: Get the headers for champion model information for a completed automation project
      description: Get the headers for champion model information for a completed automation project specified by project ID.
      operationId: headersForChampionModel
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: filter
          in: query
          description: filter
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
            ETag:
              schema:
                type: string
        "400":
          description: One or more parameters were invalid.
          headers:
            Content-Type:
              schema:
                type: string
            ETag:
              schema:
                type: string
        "404":
          description: No project with the provided ID was found.
          headers:
            Content-Type:
              schema:
                type: string
            ETag:
              schema:
                type: string
    get:
      tags:
        - AutomationProjects
      summary: Get the champion model information for a completed automation project
      description: Get the champion model information for a completed automation project specified by project ID.
      operationId: getChampionModel
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: filter
          in: query
          description: filter
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
            ETag:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/championModel"
              examples:
                json:
                  $ref: "#/components/examples/getChampionModel"
            application/vnd.sas.analytics.ml.pipeline.automation.project.champion.model+json:
              schema:
                $ref: "#/components/schemas/championModel"
              examples:
                json:
                  $ref: "#/components/examples/getChampionModel"
        "400":
          description: One or more parameters were invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
            application/vnd.sas.analytics.ml.pipeline.automation.project.champion.model+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
        "404":
          description: No project with the provided ID was found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
            application/vnd.sas.analytics.ml.pipeline.automation.project.champion.model+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
    put:
      tags:
        - AutomationProjects
      summary: Register or publish the champion model of the automation project
      description: Register or publish the automation project's champion model.
      operationId: registerOrPublishChampionModel
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: action
          in: query
          description: The action applied to a champion model, such as register or publish.
          required: true
          schema:
            type: string
            enum:
              - register
              - publish
        - name: destinationName
          in: query
          description: The destination of register or publish action. Optional for register but required for publish.
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The specified action was performed on the champion model.
          headers:
            ETag:
              description: E-Tag for response.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/championModelActionResponse"
              example:
                json:
                  $ref: "#/components/examples/registerChampionModelResponse"
            application/vnd.sas.analytics.ml.pipeline.automation.project.champion.model.action.response+json:
              schema:
                $ref: "#/components/schemas/championModelActionResponse"
              example:
                json:
                  $ref: "#/components/examples/publishChampionModelResponse"
        "400":
          description: The action is not supported.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
        "404":
          description: No automation project with the provided entity ID or its champion model was found.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
  "/projects/{projectId}/models/@championModel/reports":
    head:
      tags:
        - AutomationProjects
      summary: Get the headers for champion model reports for a completed automation project
      description: Get the headers for champion model reports for a completed automation project specified by project ID.
      operationId: headersForChampionModelReports
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: reportName
          in: query
          description: If provided, only the specified are returned. To specify multiple reports with this, use the parameter once for each report. For example, to return 3 reports named report1, report2, and report3, use ?reportName=report1&reportName=report2&reportName=report3
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter
          in: query
          description: filter
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
        "400":
          description: One or more parameters were invalid.
          headers:
            Content-Type:
              schema:
                type: string
        "404":
          description: No project with the provided ID was found.
          headers:
            Content-Type:
              schema:
                type: string
    get:
      tags:
        - AutomationProjects
      summary: Get the champion model reports for a completed automation project
      description: Get the champion model reports for a completed automation project specified by project ID. If the reportName parameter is not included, a list of default reports are returned. The reportName parameter can be used to return a sub set of these reports. The default reports returned for a binary target are iterplot, varimportance, dmcas_lift, dmcas_roc, dmcas_fitstat, and dmcas_misc. The default reports returned for an interval target are iterplot, varimportance, dmcas_lift, and dmcas_fitstat. The default reports for a nominal target are dmcas_lift, dmcas_roc, dmcas_fitstat, dmcas_misc, dmcas_miscTable and dmcas_nommisc.
      operationId: getChampionModelReports
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: reportName
          in: query
          description: If provided, only the specified are returned. To specify multiple reports with this, use the parameter once for each report. For example, to return 3 reports named report1, report2, and report3, use ?reportName=report1&reportName=report2&reportName=report3
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter
          in: query
          description: filter
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/reportCollection"
              examples:
                json:
                  $ref: "#/components/examples/projectReportsResponseBody"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/reportCollection"
              examples:
                json:
                  $ref: "#/components/examples/projectReportsResponseBody"
        "400":
          description: One or more parameters were invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
        "404":
          description: No project with the provided ID was found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
  "/projects/{projectId}/models/@championModel/scoreData":
    post:
      tags:
        - AutomationProjects
      summary: Score data with the champion model of the automation project
      description: Score data with the automation project's champion model.
      operationId: scoreData
      parameters:
        - name: projectId
          in: path
          description: The automation project ID
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/scoreDataInput"
            examples:
              scoreSingle:
                $ref: "#/components/examples/scoreSingleRequestBody"
              scoreBulk:
                $ref: "#/components/examples/scoreBulkRequestBody"
          application/vnd.sas.analytics.ml.pipeline.automation.score.data.input+json:
            schema:
              $ref: "#/components/schemas/scoreDataInput"
            examples:
              scoreSingle:
                $ref: "#/components/examples/scoreSingleRequestBody"
              scoreBulk:
                $ref: "#/components/examples/scoreBulkRequestBody"
        description: The score data input
        required: true
      responses:
        "200":
          description: The request succeeded.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/scoreDataOutput"
              examples:
                json:
                  $ref: "#/components/examples/scoreDataResponseBody"
            application/vnd.sas.analytics.ml.pipeline.automation.score.data.output+json:
              schema:
                $ref: "#/components/schemas/scoreDataOutput"
              examples:
                json:
                  $ref: "#/components/examples/scoreDataResponseBody"
        "400":
          description: The request cannot be processed.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                requiredArguments:
                  $ref: "#/components/examples/requiredArgumentsError"
            application/vnd.sas.analytics.ml.pipeline.automation.score.data.output+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                requiredArguments:
                  $ref: "#/components/examples/requiredArgumentsError"
        "404":
          description: No required resources could be found. For example, automation project, analytics project, or champion model. This error condition could also occur if the champion model was not published to the supported destination.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
            application/vnd.sas.analytics.ml.pipeline.automation.score.data.output+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
  "/projects/{projectId}/state":
    head:
      tags:
        - AutomationProjects
      summary: Get headers for current state of an automation project
      description: Get headers for the request that gets the current state of an automation project
      operationId: headersForAutomationProjectState
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: filter
          in: query
          description: filter
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
            ETag:
              schema:
                type: string
        "400":
          description: One or more parameters were invalid.
          headers:
            Content-Type:
              schema:
                type: string
            ETag:
              schema:
                type: string
        "404":
          description: No project with the provided ID was found.
          headers:
            Content-Type:
              schema:
                type: string
            ETag:
              schema:
                type: string
    get:
      tags:
        - AutomationProjects
      summary: Get current state of an automation project
      description: >
        Automation project state can be one of these enum values.

        - pending: indicates that the underlying analytics project was created but has
          not been run yet.
        - preparing: gathering resources to process the pipeline. - waiting: indicates that the underlying analytics project metadata was updated. - ready: indicates that the underlying analytics project is preparing and ready
          to submit CASL code.
        - modeling: indicates that models are being composed and compared on CASL
          server.
        - constructingPipeline: indicates that pipelines are being built on CASL server. - runningPipeline: indicates that pipelines are being run on CASL server. - quiescing: indicates that the user request to quiesce the project modeling has
          been received.
        - quiesced: indicates that project modeling is being stopped in response to the
          user's quiescing request.
        - completed: indicates that the underlying analytics project has run to
          completion without errors.
        - canceled: indicates that the underlying analytics project run was canceled by
          user.
        - failed: indicates that the underlying analytics project has encountered errors
          during pipeline run and has stopped.
        - oversampling: the oversampling technique is being applied. - retraining: the project is being retrained.
      operationId: getAutomationProjectState
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: filter
          in: query
          description: filter
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
            ETag:
              schema:
                type: string
          content:
            text/plain:
              schema:
                $ref: "#/components/schemas/automationProjectState"
              example: completed
        "400":
          description: One or more parameters were invalid.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
        "404":
          description: No project with the provided ID was found.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
    put:
      tags:
        - AutomationProjects
      summary: Update state of the specified automation project
      description: Update state of the automation project with the ID from the path. The automation project state is considered a single piece of information and operations on state are atomic. State update is completely controlled by the state machine based on current state and intended state.
      operationId: updateAutomationProjectState
      parameters:
        - name: projectId
          in: path
          description: projectId
          required: true
          schema:
            type: string
        - name: value
          in: query
          description: Intended automation project state.
          required: true
          schema:
            $ref: "#/components/schemas/automationProjectState"
      responses:
        "202":
          description: The state of automation project was updated.
          content:
            text/plain:
              schema:
                $ref: "#/components/schemas/automationProjectState"
              example: completed
        "400":
          description: One or more parameters were invalid.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
        "404":
          description: No automation project with the provided entity ID was found.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
        "409":
          description: Transition from current to desired state is not permitted.
          content:
            application/vnd.sas.error+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/conflictError"
  /pipelineTemplates:
    get:
      tags:
        - PipelineTemplates
      summary: Return all machine learning pipeline templates
      description: The endpoint to get all available machine learning pipeline templates.
      operationId: getPipelineTemplates
      parameters:
        - name: start
          in: query
          description: start
          required: false
          schema:
            type: integer
            format: int64
            default: 0
        - name: limit
          in: query
          description: limit
          required: false
          schema:
            type: integer
            format: int32
            default: 10
        - name: sortBy
          in: query
          description: sortBy
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: filter
          required: false
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mlPipelineTemplateCollection"
              examples:
                json:
                  $ref: "#/components/examples/getPipelineTemplates"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/mlPipelineTemplateCollection"
              examples:
                json:
                  $ref: "#/components/examples/getPipelineTemplates"
        "400":
          description: The request was invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
            application/vnd.sas.collection+json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
  "/pipelineTemplates/{templateId}":
    head:
      tags:
        - PipelineTemplates
      summary: Get headers for a machine learning pipeline template
      description: Headers for the endpoint to get a specific machine learning pipeline template.
      operationId: headersForPipelineTemplate
      parameters:
        - name: templateId
          in: path
          description: templateId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
        "400":
          description: One or more parameters were invalid.
          headers:
            Content-Type:
              schema:
                type: string
        "404":
          description: No template with the provided ID was found.
          headers:
            Content-Type:
              schema:
                type: string
    get:
      tags:
        - PipelineTemplates
      summary: Get a machine learning pipeline template
      description: The endpoint to get a specific machine learning pipeline template.
      operationId: getPipelineTemplate
      parameters:
        - name: templateId
          in: path
          description: templateId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: The request succeeded.
          headers:
            Content-Type:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/mlPipelineTemplate"
              examples:
                json:
                  $ref: "#/components/examples/getPipelineTemplate"
            application/vnd.sas.analytics.machine.learning.pipeline.template:
              schema:
                $ref: "#/components/schemas/mlPipelineTemplate"
              examples:
                json:
                  $ref: "#/components/examples/getPipelineTemplate"
        "400":
          description: One or more parameters were invalid.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
            application/vnd.sas.analytics.machine.learning.pipeline.template:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/badRequestError"
                invalidFilter:
                  $ref: "#/components/examples/invalidFilterError"
        "404":
          description: No template with the provided ID was found.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
            application/vnd.sas.analytics.machine.learning.pipeline.template:
              schema:
                $ref: "#/components/schemas/error2"
              examples:
                generic:
                  $ref: "#/components/examples/notFoundError"
servers:
  - url: http://example.com/mlPipelineAutomation
    description: kubernetes mock server
components:
  requestBodies:
    mlPipelineAutomationProject:
      content:
        application/vnd.sas.analytics.ml.pipeline.automation.project+json:
          schema:
            $ref: "#/components/schemas/mlPipelineAutomationProject"
          examples:
            json:
              $ref: "#/components/examples/MLPipelineProjectRequestBody"
        application/json:
          schema:
            $ref: "#/components/schemas/mlPipelineAutomationProject"
          examples:
            json:
              $ref: "#/components/examples/MLPipelineProjectRequestBody"
      description: project
      required: true
  schemas:
    algorithmBehavior:
      title: Supervised Learning Algorithm Behavior in Pipeline Generation
      description: Describes the behavior of a supervised learning algorithm during pipeline generation. One of the enums [consider, exclude, forceInclude].
      type: string
      enum:
        - consider
        - exclude
        - forceInclude
    algorithmId:
      title: Supervised Learning Algorithm
      description: Supervised Learning Algorithm. One of the enums [DecisionTree, Forest, GAM, GradientBoosting, NeuralNetwork, Regression, Ensemble, SVM].
      type: string
      enum:
        - DecisionTree
        - Forest
        - GAM
        - GradientBoosting
        - NeuralNetwork
        - Regression
        - Ensemble
        - SVM
    algorithm:
      title: Supervised Learning Algorithm Settings in Pipeline Generation
      description: A collection of settings to configure a supervised learning algorithm. defaultBehavior field is read-only.
      type: object
      properties:
        id:
          $ref: "#/components/schemas/algorithmId"
        name:
          description: Supervised Learning Algorithm Name
          type: string
          readOnly: true
        description:
          description: Supervised Learning Algorithm Description
          type: string
          readOnly: true
        behavior:
          $ref: "#/components/schemas/algorithmBehavior"
        defaultBehavior:
          $ref: "#/components/schemas/algorithmBehavior"
    algorithmCollection:
      title: Supervised Learning Algorithm Collection
      description: This object contains a list of supervised learning algorithms.
      allOf:
        - $ref: "#/components/schemas/baseCollection2"
        - type: object
          properties:
            items:
              type: array
              description: The list of supervised learning algorithms.
              items:
                $ref: "#/components/schemas/algorithm"
          required:
            - links
            - accept
            - count
            - items
    automationProjectState:
      title: Automation Project State
      description: Automation Project state. One of the enums [pending, preparing, waiting, ready, modeling, constructingPipeline, runningPipeline, quiescing, quiesced, completed, canceled, failed, oversampling, retraining].
      type: string
      enum:
        - pending
        - preparing
        - waiting
        - ready
        - modeling
        - constructingPipeline
        - runningPipeline
        - quiescing
        - quiesced
        - completed
        - canceled
        - failed
        - oversampling
        - retraining
    analyticsProjectAttributes:
      title: Analytics Project Attributes
      description: >
        This object contains a list of analytics project attributes related to Model Studio project settings.
      type: object
      properties:
        analyticsProjectId:
          type: string
          description: Analytics project ID.
          readOnly: true
        targetVariable:
          type: string
          description: Target variable.
        targetLevel:
          type: string
          description: Target level.
          enum:
            - binary
            - interval
            - nominal
        targetEventLevel:
          type: string
          description: Target event level.
        intervalSelectionStatistic:
          description: Interval selection statistic used for comparing pipeline models.
          type: string
          enum:
            - ase
            - rase
            - rmae
            - rmsle
          default: ase
        classSelectionStatistic:
          description: Class selection statistic used for comparing pipeline models.
          type: string
          enum:
            - ks
            - ase
            - rase
            - mce
            - mcll
            - c
            - f1
            - fdr
            - fpr
            - acc
            - ks2
            - lift
            - cumulativeLift
            - gain
            - gini
            - capturedResponse
            - cumulativeCapturedResponse
            - misclassificationEvent
            - misclassificationCutoff
          default: ks
        selectionDepth:
          description: >
            Selection depth to use when applying lift-based measure for comparing pipeline models.
          type: number
          enum:
            - 5
            - 10
            - 15
            - 20
          default: 10
        selectionPartition:
          description: >
            Selection partition used for comparing pipeline models. When default is specified, test partition is used, then validate, then train, based on availability.
          type: string
          enum:
            - default
            - train
            - validate
            - test
          default: default
        partitionEnabled:
          description: >
            Flag to indicate whether partitioning is enabled. If true, data is partitioned 60/30/10 for training/validation/test, using stratified partitioning for class targets and simple random partitioning for interval targets.
          type: boolean
          default: true
        overrideClassificationCutoffEnabled:
          description: Flag to indicate whether the default classification cutoff is overridden by the selected value.
          type: boolean
          default: false
        overrideClassificationCutoffValue:
          description: The override value (percentage) to use if overrideClassificationCutoffEnabled is true.
          type: number
          format: double
          default: 0.5
          minimum: 0.000001
          maximum: 0.999999
        cutoffPercentage:
          description: >
            Cutoff percentage to use when applying a Receiver Operating Characteristic (ROC) based measure for comparing pipeline models.
          type: number
          enum:
            - 5
            - 10
            - 15
            - 20
            - 25
            - 30
            - 35
            - 40
            - 45
            - 50
            - 55
            - 60
            - 65
            - 70
            - 75
            - 80
            - 85
            - 90
            - 95
          default: 50
        numberOfCutoffValues:
          description: Number of Receiver Operating Characteristic (ROC) cutoff values used during model assessment.
          type: number
          enum:
            - 10
            - 20
            - 50
            - 100
            - 500
            - 1000
          default: 20
        samplingEnabled:
          description: >
            Enable event-based sampling for binary target. When AUTO, event-based sampling is enabled when the target event rate is < 5% or the gradient boosting model misclassification rate is greater than the target event rate.
          type: string
          enum:
            - YES
            - NO
            - AUTO
          default: AUTO
        samplingPercentage:
          description: >
            Percentage of minority events in the final sample when samplingEnabled is true. Valid range is 1 to 99.
          type: number
          format: double
          default: 50
      required:
        - targetVariable
    mlPipelineAutomationProjectCollection:
      title: Machine Learning Pipeline Automation Project Collection
      description: This object contains a list of automation project objects.
      allOf:
        - $ref: "#/components/schemas/baseCollection2"
        - type: object
          properties:
            items:
              type: array
              description: The list of automation project objects.
              items:
                $ref: "#/components/schemas/mlPipelineAutomationProject"
          required:
            - links
            - accept
            - count
            - items
    mlPipelineAutomationProject:
      title: Machine Learning Pipeline Automation Project
      description: This object contains metadata and information about an automation project.
      type: object
      properties:
        analyticsProjectAttributes:
          $ref: "#/components/schemas/analyticsProjectAttributes"
        dataTableUri:
          type: string
          description: Data table URI
        description:
          type: string
          description: Description of the automation project
        id:
          type: string
          description: ID of the automation project
          readOnly: true
        name:
          type: string
          description: Name of the automation project
        revision:
          type: integer
          format: int64
          description: Revision of the automation project instance
        settings:
          $ref: "#/components/schemas/settings"
        state:
          $ref: "#/components/schemas/automationProjectState"
        type:
          type: string
          description: Automation project type
          enum:
            - predictive
        pipelineBuildMethod:
          type: string
          description: The method used to generate the project pipeline
          enum:
            - automatic
            - template
        version:
          type: integer
          format: int32
          description: Version of the resource
        championModel:
          $ref: "#/components/schemas/championModel"
        customProperties:
          type: object
          description: Custom properties expressed as a map of strings that are associated with the automation project. These properties are added to the ProviderSpecificProperties map of the generated analytics project (prefixed with 'customMLPA_').
        links:
          type: array
          description: The links that apply to this automation project
          items:
            $ref: "#/components/schemas/link"
      required:
        - name
        - type
        - dataTableUri
        - analyticsProjectAttributes
    reportCollection:
      title: Report Collection
      type: object
      description: The collection of application/vnd.sas.analytics.report+json representations.
      allOf:
        - $ref: "#/components/schemas/baseCollection2"
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: "#/components/schemas/report"
              description: The list of reports
    championModel:
      title: Champion Model
      description: This object contains a summary of champion model.
      type: object
      properties:
        name:
          type: string
          description: The champion model name.
        links:
          type: array
          description: The links that apply to this champion model.
          items:
            $ref: "#/components/schemas/link"
        publishDestinations:
          type: array
          description: The list of available destinations to publish this champion model.
          items:
            $ref: "#/components/schemas/publishDestination"
    championModelActionResponse:
      title: Champion Model Action Response
      description: This object contains the response to a champion model action.
      type: object
      properties:
        message:
          type: string
          description: Information about the action that was performed on the champion model.
        links:
          type: array
          description: The links related to the action performed on the champion model.
          items:
            $ref: "#/components/schemas/link"
    publishDestination:
      title: Publish Destination
      description: This object contains publish destination information.
      type: object
      properties:
        name:
          type: string
          description: The destination name.
        description:
          type: string
          description: The description of the destination.
        destinationType:
          type: string
          description: The type of the destination.
          enum:
            - cas
            - microAnalyticService
            - teradata
            - hadoop
            - other
        destinationTable:
          type: string
          description: The destination table.
        casServerName:
          type: string
          description: The CAS server name.
        casLibrary:
          type: string
          description: The CAS library.
      required:
        - name
        - destinationType
    scoreDataInput:
      title: Score Data Input
      description: This object contains score data input.
      type: object
      properties:
        scoreType:
          type: string
          description: Score type, either 'Individual' or 'Bulk'.
          enum:
            - Individual
            - Bulk
        destinationName:
          type: string
          description: Name of the destination where the champion model is published. Required for individual scoring.
        inputs:
          type: array
          description: Data inputs for individual data scoring. Required for individual scoring.
          items:
            $ref: "#/components/schemas/scoreDataFieldValue"
        inputDataTableUri:
          type: string
          description: Input data table URI for bulk data scoring. Required for bulk scoring.
        scoreOutputCaslibUri:
          type: string
          description: Output caslib URI where the score output table is stored. Required for bulk scoring.
        scoreOutputTableName:
          type: string
          description: Output table name where the score outputs are stored. Required for bulk scoring.
      required:
        - scoreType
    scoreDataOutput:
      title: Score Data Output
      description: This object contains score data output.
      type: object
      properties:
        executionState:
          type: string
          description: Execution state, one of 'completed', 'submitted', or 'timedOut'.
          enum:
            - completed
            - submitted
            - timedOut
        outputs:
          type: array
          description: Data outputs for individual data scoring.  Populated for individual score request.
          items:
            $ref: "#/components/schemas/scoreDataFieldValue"
        scoreExecution:
          $ref: "#/components/schemas/scoreExecution"
      required:
        - executionState
    scoreDataFieldValue:
      title: Score Data Field Name/Value Pair
      description: This object contains a data field name value pair for score data inputs and outputs.
      type: object
      properties:
        name:
          type: string
          description: Data field name.
        value:
          type: string
          description: Data field value.
      required:
        - name
        - value
    settings:
      title: Automation Project Settings
      description: >
        A collection of optional settings to configure an automation project after Model Studio project is created based on analyticsProjectAttributes.
      type: object
      properties:
        applyGlobalMetadata:
          type: boolean
          default: true
          description: Whether to apply global metadata
        autoRun:
          type: boolean
          default: true
          description: Determines whether the automatically generated pipeline is run and a champion model is calculated.
        locale:
          type: string
          readOnly: true
          default: en
          description: The locale to use for translating content
        maxModelingTime:
          type: number
          format: double
          default: 0
          description: The maximum time (in minutes) to use for modeling. Input is valid in increments of 0.1. Use 0 for unbounded.
        modelingMode:
          type: string
          enum:
            - Enhanced
            - Standard
          default: Standard
          description: The modeling strategy that the automation project uses to select a champion model.
        numberOfModels:
          type: integer
          minimum: 1
          maximum: 10
          default: 5
          description: The number of models to build and compare in the automation project.
        consider:
          type: array
          description: Supervised Learning Algorithms to consider during pipeline generation. When `consider` is used, `algorithms` cannot be set. Algorithms specified in `consider` cannot be specified in 'exclude' or `forceInclude`.
          items:
            $ref: "#/components/schemas/algorithmId"
        exclude:
          type: array
          description: >
            Supervised Learning Algorithms to `exclude` during pipeline generation. When `exclude` is used, algorithms cannot be set. Algorithms specified in `exclude` cannot be specified in `consider` or `forceInclude`.
          items:
            $ref: "#/components/schemas/algorithmId"
        forceInclude:
          type: array
          description: >
            Supervised Learning Algorithms to force include during pipeline generation. When `forceInclude` is used, `algorithms` cannot be set. Algorithms specified in `forceInclude` cannot be specified in `consider` or `exclude`.
          items:
            $ref: "#/components/schemas/algorithmId"
        algorithms:
          type: array
          description: List of Supervised Learning Algorithms to inform pipeline generation. When 'algorithms' is used, neither 'consider', 'exclude', nor 'forceInclude' can be set.
          items:
            $ref: "#/components/schemas/algorithm"
        subsampleCount:
          type: integer
          minimum: 0
          description: >
            The number of training observations to sample for pipeline generation. When `subsampleCount` is used, `subsamplePercent` cannot be set. Valid values are integers >= 0. If provided, the percentage will be calculated based on the count. Specify only one of `subsamplePercent` or `subsampleCount`.
        subsamplePercent:
          type: integer
          minimum: 0
          maximum: 100
          description: >
            The percent of training observations to sample for pipeline generation. When `subsamplePercent` is used, `subsampleCount` cannot be set. Specify only one of `subsamplePercent` or `subsampleCount`. Valid values are integers between 0 and 100. If provided, subsampling will be performed.
        subsampleSeed:
          type: integer
          minimum: 0
          description: >
            The seed to use when subsampling training data during pipeline generation. When `subsampleSeed` is used, either `subsampleCount` or `subsamplePercent` must be set. Valid values are integers >= 0. When set to 0, the system clock is used for the seed.
    mlPipelineTemplateCollection:
      title: Machine Learning Pipeline Template Collection
      description: This object contains a list of machine learning pipeline templates.
      allOf:
        - $ref: "#/components/schemas/baseCollection2"
        - type: object
          properties:
            items:
              type: array
              description: The list of machine learning pipeline template objects.
              items:
                $ref: "#/components/schemas/mlPipelineTemplate"
          required:
            - links
            - count
            - items
    mlPipelineTemplate:
      title: Machine Learning Pipeline Template
      description: This object contains information for a pipeline template that can be used in project creation.
      type: object
      properties:
        id:
          type: string
          description: The ID of the template.
        name:
          type: string
          description: The template name.
        description:
          type: string
          description: The description of the template.
        links:
          type: array
          description: The links that apply to this pipeline template.
          items:
            $ref: "#/components/schemas/link"
      required:
        - id
        - name
        - links
    api:
      title: API
      description: The list of links to top-level resources and operations available from the root of the API.
      x-sas-media-type:
        name: application/vnd.sas.api
        version: 1
      required:
        - version
        - links
      properties:
        version:
          type: integer
          description: The version number of the API representation. This is version 1.
          minimum: 1
        links:
          description: The API's top-level links.
          type: array
          items:
            $ref: "#/components/schemas/link"
    link:
      title: Link
      type: object
      description: A link to a related operation or resource.
      required:
        - rel
      properties:
        method:
          type: string
          description: The HTTP method for the link.
        rel:
          type: string
          description: The relationship of the link to the resource.
        uri:
          type: string
          description: The relative URI for the link.
        href:
          type: string
          description: The URL for the link.
        title:
          type: string
          description: The title for the link.
        type:
          type: string
          description: The media type or link type for the link.
        itemType:
          type: string
          description: If this is a link to a container, `itemType` is the media type or link type for the items in the container.
        responseType:
          type: string
          description: The media type or link type of the response body for a `PUT`, `POST`, or `PATCH` operation.
        responseItemType:
          type: string
          description: The media type or link type of the items in the response body for a `PUT`, `POST`, or `PATCH` operation.
    error2:
      title: Error
      type: object
      description: The representation of an error.
      x-sas-media-type:
        name: application/vnd.sas.error
        version: 2
      required:
        - httpStatusCode
        - version
      properties:
        message:
          type: string
          description: The message for the error.
        id:
          type: string
          description: The string ID for the error.
        errorCode:
          type: integer
          description: The numeric ID for the error.
        httpStatusCode:
          type: integer
          description: The HTTP status code for the error.
        details:
          type: array
          description: Messages that provide additional details about the cause of the error.
          items:
            type: string
        remediation:
          type: string
          description: A message that describes how to resolve the error.
        errors:
          type: array
          description: Any additional errors that occurred.
          items:
            $ref: "#/components/schemas/error2"
        links:
          type: array
          description: The links that apply to the error.
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          description: The version number of the error representation. This representation is version 2.
    report:
      title: Analytics Report
      description: An analytics report consisting of rows of data and associated metadata (parameters).
      x-sas-media-type:
        name: application/vnd.sas.analytics.report
      required:
        - data
        - parameterMap
        - type
      properties:
        id:
          type: string
          description: The unique identifier of this analytics report.
        data:
          type: array
          description: The rows of data.
          items:
            $ref: "#/components/schemas/dataRow"
        links:
          type: array
          items:
            $ref: "#/components/schemas/link"
        parameterMap:
          type: object
          description: The collection of parameters, categorized by parameter name.
          additionalProperties:
            $ref: "#/components/schemas/parameter"
        order:
          type: integer
          format: int32
          description: The index in a collection of analytics reports. Useful when analytics reports are stored in an unordered collection but order is desired.
        type:
          type: string
          description: The type of analytics report. Informs clients how this analytics report should be rendered.
          enum:
            - undefined
            - table
            - barChart
            - refreshableBarChart
            - seriesPlot
            - pieChart
            - histogram
            - decisionTree
            - networkDiagram
            - html
            - textViewer
            - matrix
            - bandPlot
            - codeEditor
            - iciclePlot
            - scatterPlot
            - comboBox
        xInteger:
          type: boolean
          description: Whether or not to suppress intermediate tick marks on the X-axis.
        yInteger:
          type: boolean
          description: Whether or not to suppress intermediate tick marks on the Y-axis.
        version:
          type: integer
          format: int32
          description: This media type's schema version number. This representation is version 1.
        description:
          type: string
          description: A description of this analytics report.
        revision:
          type: integer
          description: A revision number that is incremented on every update to the analytics report.
          format: int64
    baseCollection2:
      title: Base Collection
      description: This is a base schema used to define paginated collections of resources. This base schema is extended by other schemas in APIs by adding an 'items' array property. These extensions define the application/vnd.sas.collection media type (version 2)
      properties:
        name:
          type: string
          description: The name of the collection.
        start:
          type: integer
          description: The zero-based index of the first item in the collection.
          format: int64
        limit:
          type: integer
          description: The number of items that were requested for the collection.
        count:
          type: integer
          description: If populated indicates the number of items in the collection.
          format: int64
        accept:
          type: string
          description: A space-delimited list of media types from which an `Accept` header may be constructed.
        links:
          type: array
          description: The links that apply to the collection.
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          description: The version number of the collection representation. This representation is version 2.
    scoreExecution:
      title: Score Execution
      description: Contains details about execution results. This represents application/vnd.sas.score.execution media type (version 1).
      required:
        - scoreExecutionRequest
        - state
      properties:
        id:
          type: string
          description: The system-assigned unique ID for this object
        createdBy:
          type: string
          description: The user who created the score execution.
        creationTimeStamp:
          type: string
          format: date-time
          description: The date and time that the score execution was created.
        modifiedBy:
          type: string
          description: The userId of the authenticated user who last updated the score execution.
        modifiedTimeStamp:
          type: string
          format: date-time
          description: The date and time that the score execution was last modified.
        scoreExecutionRequest:
          $ref: "#/components/schemas/scoreExecutionRequest"
        state:
          type: string
          format: enumeration
          enum:
            - pending
            - running
            - canceled
            - completed
            - failed
            - timedOut
          description: State of the score execution.
        outputTable:
          $ref: "#/components/schemas/outputTable"
        codeFileUri:
          type: string
          description: File uri where the code used to generate score is saved.
        logFileUri:
          type: string
          description: File uri where the log of the score execution is saved.
        haveWarnings:
          type: boolean
          description: Set to true when there are warnings inside the log file.
        error:
          $ref: "#/components/schemas/error2"
        results:
          type: object
          description: Contains results for the score execution.
          additionalProperties:
            type: string
        links:
          type: array
          description: Zero or more links to related resources or operations.
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          description: This media type's schema version number. This representation is version 1.
    scoreExecutionRequest:
      title: Score Execution Request
      description: Contains request details about how to generate score. This represents application/vnd.sas.score.execution.request media type (version 1).
      required:
        - name
        - scoreDefinitionId
        - mappedCodeUri
        - outputTable
      properties:
        type:
          type: string
          format: enumeration
          enum:
            - scoreDefinition
            - mappedCode
          default: scoreDefinition
          description: Score execution request can be either scoreDefinition or mappedCode. Default value is scoreDefinition.
        name:
          type: string
          description: The descriptive name for the request. Which will be shown when showing executions.
        description:
          type: string
          description: The description of the request.
        hints:
          type: object
          description: Hints used to execute an object for score.
          additionalProperties:
            type: string
        jobDefinition:
          $ref: "#/components/schemas/jobDefinition"
        jobDefinitionId:
          type: string
          description: Job definition id which is used to score. Either this or the jobDefinition should be used.
        scoreDefinition:
          $ref: "#/components/schemas/scoreDefinition"
        scoreDefinitionId:
          type: string
          description: Score definition id which is used to score an object. Valid only when type is scoreDefinition. Either this or the scoreDefinition should be part of the request. Should not use both of them. Only valid when the type is scoreDefinition.
        overrideScoreDefinition:
          $ref: "#/components/schemas/overrideScoreDefinition"
        mappedCode:
          type: string
          description: Inline mapped code. Valid only when type is mappedCode. Either this or mappedCodeUri should be used.
        mappedCodeUri:
          type: string
          description: Uri containing mapped code. Valid only when type is mappedCode. Either this or mappedCode should be used.
        outputTable:
          $ref: "#/components/schemas/outputTable"
        version:
          type: integer
          readOnly: true
          description: This media type's schema version number. This representation is version 1.
    dataRow:
      title: Data Row
      description: A row of data.
      required:
        - dataMap
        - rowNumber
      properties:
        dataMap:
          type: object
          description: Map of parameter name to associated value.
        header:
          type: string
          description: Optional title. May be localized.
        rowNumber:
          type: integer
          format: int32
          description: The index of this row in the collection.
    parameter:
      title: Parameter
      description: Metadata describing a particular variable.
      required:
        - parameter
        - type
        - values
      properties:
        label:
          type: string
          description: The display name. May be localized.
        length:
          type: integer
          format: int32
          description: The maximum width among this parameter's values.
        order:
          type: integer
          format: int32
          description: The index of this parameter in the collection.
        parameter:
          type: string
          description: The parameter name. Should not be localized.
        preformatted:
          type: boolean
          description: Indicates whether this parameter's values have already been formatted.
        type:
          type: string
          description: The data type of this parameter's values.
          enum:
            - undefined
            - num
            - char
            - report
        values:
          type: array
          description: Keys used to associate this parameter with values in the rows of data.
          items:
            type: string
    outputTable:
      title: Output Table
      description: Output generated by score execution or analysis. This doesn't represent any top-level media type.
      required:
        - tableName
        - serverName
        - libraryName
      properties:
        tableName:
          type: string
          description: Table name where the score execution or analysis output is saved.
        libraryName:
          type: string
          description: Library where the table is located.
        serverName:
          type: string
          description: Server where the table is located.
    scoreDefinition:
      title: Score Definition
      description: A definition containing details about Input Data, Score Object and Mapping. This represents application/vnd.sas.score.definition media type (version 1).
      required:
        - name
        - objectDescriptor
        - inputData
      properties:
        id:
          type: string
          readOnly: true
          description: The system-assigned unique ID for this object
        name:
          type: string
          description: The score definition name
        description:
          type: string
          description: The score definition description
        createdBy:
          type: string
          readOnly: true
          description: The user who created the score definition.
        creationTimeStamp:
          type: string
          format: date-time
          readOnly: true
          description: The date and time that the score definition was created.
        modifiedBy:
          type: string
          readOnly: true
          description: The userId of the authenticated user who last updated the score definition.
        modifiedTimeStamp:
          type: string
          format: date-time
          readOnly: true
          description: The date and time that the score definition was last modified.
        preprocessingCode:
          type: string
          description: Preprocessing code that is executed before executing the Mapped Code.
        objectDescriptor:
          $ref: "#/components/schemas/objectDescriptor"
        inputData:
          $ref: "#/components/schemas/inputData"
        mappings:
          type: array
          description: Array of mappings between Score Object variables and Input Data columns.
          items:
            $ref: "#/components/schemas/termMapping"
        properties:
          type: object
          description: 'The properties for this score definition that support scoring for decisions and business rules. <ul> <li>outputServerName: The name of a Cloud Analytic Server. <li>outputLibraryName: The name of a Cloud Analytic Server library. <li>tableBaseName: The name of a table in the output library. <li>test: A flag that indicates whether the score definition is used for test scoring. Valid values are "true" and "false". </ul> These additional properties support publish validation for decisions and business rules. <ul> <li>asssetUri: The URI of the decision or business rule that is being validated. <li>publishDestination: The name of a publish destination. <li>publishType: The type of publish destination. <li>publishName: The name for publishing the asset. </ul> '
          additionalProperties:
            type: string
        folderType:
          type: string
          readOnly: true
          description: Indicates the kind of folder where the score definition is housed.
        links:
          type: array
          readOnly: true
          description: Zero or more links to related resources or operations.
          items:
            $ref: "#/components/schemas/link"
        version:
          type: integer
          readOnly: true
          description: This media type's schema version number. This representation is version 2.
    jobDefinition:
      title: Job Definition
      description: The job definition.
      type: object
      x-sas-media-type:
        name: application/vnd.sas.job.definition
        version: 2
      required:
        - code
      properties:
        version:
          type: integer
          description: The version of the resource. This version is 2.
        id:
          type: string
          description: The unique ID of the resource that is generated by the API.
        name:
          type: string
          description: The name of the job. The maximum length is 100.
        description:
          type: string
          description: A description of the job. The maximum length is 1000.
          x-sas-attributes:
            since: "2"
        type:
          type: string
          description: The type of job. This property determines the execution provider that executes this job. The maximum length is 250.
        code:
          type: string
          description: Execution provider specific code to be executed.
        parameters:
          type: array
          description: An array of input parameters to be collected when executing this job definition.
          items:
            $ref: "#/components/schemas/jobDefinitionParameter"
        properties:
          type: array
          description: An array of name/value pairs needed to execute a job definition. The maximum length of a name is 100.
          items:
            $ref: "#/components/schemas/property"
        createdBy:
          type: string
          description: The user that created this job.
        modifiedBy:
          type: string
          description: The user that modified this job.
        creationTimeStamp:
          type: string
          description: "The formatted timestamp when the job was created, in the following format: yyyy-mm-ddThh:mm:ssZ."
        modifiedTimeStamp:
          type: string
          description: "The formatted timestamp when the job was modified, in the following format: yyyy-mm-ddThh:mm:ssZ."
        links:
          type: array
          description: An array of link objects
          items:
            $ref: "#/components/schemas/link"
    overrideScoreDefinition:
      title: Override Score Definition
      description: Overrides the details of the existing Score definition.  This doesn't represent any top-level media type.
      properties:
        preprocessingCode:
          type: string
          description: Code which should be executed before executing actual code.
        objectDescriptor:
          $ref: "#/components/schemas/objectDescriptor"
        inputData:
          $ref: "#/components/schemas/inputData"
        mappings:
          type: array
          description: Array of mappings between score object variables and input data columns.
          items:
            $ref: "#/components/schemas/termMapping"
    property:
      title: Property
      description: A pair consisting of a string name and a string value. This is an element of `application/vnd.sas.properties`
      required:
        - name
        - value
      properties:
        name:
          type: string
          description: The property name.
        value:
          type: string
          description: The property value.
    jobDefinitionParameter:
      title: Job Definition Parameter
      type: object
      description: The job definition parameter.
      required:
        - name
      properties:
        version:
          type: integer
          description: The version of the resource. This version is 1.
        name:
          type: string
          description: The name of the parameter. The maximum length is 100.
        type:
          type: string
          description: The type of the parameter (TABLE, NUMERIC, DATE, CHARACTER). The maximum length is 20.
        label:
          type: string
          description: The display value for the name of this parameter. The maximum length is 250.
        required:
          type: boolean
          description: Specifies if the parameter is required for execution.
        defaultValue:
          type: string
          description: The default value for this parameter, if one is not specified at execution time.
    objectDescriptor:
      title: Object Descriptor
      description: Descriptor of a Score Object whose logic is used to produce a score for Input Data. This doesn't represent any top-level media type.
      required:
        - uri
      properties:
        name:
          type: string
          description: Name of the Score Object.
        type:
          type: string
          description: Type of the Score Object.
        uri:
          type: string
          format: uri
          description: Uri to the Score Object.
    termMapping:
      title: Mapping
      description: Assigning Input Data column to a variable of the generated Mapped Code of Score Object. This doesn't represent any top-level media type.
      required:
        - variableName
        - mappingType
      properties:
        variableName:
          type: string
          description: Name of the Score Object's variable.
        mappingType:
          description: The mapping type.
          type: string
          format: enumeration
          enum:
            - datasource
            - static
            - expected
        mappingValue:
          anyOf:
            - type: integer
            - type: number
            - type: array
            - type: boolean
            - type: object
            - type: string
          description: Value that is assigned to Score Object's variable. If the mappingType is dataSource then this should be column name of the Input Data. If the mappingType is static then this should be a constant value. If the mappingType is expected then this is the expected value of the output and it is always constant. Required if the mappingType is datasource.
    inputData:
      title: Input Data
      description: Input Data that will be scored.  This doesn't represent any top-level media type.
      required:
        - type
        - serverName
        - libraryName
        - tableName
      properties:
        type:
          type: string
          format: enumeration
          description: The type of input data.
          enum:
            - CASTable
            - Inline
            - Scenario
        serverName:
          type: string
          description: CAS Server name where CAS table is located. Valid only if the type is CASTable.
        libraryName:
          type: string
          description: CAS Library name where CAS table is located. Valid only if the type is CASTable.
        tableName:
          type: string
          description: Name of the CAS table. Valid only if the type is CASTable.
        code:
          type: string
          description: Code containing inline data. Valid only if the type is Inline.
        outputTableName:
          type: string
          description: Name of the output table that will be generated when the inline code is executed. Valid only if the type is Inline.
  examples:
    MLPipelineProjectRequestBody:
      description: Minimum fields required in for a project request body
      value:
        dataTableUri: /dataTables/dataSources/cas~fs~cas-shared-default~fs~Public/tables/DATA
        type: predictive
        name: Project Name
        description: Description for the project
        analyticsProjectAttributes:
          targetVariable: BAD
        settings:
          applyGlobalMetadata: true
          autoRun: true
          maxModelingTime: 10
          modelingMode: Standard
          numberOfModels: 5
    scoreSingleRequestBody:
      description: Request body for scoring individual data
      value:
        scoreType: Individual
        destinationName: maslocal
        inputs:
          - name: CLAGE
            value: "300"
          - name: DEBTINC
            value: "24.5"
    scoreBulkRequestBody:
      description: Request body for scoring bulk data
      value:
        scoreType: Bulk
        inputDataTableUri: /dataTables/dataSources/cas~fs~cas-shared-default~fs~Public/tables/DATA
        scoreOutputCaslibUri: /dataSources/providers/cas/sources/cas-shared-default~fs~Public
        scoreOutputTableName: ScoreOutputs
    getMLPipelineAutomationRootResponse:
      description: List of endpoints for Machine Learning Pipeline Automation service
      value:
        version: 3
        links:
          - method: GET
            rel: collection
            href: /mlPipelineAutomation/projects
            uri: /mlPipelineAutomation/projects
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: POST
            rel: createProject
            href: /mlPipelineAutomation/projects
            uri: /mlPipelineAutomation/projects
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: GET
            rel: pipelineTemplates
            href: /mlPipelineAutomation/pipelineTemplates
            uri: /mlPipelineAutomation/pipelineTemplates
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.machine.learning.pipeline.template
          - method: GET
            rel: algorithms
            href: /mlPipelineAutomation/algorithms
            uri: /mlPipelineAutomation/algorithms
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.machine.learning.algorithm
    getAlgorithms:
      description: List of available algorithms in pipeline automation
      value:
        version: 3
        accept: application/vnd.sas.collection+json
        count: 8
        start: 0
        limit: 0
        name: collection
        links:
          - method: GET
            rel: up
            href: /mlPipelineAutomation
            uri: /mlPipelineAutomation
            type: application/vnd.sas.api+json
          - method: GET
            rel: self
            href: /mlPipelineAutomation/algorithms
            uri: /mlPipelineAutomation/algorithms
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.machine.learning.algorithm
        items:
          - id: DecisionTree
            name: Decision Tree
            defaultBehavior: consider
          - id: Forest
            name: Forest
            defaultBehavior: consider
          - id: GAM
            name: GAM
            description: GAM is only supported for projects with binary or interval target types.
            defaultBehavior: consider
          - id: GradientBoosting
            name: Gradient Boosting
            defaultBehavior: consider
          - id: NeuralNetwork
            name: Neural Network
            defaultBehavior: consider
          - id: Regression
            name: Regression
            description: Linear regression is used for projects with an interval target type, otherwise logistic regression is used.
            defaultBehavior: forceInclude
          - id: SVM
            name: SVM
            description: SVM is only supported for projects with a binary target type.
            defaultBehavior: exclude
          - id: Ensemble
            name: Ensemble
            description: Ensemble is only supported when at least one other algorithm is set to "consider" or "forceInclude".
            defaultBehavior: consider
    getProjects:
      description: List of existing machine learning pipeline automation projects
      value:
        accept: application/vnd.sas.collection+json
        count: 1
        items:
          - analyticsProjectAttributes:
              analyticsProjectId: 2876465b-3cff-4b58-8176-5cd7cbb793dc
              pipelineId: af8bd1f9-99b1-477d-b01f-77617d489b8a
              targetVariable: BAD
              targetEventLevel: "1"
              partitionEnabled: true
              overrideClassificationCutoffEnabled: false
              samplingEnabled: AUTO
              samplingPercentage: 50
              intervalSelectionStatistic: ase
              classSelectionStatistic: ks
              selectionDepth: 10
              selectionPartition: default
              overrideClassificationCutoffValue: 0.5
              cutoffPercentage: 50
              numberOfCutoffValues: 100
            championModel:
              name: Forest (3)
              links:
                - method: GET
                  rel: up
                  href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
                  uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
                  type: application/vnd.sas.analytics.ml.pipeline.automation.project
                - method: GET
                  rel: self
                  href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel
                  uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel
                  type: application/vnd.sas.analytics.ml.pipeline.automation.project.champion.model
                - method: GET
                  rel: championModelReports
                  href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel/reports
                  uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel/reports
                  type: application/vnd.sas.collection
                  itemType: application/vnd.sas.analytics.report
                - method: GET
                  rel: championModelReportSummary
                  href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel/reportSummary
                  uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel/reportSummary
                  type: application/vnd.sas.collection
                  itemType: application/vnd.sas.summary
                - method: PUT
                  rel: registerChampionModel
                  href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel?action=register
                  uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel?action=register
                - method: PUT
                  rel: publishChampionModel
                  href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel?action=publish
                  uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel?action=publish
                - method: POST
                  rel: scoreData
                  href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel/scoreData
                  uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/models/@championModel/scoreData
                  type: application/vnd.sas.analytics.ml.pipeline.automation.score.data.input
                  responseType: application/vnd.sas.analytics.ml.pipeline.automation.score.data.output
              publishDestinations:
                - name: maslocal
                  description: The default publishing destination for the Micro Analytic Score service.
                  destinationType: microAnalyticService
            createdBy: username
            creationTimeStamp: 2022-03-01T01:29:46.014052Z
            dataTableUri: /dataTables/dataSources/cas~fs~cas-shared-default~fs~Public/tables/DATA
            id: 4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
            links:
              - method: GET
                rel: up
                href: /mlPipelineAutomation/projects
                uri: /mlPipelineAutomation/projects
                type: application/vnd.sas.collection
                itemType: application/vnd.sas.analytics.ml.pipeline.automation.project
              - method: GET
                rel: self
                href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
                uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
                type: application/vnd.sas.analytics.ml.pipeline.automation.project
              - method: PUT
                rel: update
                href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
                uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
                type: application/vnd.sas.analytics.ml.pipeline.automation.project
              - method: DELETE
                rel: delete
                href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
                uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
              - method: DELETE
                rel: propagateDelete
                href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef?propagate=true
                uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef?propagate=true
              - method: GET
                rel: state
                href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/state
                uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/state
                type: text/plain
              - method: PUT
                rel: updateState
                href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/state?value={value}
                uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/state?value={value}
                responseType: text/plain
              - method: GET
                rel: projectReports
                href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/reports
                uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/reports
                type: application/vnd.sas.collection
              - method: PUT
                rel: retrainProject
                href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef?action=retrainProject
                uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef?action=retrainProject
                type: application/vnd.sas.analytics.ml.pipeline.automation.project
                responseType: application/vnd.sas.analytics.ml.pipeline.automation.project
              - method: PUT
                rel: retrainProjectReplacePipelines
                href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef?action=retrainProject&replacePreviousPipelines=true
                uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef?action=retrainProject&replacePreviousPipelines=true
                type: application/vnd.sas.analytics.ml.pipeline.automation.project
                responseType: application/vnd.sas.analytics.ml.pipeline.automation.project
            modifiedBy: username
            modifiedTimeStamp: 2022-03-01T01:36:15.87636Z
            name: automation project name
            pipelineBuildMethod: automatic
            revision: 11
            settings:
              applyGlobalMetadata: true
              autoRun: true
              locale: en
              maxModelingTime: 1
              modelingMode: Standard
              numberOfModels: 7
            state: completed
            type: predictive
            version: 3
        limit: 10
        links:
          - method: GET
            rel: collection
            href: /mlPipelineAutomation/projects
            uri: /mlPipelineAutomation/projects
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.ml.pipeline.automation.project+json
          - method: GET
            rel: self
            href: /mlPipelineAutomation/projects?start=0&limit=10
            uri: /mlPipelineAutomation/projects?start=0&limit=10
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.ml.pipeline.automation.project+json
          - method: POST
            rel: create
            href: /mlPipelineAutomation/projects
            uri: /mlPipelineAutomation/projects
            type: application/vnd.sas.analytics.ml.pipeline.automation.project+json
            responseType: application/vnd.sas.analytics.ml.pipeline.automation.project+json
        name: collection
        start: 0
        version: 3
    getProject:
      description: An existing machine learning pipeline automation project
      value:
        creationTimeStamp: 2022-03-01T19:55:42.658381Z
        createdBy: username
        modifiedTimeStamp: 2022-03-02T07:38:25.48095Z
        modifiedBy: username
        revision: 1
        id: 07d7b51f-6970-4225-8f03-eda03fcc810c
        name: Project Name
        links:
          - method: GET
            rel: up
            href: /mlPipelineAutomation/projects
            uri: /mlPipelineAutomation/projects
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: GET
            rel: self
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: PUT
            rel: update
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: DELETE
            rel: delete
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
          - method: DELETE
            rel: propagateDelete
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c?propagate=true
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c?propagate=true
          - method: GET
            rel: state
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/state
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/state
            type: text/plain
          - method: PUT
            rel: updateState
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/state?value={value}
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/state?value={value}
            responseType: text/plain
          - method: GET
            rel: projectReports
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/reports
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/reports
            type: application/vnd.sas.collection
          - method: PUT
            rel: retrainProject
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c?action=retrainProject
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c?action=retrainProject
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
            responseType: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: PUT
            rel: retrainProjectReplacePipelines
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c?action=retrainProject&replacePreviousPipelines=true
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c?action=retrainProject&replacePreviousPipelines=true
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
            responseType: application/vnd.sas.analytics.ml.pipeline.automation.project
        version: 3
        dataTableUri: /dataTables/dataSources/cas~fs~cas-shared-default~fs~Public/tables/DATA
        type: predictive
        state: completed
        settings:
          locale: en
          replacePreviousPipelines: false
        analyticsProjectAttributes:
          analyticsProjectId: 0594f275-4c39-4bd1-a50b-3d25714becc3
          pipelineId: c1f0a700-f737-4cef-9a00-e140c51f3d8d
          targetVariable: LOAN
          targetEventLevel: "1"
        championModel:
          name: Forest (2)
          links:
            - method: GET
              rel: up
              href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
              uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
              type: application/vnd.sas.analytics.ml.pipeline.automation.project
            - method: GET
              rel: self
              href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel
              uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel
              type: application/vnd.sas.analytics.ml.pipeline.automation.project.champion.model
            - method: GET
              rel: championModelReports
              href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/reports
              uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/reports
              type: application/vnd.sas.collection
              itemType: application/vnd.sas.analytics.report
            - method: GET
              rel: championModelReportSummary
              href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/reportSummary
              uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/reportSummary
              type: application/vnd.sas.collection
              itemType: application/vnd.sas.summary
            - method: PUT
              rel: registerChampionModel
              href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel?action=register
              uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel?action=register
            - method: PUT
              rel: publishChampionModel
              href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel?action=publish
              uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel?action=publish
            - method: POST
              rel: scoreData
              href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/scoreData
              uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/scoreData
              type: application/vnd.sas.analytics.ml.pipeline.automation.score.data.input
              responseType: application/vnd.sas.analytics.ml.pipeline.automation.score.data.output
          publishDestinations:
            - name: maslocal
              description: The default publishing destination for the Micro Analytic Score service.
              destinationType: microAnalyticService
            - name: AACASDestination
              destinationType: cas
              destinationTable: aa_cas_model_table
              casServerName: cas-shared-default
              casLibrary: Public
        pipelineBuildMethod: automatic
    postProject:
      description: Result of creating a new machine learning pipeline automation project
      value:
        creationTimeStamp: 2022-03-01T01:29:46.014052Z
        createdBy: username
        modifiedTimeStamp: 2022-03-01T01:29:46.014039Z
        modifiedBy: username
        revision: 0
        id: 4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
        name: project name
        links:
          - method: GET
            rel: up
            href: /mlPipelineAutomation/projects
            uri: /mlPipelineAutomation/projects
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: GET
            rel: self
            href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
            uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: PUT
            rel: update
            href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
            uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: DELETE
            rel: delete
            href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
            uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef
          - method: DELETE
            rel: propagateDelete
            href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef?propagate=true
            uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef?propagate=true
          - method: GET
            rel: state
            href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/state
            uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/state
            type: text/plain
          - method: PUT
            rel: updateState
            href: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/state?value={value}
            uri: /mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/state?value={value}
            responseType: text/plain
        version: 3
        dataTableUri: /dataTables/dataSources/cas~fs~cas-shared-default~fs~Public/tables/DATA
        type: predictive
        state: pending
        settings:
          applyGlobalMetadata: true
          autoRun: true
          locale: en
          maxModelingTime: 1
          modelingMode: Standard
          numberOfModels: 7
        analyticsProjectAttributes:
          analyticsProjectId: 2876465b-3cff-4b58-8176-5cd7cbb793dc
          targetVariable: BAD
          partitionEnabled: true
          overrideClassificationCutoffEnabled: false
          samplingEnabled: AUTO
          samplingPercentage: 50
          intervalSelectionStatistic: ase
          classSelectionStatistic: ks
          selectionDepth: 10
          selectionPartition: default
          overrideClassificationCutoffValue: 0.5
          cutoffPercentage: 50
          numberOfCutoffValues: 100
        championModel: {}
        pipelineBuildMethod: automatic
    projectReportsResponseBody:
      description: Generated project reports
      value:
        version: 3
        accept: application/vnd.sas.collection+json
        count: 1
        start: 0
        limit: 0
        name: collection
        items:
          - creationTimeStamp: 2022-03-02T07:48:23.533937455Z
            modifiedTimeStamp: 2022-03-02T07:48:23.533937455Z
            revision: 0
            id: projectSummary
            name: projectSummary
            description: Project Summary
            version: 1
            order: 0
            type: html
            parameterMap:
              contents:
                label: Contents
                length: 2147483647
                parameter: contents
                preformatted: false
                type: char
                values:
                  - contents
              download:
                parameter: download
                preformatted: false
                type: char
                values:
                  - Y
              lineNumber:
                label: Line number
                length: 2147483647
                parameter: lineNumber
                preformatted: false
                type: num
                values:
                  - lineNumber
            data:
              - dataMap:
                  contents: >
                    <p class="insightsSummaryText"><p> The champion model for this project is Forest (2) from the "SAS Automatically Generated Pipeline 1" pipeline. The model was chosen based on the Average Squared Error for the Validate partition (25,129,706.36).  The five most important factors are Imputed Transformed VALUE, Imputed Transformed MORTDUE, JOB, Imputed Transformed CLNO, and Imputed Transformed YOJ.</p></p>


                    <table class="insightsSummaryTable">
                      <tr>
                        <td class="insightsSummaryTableKey">Project Target:</td>
                        <td class="insightsSummaryTableValue">LOAN</td>
                        <td class="insightsSummaryTableKey">Project Champion:</td>
                        <td class="insightsSummaryTableValue">Forest (2)</td>
                      </tr>
                      <tr>
                        <td class="insightsSummaryTableKey">Overall Average:</td>
                        <td class="insightsSummaryTableValue">18607.9698</td>
                        <td class="insightsSummaryTableKey">Created By:</td>
                        <td class="insightsSummaryTableValue">emduser1</td>
                      </tr>
                      <tr>
                        <td class="insightsSummaryTableKey">Pipelines:</td>
                        <td class="insightsSummaryTableValue">2</td>
                        <td class="insightsSummaryTableKey">Modified:</td>
                        <td class="insightsSummaryTableValue">Mar 2, 2022 7:38:24 AM</td>
                      </tr>
                    </table>
                  lineNumber: 1
                rowNumber: 0
            xInteger: false
            yInteger: false
        links:
          - method: GET
            rel: up
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: GET
            rel: self
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/reports
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/reports
            type: application/vnd.sas.collection
    retrainProjectResponse:
      description: Response from retraining a project
      value:
        creationTimeStamp: 2022-03-01T19:55:42.658381Z
        createdBy: username
        modifiedTimeStamp: 2022-03-02T07:02:38.617258Z
        modifiedBy: username
        revision: 10
        id: 07d7b51f-6970-4225-8f03-eda03fcc810c
        name: Modified Project Name
        links:
          - method: GET
            rel: up
            href: /mlPipelineAutomation/projects
            uri: /mlPipelineAutomation/projects
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: GET
            rel: self
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: PUT
            rel: update
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: DELETE
            rel: delete
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
          - method: DELETE
            rel: propagateDelete
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c?propagate=true
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c?propagate=true
          - method: GET
            rel: state
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/state
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/state
            type: text/plain
          - method: PUT
            rel: updateState
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/state?value={value}
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/state?value={value}
            responseType: text/plain
        version: 3
        dataTableUri: /dataTables/dataSources/cas~fs~cas-shared-default~fs~Public/tables/DATA
        type: predictive
        state: retraining
        settings:
          locale: en-US
          replacePreviousPipelines: false
        analyticsProjectAttributes:
          analyticsProjectId: 0594f275-4c39-4bd1-a50b-3d25714becc3
          targetVariable: LOAN
          targetEventLevel: "1"
        championModel: {}
        pipelineBuildMethod: automatic
    getChampionModel:
      description: The champion model for a project
      value:
        name: Forest (2)
        links:
          - method: GET
            rel: up
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c
            type: application/vnd.sas.analytics.ml.pipeline.automation.project
          - method: GET
            rel: self
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel
            type: application/vnd.sas.analytics.ml.pipeline.automation.project.champion.model
          - method: GET
            rel: championModelReports
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/reports
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/reports
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.report
          - method: GET
            rel: championModelReportSummary
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/reportSummary
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/reportSummary
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.summary
          - method: PUT
            rel: registerChampionModel
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel?action=register
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel?action=register
          - method: PUT
            rel: publishChampionModel
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel?action=publish
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel?action=publish
          - method: POST
            rel: scoreData
            href: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/scoreData
            uri: /mlPipelineAutomation/projects/07d7b51f-6970-4225-8f03-eda03fcc810c/models/@championModel/scoreData
            type: application/vnd.sas.analytics.ml.pipeline.automation.score.data.input
            responseType: application/vnd.sas.analytics.ml.pipeline.automation.score.data.output
        publishDestinations:
          - name: maslocal
            description: The default publishing destination for the Micro Analytic Score service.
            destinationType: microAnalyticService
          - name: AACASDestination
            destinationType: cas
            destinationTable: aa_cas_model_table
            casServerName: cas-shared-default
            casLibrary: Public
    registerChampionModelResponse:
      description: Response from publishing the champion model
      value:
        message: The champion model "Logistic Regression (Pipeline 1)" was successfully registered.
        links:
          - method: GET
            rel: registeredModel
            href: /modelRepository/models/2212241c-e5dc-48cb-9cea-e73c03bca049
            uri: /modelRepository/models/2212241c-e5dc-48cb-9cea-e73c03bca049
            type: application/vnd.sas.models.model
    publishChampionModelResponse:
      description: Response from publishing the champion model
      value:
        message: The request to publish the champion model "Logistic_Regression_b16a42fa_f974_4441_bafb_6bf175eef759" was successfully submitted. Use the "publishedModel" link to monitor the status of the publishing process.
        links:
          - method: GET
            rel: publishedModel
            href: /modelPublish/models/6b47d3ca-d2f0-45de-b379-a34cba7c17d5
            uri: /modelPublish/models/6b47d3ca-d2f0-45de-b379-a34cba7c17d5
            type: application/vnd.sas.models.publishing.publish
    scoreDataResponseBody:
      description: Response from scoring a champion model
      value:
        version: 3
        executionState: completed
        scoreExecution: []
        outputs: []
    getPipelineTemplates:
      description: List of available pipeline templates.
      value:
        version: 1
        count: 3
        start: 0
        limit: 10
        name: items
        links:
          - method: GET
            rel: collection
            href: /mlPipelineAutomation/pipelineTemplates
            uri: /mlPipelineAutomation/pipelineTemplates
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.machine.learning.pipeline.template+json
          - method: GET
            rel: self
            href: /mlPipelineAutomation/pipelineTemplates?start=0&limit=10
            uri: /mlPipelineAutomation/pipelineTemplates?start=0&limit=10
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.machine.learning.pipeline.template+json
          - method: GET
            rel: next
            href: /mlPipelineAutomation/pipelineTemplates?start=10&limit=10
            uri: /mlPipelineAutomation/pipelineTemplates?start=10&limit=10
            type: application/vnd.sas.collection
            itemType: application/vnd.sas.analytics.machine.learning.pipeline.template+json
        items:
          - id: dm.advancedbinarytargetautotunepl.template
            name: Advanced template for class target with autotuning
            description: Data mining pipeline for a class target that contains autotuned tree, forest, neural network, and gradient boosting models.
            links:
              - method: GET
                rel: up
                href: /mlPipelineAutomation/pipelineTemplates
                uri: /mlPipelineAutomation/pipelineTemplates
                type: application/vnd.sas.collection
              - method: GET
                rel: self
                href: /mlPipelineAutomation/pipelineTemplates/dm.advancedbinarytargetautotunepl.template
                uri: /mlPipelineAutomation/pipelineTemplates/dm.advancedbinarytargetautotunepl.template
                type: application/vnd.sas.analytics.machine.learning.pipeline.template
            creationTimeStamp: 2022-03-01T16:50:55.783Z
            createdBy: sas.dataMining
            modifiedTimeStamp: 2022-03-01T16:50:55.786Z
            modifiedBy: sas.dataMining
            revision: 0
          - id: dm.advancedbinarytargetpl.template
            name: Advanced template for class target
            description: Data mining pipeline that extends the intermediate template for a class target by adding neural network, forest, and gradient boosting models. An ensemble model is also provided.
            links:
              - method: GET
                rel: up
                href: /mlPipelineAutomation/pipelineTemplates
                uri: /mlPipelineAutomation/pipelineTemplates
                type: application/vnd.sas.collection
              - method: GET
                rel: self
                href: /mlPipelineAutomation/pipelineTemplates/dm.advancedbinarytargetpl.template
                uri: /mlPipelineAutomation/pipelineTemplates/dm.advancedbinarytargetpl.template
                type: application/vnd.sas.analytics.machine.learning.pipeline.template
            creationTimeStamp: 2022-03-01T16:51:00.224Z
            createdBy: sas.dataMining
            modifiedTimeStamp: 2022-03-01T16:51:00.226Z
            modifiedBy: sas.dataMining
            revision: 0
          - id: dm.empty.template
            name: Blank template
            description: Data mining pipeline that contains only a data node.
            links:
              - method: GET
                rel: up
                href: /mlPipelineAutomation/pipelineTemplates
                uri: /mlPipelineAutomation/pipelineTemplates
                type: application/vnd.sas.collection
              - method: GET
                rel: self
                href: /mlPipelineAutomation/pipelineTemplates/dm.empty.template
                uri: /mlPipelineAutomation/pipelineTemplates/dm.empty.template
                type: application/vnd.sas.analytics.machine.learning.pipeline.template
            creationTimeStamp: 2022-03-01T16:51:21.229Z
            createdBy: sas.dataMining
            modifiedTimeStamp: 2022-03-01T16:51:21.23Z
            modifiedBy: sas.dataMining
            revision: 0
    getPipelineTemplate:
      description: A single pipeline template
      value:
        id: dm.advancedintervaltargetautotunepl.template
        name: Advanced template for interval target with autotuning
        description: Data mining pipeline that extends the intermediate template for an interval target by adding GAM and autotuned tree, forest, neural network, and gradient boosting models. An ensemble model is also provided.
        links:
          - method: GET
            rel: up
            href: /mlPipelineAutomation/pipelineTemplates
            uri: /mlPipelineAutomation/pipelineTemplates
            type: application/vnd.sas.collection
          - method: GET
            rel: self
            href: /mlPipelineAutomation/pipelineTemplates/dm.advancedintervaltargetautotunepl.template
            uri: /mlPipelineAutomation/pipelineTemplates/dm.advancedintervaltargetautotunepl.template
            type: application/vnd.sas.analytics.machine.learning.pipeline.template
        creationTimeStamp: 2022-03-01T16:51:05.574Z
        createdBy: sas.dataMining
        modifiedTimeStamp: 2022-03-01T16:51:05.576Z
        modifiedBy: sas.dataMining
        eTag: '"Y29tLnNhcy5hbmFseXRpY3MucGlwZWxpbmUucmVwcmVzZW50YXRpb25zLlBpcGVsaW5lVGVtcGxhdGU=1"'
        revision: 1
    invalidFilterError:
      description: Example of an error response with GET request specified with invalid filter.
      value:
        errorCode: 92513
        errors:
          - httpStatusCode: 500
            errorCode: 92513
            message: The query context is not valid.
            details:
              - "Request params: {Start:0 Limit:10 SortBy: Filter:eq(name,'bad_filter' Bag:map[):]}"
            errors:
              - message: "InvalidInputError: The filter 'eq(name,'bad_filter'' is not valid. Error Code: 1104"
        httpStatusCode: 400
        message: The query context is not valid.
        remediation: Correct the URI parameters and resubmit the request.
        version: 2
    invalidDataTableError:
      description: Example of an error response when creating a project with an bad data table
      value:
        httpStatusCode: 400
        errorCode: 92515
        message: The required arguments of the provided automation project did not pass validation.
        remediation: Correct the request body by providing a valid "dataTableUri" value.
        errors:
          - errorCode: 92442
            message: The table at the provided data table URI /dataTables/dataSources/cas~fs~cas-shared-default~fs~Public/tables/FAKEDATA did not exist.
            remediation: Correct the request body by providing a valid "dataTableUri" value.
    requiredArgumentsError:
      description: Example of an error response when required fields are missing
      value:
        httpStatusCode: 400
        errorCode: 92515
        message: The required arguments of the provided automation project did not pass validation.
        remediation: Correct the request body by providing a valid project name value for the "name" attribute.
        errors:
          - errorCode: 92442
            message: The provided project name "" was missing or invalid.
            remediation: Correct the request body by providing a valid project name value for the "name" attribute.
    projectNotFound:
      description: The specified project could not be found.
      value:
        version: 2
        httpStatusCode: 404
        errorCode: 92422
        message: The specified automation project (ID b9a6b74c-c18e-4ab3-a150-206d33d43546k) was not found.
        details:
          - "path: /mlPipelineAutomation/projects/b9a6b74c-c18e-4ab3-a150-206d33d43546k"
          - "correlator: be982363-b2fc-407b-850b-e2c2d948f24e"
        remediation: Resubmit the request with a valid project ID.
    updateProjectStateError:
      description: Project state must be included with the request and cannot be changed with PUT /projects/{projectId}. Please use the PUT /projects/{projectId}/state to update state.
      value:
        httpStatusCode: 400
        errorCode: 92533
        message: The update request for the automation project (ID b9a6b74c-c18e-4ab3-a150-206d33d43546) is not valid.
        remediation: Use the "updateState" endpoint.
        errors:
          - errorCode: 92442
            message: The operation is not allowed. The state of the automation project must be updated using the link relation named "updateState".
            remediation: Use the "updateState" endpoint.
    retrainNonTerminalStateError:
      description: The project failed to retrain because it is not in a terminal state.
      value:
        httpStatusCode: 400
        errorCode: 92501
        message: The project could not be retrained because it is not in a terminal state. The current state of the project is "modeling".
        remediation: "The project can be retrained when it is in one of the three states: completed, canceled, or failed."
    retrainMissingActionError:
      description: The required "action" query parameter is missing.
      value:
        httpStatusCode: 400
        errorCode: 92533
        message: The update request for the automation project (ID 07d7b51f-6970-4225-8f03-eda03fcc810c) is not valid.
        remediation: Use the "updateState" endpoint.
        errors:
          - errorCode: 92442
            message: The operation is not allowed. The state of the automation project must be updated using the link relation named "updateState".
            remediation: Use the "updateState" endpoint.
    badRequestError:
      description: Bad Request
      value:
        httpStatusCode: 400
        errorCode: 92515
        message: The required arguments of the provided automation project did not pass validation.
        details:
          - "path: /mlPipelineAutomation/some/path"
          - "correlator: 1a1659bc-c4d0-49c1-99df-799b4ee9ef61"
        remediation: Correct the request by providing a valid "some-property" value.
        errors:
          - errorCode: 92442
            message: A more specific error message.
            remediation: A message on how to correct the issue.
    notFoundError:
      description: Not Found
      value:
        version: 2
        httpStatusCode: 404
        errorCode: 92422
        message: The specified resource was not found.
        remediation: Resubmit the request with a valid ID.
    conflictError:
      description: There was a conflict with the current state of the target resource.
      value:
        version: 2
        errorCode: 92434
        httpStatusCode: 409
        remediation: An error has been encountered that indicates a software issue.  Contact SAS Technical Support and provide the message and error code.
    preconditionFailedError:
      description: The If-Match header value does not match the expected ETag value.
      value:
        version: 2
        httpStatusCode: 412
        message: The header field "If-Match" has a value that is different from the entity tag for the resource. (The specified values are "first-ETag-value" and "second-ETag-value", respectively.)
    preconditionRequiredError:
      description: The If-Match header is required and missing or empty.
      value:
        version: 2
        httpStatusCode: 428
        message: The header field "If-Match" is missing or does not have a value.
        remediation: Specify the resource's entity tag.
