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

Automated Machine Learning

Machine Learning Pipeline Automation

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

Base URLs:

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

Return all automation projects

Code samples

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

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('//www.example.com/mlPipelineAutomation/projects', params={

}, 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", "//www.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
Parameter 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

200

{
  "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,
        "cutoffPercentage": 50,
        "numberOfCutoffValues": 20,
        "samplingEnabled": "auto",
        "samplingPercentage": 50
      },
      "dataTableUri": "string",
      "description": "string",
      "id": "string",
      "name": "string",
      "revision": 0,
      "settings": {
        "version": 1,
        "description": "string",
        "label": "string",
        "attributes": {
          "property1": {},
          "property2": {}
        },
        "links": [
          {
            "method": "string",
            "rel": "string",
            "uri": "string",
            "href": "string",
            "title": "string",
            "type": "string",
            "itemType": "string",
            "responseType": "string",
            "responseItemType": "string"
          }
        ]
      },
      "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"
        }
      ]
    }
  ]
}
Responses
Status Meaning Description Schema
200 OK The request succeeded. mlPipelineAutomationProjectCollection
400 Bad Request The request was invalid. error2

Create an automation project

Code samples

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

var headers = {
  'Content-Type':'application/vnd.sas.analytics.ml.pipeline.automation.project+json',
  'Accept':'application/vnd.sas.analytics.ml.pipeline.automation.project+json'

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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('//www.example.com/mlPipelineAutomation/projects', params={

}, 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", "//www.example.com/mlPipelineAutomation/projects", data)
    req.Header = headers

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

POST /projects

The endpoint to create a new AutomationProject.

Body parameter

{
  "analyticsProjectAttributes": {
    "targetVariable": "string",
    "targetEventLevel": "string",
    "intervalSelectionStatistic": "ase",
    "classSelectionStatistic": "ks",
    "selectionDepth": 10,
    "selectionPartition": "test",
    "partitionEnabled": true,
    "cutoffPercentage": 50,
    "numberOfCutoffValues": 20,
    "samplingEnabled": "auto",
    "samplingPercentage": 50
  },
  "dataTableUri": "string",
  "description": "string",
  "name": "string",
  "revision": 0,
  "settings": {
    "version": 1,
    "description": "string",
    "label": "string",
    "attributes": {
      "property1": {},
      "property2": {}
    },
    "links": [
      {
        "method": "string",
        "rel": "string",
        "uri": "string",
        "href": "string",
        "title": "string",
        "type": "string",
        "itemType": "string",
        "responseType": "string",
        "responseItemType": "string"
      }
    ]
  },
  "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"
    }
  ]
}
Parameters
Parameter In Type Required Description
body body mlPipelineAutomationProject true project

Example responses

202

{
  "analyticsProjectAttributes": {
    "analyticsProjectId": "string",
    "targetVariable": "string",
    "targetEventLevel": "string",
    "intervalSelectionStatistic": "ase",
    "classSelectionStatistic": "ks",
    "selectionDepth": 10,
    "selectionPartition": "test",
    "partitionEnabled": true,
    "cutoffPercentage": 50,
    "numberOfCutoffValues": 20,
    "samplingEnabled": "auto",
    "samplingPercentage": 50
  },
  "dataTableUri": "string",
  "description": "string",
  "id": "string",
  "name": "string",
  "revision": 0,
  "settings": {
    "version": 1,
    "description": "string",
    "label": "string",
    "attributes": {
      "property1": {},
      "property2": {}
    },
    "links": [
      {
        "method": "string",
        "rel": "string",
        "uri": "string",
        "href": "string",
        "title": "string",
        "type": "string",
        "itemType": "string",
        "responseType": "string",
        "responseItemType": "string"
      }
    ]
  },
  "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"
    }
  ]
}
Responses
Status Meaning Description Schema
202 Accepted The request is accepted. mlPipelineAutomationProject
400 Bad Request One or more parameters were invalid. error2
Response Headers
Status Header Type Format Description
202 ETag string E-Tag for response.
202 Location string Location of the automation project.

Get an automation project

Code samples

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

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

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects/{projectId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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

r = requests.get('//www.example.com/mlPipelineAutomation/projects/{projectId}', params={

}, 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", "//www.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
Parameter In Type Required Description
projectId path string true projectId

Example responses

200

{
  "analyticsProjectAttributes": {
    "analyticsProjectId": "string",
    "targetVariable": "string",
    "targetEventLevel": "string",
    "intervalSelectionStatistic": "ase",
    "classSelectionStatistic": "ks",
    "selectionDepth": 10,
    "selectionPartition": "test",
    "partitionEnabled": true,
    "cutoffPercentage": 50,
    "numberOfCutoffValues": 20,
    "samplingEnabled": "auto",
    "samplingPercentage": 50
  },
  "dataTableUri": "string",
  "description": "string",
  "id": "string",
  "name": "string",
  "revision": 0,
  "settings": {
    "version": 1,
    "description": "string",
    "label": "string",
    "attributes": {
      "property1": {},
      "property2": {}
    },
    "links": [
      {
        "method": "string",
        "rel": "string",
        "uri": "string",
        "href": "string",
        "title": "string",
        "type": "string",
        "itemType": "string",
        "responseType": "string",
        "responseItemType": "string"
      }
    ]
  },
  "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"
    }
  ]
}
Responses
Status Meaning Description Schema
200 OK The request succeeded. mlPipelineAutomationProject
400 Bad Request One or more parameters were invalid. error2
404 Not Found No project with the provided ID was found. error2
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 //www.example.com/mlPipelineAutomation/projects/{projectId} \
  -H 'Content-Type: application/vnd.sas.analytics.ml.pipeline.automation.project+json' \
  -H 'Authorization: Bearer <access-token-goes-here>' \ 
  -H 'Accept: application/vnd.sas.analytics.ml.pipeline.automation.project+json' \
  -H 'If-Match: string'

var 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'

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects/{projectId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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('//www.example.com/mlPipelineAutomation/projects/{projectId}', params={

}, 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", "//www.example.com/mlPipelineAutomation/projects/{projectId}", data)
    req.Header = headers

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

PUT /projects/{projectId}

Update the automation project with the ID from the path.

Body parameter

{
  "analyticsProjectAttributes": {
    "targetVariable": "string",
    "targetEventLevel": "string",
    "intervalSelectionStatistic": "ase",
    "classSelectionStatistic": "ks",
    "selectionDepth": 10,
    "selectionPartition": "test",
    "partitionEnabled": true,
    "cutoffPercentage": 50,
    "numberOfCutoffValues": 20,
    "samplingEnabled": "auto",
    "samplingPercentage": 50
  },
  "dataTableUri": "string",
  "description": "string",
  "name": "string",
  "revision": 0,
  "settings": {
    "version": 1,
    "description": "string",
    "label": "string",
    "attributes": {
      "property1": {},
      "property2": {}
    },
    "links": [
      {
        "method": "string",
        "rel": "string",
        "uri": "string",
        "href": "string",
        "title": "string",
        "type": "string",
        "itemType": "string",
        "responseType": "string",
        "responseItemType": "string"
      }
    ]
  },
  "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"
    }
  ]
}
Parameters
Parameter In Type Required Description
projectId path string true projectId
If-Match header string true If-Match
body body mlPipelineAutomationProject true project

Example responses

200

{
  "analyticsProjectAttributes": {
    "analyticsProjectId": "string",
    "targetVariable": "string",
    "targetEventLevel": "string",
    "intervalSelectionStatistic": "ase",
    "classSelectionStatistic": "ks",
    "selectionDepth": 10,
    "selectionPartition": "test",
    "partitionEnabled": true,
    "cutoffPercentage": 50,
    "numberOfCutoffValues": 20,
    "samplingEnabled": "auto",
    "samplingPercentage": 50
  },
  "dataTableUri": "string",
  "description": "string",
  "id": "string",
  "name": "string",
  "revision": 0,
  "settings": {
    "version": 1,
    "description": "string",
    "label": "string",
    "attributes": {
      "property1": {},
      "property2": {}
    },
    "links": [
      {
        "method": "string",
        "rel": "string",
        "uri": "string",
        "href": "string",
        "title": "string",
        "type": "string",
        "itemType": "string",
        "responseType": "string",
        "responseItemType": "string"
      }
    ]
  },
  "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"
    }
  ]
}
Responses
Status Meaning Description Schema
200 OK The automation project was updated. mlPipelineAutomationProject
400 Bad Request One or more parameters were invalid. error2
404 Not Found No automation project with the provided entity ID was found. error2
412 Precondition Failed The value supplied in the If-Match header did not match the expected value. error2
428 Precondition Required An If-Match header was not supplied on the update request. error2
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 //www.example.com/mlPipelineAutomation/projects/{projectId}


$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects/{projectId}',
  method: 'delete',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

import requests

r = requests.delete('//www.example.com/mlPipelineAutomation/projects/{projectId}', params={

)

print r.json()

package main

import (
       "bytes"
       "net/http"
)

func main() {

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

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

DELETE /projects/{projectId}

The endpoint to delete an automation project specified by an ID.

Parameters
Parameter 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 //www.example.com/mlPipelineAutomation/projects/{projectId}#retrainProject?action=retrainProject \
  -H 'Content-Type: application/vnd.sas.analytics.ml.pipeline.automation.project+json' \
  -H 'Authorization: Bearer <access-token-goes-here>' \ 
  -H 'Accept: application/vnd.sas.analytics.ml.pipeline.automation.project+json' \
  -H 'If-Match: string'

var 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'

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects/{projectId}#retrainProject',
  method: 'put',
  data: '?action=retrainProject',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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('//www.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", "//www.example.com/mlPipelineAutomation/projects/{projectId}#retrainProject", data)
    req.Header = headers

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

PUT /projects/{projectId}#retrainProject

Retrain the automation project with the ID from the path.

Body parameter

{
  "analyticsProjectAttributes": {
    "targetVariable": "string",
    "targetEventLevel": "string",
    "intervalSelectionStatistic": "ase",
    "classSelectionStatistic": "ks",
    "selectionDepth": 10,
    "selectionPartition": "test",
    "partitionEnabled": true,
    "cutoffPercentage": 50,
    "numberOfCutoffValues": 20,
    "samplingEnabled": "auto",
    "samplingPercentage": 50
  },
  "dataTableUri": "string",
  "description": "string",
  "name": "string",
  "revision": 0,
  "settings": {
    "version": 1,
    "description": "string",
    "label": "string",
    "attributes": {
      "property1": {},
      "property2": {}
    },
    "links": [
      {
        "method": "string",
        "rel": "string",
        "uri": "string",
        "href": "string",
        "title": "string",
        "type": "string",
        "itemType": "string",
        "responseType": "string",
        "responseItemType": "string"
      }
    ]
  },
  "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"
    }
  ]
}
Parameters
Parameter 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

202

{
  "analyticsProjectAttributes": {
    "analyticsProjectId": "string",
    "targetVariable": "string",
    "targetEventLevel": "string",
    "intervalSelectionStatistic": "ase",
    "classSelectionStatistic": "ks",
    "selectionDepth": 10,
    "selectionPartition": "test",
    "partitionEnabled": true,
    "cutoffPercentage": 50,
    "numberOfCutoffValues": 20,
    "samplingEnabled": "auto",
    "samplingPercentage": 50
  },
  "dataTableUri": "string",
  "description": "string",
  "id": "string",
  "name": "string",
  "revision": 0,
  "settings": {
    "version": 1,
    "description": "string",
    "label": "string",
    "attributes": {
      "property1": {},
      "property2": {}
    },
    "links": [
      {
        "method": "string",
        "rel": "string",
        "uri": "string",
        "href": "string",
        "title": "string",
        "type": "string",
        "itemType": "string",
        "responseType": "string",
        "responseItemType": "string"
      }
    ]
  },
  "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"
    }
  ]
}
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. error2
404 Not Found No automation project with the provided entity ID was found. error2
412 Precondition Failed The value supplied in the If-Match header did not match the expected value. error2
428 Precondition Required An If-Match header was not supplied on the update request. error2
Response Headers
Status Header Type Format Description
202 ETag string E-Tag for response.

Get champion model information of an automation project

Code samples

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

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects/{projectId}/championModel',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('//www.example.com/mlPipelineAutomation/projects/{projectId}/championModel', params={

}, 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", "//www.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
Parameter In Type Required Description
projectId path string true projectId
reports query array[string] false List of reports to be returned

Example responses

200

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

Register or publish the champion model of the automation project

Code samples

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

var headers = {
  'Accept':'*/*'

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects/{projectId}/championModel',
  method: 'put',
  data: '?action=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

import requests
headers = {
  'Accept': '*/*'
}

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

print r.json()

package main

import (
       "bytes"
       "net/http"
)

func main() {

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

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "//www.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
Parameter In Type Required Description
projectId path string true projectId
action query string true The action applied to champion model, for example, register or publish.
destinationName query string false The destination of register or publish action. Optional for register but required for publish.

Example responses

400

Responses
Status Meaning Description Schema
201 Created The specified action was performed on the champion model. None
400 Bad Request The action is not supported. error2
404 Not Found No automation project with the provided entity ID or its champion model was found. error2

Score data with the champion model of the automation project

Code samples

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

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects/{projectId}/championModel/scoreData',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('//www.example.com/mlPipelineAutomation/projects/{projectId}/championModel/scoreData', params={

}, 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", "//www.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

{
  "scoreType": "Individual",
  "destinationName": "string",
  "inputs": [
    {
      "name": "string",
      "value": "string"
    }
  ],
  "inputDataTableUri": "string"
}
Parameters
Parameter In Type Required Description
projectId path string true The automation project ID
body body scoreDataInput true The score data input

Example responses

200

{
  "executionState": "completed",
  "outputs": [
    {
      "name": "string",
      "value": "string"
    }
  ]
}
Responses
Status Meaning Description Schema
200 OK The request succeeded. scoreDataOutput
400 Bad Request The request cannot be processed. error2
404 Not Found Any of the required resources could not be found, for instance, automation project, analytics project, or champion model. This error condition could also happen if the champion model was not published to the supported destination. error2

Get current state of an automation project

Code samples

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

var headers = {
  'Accept':'text/plain'

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects/{projectId}/state',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

import requests
headers = {
  'Accept': 'text/plain'
}

r = requests.get('//www.example.com/mlPipelineAutomation/projects/{projectId}/state', params={

}, 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", "//www.example.com/mlPipelineAutomation/projects/{projectId}/state", data)
    req.Header = headers

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

GET /projects/{projectId}/state

The endpoint to get current state of an automation project specified by an ID.

Parameters
Parameter In Type Required Description
projectId path string true projectId

Example responses

200

Responses
Status Meaning Description Schema
200 OK The request succeeded. automationProjectState
400 Bad Request One or more parameters were invalid. error2
404 Not Found No project with the provided ID was found. error2

Update state of the specified automation project

Code samples

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

var headers = {
  'Accept':'text/plain'

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/projects/{projectId}/state',
  method: 'put',
  data: '?value=pending',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

import requests
headers = {
  'Accept': 'text/plain'
}

r = requests.put('//www.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"},

    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "//www.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
Parameter In Type Required Description
projectId path string true projectId
value query string true Intended automation project state. One of the enums [pending, waiting, ready, modeling, constructingPipeline, runningPipeline, quiescing, quiesced, completed, canceled, failed].
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

Responses
Status Meaning Description Schema
202 Accepted The state of automation project was updated. automationProjectState
400 Bad Request One or more parameters were invalid. error2
404 Not Found No automation project with the provided entity ID was found. error2
409 Conflict Transition from current to desired state is not permitted. error2

Code samples

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

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: '//www.example.com/mlPipelineAutomation/',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('//www.example.com/mlPipelineAutomation/', params={

}, 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", "//www.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

200

{
  "version": 1,
  "links": [
    {
      "method": "string",
      "rel": "string",
      "uri": "string",
      "href": "string",
      "title": "string",
      "type": "string",
      "itemType": "string",
      "responseType": "string",
      "responseItemType": "string"
    }
  ]
}
Status Meaning Description Schema
200 OK The request succeeded. Inline

Schemas

automationProjectState

Properties

Automation Project State

Name Type Required Description
Automation Project State string false Automation Project state. One of the enums [pending, waiting, ready, modeling, constructingPipeline, runningPipeline, quiescing, quiesced, completed, canceled, failed].
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

Properties

Analytics Project Attributes

Name Type Required Description
analyticsProjectId string false Analytics project ID.
targetVariable string true Target variable.
targetEventLevel string false Target event level.
intervalSelectionStatistic string false Interval selection statistic.
classSelectionStatistic string false Class selection statistic.
selectionDepth string false Selection depth.
selectionPartition string false Selection partition.
partitionEnabled boolean false Flag to indicate whether partition should be enabled.
cutoffPercentage string false Cutoff percentage
numberOfCutoffValues string false Number of cutoff values
samplingEnabled string false Sampling strategy
samplingPercentage number false Sampling percentage. Valid range is 1 to 99.
Enumerated Values
Property Value
intervalSelectionStatistic ase
intervalSelectionStatistic rase
intervalSelectionStatistic rmae
intervalSelectionStatistic rmsle
classSelectionStatistic ase
classSelectionStatistic c
classSelectionStatistic capturedResponse
classSelectionStatistic cumulativeCapturedResponse
classSelectionStatistic cumulativeLift
classSelectionStatistic f1
classSelectionStatistic fdr
classSelectionStatistic fpr
classSelectionStatistic gain
classSelectionStatistic gini
classSelectionStatistic ks
classSelectionStatistic lift
classSelectionStatistic misclassificationEvent
classSelectionStatistic mce
classSelectionStatistic mcll
classSelectionStatistic ks2
classSelectionStatistic rase
classSelectionStatistic misclassificationRateCutoff
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

Properties

Machine Learning Pipeline Automation Project Collection

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

allOf

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

and

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

mlPipelineAutomationProject

Properties

Machine Learning Pipeline Automation Project

Name Type Required Description
analyticsProjectAttributes analyticsProjectAttributes true Attributes of the underlying analytics project
dataTableUri string true Data table URI
description string false Description of the automation project
id string false ID of the automation project
name string true Name of the automation project
revision integer(int64) false Revision of the automation project instance
settings object false Contains a set of attributes in the form of a map from string names to arbitrary values. The values may be strings, numbers, booleans, arrays, objects or null. For simple collections of string to string properties, see application/vnd.sas.properties
» version integer true The version number of the API representation. This is version 1.
» description string false A description of the set of attributes.
» label string false A brief description or label for the set of attributes.
» attributes object true The map of attribute names to values. The set of names is open, though individual services may define a closed set needed for a given resource in that service. The value of each attribute may be of types: number, string, boolean, array, or object. Although property this is required, the mapping object can be empty, unless stated otherwise by specific documentation for resources where the application/vnd.sas.attributes type is used.
»» additionalProperties object false
» links [link] true Links to associated resources and operations. APIs may provide links for the link relations self',update(to replace the attributes),patch` (to update some attributes) or others.
state automationProjectState false Automation project state
type string true Automation project type
pipelineBuildMethod string false The method used to generate the project pipeline
version integer(int32) false Version of the resource
championModel championModel false Champion model of the automation project
links [any] true The links that apply to this automation project
» Link object false A link to a related operation or resource.
»» method string false The HTTP method for the link.
»» rel string true The relationship of the link to the resource.
»» uri string false The relative URI for the link.
»» href string false The URL for the link.
»» title string false The title for the link.
»» type string false The media type or link type for the link.
»» itemType string false 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 The media type or link type of the response body for a PUT, POST, or PATCH operation.
»» responseItemType string false 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

Properties

Report Collection

allOf

Name Type Required Description
anonymous mlPipelineAutomationProjectCollection false 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 Description
anonymous object false
» items [any] false The list of reports
»» Analytics Report object false An analytics report consisting of rows of data and associated metadata (parameters).
»»» id string false The unique identifier of this analytics report.
»»» data [any] true The rows of data.
»»»» Data Row object false A row of data.
»»»»» dataMap object true Map of parameter name to associated value.
»»»»» header string false Optional title. May be localized.
»»»»» rowNumber integer(int32) true The index of this row in the collection.
»»»» links [link] false [A link to a related operation or resource.]
»»»» parameterMap object true The collection of parameters, categorized by parameter name.
»»»»» Parameter object false Metadata describing a particular variable.
»»»»»» label string false The display name. May be localized.
»»»»»» length integer(int32) false The maximum width among this parameter's values.
»»»»»» order integer(int32) false The index of this parameter in the collection.
»»»»»» parameter string true The parameter name. Should not be localized.
»»»»»» preformatted boolean false Indicates whether this parameter's values have already been formatted.
»»»»»» type string true The data type of this parameter's values.
»»»»»» values [string] true Keys used to associate this parameter with values in the rows of data.
»»»»» order integer(int32) false 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 The type of analytics report. Informs clients how this analytics report should be rendered.
»»»»» xInteger boolean false Whether or not to suppress intermediate tick marks on the X-axis.
»»»»» yInteger boolean false Whether or not to suppress intermediate tick marks on the Y-axis.
»»»»» version integer(int32) false This media type's schema version number. This representation is version 1.
»»»»» description string false A description of this analytics report.
»»»»» revision integer(int64) false 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

Properties

Champion Model

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

publishDestination

Properties

Publish Destination

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

scoreDataInput

Properties

Score Data Input

Name Type Required Description
scoreType string true Score type, either 'Individual' or 'Bulk'.
destinationName string true Name of the destination where the champion model is published.
inputs [scoreDataFieldValue] false Data inputs for individual data scoring.
inputDataTableUri string false Input data table URI for bulk data scoring.
Enumerated Values
Property Value
scoreType Individual
scoreType Bulk

scoreDataOutput

Properties

Score Data Output

Name Type Required Description
executionState string true Execution state, one of 'completed', 'submitted', or 'timedOut'.
outputs [scoreDataFieldValue] true Data outputs for individual data scoring.
Enumerated Values
Property Value
executionState completed
executionState submitted
executionState timedOut

scoreDataFieldValue

Properties

Score Data Field Name/Value Pair

Name Type Required Description
name string true Data field name.
value string true Data field value.

error2

Properties

Error

Name Type Required Description
message string false The message for the error.
id string false The string ID for the error.
errorCode integer false The numeric ID for the error.
httpStatusCode integer true The HTTP status code for the error.
details [string] false Messages that provide additional details about the cause of the error.
remediation string false A message that describes how to resolve the error.
errors [error2] false Any additional errors that occurred.
links [link] false The links that apply to the error.
version integer true The version number of the error representation. This representation is version 2.

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 } ] }

Resource Reference

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