Menu
AWS CodePipeline
API Reference (API Version 2015-07-09)

CreateCustomActionType

Creates a new custom action that can be used in all pipelines associated with the AWS account. Only used for custom actions.

Request Syntax

{
   "category": "string",
   "configurationProperties": [ 
      { 
         "description": "string",
         "key": boolean,
         "name": "string",
         "queryable": boolean,
         "required": boolean,
         "secret": boolean,
         "type": "string"
      }
   ],
   "inputArtifactDetails": { 
      "maximumCount": number,
      "minimumCount": number
   },
   "outputArtifactDetails": { 
      "maximumCount": number,
      "minimumCount": number
   },
   "provider": "string",
   "settings": { 
      "entityUrlTemplate": "string",
      "executionUrlTemplate": "string",
      "revisionUrlTemplate": "string",
      "thirdPartyConfigurationUrl": "string"
   },
   "version": "string"
}

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

category

The category of the custom action, such as a build action or a test action.

Note

Although Source and Approval are listed as valid values, they are not currently functional. These values are reserved for future use.

Type: String

Valid Values: Source | Build | Deploy | Test | Invoke | Approval

Required: Yes

configurationProperties

The configuration properties for the custom action.

Note

You can refer to a name in the configuration properties of the custom action within the URL templates by following the format of {Config:name}, as long as the configuration property is both required and not secret. For more information, see Create a Custom Action for a Pipeline.

Type: Array of ActionConfigurationProperty objects

Array Members: Maximum number of 10 items.

Required: No

inputArtifactDetails

The details of the input artifact for the action, such as its commit ID.

Type: ArtifactDetails object

Required: Yes

outputArtifactDetails

The details of the output artifact of the action, such as its commit ID.

Type: ArtifactDetails object

Required: Yes

provider

The provider of the service used in the custom action, such as AWS CodeDeploy.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 25.

Pattern: [0-9A-Za-z_-]+

Required: Yes

settings

Returns information about the settings for an action type.

Type: ActionTypeSettings object

Required: No

version

The version identifier of the custom action.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 9.

Pattern: [0-9A-Za-z_-]+

Required: Yes

Response Syntax

{
   "actionType": { 
      "actionConfigurationProperties": [ 
         { 
            "description": "string",
            "key": boolean,
            "name": "string",
            "queryable": boolean,
            "required": boolean,
            "secret": boolean,
            "type": "string"
         }
      ],
      "id": { 
         "category": "string",
         "owner": "string",
         "provider": "string",
         "version": "string"
      },
      "inputArtifactDetails": { 
         "maximumCount": number,
         "minimumCount": number
      },
      "outputArtifactDetails": { 
         "maximumCount": number,
         "minimumCount": number
      },
      "settings": { 
         "entityUrlTemplate": "string",
         "executionUrlTemplate": "string",
         "revisionUrlTemplate": "string",
         "thirdPartyConfigurationUrl": "string"
      }
   }
}

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

actionType

Returns information about the details of an action type.

Type: ActionType object

Errors

For information about the errors that are common to all actions, see Common Errors.

LimitExceededException

The number of pipelines associated with the AWS account has exceeded the limit allowed for the account.

HTTP Status Code: 400

ValidationException

The validation was specified in an invalid format.

HTTP Status Code: 400

Example

Sample Request

POST / HTTP/1.1
Host: codepipeline.us-east-1.amazonaws.com
Accept-Encoding: identity
Content-Length: 665
X-Amz-Target: CodePipeline_20150709.CreateCustomActionType
X-Amz-Date: 20160707T203658Z
User-Agent: aws-cli/1.7.38 Python/2.7.9 Windows/7
Content-Type: application/x-amz-json-1.1
Authorization: AWS4-HMAC-SHA256 Credential=AKIAI44QH8DHBEXAMPLE/20160707/us-east-1/codepipeline/aws4_request, SignedHeaders=content-type;host;user-agent;x-amz-date;x-amz-target, Signature=8d9b5998EXAMPLE

{
  "category": "Build",
  "settings": {
    "entityUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/",
    "executionUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/lastSuccessfulBuild/{ExternalExecutionId}/"
  },
  "configurationProperties": [
    {
      "description": "The name of the build project must be provided when this action is added to the pipeline.",
      "required": true,
      "secret": false,
      "key": true,
      "type": "String",
      "queryable": false,
      "name": "JenkinsBuildProject"
    }
  ],
  "version": "1",
  "provider": "JenkinsProviderName",
  "inputArtifactDetails": {
    "maximumCount": 1,
    "minimumCount": 0
  },
  "outputArtifactDetails": {
    "maximumCount": 1,
    "minimumCount": 0
  }
}

Sample Response

HTTP/1.1 200 OK
x-amzn-RequestId: 620484b7-88cb-11e5-b497-75c49EXAMPLE
Content-Type: application/x-amz-json-1.1
Content-Length: 683

{
  "actionType": {
    "actionConfigurationProperties": [
      {
        "description": "The name of the build project must be provided when this action is added to the pipeline.",
        "key": true,
        "name": "JenkinsBuildProject",
        "queryable": false,
        "required": true,
        "secret": false
      }
    ],
    "id": {
      "__type": "ActionTypeId",
      "category": "Build",
      "owner": "Custom",
      "provider": "JenkinsProviderName",
      "version": "1"
    },
    "inputArtifactDetails": {
      "maximumCount": 1,
      "minimumCount": 0
    },
    "outputArtifactDetails": {
      "maximumCount": 1,
      "minimumCount": 0
    },
    "settings": {
      "entityUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/",
      "executionUrlTemplate": "https://192.0.2.4/job/{Config:ProjectName}/lastSuccessfulBuild/{ExternalExecutionId}/"
    }
  }
}

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: