Skip to main content
POST
/
api
/
v1
/
apps
/
{app_id}
/
entitlements
/
{app_entitlement_id}
/
automation
/
create
CreateAutomation
package main

import(
	"context"
	"github.com/conductorone/conductorone-sdk-go/pkg/models/shared"
	conductoronesdkgo "github.com/conductorone/conductorone-sdk-go"
	"github.com/conductorone/conductorone-sdk-go/pkg/models/operations"
	"log"
)

func main() {
    ctx := context.Background()

    s := conductoronesdkgo.New(
        conductoronesdkgo.WithSecurity(shared.Security{
            BearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
            Oauth: "<YOUR_OAUTH_HERE>",
        }),
    )

    res, err := s.AppEntitlements.CreateAutomation(ctx, operations.C1APIAppV1AppEntitlementsCreateAutomationRequest{
        AppEntitlementID: "<id>",
        AppID: "<id>",
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.CreateAutomationResponse != nil {
        // handle response
    }
}
import { ConductoroneSDKTypescript } from "conductorone-sdk-typescript";

const conductoroneSDKTypescript = new ConductoroneSDKTypescript({
  security: {
    bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
    oauth: "<YOUR_OAUTH_HERE>",
  },
});

async function run() {
  const result = await conductoroneSDKTypescript.appEntitlements.createAutomation({
    appId: "<id>",
    appEntitlementId: "<id>",
  });

  console.log(result);
}

run();
curl --request POST \
  --url https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/automation/create \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "automation": {
    "basic": {
      "expression": "<string>"
    },
    "cel": {
      "expression": "<string>"
    },
    "description": "<string>",
    "displayName": "<string>",
    "entitlements": {
      "entitlementRefs": [
        {
          "appId": "<string>",
          "id": "<string>"
        }
      ]
    },
    "lastRunStatus": {},
    "none": {}
  }
}
'
import requests

url = "https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/automation/create"

payload = { "automation": {
        "basic": { "expression": "<string>" },
        "cel": { "expression": "<string>" },
        "description": "<string>",
        "displayName": "<string>",
        "entitlements": { "entitlementRefs": [
                {
                    "appId": "<string>",
                    "id": "<string>"
                }
            ] },
        "lastRunStatus": {},
        "none": {}
    } }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    automation: {
      basic: {expression: '<string>'},
      cel: {expression: '<string>'},
      description: '<string>',
      displayName: '<string>',
      entitlements: {entitlementRefs: [{appId: '<string>', id: '<string>'}]},
      lastRunStatus: {},
      none: {}
    }
  })
};

fetch('https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/automation/create', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/automation/create",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'automation' => [
        'basic' => [
                'expression' => '<string>'
        ],
        'cel' => [
                'expression' => '<string>'
        ],
        'description' => '<string>',
        'displayName' => '<string>',
        'entitlements' => [
                'entitlementRefs' => [
                                [
                                                                'appId' => '<string>',
                                                                'id' => '<string>'
                                ]
                ]
        ],
        'lastRunStatus' => [
                
        ],
        'none' => [
                
        ]
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
HttpResponse<String> response = Unirest.post("https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/automation/create")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"automation\": {\n    \"basic\": {\n      \"expression\": \"<string>\"\n    },\n    \"cel\": {\n      \"expression\": \"<string>\"\n    },\n    \"description\": \"<string>\",\n    \"displayName\": \"<string>\",\n    \"entitlements\": {\n      \"entitlementRefs\": [\n        {\n          \"appId\": \"<string>\",\n          \"id\": \"<string>\"\n        }\n      ]\n    },\n    \"lastRunStatus\": {},\n    \"none\": {}\n  }\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/entitlements/{app_entitlement_id}/automation/create")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"automation\": {\n    \"basic\": {\n      \"expression\": \"<string>\"\n    },\n    \"cel\": {\n      \"expression\": \"<string>\"\n    },\n    \"description\": \"<string>\",\n    \"displayName\": \"<string>\",\n    \"entitlements\": {\n      \"entitlementRefs\": [\n        {\n          \"appId\": \"<string>\",\n          \"id\": \"<string>\"\n        }\n      ]\n    },\n    \"lastRunStatus\": {},\n    \"none\": {}\n  }\n}"

response = http.request(request)
puts response.read_body
{
  "automation": {
    "appEntitlementId": "<string>",
    "appId": "<string>",
    "basic": {
      "expression": "<string>"
    },
    "cel": {
      "expression": "<string>"
    },
    "createdAt": "2023-11-07T05:31:56Z",
    "deletedAt": "2023-11-07T05:31:56Z",
    "description": "<string>",
    "displayName": "<string>",
    "entitlements": {
      "entitlementRefs": [
        {
          "appId": "<string>",
          "id": "<string>"
        }
      ]
    },
    "lastRunStatus": {
      "errorMessage": "<string>",
      "lastCompletedAt": "2023-11-07T05:31:56Z"
    },
    "managedByRequestCatalogId": "<string>",
    "none": {},
    "updatedAt": "2023-11-07T05:31:56Z"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Authorization
string
header
required

This API uses OAuth2 with the Client Credential flow. Client Credentials must be sent in the BODY, not the headers. For an example of how to implement this, refer to the c1TokenSource.Token() function.

Path Parameters

app_id
string
required

The ID of the app that contains the entitlement.

app_entitlement_id
string
required

The ID of the app entitlement to create an automation for.

Body

application/json

The CreateAutomationRequest message.

automation
App Entitlement Automation · object | null

The AppEntitlementAutomation message.

This message contains a oneof named conditions. Only a single field of the following list may be set at a time:

  • none
  • entitlements
  • cel
  • basic

Response

200 - application/json

Successful response

The CreateAutomationResponse message.

automation
App Entitlement Automation · object | null

The AppEntitlementAutomation message.

This message contains a oneof named conditions. Only a single field of the following list may be set at a time:

  • none
  • entitlements
  • cel
  • basic