NAV Navbar
Home icon
SAS Viya REST APIs
shell javascript python go

Automated Machine Learning

Machine Learning Pipeline Automation

Base URLs:

Terms of service Email: SAS Developers Web: SAS Developers License: SAS Institute Inc.

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

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.

Usage Notes

Overview

The Machine Learning Pipeline Automation API provides a set of endpoints that automates training predictive models. Business users can use these models to make business decisions.

Leveraging statistics and machine learning expertise at SAS, the Machine Learning Pipeline Automation API takes modeling-ready data, and does the following:

Once initiated, this automated process requires no further user input, which removes manual and repetitive tasks from the business user workflow.

The service runs multiple steps of pre-processing, modeling, post-processing (ensembling), and evaluates top models. The result is a dynamic, automated machine learning project that is transparent to the user. The project is accessible from SAS Model Studio, with model assessment and interpretability reports. The accuracy backed by the leading machine learning libraries helps empower businesses to make decisions in an agile environment. No statistics expertise is required.

Terminology

automation project

a parent project of a SAS Visual Data Mining and Machine Learning project. There is a one-to-one relationship between an automation project and a SAS Visual Data Mining and Machine Learning project.

SAS Visual Data Mining and Machine Learning

software that combines data mining and machine learning using an in-memory processing environment. For more information, see SAS Visual Data Mining and Machine Learning.

SAS Visual Data Mining and Machine Learning project

a project that is accessible in Model Studio, also called an analytics project. For more information, see the documentation on SAS.com. Reference these videos to learn more about Model Studio.

Error Codes

HTTP Status Code Error code Description Remediation
400 92406 An error occurred when creating a new exception for an error. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
400 92412 The automation project request did not contain a link to a pipeline template. Resubmit the request with a link to the desired pipeline template.
400 92418 The option to replace previous pipelines during the retrain operation is not valid for projects that are built using a pipeline template. Remove the option to replace the previous pipelines and resubmit the retrain request.
400 92421 The update of the pipeline build method is not permitted. Resubmit the update request without updating the pipeline build method.
400 92430 The operation to update the automation project is not allowed. Check your request and project state.
400 92442 The automation project could not be created because the required analytics project attributes were not provided. You must specify 'analyticsProjectAttributes' section with 'targetVariable' attribute in the request.
400 92444 The user-specified action for the champion model is unsupported. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
400 92448 No provider was found to process the job. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
400 92449 The processing of the job expected one provider, but more than one provider was found. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
400 92450 The job properties did not pass the provider validation. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
400 92482 There was an error scoring data. Make sure that the underlying analytics project is not deleted. Also check the request has valid destination name, score type, and score data input.
400 92483 The score data request did not pass validation. The automation project and the underlying analytics project must be valid. Ensure that the champion model is successfully published.
400 92498 The destination specified for publishing the champion model does not exist. The list of available publish destinations can be found in the champion model information.
400 92499 The specified pipeline template could not be retrieved. Resubmit the request with a valid pipeline template.
400 92501 The project could not be retrained because it is not in a terminal state. The project can be retrained when it is in one of the three states: completed, canceled, or failed.
400 92502 A project name is required. Submit the project request using a valid project name. The project name is required and must contain at least one non-whitespace character.
400 92503 The pipeline build method of "automatic" and the link to a pipeline template are both specified in the automation project request. Either specify pipeline build method of "automatic" without the link to a pipeline template, or specify pipeline build method of "template" with the link to a pipeline template.
400 92504 The event level information could not be retrieved for the analytics project because the service request failed. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
404 92422 No automation project with the provided entity ID can be found. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
404 92445 The champion model was not found. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
409 92434 The attempted transition of the automation project state is not permitted. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
409 92435 The state transition failed because of a null value of the automation project or desired state. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92400 The URI syntax is garbled. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92401 A service returned an unexpected empty response. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92402 There was an error retrieving the CAS server information. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92403 There was an error ending the CAS session. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92404 A resource link could not be found. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92405 An error was encountered while attempting to create a CAS session. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92407 There was an error reading the code template. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92408 An error occurred when retrieving sessions from the CAS server. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92409 An error occurred when finding a session in the CAS server. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92410 An error occurred when creating a client interface to a CAS session. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92411 An error occurred when invoking an action on a CAS client. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92414 A service returned an error status code. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92415 An error occurred when saving an automation project. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92417 An error occurred when submitting a job for execution. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92420 The analytics project could not be found. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92423 The underlying analytics project could not be created for the automation project. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92424 The query returned null. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92430 An error occurred while updating an automation project. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92432 An error occurred while fetching a CAS table. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92433 An error occurred while building a pipeline. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92446 The CAS table could not be updated. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92447 The job could not be updated. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92451 The project caslib could not be retrieved. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92452 The pipeline could not be generated. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92455 The project retrain could not be started. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92456 The project pipelines could not be run. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92457 The project pipelines could not be created. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92458 The project pipelines could not be retrieved. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92459 The pipeline could not be deleted. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92461 The pipeline generation job could not be run. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92462 The job logger could not be retrieved. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92463 The logger could not be added to the job. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92464 The job logger could not be flushed. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92484 The score data request has failed. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92497 The job logger could not be retrieved. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92500 The job for the pipeline could not be canceled. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92505 The target event level for the analytics project could not be specified. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92506 The project value for the analytics project could not be retrieved. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92507 The project value for the analytics project could not be updated. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92510 The variable metadata updated event could not be processed. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92511 The pipeline creation status could not be updated. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.
500 92512 The variable metadata could not be retrieved. An unexpected software error has occurred. Contact your system administrator, and provide the message and error code.

Operations

AutomationProjects

Contains the operations for working with machine learning pipeline automation.

Return all automation projects

Code samples

# You can also use wget
curl -X GET https://example.com/mlPipelineAutomation/projects \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Accept: application/json'


const headers = {
  'Accept':'application/json'
};

fetch('https://example.com/mlPipelineAutomation/projects',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://example.com/mlPipelineAutomation/projects', headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://example.com/mlPipelineAutomation/projects", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects

The endpoint to get all available automation projects.

Parameters
Name In Type Required Description
start query integer(int64) false start
limit query integer(int32) false limit
sortBy query string false sortBy
filter query string false filter

Example responses

List of existing machine learning pipeline automation projects

{
  "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/championModel",
            "uri": "/mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/championModel",
            "type": "application/vnd.sas.collection",
            "itemType": "application/vnd.sas.analytics.report"
          },
          {
            "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": "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": 1
    }
  ],
  "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": 1
}
{
  "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/championModel",
            "uri": "/mlPipelineAutomation/projects/4f3a766b-78b4-4bf2-bbc4-fe5ea38503ef/championModel",
            "type": "application/vnd.sas.collection",
            "itemType": "application/vnd.sas.analytics.report"
          },
          {
            "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": "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": 1
    }
  ],
  "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": 1
}

Bad Request

{
  "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."
    }
  ]
}

Example of an error response with GET request specified with invalid filter.

{
  "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
}

Bad Request

{
  "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."
    }
  ]
}

Example of an error response with GET request specified with invalid filter.

{
  "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
}
Responses
Status Meaning Description Schema
200 OK The request succeeded. mlPipelineAutomationProjectCollection
400 Bad Request The request was invalid. errorResponse
Response Schema

Status Code 400

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.
Response Headers
Status Header Type Format Description
200 Content-Type string No description

Create an automation project

Code samples

# You can also use wget
curl -X POST https://example.com/mlPipelineAutomation/projects \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Content-Type: application/vnd.sas.analytics.ml.pipeline.automation.project+json' \
  -H 'Accept: application/vnd.sas.analytics.ml.pipeline.automation.project+json'

const inputBody = '{
  "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
  }
}';
const headers = {
  'Content-Type':'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'Accept':'application/vnd.sas.analytics.ml.pipeline.automation.project+json'
};

fetch('https://example.com/mlPipelineAutomation/projects',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Content-Type': 'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'Accept': 'application/vnd.sas.analytics.ml.pipeline.automation.project+json'
}

r = requests.post('https://example.com/mlPipelineAutomation/projects', headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/vnd.sas.analytics.ml.pipeline.automation.project+json"},
        "Accept": []string{"application/vnd.sas.analytics.ml.pipeline.automation.project+json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://example.com/mlPipelineAutomation/projects", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /projects

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)

Body parameter

Minimum fields required in for a project request body

{
  "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
  }
}
Parameters
Name In Type Required Description
body body mlPipelineAutomationProject true project

Example responses

Result of creating a new machine learning pipeline automation project

{
  "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": 1,
  "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"
}
{
  "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": 1,
  "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"
}

