Automated Machine Learning
Machine Learning Pipeline Automation
Base URLs:
- https://example.com/mlPipelineAutomation
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:
- executes data pre-processing steps (including optimal transformations and imputations, variable selection and feature engineering)
- generates data analysis pipelines
- trains algorithms
- optimizes models that can be used to predict outcomes or support business decisions
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)
Analytics project attributes, grouped under "analyticsProjectAttributes"
- Analytics project ID (automatically created by the service, read-only)
- Target variable
- Target event level
- classSelectionStatistic (a string to indicate class selection statistic, dependent upon the type of target variable. For 'BINARY' and 'NOMINAL' target variable types, the accepted values are listed below, where the default is set to 'ks'. The 'ORDINAL' target variable type is not supported.)
- ase: Average squared error
- c: Area under curve (C statistic)
- capturedResponse: Captured response
- cumulativeCapturedResponse: Cumulative captured response
- cumulativeLift: Cumulative lift
- f1: F1 score
- fdr: False discovery rate
- fpr: False positive rate
- gain: Gain
- gini: Gini
- ks: Kolmogorov-Smirnov statistic
- lift: Lift
- misclassificationEvent: Misclassification (Event)
- mce: Misclassification (MCE)
- mcll: Multiclass log loss
- ks2: ROC separation
- rase: Root average squared error
- misclassificationRateCutoff: Misclassification at cutoff
- intervalSelectionStatistic (a string to indicate interval selection statistic, dependent upon the type of target variable. For 'INTERVAL' target variable types, the accepted values are listed below, where the default is set to 'ase'. This field is ignored for all other types, like 'BINARY', 'NOMINAL', or 'ORDINAL'.)
- ase: Average squared error
- rase: Root average squared error
- rmae: Root mean absolute error
- rmsle: Root mean squared logarithmic error
- Partition enabled flag
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.
Get a collection of all currently usable links
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"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The request succeeded. | Inline |
Response Schema
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 |
»»»»»» 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.
Link Relations
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.
Link Relations
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.
Link Relations
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.
Link Relations
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 |