Bad Request

{
  "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."
    }
  ]
}

Example of an error response when creating a project with an bad data table

{
  "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."
    }
  ]
}

Example of an error response when required fields are missing

{
  "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."
    }
  ]
}

Bad Request

{
  "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."
    }
  ]
}

Example of an error response when creating a project with an bad data table

{
  "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."
    }
  ]
}

Example of an error response when required fields are missing

{
  "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."
    }
  ]
}
Responses
Status Meaning Description Schema
202 Accepted The request is accepted. mlPipelineAutomationProject
400 Bad Request One or more parameters were invalid. Inline
Response Schema

Status Code 400

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.
Response Headers
Status Header Type Format Description
202 ETag string E-Tag for response.

Get headers for an automation project

Code samples

# You can also use wget
curl -X HEAD https://example.com/mlPipelineAutomation/projects/{projectId}
  -H 'Authorization: Bearer <access-token-goes-here>' \


fetch('https://example.com/mlPipelineAutomation/projects/{projectId}',
{
  method: 'HEAD'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests

r = requests.head('https://example.com/mlPipelineAutomation/projects/{projectId}')

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("HEAD", "https://example.com/mlPipelineAutomation/projects/{projectId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

HEAD /projects/{projectId}

The endpoint to get headers for a specific automation project specified by an ID.

Parameters
Name In Type Required Description
projectId path string true projectId
Responses
Status Meaning Description Schema
200 OK The request succeeded. None
400 Bad Request One or more parameters were invalid. None
404 Not Found No project with the provided ID was found. None
Response Headers
Status Header Type Format Description
200 ETag string E-Tag for response.
400 ETag string E-Tag for response.
404 ETag string E-Tag for response.

Get an automation project

Code samples

# You can also use wget
curl -X GET https://example.com/mlPipelineAutomation/projects/{projectId} \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Accept: application/vnd.sas.analytics.ml.pipeline.automation.project+json'


const headers = {
  'Accept':'application/vnd.sas.analytics.ml.pipeline.automation.project+json'
};

fetch('https://example.com/mlPipelineAutomation/projects/{projectId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Accept': 'application/vnd.sas.analytics.ml.pipeline.automation.project+json'
}

r = requests.get('https://example.com/mlPipelineAutomation/projects/{projectId}', headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/vnd.sas.analytics.ml.pipeline.automation.project+json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://example.com/mlPipelineAutomation/projects/{projectId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects/{projectId}

The endpoint to get a specific automation project specified by an ID.

Parameters
Name In Type Required Description
projectId path string true projectId

Example responses

An existing machine learning pipeline automation project

{
  "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": "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": 1,
  "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": "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"
}
{
  "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": "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": 1,
  "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": "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"
}

Bad Request

{
  "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."
    }
  ]
}

Example of an error response with GET request specified with invalid filter.

{
  "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
}

Bad Request

{
  "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."
    }
  ]
}

Example of an error response with GET request specified with invalid filter.

{
  "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
}

Not Found

{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}

The specified project could not be found.

{
  "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."
}

Not Found

{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}

The specified project could not be found.

{
  "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."
}
Responses
Status Meaning Description Schema
200 OK The request succeeded. mlPipelineAutomationProject
400 Bad Request One or more parameters were invalid. Inline
404 Not Found No project with the provided ID was found. Inline
Response Schema

Status Code 400

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 404

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.
Response Headers
Status Header Type Format Description
200 ETag string E-Tag for response.

Update the specified automation project

Code samples

# You can also use wget
curl -X PUT https://example.com/mlPipelineAutomation/projects/{projectId} \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Content-Type: application/vnd.sas.analytics.ml.pipeline.automation.project+json' \
  -H 'Accept: application/vnd.sas.analytics.ml.pipeline.automation.project+json' \
  -H 'If-Match: string'

const inputBody = '{
  "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
  }
}';
const headers = {
  'Content-Type':'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'Accept':'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'If-Match':'string'
};

fetch('https://example.com/mlPipelineAutomation/projects/{projectId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Content-Type': 'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'Accept': 'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'If-Match': 'string'
}

r = requests.put('https://example.com/mlPipelineAutomation/projects/{projectId}', headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/vnd.sas.analytics.ml.pipeline.automation.project+json"},
        "Accept": []string{"application/vnd.sas.analytics.ml.pipeline.automation.project+json"},
        "If-Match": []string{"string"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://example.com/mlPipelineAutomation/projects/{projectId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /projects/{projectId}

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)

Body parameter

Minimum fields required in for a project request body

{
  "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
  }
}
Parameters
Name In Type Required Description
projectId path string true projectId
If-Match header string true If-Match
body body mlPipelineAutomationProject true project

Example responses

An existing machine learning pipeline automation project

{
  "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": "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": 1,
  "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": "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"
}
{
  "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": "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": 1,
  "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": "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"
}

Bad Request

{
  "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."
    }
  ]
}

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.

{
  "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."
    }
  ]
}

Bad Request

{
  "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."
    }
  ]
}

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.

{
  "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."
    }
  ]
}

Not Found

{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}
{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}

The If-Match header value does not match the expected ETag 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.)"
}
{
  "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.)"
}

The If-Match header is required and missing or empty.

{
  "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."
}
{
  "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."
}
Responses
Status Meaning Description Schema
200 OK The automation project was updated. mlPipelineAutomationProject
400 Bad Request One or more parameters were invalid. Inline
404 Not Found No automation project with the provided entity ID was found. Inline
412 Precondition Failed The value supplied in the If-Match header did not match the expected value. Inline
428 Precondition Required An If-Match header was not supplied on the update request. Inline
Response Schema

Status Code 400

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 404

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 412

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 428

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.
Response Headers
Status Header Type Format Description
200 ETag string E-Tag for response.

Delete an automation project

Code samples

# You can also use wget
curl -X DELETE https://example.com/mlPipelineAutomation/projects/{projectId}
  -H 'Authorization: Bearer <access-token-goes-here>' \


fetch('https://example.com/mlPipelineAutomation/projects/{projectId}',
{
  method: 'DELETE'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests

r = requests.delete('https://example.com/mlPipelineAutomation/projects/{projectId}')

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://example.com/mlPipelineAutomation/projects/{projectId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /projects/{projectId}

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.

Parameters
Name In Type Required Description
projectId path string true projectId
propagate query boolean false Propagate deletion to the underlying analytics project
Responses
Status Meaning Description Schema
204 No Content The project was deleted. None

Retrain the specified automation project

Code samples

# You can also use wget
curl -X PUT https://example.com/mlPipelineAutomation/projects/{projectId}#retrainProject?action=retrainProject \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Content-Type: application/vnd.sas.analytics.ml.pipeline.automation.project+json' \
  -H 'Accept: application/vnd.sas.analytics.ml.pipeline.automation.project+json' \
  -H 'If-Match: string'

const inputBody = '{
  "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
  }
}';
const headers = {
  'Content-Type':'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'Accept':'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'If-Match':'string'
};

fetch('https://example.com/mlPipelineAutomation/projects/{projectId}#retrainProject?action=retrainProject',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Content-Type': 'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'Accept': 'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'If-Match': 'string'
}

r = requests.put('https://example.com/mlPipelineAutomation/projects/{projectId}#retrainProject', params={
  'action': 'retrainProject'
}, headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/vnd.sas.analytics.ml.pipeline.automation.project+json"},
        "Accept": []string{"application/vnd.sas.analytics.ml.pipeline.automation.project+json"},
        "If-Match": []string{"string"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://example.com/mlPipelineAutomation/projects/{projectId}#retrainProject", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /projects/{projectId}#retrainProject

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.

Body parameter

Minimum fields required in for a project request body

{
  "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
  }
}
Parameters
Name In Type Required Description
projectId path string true projectId
action query string true The retrain project action
replacePreviousPipelines query boolean false Flag to replace previous pipelines
If-Match header string true If-Match
body body mlPipelineAutomationProject true project
Enumerated Values
Parameter Value
action retrainProject

Example responses

Response from retraining a project

{
  "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": 1,
  "dataTableUri": "/dataTables/dataSources/cas~fs~cas-shared-default~fs~Public/tables/DATA",
  "type": "predictive",
  "state": "completed",
  "settings": {
    "locale": "en-US",
    "replacePreviousPipelines": false
  },
  "analyticsProjectAttributes": {
    "analyticsProjectId": "0594f275-4c39-4bd1-a50b-3d25714becc3",
    "targetVariable": "LOAN",
    "targetEventLevel": "1"
  },
  "championModel": {},
  "pipelineBuildMethod": "automatic"
}
{
  "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": 1,
  "dataTableUri": "/dataTables/dataSources/cas~fs~cas-shared-default~fs~Public/tables/DATA",
  "type": "predictive",
  "state": "completed",
  "settings": {
    "locale": "en-US",
    "replacePreviousPipelines": false
  },
  "analyticsProjectAttributes": {
    "analyticsProjectId": "0594f275-4c39-4bd1-a50b-3d25714becc3",
    "targetVariable": "LOAN",
    "targetEventLevel": "1"
  },
  "championModel": {},
  "pipelineBuildMethod": "automatic"
}

Bad Request

{
  "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."
    }
  ]
}

The project failed to retrain because it is not in a terminal state.

{
  "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."
}

The required "action" query parameter is missing.

{
  "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."
    }
  ]
}

Bad Request

{
  "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."
    }
  ]
}

The project failed to retrain because it is not in a terminal state.

{
  "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."
}

The required "action" query parameter is missing.

{
  "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."
    }
  ]
}

Not Found

{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}
{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}

The If-Match header value does not match the expected ETag 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.)"
}
{
  "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.)"
}

The If-Match header is required and missing or empty.

{
  "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."
}
{
  "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."
}
Responses
Status Meaning Description Schema
202 Accepted The action was accepted and the automation project was updated. mlPipelineAutomationProject
400 Bad Request One or more parameters were invalid. Inline
404 Not Found No automation project with the provided entity ID was found. Inline
412 Precondition Failed The value supplied in the If-Match header did not match the expected value. Inline
428 Precondition Required An If-Match header was not supplied on the update request. Inline
Response Schema

Status Code 400

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 404

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 412

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 428

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.
Response Headers
Status Header Type Format Description
202 ETag string E-Tag for response.

Get headers for champion model information of an automation project

Code samples

# You can also use wget
curl -X HEAD https://example.com/mlPipelineAutomation/projects/{projectId}/championModel
  -H 'Authorization: Bearer <access-token-goes-here>' \


fetch('https://example.com/mlPipelineAutomation/projects/{projectId}/championModel',
{
  method: 'HEAD'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests

r = requests.head('https://example.com/mlPipelineAutomation/projects/{projectId}/championModel')

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("HEAD", "https://example.com/mlPipelineAutomation/projects/{projectId}/championModel", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

HEAD /projects/{projectId}/championModel

The endpoint to get headers for champion model information of an automation project specified by project ID.

Parameters
Name In Type Required Description
projectId path string true projectId
reports query array[string] false List of reports to be returned
filter query string false filter
Responses
Status Meaning Description Schema
200 OK The request succeeded. None
400 Bad Request One or more parameters were invalid. None
404 Not Found No project with the provided ID was found. None
Response Headers
Status Header Type Format Description
200 Content-Type string No description
200 ETag string No description
400 Content-Type string No description
400 ETag string No description
404 Content-Type string No description
404 ETag string No description

Get champion model information of an automation project

Code samples

# You can also use wget
curl -X GET https://example.com/mlPipelineAutomation/projects/{projectId}/championModel \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Accept: application/json'


const headers = {
  'Accept':'application/json'
};

fetch('https://example.com/mlPipelineAutomation/projects/{projectId}/championModel',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://example.com/mlPipelineAutomation/projects/{projectId}/championModel', headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://example.com/mlPipelineAutomation/projects/{projectId}/championModel", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects/{projectId}/championModel

The endpoint to get champion model information of an automation project specified by project ID.

Parameters
Name In Type Required Description
projectId path string true projectId
reports query array[string] false List of reports to be returned
filter query string false filter

Example responses

Generated project reports

{
  "version": 1,
  "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>\n\n<table class=\"insightsSummaryTable\">\n  <tr>\n    <td class=\"insightsSummaryTableKey\">Project Target:</td>\n    <td class=\"insightsSummaryTableValue\">LOAN</td>\n    <td class=\"insightsSummaryTableKey\">Project Champion:</td>\n    <td class=\"insightsSummaryTableValue\">Forest (2)</td>\n  </tr>\n  <tr>\n    <td class=\"insightsSummaryTableKey\">Overall Average:</td>\n    <td class=\"insightsSummaryTableValue\">18607.9698</td>\n    <td class=\"insightsSummaryTableKey\">Created By:</td>\n    <td class=\"insightsSummaryTableValue\">emduser1</td>\n  </tr>\n  <tr>\n    <td class=\"insightsSummaryTableKey\">Pipelines:</td>\n    <td class=\"insightsSummaryTableValue\">2</td>\n    <td class=\"insightsSummaryTableKey\">Modified:</td>\n    <td class=\"insightsSummaryTableValue\">Mar 2, 2022 7:38:24 AM</td>\n  </tr>\n</table>\n",
            "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"
    }
  ]
}

Bad Request

{
  "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."
    }
  ]
}

Example of an error response with GET request specified with invalid filter.

{
  "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
}

Bad Request

Example of an error response with GET request specified with invalid filter.

Not Found

{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}
Responses
Status Meaning Description Schema
200 OK The request succeeded. reportCollection
400 Bad Request One or more parameters were invalid. Inline
404 Not Found No project with the provided ID was found. Inline
Response Schema

Status Code 400

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 404

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.
Response Headers
Status Header Type Format Description
200 Content-Type string No description
200 ETag string No description

Register or publish the champion model of the automation project

Code samples

# You can also use wget
curl -X PUT https://example.com/mlPipelineAutomation/projects/{projectId}/championModel?action=register \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Accept: application/json' \
  -H 'If-Match: string'


const headers = {
  'Accept':'application/json',
  'If-Match':'string'
};

fetch('https://example.com/mlPipelineAutomation/projects/{projectId}/championModel?action=register',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Accept': 'application/json',
  'If-Match': 'string'
}

r = requests.put('https://example.com/mlPipelineAutomation/projects/{projectId}/championModel', params={
  'action': 'register'
}, headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "If-Match": []string{"string"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://example.com/mlPipelineAutomation/projects/{projectId}/championModel", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /projects/{projectId}/championModel

Register or publish the automation project's champion model.

Parameters
Name In Type Required Description
projectId path string true projectId
action query string true The action applied to a champion model, such as register or publish.
destinationName query string false The destination of register or publish action. Optional for register but required for publish.
If-Match header string true If-Match
Enumerated Values
Parameter Value
action register
action publish

Example responses

200 Response

{
  "name": "string",
  "links": [
    {
      "method": "string",
      "rel": "string",
      "uri": "string",
      "href": "string",
      "title": "string",
      "type": "string",
      "itemType": "string",
      "responseType": "string",
      "responseItemType": "string"
    }
  ],
  "publishDestinations": [
    {
      "name": "string",
      "description": "string",
      "destinationType": "cas",
      "destinationTable": "string",
      "casServerName": "string",
      "casLibrary": "string"
    }
  ]
}

Bad Request

{
  "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."
    }
  ]
}

Not Found

{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}

The If-Match header value does not match the expected ETag 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.)"
}
{
  "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.)"
}

The If-Match header is required and missing or empty.

{
  "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."
}
{
  "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."
}
Responses
Status Meaning Description Schema
200 OK The specified action was performed on the champion model. championModel
400 Bad Request The action is not supported. Inline
404 Not Found No automation project with the provided entity ID or its champion model was found. Inline
412 Precondition Failed The value supplied in the If-Match header did not match the expected value. Inline
428 Precondition Required An If-Match header was not supplied on the update request. Inline
Response Schema

Status Code 400

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 404

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 412

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 428

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.
Response Headers
Status Header Type Format Description
200 ETag string E-Tag for response.

Score data with the champion model of the automation project

Code samples

# You can also use wget
curl -X POST https://example.com/mlPipelineAutomation/projects/{projectId}/championModel/scoreData \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

const inputBody = '{
  "scoreType": "Individual",
  "destinationName": "maslocal",
  "inputs": [
    {
      "name": "CLAGE",
      "value": "300"
    },
    {
      "name": "DEBTINC",
      "value": "24.5"
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('https://example.com/mlPipelineAutomation/projects/{projectId}/championModel/scoreData',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://example.com/mlPipelineAutomation/projects/{projectId}/championModel/scoreData', headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://example.com/mlPipelineAutomation/projects/{projectId}/championModel/scoreData", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /projects/{projectId}/championModel/scoreData

Score data with the automation project's champion model.

Body parameter

Request body for scoring individual data

{
  "scoreType": "Individual",
  "destinationName": "maslocal",
  "inputs": [
    {
      "name": "CLAGE",
      "value": "300"
    },
    {
      "name": "DEBTINC",
      "value": "24.5"
    }
  ]
}
Parameters
Name In Type Required Description
projectId path string true The automation project ID
body body scoreDataInput true The score data input

Example responses

Response from scoring a champion model

{
  "version": 1,
  "executionState": "completed",
  "scoreExecution": [],
  "outputs": []
}
{
  "version": 1,
  "executionState": "completed",
  "scoreExecution": [],
  "outputs": []
}

Bad Request

{
  "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."
    }
  ]
}

Example of an error response when required fields are missing

{
  "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."
    }
  ]
}

Bad Request

{
  "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."
    }
  ]
}

Example of an error response when required fields are missing

{
  "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."
    }
  ]
}

Not Found

{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}
{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}
Responses
Status Meaning Description Schema
200 OK The request succeeded. scoreDataOutput
400 Bad Request The request cannot be processed. Inline
404 Not Found 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. Inline
Response Schema

Status Code 400

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 404

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Get headers for current state of an automation project

Code samples

# You can also use wget
curl -X HEAD https://example.com/mlPipelineAutomation/projects/{projectId}/state
  -H 'Authorization: Bearer <access-token-goes-here>' \


fetch('https://example.com/mlPipelineAutomation/projects/{projectId}/state',
{
  method: 'HEAD'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests

r = requests.head('https://example.com/mlPipelineAutomation/projects/{projectId}/state')

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("HEAD", "https://example.com/mlPipelineAutomation/projects/{projectId}/state", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

HEAD /projects/{projectId}/state

Get headers for the request that gets the current state of an automation project

Parameters
Name In Type Required Description
projectId path string true projectId
filter query string false filter
Responses
Status Meaning Description Schema
200 OK The request succeeded. None
400 Bad Request One or more parameters were invalid. None
404 Not Found No project with the provided ID was found. None
Response Headers
Status Header Type Format Description
200 Content-Type string No description
200 ETag string No description
400 Content-Type string No description
400 ETag string No description
404 Content-Type string No description
404 ETag string No description

Get current state of an automation project

Code samples

# You can also use wget
curl -X GET https://example.com/mlPipelineAutomation/projects/{projectId}/state \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Accept: text/plain'


const headers = {
  'Accept':'text/plain'
};

fetch('https://example.com/mlPipelineAutomation/projects/{projectId}/state',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Accept': 'text/plain'
}

r = requests.get('https://example.com/mlPipelineAutomation/projects/{projectId}/state', headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"text/plain"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://example.com/mlPipelineAutomation/projects/{projectId}/state", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /projects/{projectId}/state

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. - 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.

Parameters
Name In Type Required Description
projectId path string true projectId
filter query string false filter

Example responses

200 Response

"completed"

Bad Request

{
  "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."
    }
  ]
}

Example of an error response with GET request specified with invalid filter.

{
  "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
}

Not Found

{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}
Responses
Status Meaning Description Schema
200 OK The request succeeded. automationProjectState
400 Bad Request One or more parameters were invalid. Inline
404 Not Found No project with the provided ID was found. Inline
Response Schema

Status Code 400

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 404

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.
Response Headers
Status Header Type Format Description
200 Content-Type string No description
200 ETag string No description

Update state of the specified automation project

Code samples

# You can also use wget
curl -X PUT https://example.com/mlPipelineAutomation/projects/{projectId}/state?value=pending \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Accept: text/plain' \
  -H 'If-Match: string'


const headers = {
  'Accept':'text/plain',
  'If-Match':'string'
};

fetch('https://example.com/mlPipelineAutomation/projects/{projectId}/state?value=pending',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Accept': 'text/plain',
  'If-Match': 'string'
}

r = requests.put('https://example.com/mlPipelineAutomation/projects/{projectId}/state', params={
  'value': 'pending'
}, headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"text/plain"},
        "If-Match": []string{"string"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://example.com/mlPipelineAutomation/projects/{projectId}/state", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /projects/{projectId}/state

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.

Parameters
Name In Type Required Description
projectId path string true projectId
value query automationProjectState true Intended automation project state.
If-Match header string true If-Match
Enumerated Values
Parameter Value
value pending
value waiting
value ready
value modeling
value constructingPipeline
value runningPipeline
value quiescing
value quiesced
value completed
value canceled
value failed

Example responses

202 Response

"completed"

Bad Request

{
  "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."
    }
  ]
}

Not Found

{
  "version": 2,
  "httpStatusCode": 404,
  "errorCode": 92422,
  "message": "The specified resource was not found.",
  "remediation": "Resubmit the request with a valid ID."
}

There was a conflict with the current state of the target resource.

{
  "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."
}

The If-Match header value does not match the expected ETag 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.)"
}
{
  "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.)"
}

The If-Match header is required and missing or empty.

{
  "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."
}
{
  "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."
}
Responses
Status Meaning Description Schema
202 Accepted The state of automation project was updated. automationProjectState
400 Bad Request One or more parameters were invalid. Inline
404 Not Found No automation project with the provided entity ID was found. Inline
409 Conflict Transition from current to desired state is not permitted. Inline
412 Precondition Failed The value supplied in the If-Match header did not match the expected value. Inline
428 Precondition Required An If-Match header was not supplied on the update request. Inline
Response Schema

Status Code 400

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 404

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 409

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 412

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Status Code 428

Error

Name Type Required Restrictions Description
» message string false none The message for the error.
» id string false none The string ID for the error.
» errorCode integer false none The numeric ID for the error.
» httpStatusCode integer true none The HTTP status code for the error.
» details [string] false none Messages that provide additional details about the cause of the error.
» remediation string false none A message that describes how to resolve the error.
» errors [#/paths/~1projects/get/responses/400/content/application~1json/schema] false none Any additional errors that occurred.
»» Error #/paths/~1projects/get/responses/400/content/application~1json/schema false none The representation of an error.
» links [link] false none The links that apply to the error.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
» version integer true none The version number of the error representation. This representation is version 2.

Root

Contains the operations for the root resource.

Code samples

# You can also use wget
curl -X GET https://example.com/mlPipelineAutomation/ \
  -H 'Authorization: Bearer <access-token-goes-here>' \
  -H 'Accept: application/json'


const headers = {
  'Accept':'application/json'
};

fetch('https://example.com/mlPipelineAutomation/',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://example.com/mlPipelineAutomation/', headers = headers)

print(r.json())
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://example.com/mlPipelineAutomation/", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /

The API object contains a set of links for the supported endpoints.

Example responses

List of endpoints for Machine Learning Pipeline Automation service

{
  "version": 1,
  "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"
    }
  ]
}
{
  "version": 1,
  "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"
    }
  ]
}
Status Meaning Description Schema
200 OK The request succeeded. Inline

Status Code 200

API

Name Type Required Restrictions Description
» version integer true none The version number of the API representation. This is version 1.
» links [link] true none The API's top-level links.
»» Link link false none A link to a related operation or resource.
»»» method string false none The HTTP method for the link.
»»» rel string true none The relationship of the link to the resource.
»»» uri string false none The relative URI for the link.
»»» href string false none The URL for the link.
»»» title string false none The title for the link.
»»» type string false none The media type or link type for the link.
»»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
Response Headers
Status Header Type Format Description
200 Content-Type string No description

Schemas

automationProjectState

"pending"

Automation Project State

Properties
Name Type Required Restrictions Description
Automation Project State string false none Automation Project state. One of the enums [pending, preparing, waiting, ready, modeling, constructingPipeline, runningPipeline, quiescing, quiesced, completed, canceled, failed, oversampling, retraining].
Enumerated Values
Property Value
Automation Project State pending
Automation Project State waiting
Automation Project State ready
Automation Project State modeling
Automation Project State constructingPipeline
Automation Project State runningPipeline
Automation Project State quiescing
Automation Project State quiesced
Automation Project State completed
Automation Project State canceled
Automation Project State failed

analyticsProjectAttributes

{
  "analyticsProjectId": "string",
  "targetVariable": "string",
  "targetEventLevel": "string",
  "intervalSelectionStatistic": "ase",
  "classSelectionStatistic": "ks",
  "selectionDepth": 10,
  "selectionPartition": "test",
  "partitionEnabled": true,
  "overrideClassificationCutoffValue": 0.5,
  "cutoffPercentage": 50,
  "numberOfCutoffValues": 20,
  "samplingEnabled": "auto",
  "samplingPercentage": 50
}

Analytics Project Attributes

Properties
Name Type Required Restrictions Description
analyticsProjectId string false none Analytics project ID.
targetVariable string true none Target variable.
targetEventLevel string false none Target event level.
intervalSelectionStatistic string false none Interval selection statistic.
classSelectionStatistic string false none Class selection statistic.
selectionDepth number false none Selection depth.
selectionPartition string false none Selection partition.
partitionEnabled boolean false none Flag to indicate whether partition should be enabled.
overrideClassificationCutoffValue number(double) false none The override value (percentage) to use if overrideClassificationCutoffEnabled is true.
cutoffPercentage number false none Cutoff percentage
numberOfCutoffValues number false none Number of cutoff values
samplingEnabled string false none Sampling strategy
samplingPercentage number false none Sampling percentage. Valid range is 1 to 99.
Enumerated Values
Property Value
intervalSelectionStatistic ase
intervalSelectionStatistic rase
intervalSelectionStatistic rmae
intervalSelectionStatistic rmsle
classSelectionStatistic ks
classSelectionStatistic ase
classSelectionStatistic rase
classSelectionStatistic mce
classSelectionStatistic mcll
classSelectionStatistic c
classSelectionStatistic f1
classSelectionStatistic fdr
classSelectionStatistic fpr
classSelectionStatistic ks2
classSelectionStatistic lift
classSelectionStatistic cumulativeLift
classSelectionStatistic gain
classSelectionStatistic gini
classSelectionStatistic capturedResponse
classSelectionStatistic cumulativeCapturedResponse
classSelectionStatistic misclassificationEvent
classSelectionStatistic misclassificationCutoff
selectionDepth 5
selectionDepth 10
selectionDepth 15
selectionDepth 20
selectionPartition default
selectionPartition train
selectionPartition validate
selectionPartition test
cutoffPercentage 5
cutoffPercentage 10
cutoffPercentage 15
cutoffPercentage 20
cutoffPercentage 25
cutoffPercentage 30
cutoffPercentage 35
cutoffPercentage 40
cutoffPercentage 45
cutoffPercentage 50
cutoffPercentage 55
cutoffPercentage 60
cutoffPercentage 65
cutoffPercentage 70
cutoffPercentage 75
cutoffPercentage 80
cutoffPercentage 85
cutoffPercentage 90
cutoffPercentage 95
numberOfCutoffValues 10
numberOfCutoffValues 20
numberOfCutoffValues 50
numberOfCutoffValues 100
numberOfCutoffValues 500
numberOfCutoffValues 1000
samplingEnabled true
samplingEnabled false
samplingEnabled auto

mlPipelineAutomationProjectCollection

{
  "name": "string",
  "start": 0,
  "limit": 0,
  "count": 0,
  "accept": "string",
  "links": [
    {
      "method": "string",
      "rel": "string",
      "uri": "string",
      "href": "string",
      "title": "string",
      "type": "string",
      "itemType": "string",
      "responseType": "string",
      "responseItemType": "string"
    }
  ],
  "version": 0,
  "items": [
    {
      "analyticsProjectAttributes": {
        "analyticsProjectId": "string",
        "targetVariable": "string",
        "targetEventLevel": "string",
        "intervalSelectionStatistic": "ase",
        "classSelectionStatistic": "ks",
        "selectionDepth": 10,
        "selectionPartition": "test",
        "partitionEnabled": true,
        "overrideClassificationCutoffValue": 0.5,
        "cutoffPercentage": 50,
        "numberOfCutoffValues": 20,
        "samplingEnabled": "auto",
        "samplingPercentage": 50
      },
      "dataTableUri": "string",
      "description": "string",
      "id": "string",
      "name": "string",
      "revision": 0,
      "settings": {
        "applyGlobalMetadata": true,
        "autoRun": true,
        "locale": "en",
        "maxModelingTime": 0,
        "modelingMode": "Standard",
        "numberOfModels": 5,
        "subsampleCount": 0,
        "subsamplePercent": 0,
        "subsampleSeed": 0
      },
      "state": "pending",
      "type": "predictive",
      "pipelineBuildMethod": "automatic",
      "version": 0,
      "championModel": {
        "name": "string",
        "links": [
          {
            "method": "string",
            "rel": "string",
            "uri": "string",
            "href": "string",
            "title": "string",
            "type": "string",
            "itemType": "string",
            "responseType": "string",
            "responseItemType": "string"
          }
        ],
        "publishDestinations": [
          {
            "name": "string",
            "description": "string",
            "destinationType": "cas",
            "destinationTable": "string",
            "casServerName": "string",
            "casLibrary": "string"
          }
        ]
      },
      "links": [
        {
          "method": "string",
          "rel": "string",
          "uri": "string",
          "href": "string",
          "title": "string",
          "type": "string",
          "itemType": "string",
          "responseType": "string",
          "responseItemType": "string"
        }
      ]
    }
  ]
}

Machine Learning Pipeline Automation Project Collection

Properties
Name Type Required Restrictions Description
Machine Learning Pipeline Automation Project Collection any false none This object contains a list of automation project objects.

allOf

Name Type Required Restrictions Description
anonymous object false none 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)
» name string false none The name of the collection.
» start integer(int64) false none The zero-based index of the first item in the collection.
» limit integer false none The number of items that were requested for the collection.
» count integer(int64) false none If populated indicates the number of items in the collection.
» accept string false none A space-delimited list of media types from which an Accept header may be constructed.
» links [link] false none The links that apply to the collection.
» version integer false none The version number of the collection representation. This representation is version 2.

and

Name Type Required Restrictions Description
anonymous object false none none
» items [mlPipelineAutomationProject] true none The list of automation project objects.

mlPipelineAutomationProject

{
  "analyticsProjectAttributes": {
    "analyticsProjectId": "string",
    "targetVariable": "string",
    "targetEventLevel": "string",
    "intervalSelectionStatistic": "ase",
    "classSelectionStatistic": "ks",
    "selectionDepth": 10,
    "selectionPartition": "test",
    "partitionEnabled": true,
    "overrideClassificationCutoffValue": 0.5,
    "cutoffPercentage": 50,
    "numberOfCutoffValues": 20,
    "samplingEnabled": "auto",
    "samplingPercentage": 50
  },
  "dataTableUri": "string",
  "description": "string",
  "id": "string",
  "name": "string",
  "revision": 0,
  "settings": {
    "applyGlobalMetadata": true,
    "autoRun": true,
    "locale": "en",
    "maxModelingTime": 0,
    "modelingMode": "Standard",
    "numberOfModels": 5,
    "subsampleCount": 0,
    "subsamplePercent": 0,
    "subsampleSeed": 0
  },
  "state": "pending",
  "type": "predictive",
  "pipelineBuildMethod": "automatic",
  "version": 0,
  "championModel": {
    "name": "string",
    "links": [
      {
        "method": "string",
        "rel": "string",
        "uri": "string",
        "href": "string",
        "title": "string",
        "type": "string",
        "itemType": "string",
        "responseType": "string",
        "responseItemType": "string"
      }
    ],
    "publishDestinations": [
      {
        "name": "string",
        "description": "string",
        "destinationType": "cas",
        "destinationTable": "string",
        "casServerName": "string",
        "casLibrary": "string"
      }
    ]
  },
  "links": [
    {
      "method": "string",
      "rel": "string",
      "uri": "string",
      "href": "string",
      "title": "string",
      "type": "string",
      "itemType": "string",
      "responseType": "string",
      "responseItemType": "string"
    }
  ]
}

Machine Learning Pipeline Automation Project

Properties
Name Type Required Restrictions Description
analyticsProjectAttributes analyticsProjectAttributes true none This object contains a list of analytics project attributes.
dataTableUri string true none Data table URI
description string false none Description of the automation project
id string false none ID of the automation project
name string true none Name of the automation project
revision integer(int64) false none Revision of the automation project instance
settings settings false none A collection of optional settings to configure an automation project.
state automationProjectState false none Automation Project state. One of the enums [pending, preparing, waiting, ready, modeling, constructingPipeline, runningPipeline, quiescing, quiesced, completed, canceled, failed, oversampling, retraining].
type string true none Automation project type
pipelineBuildMethod string false none The method used to generate the project pipeline
version integer(int32) false none Version of the resource
championModel championModel false none This object contains a summary of champion model.
links [object] false none The links that apply to this automation project
» Link object false none A link to a related operation or resource.
»» method string false none The HTTP method for the link.
»» rel string true none The relationship of the link to the resource.
»» uri string false none The relative URI for the link.
»» href string false none The URL for the link.
»» title string false none The title for the link.
»» type string false none The media type or link type for the link.
»» itemType string false none If this is a link to a container, itemType is the media type or link type for the items in the container.
»» responseType string false none The media type or link type of the response body for a PUT, POST, or PATCH operation.
»» responseItemType string false none The media type or link type of the items in the response body for a PUT, POST, or PATCH operation.
Enumerated Values
Property Value
type predictive
pipelineBuildMethod automatic
pipelineBuildMethod template

reportCollection

{
  "name": "string",
  "start": 0,
  "limit": 0,
  "count": 0,
  "accept": "string",
  "links": [
    {
      "method": "string",
      "rel": "string",
      "uri": "string",
      "href": "string",
      "title": "string",
      "type": "string",
      "itemType": "string",
      "responseType": "string",
      "responseItemType": "string"
    }
  ],
  "version": 0,
  "items": [
    {
      "id": "string",
      "data": [
        {
          "dataMap": {},
          "header": "string",
          "rowNumber": 0
        }
      ],
      "links": [
        {
          "method": "string",
          "rel": "string",
          "uri": "string",
          "href": "string",
          "title": "string",
          "type": "string",
          "itemType": "string",
          "responseType": "string",
          "responseItemType": "string"
        }
      ],
      "parameterMap": {
        "property1": {
          "label": "string",
          "length": 0,
          "order": 0,
          "parameter": "string",
          "preformatted": true,
          "type": "undefined",
          "values": [
            "string"
          ]
        },
        "property2": {
          "label": "string",
          "length": 0,
          "order": 0,
          "parameter": "string",
          "preformatted": true,
          "type": "undefined",
          "values": [
            "string"
          ]
        }
      },
      "order": 0,
      "type": "undefined",
      "xInteger": true,
      "yInteger": true,
      "version": 0,
      "description": "string",
      "revision": 0
    }
  ]
}

Report Collection

Properties

allOf

Name Type Required Restrictions Description
anonymous mlPipelineAutomationProjectCollection false none 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)

and

Name Type Required Restrictions Description
anonymous object false none none
» items [any] false none The list of reports
»» Analytics Report object false none An analytics report consisting of rows of data and associated metadata (parameters).
»»» id string false none The unique identifier of this analytics report.
»»» data [any] true none The rows of data.
»»»» Data Row object false none A row of data.
»»»»» dataMap object true none Map of parameter name to associated value.
»»»»» header string false none Optional title. May be localized.
»»»»» rowNumber integer(int32) true none The index of this row in the collection.
»»» links [link] false none [A link to a related operation or resource.]
»»» parameterMap object true none The collection of parameters, categorized by parameter name.
»»»» Parameter object false none Metadata describing a particular variable.
»»»»» label string false none The display name. May be localized.
»»»»» length integer(int32) false none The maximum width among this parameter's values.
»»»»» order integer(int32) false none The index of this parameter in the collection.
»»»»» parameter string true none The parameter name. Should not be localized.
»»»»» preformatted boolean false none Indicates whether this parameter's values have already been formatted.
»»»»» type string true none The data type of this parameter's values.
»»»»» values [string] true none Keys used to associate this parameter with values in the rows of data.
»»» order integer(int32) false none The index in a collection of analytics reports. Useful when analytics reports are stored in an unordered collection but order is desired.
»»» type string true none The type of analytics report. Informs clients how this analytics report should be rendered.
»»» xInteger boolean false none Whether or not to suppress intermediate tick marks on the X-axis.
»»» yInteger boolean false none Whether or not to suppress intermediate tick marks on the Y-axis.
»»» version integer(int32) false none This media type's schema version number. This representation is version 1.
»»» description string false none A description of this analytics report.
»»» revision integer(int64) false none A revision number that is incremented on every update to the analytics report.
Enumerated Values
Property Value
type undefined
type num
type char
type report
type undefined
type table
type barChart
type refreshableBarChart
type seriesPlot
type pieChart
type histogram
type decisionTree
type networkDiagram
type html
type textViewer
type matrix
type bandPlot
type codeEditor
type iciclePlot
type scatterPlot
type comboBox

championModel

{
  "name": "string",
  "links": [
    {
      "method": "string",
      "rel": "string",
      "uri": "string",
      "href": "string",
      "title": "string",
      "type": "string",
      "itemType": "string",
      "responseType": "string",
      "responseItemType": "string"
    }
  ],
  "publishDestinations": [
    {
      "name": "string",
      "description": "string",
      "destinationType": "cas",
      "destinationTable": "string",
      "casServerName": "string",
      "casLibrary": "string"
    }
  ]
}

Champion Model

Properties
Name Type Required Restrictions Description
name string false none The champion model name.
links [link] false none The links that apply to this champion model.
publishDestinations [publishDestination] false none The list of available destinations to publish this champion model.

publishDestination

{
  "name": "string",
  "description": "string",
  "destinationType": "cas",
  "destinationTable": "string",
  "casServerName": "string",
  "casLibrary": "string"
}

Publish Destination

Properties
Name Type Required Restrictions Description
name string true none The destination name.
description string false none The description of the destination.
destinationType string true none The type of the destination.
destinationTable string false none The destination table.
casServerName string false none The CAS server name.
casLibrary string false none The CAS library.
Enumerated Values
Property Value
destinationType cas
destinationType microAnalyticService
destinationType teradata
destinationType hadoop
destinationType other

scoreDataInput

{
  "scoreType": "Individual",
  "destinationName": "string",
  "inputs": [
    {
      "name": "string",
      "value": "string"
    }
  ],
  "inputDataTableUri": "string",
  "scoreOutputCaslibUri": "string",
  "scoreOutputTableName": "string"
}

Score Data Input

Properties
Name Type Required Restrictions Description
scoreType string true none Score type, either 'Individual' or 'Bulk'.
destinationName string false none Name of the destination where the champion model is published. Required for individual scoring.
inputs [scoreDataFieldValue] false none Data inputs for individual data scoring. Required for individual scoring.
inputDataTableUri string false none Input data table URI for bulk data scoring. Required for bulk scoring.
scoreOutputCaslibUri string false none Output caslib URI where the score output table is stored. Required for bulk scoring.
scoreOutputTableName string false none Output table name where the score outputs are stored. Required for bulk scoring.
Enumerated Values
Property Value
scoreType Individual
scoreType Bulk

scoreDataOutput

{
  "executionState": "completed",
  "outputs": [
    {
      "name": "string",
      "value": "string"
    }
  ],
  "scoreExecution": {
    "id": "string",
    "createdBy": "string",
    "creationTimeStamp": "2019-08-24T14:15:22Z",
    "modifiedBy": "string",
    "modifiedTimeStamp": "2019-08-24T14:15:22Z",
    "scoreExecutionRequest": [
      {
        "name": "My Score Execution Request",
        "scoreDefinitionId": "9f0c13ae-6a27-11e6-8b77-86f30ca893d3",
        "mappedCodeUri": "http://files/files/0c7281d8-063d-49dd-be6b-392e9c9e930c",
        "outputTable": "example-table",
        "hints": {
          "outputLibraryName": "PUBLIC"
        }
      }
    ],
    "state": "pending",
    "outputTable": [
      {
        "tableName": "string",
        "libraryName": "string",
        "serverName": "string"
      }
    ],
    "codeFileUri": "https://example.com",
    "logFileUri": "https://example.com",
    "haveWarnings": true,
    "error": [
      {
        "message": "string",
        "id": "string",
        "errorCode": 0,
        "httpStatusCode": 0,
        "details": [
          "string"
        ],
        "remediation": "string",
        "errors": [
          null
        ],
        "links": [
          {
            "method": "string",
            "rel": "string",
            "uri": "string",
            "href": "string",
            "title": "string",
            "type": "string",
            "itemType": "string",
            "responseType": "string",
            "responseItemType": "string"
          }
        ],
        "version": 0
      }
    ],
    "results": {
      "property1": "string",
      "property2": "string"
    },
    "links": [
      {
        "method": "string",
        "rel": "string",
        "uri": "string",
        "href": "string",
        "title": "string",
        "type": "string",
        "itemType": "string",
        "responseType": "string",
        "responseItemType": "string"
      }
    ],
    "version": 0
  }
}

Score Data Output

Properties
Name Type Required Restrictions Description
executionState string true none Execution state, one of 'completed', 'submitted', or 'timedOut'.
outputs [scoreDataFieldValue] true none Data outputs for individual data scoring. Populated for individual score request.
scoreExecution object false none Contains details about execution results. This represents application/vnd.sas.score.execution media type (version 1).
» id string false none The system-assigned unique ID for this object
» createdBy string false none The user who created the score execution.
» creationTimeStamp string(date-time) false none The date and time that the score execution was created.
» modifiedBy string false none The userId of the authenticated user who last updated the score execution.
» modifiedTimeStamp string(date-time) false none The date and time that the score execution was last modified.
» scoreExecutionRequest array true none Contains request details about how to generate score.
»» Score Execution Request object false none Contains request details about how to generate score. This represents application/vnd.sas.score.execution.request media type (version 1).
»»» type string(enumeration) false none Score execution request can be either scoreDefinition or mappedCode. Default value is scoreDefinition.
»»» name string true none The descriptive name for the request. Which will be shown when showing executions.
»»» description string false none The description of the request.
»»» hints object false none Hints used to execute an object for score.
»»»» additionalProperties string false none none
»»» jobDefinition array false none Inline Job Definition which is used to score. Either this or jobDefinitionId should be used.
»»»» Job Definition object false none Provides the base summary information of any object. This represents application/vnd.sas.job.definition media type (version 1).
»»»»» id string(uuid) false none unique id
»»»»» name string true none name
»»»»» type string true none type of job - this will determine which execution provider executes this job
»»»»» code string true none execution specific code to be executed
»»»»» parameters [any] true none input parameters to be collected when executing this job definition
»»»»»» name string false none name of the parameter
»»»»»» type string(enumeration) false none type of the parameter (TABLE, NUMERIC, DATE, CHARACTER)
»»»»»» label string false none display value for the name of this parameter
»»»»»» required boolean false none is this parameter required for execution
»»»»»» defaultValue string false none default value of this parameter if one is not specified at execution time
»»»»» createdBy string false none The user who created this job
»»»»» modifiedBy string false none The user who modified this job
»»»»» creationTimeStamp string(date-time) false none The formatted time stamp when the job was created, in yyyy-mm-ddThh:mm:ssZ format
»»»»» modifiedTimeStamp string(date-time) false none The formatted time stamp when the job was modified, in yyyy-mm-ddThh:mm:ssZ format
»»»»» links [link] false none zero or more link objects. See the above link relations table for a description of the link types
»»»»» properties object false none zero or more name, value pairs (map) needed to execute job definition, maximum name length = 100
»»»»»» additionalProperties string false none none
»»»»» version integer false none This media type's schema version number. This representation is version 1.
»»» jobDefinitionId string false none Job definition id which is used to score. Either this or the jobDefinition should be used.
»»» scoreDefinition array false none Inline score definition. Valid only when type is scoreDefinition. Either this or scoreDefinitionId should be used
»»»» Score Definition object false none A definition containing details about Input Data, Score Object and Mapping. This represents application/vnd.sas.score.definition media type (version 1).
»»»»» id string false none The system-assigned unique ID for this object
»»»»» name string true none The score definition name
»»»»» description string false none The score definition description
»»»»» createdBy string false none The user who created the score definition.
»»»»» creationTimeStamp string(date-time) false none The date and time that the score definition was created.
»»»»» modifiedBy string false none The userId of the authenticated user who last updated the score definition.
»»»»» modifiedTimeStamp string(date-time) false none The date and time that the score definition was last modified.
»»»»» preprocessingCode string false none Preprocessing code that is executed before executing the Mapped Code.
»»»»» objectDescriptor array true none Descriptor of a Score Object whose logic is used to produce score for Input Data.
»»»»»» Object Descriptor object false none 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.
»»»»»»» name string false none Name of the Score Object.
»»»»»»» type string false none Type of the Score Object.
»»»»»»» uri string(uri) true none Uri to the Score Object.
»»»»» inputData array true none Input Data that will be scored.
»»»»»» Input Data object false none Input Data that will be scored. This doesn't represent any top-level media type.
»»»»»»» type string(enumeration) true none The type of input data.
»»»»»»» serverName string true none CAS Server name where CAS table is located. Valid only if the type is CASTable.
»»»»»»» libraryName string true none CAS Library name where CAS table is located. Valid only if the type is CASTable.
»»»»»»» tableName string true none Name of the CAS table. Valid only if the type is CASTable.
»»»»»»» code string true none Code containing inline data. Valid only if the type is Inline.
»»»»»»» outputTableName string true none Name of the output table that will be generated when the inline code is executed. Valid only if the type is Inline.
»»»»» mappings [any] false none Array of mappings between Score Object variables and Input Data columns.
»»»»»» Mapping object false none Assigning Input Data column to a variable of the generated Mapped Code of Score Object. This doesn't represent any top-level media type.
»»»»»»» variableName string true none Name of the Score Object's variable.
»»»»»»» mappingType string(enumeration) true none The mapping type.
»»»»»»» mappingValue any false none 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. Required if the mappingType is datasource.

anyOf

Name Type Required Restrictions Description
»»»»»»»» anonymous integer false none none

or

Name Type Required Restrictions Description
»»»»»»»» anonymous string false none none

continued

Name Type Required Restrictions Description
»»»»» properties object false none A set of properties for this score definition.
»»»»»» additionalProperties string false none none
»»»»» links [link] false none Zero or more links to related resources or operations.
»»»»» version integer false none This media type's schema version number. This representation is version 1.
»»» scoreDefinitionId string true none 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 array false none Overrides the details of the existing score definition represented by scoreDefinitionId. Valid only when type is scoreDefinition.
»»»» Override Score Definition object false none Overrides the details of the existing Score definition. This doesn't represent any top-level media type.
»»»»» preprocessingCode string false none Code which should be executed before executing actual code.
»»»»» objectDescriptor array false none Descriptor of a Score Object whose logic is used to produce a score for Input Data.
»»»»» inputData array false none Input Data that will be scored.
»»»»» mappings [scoreDataOutput/properties/scoreExecution/properties/scoreExecutionRequest/items/properties/scoreDefinition/items/properties/mappings/items] false none Array of mappings between score object variables and input data columns.
»»» mappedCode string false none Inline mapped code. Valid only when type is mappedCode. Either this or mappedCodeUri should be used.
»»» mappedCodeUri string true none Uri containing mapped code. Valid only when type is mappedCode. Either this or mappedCode should be used.
»»» outputTable array true none Table details where the output will be generated after executing the mapped code.
»»» version integer false none This media type's schema version number. This representation is version 1.
» state string(enumeration) true none State of the score execution.
» outputTable array false none Details of the output generated by score execution.
»» Output Table object false none Output generated by score execution or analysis. This doesn't represent any top-level media type.
»»» tableName string true none Table name where the score execution or analysis output is saved.
»»» libraryName string true none Library where the table is located.
»»» serverName string true none Server where the table is located.
» codeFileUri string(uri) false none File uri where the code used to generate score is saved.
» logFileUri string(uri) false none File uri where the log of the score execution is saved.
» haveWarnings boolean false none Set to true when there are warnings inside the log file.
» error array false none Contains error details if the execution is failed.
» results object false none Contains results for the score execution.
»» additionalProperties string false none none
» links [link] false none Zero or more links to related resources or operations.
» version integer false none This media type's schema version number. This representation is version 1.
Enumerated Values
Property Value
executionState completed
executionState submitted
executionState timedOut
type scoreDefinition
type mappedCode
type TABLE
type NUMERIC
type DATE
type CHARACTER
type CASTable
type Inline
mappingType datasource
mappingType static
state pending
state running
state canceled
state completed
state failed
state timedOut

scoreDataFieldValue

{
  "name": "string",
  "value": "string"
}

Score Data Field Name/Value Pair

Properties
Name Type Required Restrictions Description
name string true none Data field name.
value string true none Data field value.

settings

{
  "applyGlobalMetadata": true,
  "autoRun": true,
  "locale": "en",
  "maxModelingTime": 0,
  "modelingMode": "Standard",
  "numberOfModels": 5,
  "subsampleCount": 0,
  "subsamplePercent": 0,
  "subsampleSeed": 0
}

Automation Project Settings

Properties
Name Type Required Restrictions Description
applyGlobalMetadata boolean false none Whether to apply global metadata
autoRun boolean false none Determines whether the automatically generated pipeline is run and a champion model is calculated.
locale string false none The locale to use for translating content
maxModelingTime number(double) false none The maximum time (in minutes) to use for modeling. Input is valid in increments of 0.1. Use 0 for unbounded.
modelingMode string false none The modeling strategy that the automation project uses to select a champion model.
numberOfModels integer false none The number of models to build and compare in the automation project.
subsampleCount integer false none The number of training observations to sample for pipeline generation. When subsampleCount is used,subsamplePercent cannot be set.
subsamplePercent integer false none The percent of training observations to sample for pipeline generation. When subsamplePercent is used, subsampleCount cannot be set.
subsampleSeed integer false none The seed to use when subsampling training data during pipeline generation. When set to 0 the system clock is used for the seed. When subsampleSeed is used, either subsampleCount or subsamplePercent must be set.
Enumerated Values
Property Value
modelingMode Enhanced
modelingMode Standard

Examples

Github Examples

Detailed examples on how to use this API can be found on Github.

Media Type Samples

application/vnd.sas.analytics.ml.pipeline.automation.project

Automation Project.

See Automation Project.

vnd.sas.analytics.ml.pipeline.automation.project example:


 {
    "links": [
        {
            "method": "GET",
            "rel": "up",
            "href": "/mlPipelineAutomation/projects",
            "uri": "/mlPipelineAutomation/projects",
            "type": "application/vnd.sas.collection+json",
            "itemType": "application/vnd.sas.analytics.ml.pipeline.automation.project"
        },
        {
            "method": "GET",
            "rel": "self",
            "href": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992",
            "uri": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992",
            "type": "application/vnd.sas.analytics.ml.pipeline.automation.project"
        },
        {
            "method": "PUT",
            "rel": "update",
            "href": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992",
            "uri": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992",
            "type": "application/vnd.sas.analytics.ml.pipeline.automation.project"
        },
        {
            "method": "DELETE",
            "rel": "delete",
            "href": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992",
            "uri": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992"
        },
        {
            "method": "DELETE",
            "rel": "propagateDelete",
            "href": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992?propagate=true",
            "uri": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992?propagate=true"
        },
        {
            "method": "GET",
            "rel": "state",
            "href": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992/state",
            "uri": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992/state",
            "type": "text/plain"
        },
        {
            "method": "PUT",
            "rel": "updateState",
            "href": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992/state?value={value}",
            "uri": "/mlPipelineAutomation/projects/981738b3-10b4-48ce-8911-17b1132b7992/state?value={value}",
            "responseType": "text/plain"
        }
    ],
    "id": "981738b3-10b4-48ce-8911-17b1132b7992",
    "name": "Test Project Creation (By MLPA BnHTH)",
    "description": "",
    "revision": 0,
    "version": 1,
    "dataTableUri": "/dataTables/dataSources/cas~fs~cas-shared-default~fs~Public/tables/APITESTHMEQ",
    "type": "predictive",
    "state": "waiting",
    "pipelineBuildMethod": "automatic",
    "settings": {
        "applyGlobalMetadata": "false",
        "autoRun": "true",
        "numberOfModels": 3
    },
    "analyticsProjectAttributes": {
        "analyticsProjectId": "dd60080b-53b8-4fc7-8b65-584f0cd3aa3a",
        "targetVariable": "BAD",
        "targetEventLevel": "1",
        "partitionEnabled": "true",
        "classSelectionStatistic": "lift"
    }
}
application/vnd.sas.analytics.ml.pipeline.automation.score.data.input

Score Data Input.

See Score Data Input.

vnd.sas.analytics.ml.pipeline.automation.score.data.input example:


 {
    "scoreType": "Individual",
    "destinationName": "maslocal",
    "inputs": [
        {
            "name" : "CLAGE",
            "value" : 300
        },
        {
            "name" : "CLNO",
            "value" : 21
        },
        {
            "name" : "DEBTINC",
            "value" : 24.5
        },
        {
            "name" : "DELINQ",
            "value" : 0
        },
        {
            "name" : "DEROG",
            "value" : 1
        },
        {
            "name" : "JOB",
            "value" : "Other"
        },
        {
            "name" : "LOAN",
            "value" : 21500
        },
        {
            "name" : "MORTDUE",
            "value" : 7806
        },
        {
            "name" : "NINQ",
            "value" : 4
        },
        {
            "name" : "VALUE",
            "value" : 95678
        },
        {
            "name" : "YOJ",
            "value" : 4
        }
    ]
}
application/vnd.sas.analytics.ml.pipeline.automation.score.data.input

Score Data Output.

See Score Data Output.

vnd.sas.analytics.ml.pipeline.automation.score.data.output example:


 {
    "executionState": "completed",
    "outputs": [
    {
        "name": "EM_CLASSIFICATION",
        "value": "0 "
    },
    {
       "name": "EM_EVENTPROBABILITY",
       "value": 0.023816315812213534
    },
    {
        "name": "EM_PROBABILITY",
        "value": 0.9761836841877864
    },
    {
        "name": "INVSQR_LOAN",
        "value": 2.1633315258770545E-9
    },
    {
        "name": "INVSQR_MORTDUE",
        "value": 1.6411296768646846E-8
    },
    {
        "name": "INVSQR_VALUE",
        "value": 1.092385238828324E-10
    },
    {
        "name": "I_BAD",
        "value": "0"
    },
    {
        "name": "P_BAD0",
        "value": 0.9761836841877864
    },
    {
        "name": "P_BAD1",
        "value": 0.023816315812213534
    },
    {
        "name": "SQRT_CLAGE",
        "value": 17.349351572897472
    },
    {
        "name": "SQRT_CLNO",
        "value": 4.69041575982343
    },
    {
        "name": "SQRT_YOJ",
        "value": 2.23606797749979
    },
    {
        "name": "TARGENC_DELINQ",
        "value": 0.13722334
    },
    {
        "name": "TARGENC_DEROG",
        "value": 0.3696498054
    },
    {
        "name": "TARGENC_JOB",
        "value": 0.1994966443
    },
    {
        "name": "TARGENC_NINQ",
        "value": 0.3829787234
    }
  ]
}
Root

Path: /

The root of the API. This resource contains links to the top-level resources in the API. The response uses the application/vnd.sas.api media type.

Relation Method Description
collection GET Returns the first page of the automation project collection.
URI: /projects
Response type: application/vnd.sas.collection
createProject POST Creates a new automation project.
URI: /projects
Request type: application/vnd.sas.analytics.ml.pipeline.automation.project
Response type: application/vnd.sas.analytics.ml.pipeline.automation.project
#### Projects

Path: /projects

A collection of automation projects.

Relation Method Description
createProject POST Creates a new automation project.
URI: /projects
Request type: application/vnd.sas.analytics.ml.pipeline.automation.project
Response type: application/vnd.sas.analytics.ml.pipeline.automation.project
self GET Link to self.
URI: /projects?start=0&limit=10
Response type: application/vnd.sas.collection
Project

Path: /projects/{projectId}

An automation project.

Relation Method Description
up GET Returns the first page of the automation project collection.
URI: /projects
Response type: application/vnd.sas.collection
self GET Link to self.
URI: /projects/{projectId}
Response type: application/vnd.sas.analytics.ml.pipeline.automation.project
update PUT Updates the automation project.
URI: /projects/{projectId}
Request type: application/vnd.sas.analytics.ml.pipeline.automation.project
Response type: application/vnd.sas.analytics.ml.pipeline.automation.project
retrainProject PUT Retrains the automation project.
URI: /projects/{projectId}?action=retrainProject
Request type: application/vnd.sas.analytics.ml.pipeline.automation.project
Response type: application/vnd.sas.analytics.ml.pipeline.automation.project
retrainProjectReplacePipelines PUT Retrains the automation project, replacing existing automatically generated pipelines.
URI: /projects/{projectId}?action=retrainProject&replacePreviousPipelines=true
Request type: application/vnd.sas.analytics.ml.pipeline.automation.project
Response type: application/vnd.sas.analytics.ml.pipeline.automation.project
delete DELETE Deletes the automation project, with the option to delete the underlying analytics project.
URI: /projects/{projectId}
propagateDelete DELETE Deletes both the automation project and the underlying analytics project.
URI: /projects/{projectId}?propagate=true
state GET Returns the current state of the automation project.
URI: /projects/{projectId}/state
Response type: text/plain
updateState PUT Updates the state of the automation project.
URI: /projects/{projectId}/state?value={state}
Response type: text/plain
quiesceProjectModeling PUT Quiesces modeling of the automation project.
URI: /projects/{projectId}/state?value=quiescing
Response type: text/plain
Project State

Path: /projects/{projectId}/state

The state of an automation project.

### Champion Model

Path: /projects/{projectId}/championModel

The champion model of a successfully completed automation project.

Relation Method Description
championModel GET Returns the champion model report of the successfully completed automation project.
URI: /projects/{projectId}/championModel
Response type: application/vnd.sas.analytics.ml.pipeline.automation.project.champion.model
registerChampionModel PUT Registers the champion model to SAS Model Manager.
URI: /projects/{projectId}/championModel?action=register
registerChampionModel PUT Registers the champion model to supported destinations.
URI: /projects/{projectId}/championModel?action=publish&destinationName={destinationName}
scoreData POST Scores data input with the champion model.
URI: /projects/{projectId}/championModel/scoreData
Request type: application/vnd.sas.analytics.ml.pipeline.automation.score.data.input
Response type: application/vnd.sas.analytics.ml.pipeline.automation.score.data.output