System Initiative Public API
This is the API spec for the System Initiative Public API. All endpoints require a workspace scoped API token for the workspace to interact with.
root
Root API endpoints
system_status_route
Request format
GET /
Example responses
200 Response
{
"API Documentation": "Available at /swagger-ui"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | System status information | SystemStatusResponse |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 503 | Service Unavailable | Service in maintenance mode | None |
whoami
User identity endpoints
whoami
Request format
GET /whoami
Example responses
200 Response
{
"token": {},
"userEmail": "user@example.com",
"userId": "01H9ZQCBJ3E7HBTRN3J58JQX8K",
"workspaceId": "01H9ZQD35JPMBGHH69BT0Q79VY"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successfully retrieved user information | WhoamiResponse |
| 401 | Unauthorized | Unauthorized - Invalid or expired token | None |
| 403 | Forbidden | Forbidden - Insufficient permissions | None |
change_sets
Change Set management endpoints
List all active Change Sets
Request format
GET /v1/w/{workspace_id}/change-sets
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
Example responses
200 Response
{
"changeSets": "[{\"id\":\"01H9ZQD35JPMBGHH69BT0Q79VY\",\"name\":\"Add new feature\",\"status\":\"Open\",\"isHead\": \"false\"},{\"id\":\"01H9ZQE356JPMBGHH69BT0Q70UO\",\"name\":\"HEAD\",\"status\":\"Open\", \"isHead\": \"true\"}]"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Change Sets listed successfully | ListChangeSetV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Create a Change Set
Request format
POST /v1/w/{workspace_id}/change-sets
Body parameter
{
"changeSetName": "My new feature"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| body | body | CreateChangeSetV1Request | true | none |
Example responses
200 Response
{
"changeSet": {
"id": "string",
"isHead": true,
"name": "string",
"status": "string"
}
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Change Set created successfully | CreateChangeSetV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 422 | Unprocessable Entity | Validation error - Invalid request data | ApiError |
| 500 | Internal Server Error | Internal server error | ApiError |
Abandon all active Change Sets
Request format
POST /v1/w/{workspace_id}/change-sets/purge_open
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
Example responses
200 Response
{
"success": {
"success": "true"
}
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Change Sets purged successfully | PurgeOpenChangeSetsV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Get a Change Set by Change Set Id
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
Example responses
200 Response
{
"changeSet": {
"id": "string",
"isHead": true,
"name": "string",
"status": "string"
}
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Change details retrieved successfully | GetChangeSetV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Change Set not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Delete a Change Set
Request format
DELETE /v1/w/{workspace_id}/change-sets/{change_set_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
Example responses
200 Response
{
"success": "true"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Change Set deleted successfully | DeleteChangeSetV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Merge Change Set without approval
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/force_apply
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
Example responses
200 Response
{
"success": "true"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Change Set force applied successfully | ForceApplyChangeSetV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 428 | Precondition Required | DVU Roots still exist, apply must be tried again later. | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Get Change Set post merge status
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/merge_status
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
Example responses
200 Response
{
"changeSet": {
"id": "01FXNV4P306V3KGZ73YSVN8A60",
"name": "My feature",
"status": "Ready"
},
"actions": [
{
"id": "01H9ZQD35JPMBGHH69BT0Q79VY",
"component": {
"id": "01H9ZQD35JPMBGHH69BT0Q79AB",
"name": "my-ec2-instance"
},
"state": "Pending",
"kind": "Create",
"name": "Create EC2 Instance"
}
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Change Set merge status retrieved successfully | MergeStatusV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Request Change Set merge approval
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/request_approval
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
Example responses
200 Response
{
"success": "true"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Change Set approval requested successfully | RequestApprovalChangeSetV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
components
Components management endpoints
List all components
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/components
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| limit | query | string | false | Maximum number of results to return (default: 50, max: 300) |
| cursor | query | string | false | Cursor for pagination (ComponentId of the last item from previous page) |
| includeCodegen | query | boolean | false | Allow returning the codegen for the cloudformation template for the component (if it exists) |
Example responses
200 Response
{
"componentDetails": [
{
"component_id": "01H9ZQD35JPMBGHH69BT0Q79AA",
"name": "my-vpc",
"schema_name": "AWS::EC2::VPC"
},
{
"component_id": "01H9ZQD35JPMBGHH69BT0Q79BB",
"name": "Public 1",
"schema_name": "AWS::EC2::Subnet"
}
],
"nextCursor": null
}500 Response
{
"message": "Invalid request data",
"statusCode": 422,
"code": 4001
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Components retrieved successfully | ListComponentsV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Create a component
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components
Body parameter
{
"attributes": {
"/domain/VpcId": {
"$source": {
"component": "01K0WRC69ZPEMD6SMTKC84FBWC",
"path": "/resource_value/VpcId"
}
},
"/domain/SubnetId": {
"$source": {
"component": "01K0WRC69ZPEMD6SMTKC84FBWD",
"path": "/resource_value/SubnetId"
}
},
"/domain/Version": {
"$source": null
}
},
"managedBy": {
"component": "ComponentName"
},
"name": "MyComponentName",
"resourceId": "i-12345678",
"schemaName": "AWS::EC2::Instance",
"useWorkingCopy": true,
"viewName": "MyView"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| body | body | CreateComponentV1Request | true | none |
Example responses
200 Response
{
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
}
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Component created successfully | CreateComponentV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component not found | None |
| 412 | Precondition Failed | Precondition Failed - View not found | ApiError |
| 422 | Unprocessable Entity | Validation error - Invalid request data | ApiError |
| 500 | Internal Server Error | Internal server error | ApiError |
Add components to a view
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components/add_to_view
Adds multiple components to a view by name. If the view doesn't exist, it will be created automatically.
Body parameter
{
"componentIds": [
"string"
],
"viewName": "string"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| body | body | AddToViewV1Request | true | none |
Example responses
409 Response
{
"message": "Invalid request data",
"statusCode": 422,
"code": 4001
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Components added to view successfully | None |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 409 | Conflict | Conflict - Changes not permitted on HEAD change set | ApiError |
| 422 | Unprocessable Entity | Validation error - Invalid request data | ApiError |
| 500 | Internal Server Error | Internal server error | ApiError |
Duplicate a list of components
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components/duplicate
Body parameter
{
"components": [
"01H9ZQD35JPMBGHH69BT0Q79AA",
"01H9ZQD35JPMBGHH69BT0Q79BB",
"01H9ZQD35JPMBGHH69BT0Q79CC"
],
"prefix": "copy-of-",
"viewName": "MyView"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| body | body | DuplicateComponentsV1Request | true | none |
Example responses
200 Response
{
"components": [
"01H9ZQD35JPMBGHH69BT0Q79AA",
"01H9ZQD35JPMBGHH69BT0Q79BB",
"01H9ZQD35JPMBGHH69BT0Q79CC"
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Components duplicated successfully | DuplicateComponentsV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Find a component by name or component Id
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/components/find
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| component | query | string,null | false | none |
| componentId | query | string,null | false | none |
Example responses
200 Response
{
"actionFunctions": [
{
"prototypeId": "01HAXYZF3GC9CYA6ZVSM3E4YGG",
"funcName": "Terminate Instance"
}
],
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
},
"managementFunctions": [
{
"managementPrototypeId": "01HAXYZF3GC9CYA6ZVSM3E4YFF",
"funcName": "Start Instance"
}
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Component retrieved successfully | GetComponentV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Generate a template
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components/generate_template
Body parameter
{
"assetName": "My Cool Template",
"category": "Templates",
"componentIds": [
"01H9ZQD35JPMBGHH69BT0Q79AA",
"01H9ZQD35JPMBGHH69BT0Q79BB",
"01H9ZQD35JPMBGHH69BT0Q79CC"
],
"funcName": "Generate My Template"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| body | body | GenerateTemplateV1Request | true | none |
Example responses
200 Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79CC",
"schemaId": "01H9ZQD35JPMBGHH69BT0Q79AA",
"schemaVariantId": "01H9ZQD35JPMBGHH69BT0Q79BB"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Template generated successfully | GenerateTemplateV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Complex search for components
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components/search
Body parameter
{
"queryString": "string",
"schemaCategory": "AWS::EC2",
"schemaName": "AWS::EC2::Instance",
"upgradable": true
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| body | body | SearchComponentsV1Request | true | none |
Example responses
200 Response
{
"components": [
"01H9ZQD35JPMBGHH69BT0Q79AA",
"01H9ZQD35JPMBGHH69BT0Q79BB",
"01H9ZQD35JPMBGHH69BT0Q79CC"
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Components retrieved successfully | SearchComponentsV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Get a component by component Id
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/components/{component_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| component_id | path | string | true | Component identifier |
Example responses
200 Response
{
"actionFunctions": [
{
"prototypeId": "01HAXYZF3GC9CYA6ZVSM3E4YGG",
"funcName": "Terminate Instance"
}
],
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
},
"managementFunctions": [
{
"managementPrototypeId": "01HAXYZF3GC9CYA6ZVSM3E4YFF",
"funcName": "Start Instance"
}
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Component retrieved successfully | GetComponentV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Update a component
Request format
PUT /v1/w/{workspace_id}/change-sets/{change_set_id}/components/{component_id}
Body parameter
{
"attributes": {
"/domain/VpcId": {
"$source": {
"component": "01K0WRC69ZPEMD6SMTKC84FBWC",
"path": "/resource_value/VpcId"
}
},
"/domain/SubnetId": {
"$source": {
"component": "01K0WRC69ZPEMD6SMTKC84FBWD",
"path": "/resource_value/SubnetId"
}
},
"/domain/Version": {
"$source": null
}
},
"name": "MyUpdatedComponentName",
"resourceId": "i-12345678",
"secrets": {
"secretDefinitionName": "secretName"
}
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| component_id | path | string | true | Component identifier |
| body | body | UpdateComponentV1Request | true | none |
Example responses
200 Response
{
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
}
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Component updated successfully | UpdateComponentV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component not found | None |
| 412 | Precondition Failed | Precondition failed - Duplicate component name | None |
| 422 | Unprocessable Entity | Validation error - Invalid request data | ApiError |
| 500 | Internal Server Error | Internal server error | ApiError |
Delete a component
Request format
DELETE /v1/w/{workspace_id}/change-sets/{change_set_id}/components/{component_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| component_id | path | string | true | Component identifier |
Example responses
200 Response
{
"status": "MarkedForDeletion"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Component deleted successfully | DeleteComponentV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Queue action for a component
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components/{component_id}/action
Body parameter
{
"action": {
"function": "Create Asset"
}
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| component_id | path | string | true | Component identifier |
| body | body | AddActionV1Request | true | none |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Action successfully queued | AddActionV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component or function not found | None |
| 409 | Conflict | action already enqueued | ApiError |
| 412 | Precondition Failed | Precondition Failed - View not found or duplicate function name | ApiError |
| 422 | Unprocessable Entity | Validation error - Invalid request data | ApiError |
| 500 | Internal Server Error | Internal server error | ApiError |
Erase a component without queuing a delete action
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components/{component_id}/erase
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| component_id | path | string | true | Component identifier |
Example responses
200 Response
{
"status": "true"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Component erased successfully | EraseComponentV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Execute a component's management function
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components/{component_id}/execute-management-function
Body parameter
{
"viewName": "MyViewName",
"managementFunction": {
"function": "CreateVpc"
}
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| component_id | path | string | true | Component identifier |
| body | body | ExecuteManagementFunctionV1Request | true | none |
Example responses
200 Response
{
"funcRunId": "string",
"managementFuncJobStateId": "01H9ZQD35JPMBGHH69BT0Q79VY",
"message": "enqueued",
"status": "Ok"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Function successfully dispatched | ExecuteManagementFunctionV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component or function not found | None |
| 412 | Precondition Failed | Precondition Failed - View not found or duplicate function name | ApiError |
| 422 | Unprocessable Entity | Validation error - Invalid request data | ApiError |
| 500 | Internal Server Error | Internal server error | ApiError |
Putting a component under the management of another component
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components/{component_id}/manage
Body parameter
{
"componentId": "string"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| component_id | path | string | true | Component identifier |
| body | body | ManageComponentV1Request | true | none |
Example responses
200 Response
{
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
}
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Component successfully under management | ManageComponentV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Restore a component that is marked for deletion
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components/{component_id}/restore
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| component_id | path | string | true | Component identifier |
Example responses
200 Response
{
"status": "true"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Component restored successfully | RestoreComponentV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component not found | None |
| 412 | Precondition Failed | Component not marked for deletion | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Upgrade a component to the latest schema variant
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/components/{component_id}/upgrade
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| component_id | path | string | true | Component identifier |
Example responses
200 Response
{
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
}
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Component successfully upgraded | UpgradeComponentV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Component not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
schemas
Schemas management endpoints
List all schemas (paginated endpoint)
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| limit | query | string | false | Maximum number of results to return (default: 50, max: 300) |
| cursor | query | string | false | Cursor for pagination (SchemaId of the last item from previous page) |
Example responses
200 Response
{
"nextCursor": "string",
"schemas": [
{
"category": "AWS::EC2",
"installed": "false",
"schemaId": "01H9ZQD35JPMBGHH69BT0Q79VY",
"schemaName": "AWS::EC2::Instance"
}
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Schemas listed successfully | ListSchemaV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Create a schema and it's default variant
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas
Body parameter
{
"category": "string",
"code": "string",
"color": "string",
"description": "string",
"link": "string",
"name": "string"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| body | body | CreateSchemaV1Request | true | none |
Example responses
200 Response
{
"defaultVariantId": "01H9ZQD35JPMBGHH69BT0Q79VZ",
"name": "AWS::EC2::Instance",
"schemaId": "string",
"variantIds": [
"01H9ZQD35JPMBGHH69BT0Q79VZ",
"01H9ZQD35JPMBGHH69BT0Q79VY"
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Schema created successfully | GetSchemaV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 422 | Unprocessable Entity | Validation error - Invalid request data | ApiError |
| 500 | Internal Server Error | Internal server error | ApiError |
Find schema by name or schema id
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/find
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema | query | string,null | false | none |
| schemaId | query | string,null | false | none |
Example responses
200 Response
{
"category": "string",
"installed": true,
"schemaId": "string",
"schemaName": "string"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Schema retrieved successfully | FindSchemaV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Complex search for shemas
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/search
Body parameter
{
"category": "AWS::EC2"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| body | body | SearchSchemasV1Request | true | none |
Example responses
200 Response
{
"schemas": [
{
"category": "AWS::EC2",
"installed": "false",
"schemaId": "01H9ZQD35JPMBGHH69BT0Q79VY",
"schemaName": "AWS::EC2::Instance"
}
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Schemas retrieved successfully | SearchSchemasV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Get a schema by schema id
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
Example responses
200 Response
{
"defaultVariantId": "01H9ZQD35JPMBGHH69BT0Q79VZ",
"name": "AWS::EC2::Instance",
"schemaId": "string",
"variantIds": [
"01H9ZQD35JPMBGHH69BT0Q79VZ",
"01H9ZQD35JPMBGHH69BT0Q79VY"
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Schema retrieved successfully | GetSchemaV1Response |
| 202 | Accepted | Schema data is being generated from cached modules | BuildingResponseV1 |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Unlocks a schema - if there's already an unlocked variant, then we return that
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/unlock
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
Example responses
200 Response
{
"schemaId": "01H9ZQD35JPMBGHH69BT0Q79VZ",
"unlockedVariant": {
"assetFuncId": "01H9ZQD35JPMBGHH69BT0Q75XY",
"category": "AWS::EC2",
"color": "#FF5733",
"description": "Amazon EC2 Instance resource type",
"displayName": "AWS EC2 Instance",
"domainProps": {},
"installedFromUpstream": false,
"isDefaultVariant": true,
"isLocked": false,
"link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html",
"variantFuncIds": [
"01H9ZQD35JPMBGHH69BT0Q75AA",
"01H9ZQD35JPMBGHH69BT0Q75BB"
],
"variantFuncs": [
{
"funcKind": {
"actionKind": "Create",
"kind": "action"
},
"id": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}
],
"variantId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
},
"unlockedVariantId": "01H9ZQD35JPMBGHH69BT0Q75XY"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Schema unlocked successfully | UnlockedSchemaV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 422 | Unprocessable Entity | Validation error - Invalid request data | ApiError |
| 500 | Internal Server Error | Internal server error | ApiError |
Get the default variant for a schema id
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/default
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
Example responses
200 Response
{
"assetFuncId": "01H9ZQD35JPMBGHH69BT0Q75XY",
"category": "AWS::EC2",
"color": "#FF5733",
"description": "Amazon EC2 Instance resource type",
"displayName": "AWS EC2 Instance",
"domainProps": {},
"installedFromUpstream": false,
"isDefaultVariant": true,
"isLocked": false,
"link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html",
"variantFuncIds": [
"01H9ZQD35JPMBGHH69BT0Q75AA",
"01H9ZQD35JPMBGHH69BT0Q75BB"
],
"variantFuncs": [
{
"funcKind": {
"actionKind": "Create",
"kind": "action"
},
"id": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}
],
"variantId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Schema variant retrieved successfully | GetSchemaVariantV1Response |
| 202 | Accepted | Schema variant building, try again later | BuildingResponseV1 |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema variant not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Get a schema variant by schema id and schema variant id
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
Example responses
200 Response
{
"assetFuncId": "01H9ZQD35JPMBGHH69BT0Q75XY",
"category": "AWS::EC2",
"color": "#FF5733",
"description": "Amazon EC2 Instance resource type",
"displayName": "AWS EC2 Instance",
"domainProps": {},
"installedFromUpstream": false,
"isDefaultVariant": true,
"isLocked": false,
"link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html",
"variantFuncIds": [
"01H9ZQD35JPMBGHH69BT0Q75AA",
"01H9ZQD35JPMBGHH69BT0Q75BB"
],
"variantFuncs": [
{
"funcKind": {
"actionKind": "Create",
"kind": "action"
},
"id": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}
],
"variantId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Schema variant retrieved successfully | GetSchemaVariantV1Response |
| 202 | Accepted | Schema variant building, try again later | BuildingResponseV1 |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema variant not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Update the schema variant and regenerate
Request format
PUT /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}
Body parameter
{
"category": "AWS::EC2",
"code": "async function main(input: Input): Promise < Output > {\n if (!input.domain?.region) {\n return {\n result: \"failure\",\n message: \"No Region Name to validate\",\n };\n }\n\n const child = await siExec.waitUntilEnd(\"aws\", [\n \"ec2\",\n \"describe-regions\",\n \"--region-names\",\n input.domain?.region!,\n \"--region\",\n \"us-east-1\",\n ]);\n\n if (child.exitCode !== 0) {\n console.error(child.stderr);\n return {\n result: \"failure\",\n message: \"Error from API\"\n }\n }\n\n const regionDetails = JSON.parse(child.stdout).Regions;\n if (regionDetails.length === 0 || regionDetails.length > 1) {\n return {\n result: \"failure\",\n message: \"Unable to find Region\"\n }\n }\n\n if (regionDetails[0].OptInStatus === \"not-opted-in\") {\n return {\n result: \"failure\",\n message: \"Region not-opted-in for use\"\n }\n }\n\n return {\n result: \"success\",\n message: \"Region is available to use\",\n };\n}",
"color": "#FF5733",
"description": "Validates if an AWS region exists and is available for use",
"link": "https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeRegions.html",
"name": "AWS Region Validator"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| body | body | UpdateSchemaVariantV1Request | true | none |
Example responses
200 Response
{
"assetFuncId": "01H9ZQD35JPMBGHH69BT0Q75XY",
"category": "AWS::EC2",
"color": "#FF5733",
"description": "Amazon EC2 Instance resource type",
"displayName": "AWS EC2 Instance",
"domainProps": {},
"installedFromUpstream": false,
"isDefaultVariant": true,
"isLocked": false,
"link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html",
"variantFuncIds": [
"01H9ZQD35JPMBGHH69BT0Q75AA",
"01H9ZQD35JPMBGHH69BT0Q75BB"
],
"variantFuncs": [
{
"funcKind": {
"actionKind": "Create",
"kind": "action"
},
"id": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}
],
"variantId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Schema variant successfully updated | GetSchemaVariantV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema variant not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Create an action function and attach to a schema variant
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}/funcs/action
Body parameter
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Creates an EC2 Instance",
"displayName": "Create EC2 Instance",
"kind": "Create",
"name": "awsEC2InstanceCreate"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| body | body | CreateVariantActionFuncV1Request | true | none |
Example responses
200 Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Action function successfully created and attached to the variant | CreateVariantActionFuncV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema variant not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Delete the binding between an action func and the schema variant
Request format
DELETE /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}/funcs/action/{func_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| func_id | path | string | true | Func identifier |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Action function successfully deteched from the variant | DetachFuncBindingV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Func not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Create an authentication function and attach to a schema variant
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}/funcs/authentication
Body parameter
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Function to manage AWS Credentials",
"displayName": "Set AWS credentials",
"name": "awsSetCredentials"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| body | body | CreateVariantAuthenticationFuncV1Request | true | none |
Example responses
200 Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Authentication function successfully created and attached to the variant | CreateVariantAuthenticationFuncV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema variant not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Delete the binding between an authentication func and the schema variant
Request format
DELETE /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}/funcs/authentication/{func_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| func_id | path | string | true | Func identifier |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Authentication function successfully detached from the variant | DetachFuncBindingV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Func not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Create a codegen function and attach to a schema variant
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}/funcs/codegen
Body parameter
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Generates the payload required for creating an EC2 instance",
"displayName": "Generate EC2 Instance Create Payload",
"name": "awsEC2InstanceGenerateCode"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| body | body | CreateVariantCodegenFuncV1Request | true | none |
Example responses
200 Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Codegen function successfully created and attached to the variant | CreateVariantCodegenFuncV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema variant not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Delete the binding between a codegen func and the schema variant
Request format
DELETE /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}/funcs/codegen/{func_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| func_id | path | string | true | Func identifier |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Codegen function successfully deteched from the variant | DetachFuncBindingV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Func not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Create a management function and attach to a schema variant
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}/funcs/management
Body parameter
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Manages a collection of VPC components and their relationships",
"displayName": "Manage my VPC Components",
"name": "awsCreateMyVpc"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| body | body | CreateVariantManagementFuncV1Request | true | none |
Example responses
200 Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Management function successfully created and attached to the variant | CreateVariantManagementFuncV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema variant not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Delete the binding between a management func and the schema variant
Request format
DELETE /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}/funcs/management/{func_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| func_id | path | string | true | Func identifier |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Management function successfully deteched from the variant | DetachFuncBindingV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Func not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Create a qualification and attach to a schema variant
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}/funcs/qualification
Body parameter
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Creates an EC2 Instance",
"displayName": "Create EC2 Instance",
"name": "awsEC2InstanceCreate"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| body | body | CreateVariantQualificationFuncV1Request | true | none |
Example responses
200 Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Qualification successfully created and attached to the variant | CreateVariantQualificationFuncV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Schema variant not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Delete the binding between a qualification func and the schema variant
Request format
DELETE /v1/w/{workspace_id}/change-sets/{change_set_id}/schemas/{schema_id}/variant/{schema_variant_id}/funcs/qualification/{func_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| schema_id | path | string | true | Schema identifier |
| schema_variant_id | path | string | true | Schema variant identifier |
| func_id | path | string | true | Func identifier |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Qualification function successfully deteched from the variant | DetachFuncBindingV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Func not found | None |
| 412 | Precondition Failed | Schema variant not found for schema | None |
| 500 | Internal Server Error | Internal server error | ApiError |
actions
Actions management endpoints
List queued actions
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/actions
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
Example responses
200 Response
{
"actions": [
{
"id": "01H9ZQD35JPMBGHH69BT0Q79VY",
"prototypeId": "01H9ZQD35JPMBGHH69BT0Q79AB",
"componentId": "01H9ZQD35JPMBGHH69BT0Q79CD",
"name": "Create EC2 Instance",
"description": "Provisions a new EC2 instance in AWS",
"kind": "Create",
"state": "Pending",
"originatingChangeSetId": "01H9ZQD35JPMBGHH69BT0Q79EF",
"funcRunId": "01H9ZQD35JPMBGHH69BT0Q79GH"
}
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Actions retrieved successfully | GetActionsV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Remove queued action
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/actions/{action_id}/cancel
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| action_id | path | string | true | Action identifier |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Action cancelled successfully | CancelActionV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Action not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Put action on-hold
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/actions/{action_id}/put_on_hold
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| action_id | path | string | true | Action identifier |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Action successfully put on hold | PutOnHoldActionV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Action not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Retry action
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/actions/{action_id}/retry
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| action_id | path | string | true | Action identifier |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Action successfully requeued | RetryActionV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Action not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
secrets
Secrets management endpoints
List all secrets
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/secrets
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
Example responses
200 Response
{
"aws_credentials": {
"definition": {
"secretDefinition": "aws_credentials",
"formData": [
{
"name": "access_key_id",
"kind": "string"
},
{
"name": "secret_access_key",
"kind": "password"
},
{
"name": "region",
"kind": "string"
},
{
"name": "default_output",
"kind": "string"
}
]
},
"secrets": [
{
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHH",
"name": "Production AWS Key",
"definition": "aws_credentials",
"description": "AWS credentials for production environment"
},
{
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHI",
"name": "Development AWS Key",
"definition": "aws_credentials",
"description": "AWS credentials for development environment"
}
]
},
"docker_registry": {
"definition": {
"secretDefinition": "docker_registry",
"formData": [
{
"name": "username",
"kind": "string"
},
{
"name": "password",
"kind": "password"
},
{
"name": "registry_url",
"kind": "string"
}
]
},
"secrets": [
{
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHJ",
"name": "DockerHub Access",
"definition": "docker_registry",
"description": "DockerHub registry credentials"
}
]
}
}500 Response
{
"message": "Invalid request data",
"statusCode": 422,
"code": 4001
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Secrets retrieved successfully | HashMap |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Create a secret
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/secrets
Body parameter
{
"definitionName": "aws_credentials",
"description": "AWS credentials for production environment",
"name": "AWS Access Key",
"rawData": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"region": "us-west-2",
"default_output": "json"
}
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| body | body | CreateSecretV1Request | true | none |
Example responses
200 Response
{
"secret": {
"definition": "aws_credentials",
"description": "AWS credentials for production environment",
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHH",
"name": "Production AWS Key"
}
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Secret created successfully | CreateSecretV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 422 | Unprocessable Entity | Validation error - Invalid request data | ApiError |
| 500 | Internal Server Error | Internal server error | ApiError |
Update a secret
Request format
PUT /v1/w/{workspace_id}/change-sets/{change_set_id}/secrets/{secret_id}
Body parameter
{
"description": "Updated AWS Secret Key for EC2 access",
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHH",
"name": "AWS Access Key",
"rawData": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"region": "us-west-2",
"default_output": "json"
}
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| secret_id | path | string | true | Secret identifier |
| body | body | UpdateSecretV1Request | true | none |
Example responses
200 Response
{
"secret": {
"definition": "aws_credentials",
"description": "AWS credentials for production environment",
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHH",
"name": "Production AWS Key"
}
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Secret updated successfully | UpdateSecretV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Secret not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Delete a secret
Request format
DELETE /v1/w/{workspace_id}/change-sets/{change_set_id}/secrets/{secret_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| secret_id | path | string | true | Secret identifier |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Secret deleted successfully | DeleteSecretV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Secret not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
funcs
Functions management endpoints
Get func execution run logs
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/funcs/runs/{func_run_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| func_run_id | path | string | true | Func run identifier |
Example responses
200 Response
{
"funcRun": {
"id": "01JQCJ0AAXGX5M9QY10AVF4GK1",
"state": "Success",
"actor": "System",
"componentId": "01JP8KHZP3DZKGNXRP83Q6WTQ5",
"attributeValueId": null,
"componentName": "NAT Gateway IP 1",
"schemaName": "AWS::EC2::EIP",
"actionId": "01JQCHZZY99G3R0C1FA3W4AFR6",
"actionPrototypeId": "01JPNHEE9Z3DFW48XVZ1FX04KA",
"actionKind": "Destroy",
"actionDisplayName": "Destroy",
"actionOriginatingChangeSetId": "01JQCHZZVTAHHZ7DG0ZSCB9RXB",
"actionOriginatingChangeSetName": "2025-03-27-19:41",
"actionResultState": "Success",
"backendKind": "JsAction",
"backendResponseType": "Action",
"functionName": "Delete Asset",
"functionDisplayName": null,
"functionKind": "Action",
"functionDescription": null,
"functionLink": null,
"functionArgs": {
"properties": {
"domain": {
"Domain": "vpc",
"Tags": []
},
"resource": {
"payload": {
"AllocationId": "eipalloc-033720f9556a3b0c1",
"PublicIp": "3.213.242.163"
}
},
"si": {
"name": "NAT Gateway IP 1",
"resourceId": "3.213.242.163|eipalloc-033720f9556a3b0c1",
"type": "component"
}
}
},
"resultValue": {
"error": null,
"executionId": "01JQCJ0AAXGX5M9QY10AVF4GK1",
"message": null,
"payload": null,
"resourceId": null,
"status": "ok"
},
"logs": {
"id": "01JQCJ0ABJSCE01GNQDWVY1ZP5",
"createdAt": "2025-03-27T19:41:58.514416748Z",
"updatedAt": "2025-03-27T19:41:58.514416748Z",
"funcRunId": "01JQCJ0AAXGX5M9QY10AVF4GK1",
"logs": [
{
"stream": "stdout",
"executionId": "",
"level": "info",
"group": "log",
"message": "Running CLI command",
"timestamp": 1743104518
},
{
"stream": "output",
"executionId": "01JQCJ0AAXGX5M9QY10AVF4GK1",
"level": "info",
"group": "log",
"message": "Output: {\"status\":\"success\"}",
"timestamp": 1743104521
}
],
"finalized": true
},
"createdAt": "2025-03-27T19:41:58.493298051Z",
"updatedAt": "2025-03-27T19:42:02.192033089Z"
}
}500 Response
{
"message": "Invalid request data",
"statusCode": 422,
"code": 4001
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Func Run retrieved successfully | GetFuncRunV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Func run not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Get function details
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/funcs/{func_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| func_id | path | string | true | Func identifier |
Example responses
200 Response
[
{
"funcId": "01JP8A3S8VDQ1KRQWQRHB1ZEB2",
"code": "async function main(input: Input): Promise < Output > {\n if (!input.domain?.region) {\n return {\n result: \"failure\",\n message: \"No Region Name to validate\",\n };\n }\n\n const child = await siExec.waitUntilEnd(\"aws\", [\n \"ec2\",\n \"describe-regions\",\n \"--region-names\",\n input.domain?.region!,\n \"--region\",\n \"us-east-1\",\n ]);\n\n if (child.exitCode !== 0) {\n console.error(child.stderr);\n return {\n result: \"failure\",\n message: \"Error from API\"\n }\n }\n\n const regionDetails = JSON.parse(child.stdout).Regions;\n if (regionDetails.length === 0 || regionDetails.length > 1) {\n return {\n result: \"failure\",\n message: \"Unable to find Region\"\n }\n }\n\n if (regionDetails[0].OptInStatus === \"not-opted-in\") {\n return {\n result: \"failure\",\n message: \"Region not-opted-in for use\"\n }\n }\n\n return {\n result: \"success\",\n message: \"Region is available to use\",\n };\n}",
"name": "AWS Region Validator",
"description": "Validates if an AWS region exists and is available for use",
"displayName": "Validate Region",
"kind": "Qualification",
"isLocked": false,
"link": "https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeRegions.html"
}
]500 Response
{
"message": "Invalid request data",
"statusCode": 422,
"code": 4001
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Func retrieved successfully | GetFuncV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Func not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Update a func
Request format
PUT /v1/w/{workspace_id}/change-sets/{change_set_id}/funcs/{func_id}
Body parameter
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Updated Description",
"displayName": "Updated Display Name"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| func_id | path | string | true | Func identifier |
| body | body | UpdateFuncV1Request | true | none |
Example responses
200 Response
{
"success": true
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Function successfully updated | UpdateFuncV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Function not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Unlocks a func - if there's already an unlocked function, then we return that
Request format
POST /v1/w/{workspace_id}/change-sets/{change_set_id}/funcs/{func_id}/unlock
Body parameter
{
"schemaVariantId": "01H9ZQD35JPMBGHH69BT0Q75XY"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| func_id | path | string | true | Func identifier |
| body | body | UnlockFuncV1Request | true | none |
Example responses
200 Response
{
"unlockedFuncId": "01H9ZQD35JPMBGHH69BT0Q75XY"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Function unlocked successfully | UnlockFuncV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 422 | Unprocessable Entity | Validation error - Invalid request data | ApiError |
| 500 | Internal Server Error | Internal server error | ApiError |
management_funcs
Management functions endpoints
Get management funcs job state details
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/management-funcs/{management_func_job_state_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| management_func_job_state_id | path | string | true | Management Func Job identifier |
Example responses
200 Response
{
"funcRunId": "01H9ZQD35JPMBGHH69BT0Q79VY",
"state": "Executing"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Management Func Job retrieved successfully | GetManagementFuncJobStateV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 404 | Not Found | Management Func Job not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
workspace_management
Workspace management endpoints
List workspaces
Request format
GET /management/workspaces
Example responses
200 Response
[
{
"approvalsEnabled": true,
"creatorUser": {},
"creatorUserId": "string",
"description": "string",
"displayName": "string",
"id": "string",
"instanceEnvType": "string",
"instanceUrl": "string",
"isDefault": true,
"quarantinedAt": "string",
"role": "string"
}
]Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Workspaces Listed successfully | Inline |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [Workspace] | false | none | none |
| » approvalsEnabled | boolean | true | none | none |
| » creatorUser | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | null | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | CreatorUser | false | none | none |
| »»» firstName | string,null | false | none | none |
| »»» lastName | string,null | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » creatorUserId | string | true | none | none |
| » description | string,null | false | none | none |
| » displayName | string | true | none | none |
| » id | string | true | none | none |
| » instanceEnvType | string | true | none | none |
| » instanceUrl | string,null | false | none | none |
| » isDefault | boolean | true | none | none |
| » quarantinedAt | string,null | false | none | none |
| » role | string,null | false | none | none |
Create a new workspace
Request format
POST /management/workspaces
Body parameter
{
"description": "Production environment for customer deployments",
"displayName": "My Production Workspace",
"instanceUrl": "https://app.systeminit.com",
"isDefault": false
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | CreateWorkspaceRequest | true | none |
Example responses
200 Response
{
"approvalsEnabled": true,
"creatorUser": {},
"creatorUserId": "string",
"description": "string",
"displayName": "string",
"id": "string",
"instanceEnvType": "string",
"instanceUrl": "string",
"isDefault": true,
"quarantinedAt": "string",
"role": "string"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Workspace successfully created | Workspace |
| 400 | Bad Request | Bad Request - Validation error (invalid URL, display name, or description format) | None |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Get the details of a workspace
Request format
GET /management/workspaces/{workspace_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
Example responses
200 Response
{
"approvalsEnabled": true,
"creatorUser": {},
"creatorUserId": "string",
"description": "string",
"displayName": "string",
"id": "string",
"instanceEnvType": "string",
"instanceUrl": "string",
"isDefault": true,
"quarantinedAt": "string",
"role": "string"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Workspace retrieved successfully | Workspace |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 403 | Forbidden | Forbidden - User is not a member of this workspace | None |
| 404 | Not Found | Workspace not found or has been deleted | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Delete a workspace - please note, this is a soft delete and workspaces can be recovered
Request format
DELETE /management/workspaces/{workspace_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
Example responses
500 Response
{
"message": "Invalid request data",
"statusCode": 422,
"code": 4001
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Workspace deleted successfully | None |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 403 | Forbidden | Forbidden - User must be workspace owner to delete workspace | None |
| 404 | Not Found | Workspace not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Update the details of a workspace
Request format
PATCH /management/workspaces/{workspace_id}
Body parameter
{
"description": "Updated description for the workspace",
"displayName": "Updated Workspace Name",
"instanceUrl": "https://app.systeminit.com"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| body | body | UpdateWorkspaceRequest | true | none |
Example responses
200 Response
{
"approvalsEnabled": true,
"creatorUser": {},
"creatorUserId": "string",
"description": "string",
"displayName": "string",
"id": "string",
"instanceEnvType": "string",
"instanceUrl": "string",
"isDefault": true,
"quarantinedAt": "string",
"role": "string"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Workspace successfully updated | Workspace |
| 400 | Bad Request | Bad Request - Validation error (invalid URL, display name, or description format) | None |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 403 | Forbidden | Forbidden - User must be workspace owner to update workspace | None |
| 404 | Not Found | Workspace not found | None |
| 500 | Internal Server Error | Internal server error | ApiError |
List all members of a workspace
Request format
GET /management/workspaces/{workspace_id}/members
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
Example responses
200 Response
[
{
"email": "user@example.com",
"nickname": "John Doe",
"role": "OWNER",
"signupAt": "string",
"userId": "01GW0KXH4YJBWC7BTBAZ6ZR7EA"
}
]Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Members listed successfully | Inline |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 403 | Forbidden | Forbidden - User is not a member of this workspace | None |
| 404 | Not Found | Workspace not found or has been deleted | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [Member] | false | none | none |
| string | true | none | none | |
| » nickname | string | true | none | none |
| » role | string | true | none | none |
| » signupAt | string,null | false | none | none |
| » userId | string | true | none | none |
Invite a new member to the workspace
Request format
POST /management/workspaces/{workspace_id}/members
Body parameter
{
"email": "newuser@example.com"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| body | body | InviteMemberRequest | true | none |
Example responses
200 Response
[
{
"email": "user@example.com",
"nickname": "John Doe",
"role": "OWNER",
"signupAt": "string",
"userId": "01GW0KXH4YJBWC7BTBAZ6ZR7EA"
}
]Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Member invited successfully | Inline |
| 400 | Bad Request | Bad Request - Invalid email format | None |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 403 | Forbidden | Forbidden - User must be workspace owner or approver to invite members | None |
| 404 | Not Found | Workspace not found or has been deleted | None |
| 409 | Conflict | Conflict - User already invited, suspended, or other conflict | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [Member] | false | none | none |
| string | true | none | none | |
| » nickname | string | true | none | none |
| » role | string | true | none | none |
| » signupAt | string,null | false | none | none |
| » userId | string | true | none | none |
Remove a member from the workspace
Request format
DELETE /management/workspaces/{workspace_id}/members
Body parameter
{
"email": "user@example.com"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| body | body | RemoveMemberRequest | true | none |
Example responses
200 Response
[
{
"email": "user@example.com",
"nickname": "John Doe",
"role": "OWNER",
"signupAt": "string",
"userId": "01GW0KXH4YJBWC7BTBAZ6ZR7EA"
}
]Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Member removed successfully | Inline |
| 400 | Bad Request | Bad Request - Invalid email format | None |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 403 | Forbidden | Forbidden - User must be workspace owner or approver to remove members | None |
| 404 | Not Found | Workspace not found, has been deleted, or user not found in workspace | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [Member] | false | none | none |
| string | true | none | none | |
| » nickname | string | true | none | none |
| » role | string | true | none | none |
| » signupAt | string,null | false | none | none |
| » userId | string | true | none | none |
Update a member's role in the workspace
Request format
POST /management/workspaces/{workspace_id}/update_member_access
Body parameter
{
"role": "EDITOR",
"userId": "01GW0KXH4YJBWC7BTBAZ6ZR7EA"
}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| body | body | UpdateMemberRoleRequest | true | none |
Example responses
200 Response
[
{
"email": "user@example.com",
"nickname": "John Doe",
"role": "OWNER",
"signupAt": "string",
"userId": "01GW0KXH4YJBWC7BTBAZ6ZR7EA"
}
]Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Member role updated successfully | Inline |
| 400 | Bad Request | Bad Request - Invalid userId or role format | None |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 403 | Forbidden | Forbidden - User must be workspace owner to update member roles | None |
| 404 | Not Found | Workspace not found or has been deleted | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | [Member] | false | none | none |
| string | true | none | none | |
| » nickname | string | true | none | none |
| » role | string | true | none | none |
| » signupAt | string,null | false | none | none |
| » userId | string | true | none | none |
search
Complex search for components
Request format
GET /v1/w/{workspace_id}/change-sets/{change_set_id}/search
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| workspace_id | path | string | true | Workspace identifier |
| change_set_id | path | string | true | Change Set identifier |
| q | query | string | true | Query string. See https://docs.systeminit.com/explanation/search-syntax for details. |
Example responses
200 Response
{
"components": [
"01H9ZQD35JPMBGHH69BT0Q79AA",
"01H9ZQD35JPMBGHH69BT0Q79BB",
"01H9ZQD35JPMBGHH69BT0Q79CC"
]
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Components retrieved successfully | SearchV1Response |
| 401 | Unauthorized | Unauthorized - Invalid or missing token | None |
| 500 | Internal Server Error | Internal server error | ApiError |
Schemas
ActionReference
{
"function": "Create Asset"
}Reference to a management function by either name or ID. This allows clients to use the more human-friendly name approach or the more precise ID approach when working with actions.
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » function | string | true | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » actionPrototypeId | string | true | none | none |
ActionV1RequestPath
{
"action_id": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| action_id | string | true | none | none |
ActionViewV1
{
"componentId": "string",
"description": "string",
"funcRunId": "string",
"id": "string",
"kind": "string",
"name": "string",
"originatingChangeSetId": "string",
"prototypeId": "string",
"state": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| componentId | string,null | false | none | none |
| description | string,null | false | none | none |
| funcRunId | string,null | false | none | none |
| id | string | true | none | none |
| kind | string | true | none | none |
| name | string | true | none | none |
| originatingChangeSetId | string | true | none | none |
| prototypeId | string | true | none | none |
| state | string | true | none | none |
AddActionV1Request
{
"action": {
"function": "Create Asset"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| action | ActionReference | true | none | Reference to a management function by either name or ID. This allows clients to use the more human-friendly name approach or the more precise ID approach when working with actions. |
AddActionV1Response
{
"success": true
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
AddToViewV1Request
{
"componentIds": [
"string"
],
"viewName": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| componentIds | [string] | true | none | none |
| viewName | string | true | none | none |
ApiError
{
"message": "Invalid request data",
"statusCode": 422,
"code": 4001
}Standard error response format for v1 API
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | integer,null(int32) | false | none | none |
| message | string | true | none | none |
| statusCode | integer(int32) | true | none | none |
ApiSuccess_String
{
"data": "string"
}Standard success response format for v1 API
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| data | string | true | none | none |
BuildingResponseV1
{
"estimatedCompletionSeconds": 10,
"message": "Schema data is being generated, please retry shortly",
"retryAfterSeconds": 2,
"status": "building"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| estimatedCompletionSeconds | integer(int64) | true | none | none |
| message | string | true | none | none |
| retryAfterSeconds | integer(int64) | true | none | none |
| status | string | true | none | none |
CancelActionV1Response
{
"success": true
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
ChangeSetViewV1
{
"id": "string",
"isHead": true,
"name": "string",
"status": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| isHead | boolean | true | none | none |
| name | string | true | none | none |
| status | string | true | none | none |
ComponentDetailsV1
{
"codegen": null,
"componentId": "string",
"name": "string",
"schemaName": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| codegen | any | false | none | none |
| componentId | string | true | none | none |
| name | string | true | none | none |
| schemaName | string | true | none | none |
ComponentPropKey
"string"Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | DomainPropPath | false | none | A prop path, starting from root/domain, with / instead of PROP_PATH_SEPARATOR as its separator |
ComponentPropViewV1
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| path | string | true | none | none |
| propId | string | true | none | none |
| value | any | false | none | none |
ComponentReference
{
"component": "ComponentName"
}Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » component | string | true | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » componentId | string | true | none | none |
ComponentSearchResult
{
"id": "01H9ZQD35JPMBGHH69BT0Q79AA",
"name": "MyInstance",
"schema": {
"name": "AWS::EC2::Instance"
}
}Component data in search results.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
| schema | ComponentSearchResultSchema | true | none | The schema for a component in search results. |
ComponentSearchResultSchema
{
"name": "AWS::EC2::Instance"
}The schema for a component in search results.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | none |
ComponentV1RequestPath
{
"component_id": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| component_id | string | true | none | none |
ComponentViewV1
{
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| attributes | object | true | none | none |
| » additionalProperties | any | false | none | none |
| canBeUpgraded | boolean | true | none | none |
| connections | [ConnectionViewV1] | true | none | none |
| domainProps | [ComponentPropViewV1] | true | none | none |
| id | string | true | none | none |
| name | string | true | none | none |
| resourceId | string | true | none | none |
| resourceProps | [ComponentPropViewV1] | true | none | none |
| schemaId | string | true | none | none |
| schemaVariantId | string | true | none | none |
| toDelete | boolean | true | none | none |
| views | [ViewV1] | true | none | none |
ConnectionViewV1
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » managing | ManagingConnectionViewV1 | true | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » managedBy | ManagedByConnectionViewV1 | true | none | none |
CreateChangeSetV1Request
{
"changeSetName": "My new feature"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| changeSetName | string | true | none | none |
CreateChangeSetV1Response
{
"changeSet": {
"id": "string",
"isHead": true,
"name": "string",
"status": "string"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| changeSet | ChangeSetViewV1 | true | none | none |
CreateComponentV1Request
{
"attributes": {
"/domain/VpcId": {
"$source": {
"component": "01K0WRC69ZPEMD6SMTKC84FBWC",
"path": "/resource_value/VpcId"
}
},
"/domain/SubnetId": {
"$source": {
"component": "01K0WRC69ZPEMD6SMTKC84FBWD",
"path": "/resource_value/SubnetId"
}
},
"/domain/Version": {
"$source": null
}
},
"managedBy": {
"component": "ComponentName"
},
"name": "MyComponentName",
"resourceId": "i-12345678",
"schemaName": "AWS::EC2::Instance",
"useWorkingCopy": true,
"viewName": "MyView"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| attributes | object | false | none | none |
| » additionalProperties | any | false | none | none |
| managedBy | ComponentReference | false | none | none |
| name | string | true | none | none |
| resourceId | string,null | false | none | none |
| schemaName | string | true | none | none |
| useWorkingCopy | boolean,null | false | none | none |
| viewName | string,null | false | none | none |
CreateComponentV1Response
{
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| component | ComponentViewV1 | true | none | none |
CreateSchemaV1Request
{
"category": "string",
"code": "string",
"color": "string",
"description": "string",
"link": "string",
"name": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| category | string,null | false | none | none |
| code | string | true | none | none |
| color | string,null | false | none | none |
| description | string,null | false | none | none |
| link | string,null | false | none | none |
| name | string | true | none | none |
CreateSecretV1Request
{
"definitionName": "aws_credentials",
"description": "AWS credentials for production environment",
"name": "AWS Access Key",
"rawData": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"region": "us-west-2",
"default_output": "json"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| definitionName | string | true | none | none |
| description | string,null | false | none | none |
| name | string | true | none | none |
| rawData | object | false | none | none |
| » additionalProperties | string | false | none | none |
CreateSecretV1Response
{
"secret": {
"definition": "aws_credentials",
"description": "AWS credentials for production environment",
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHH",
"name": "Production AWS Key"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| secret | SecretV1 | true | none | none |
CreateVariantActionFuncV1Request
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Creates an EC2 Instance",
"displayName": "Create EC2 Instance",
"kind": "Create",
"name": "awsEC2InstanceCreate"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | none |
| description | string,null | false | none | none |
| displayName | string,null | false | none | none |
| kind | string | true | none | none |
| name | string | true | none | none |
CreateVariantActionFuncV1Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcId | string | true | none | none |
CreateVariantAuthenticationFuncV1Request
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Function to manage AWS Credentials",
"displayName": "Set AWS credentials",
"name": "awsSetCredentials"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | none |
| description | string,null | false | none | none |
| displayName | string,null | false | none | none |
| name | string | true | none | none |
CreateVariantAuthenticationFuncV1Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcId | string | true | none | none |
CreateVariantCodegenFuncV1Request
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Generates the payload required for creating an EC2 instance",
"displayName": "Generate EC2 Instance Create Payload",
"name": "awsEC2InstanceGenerateCode"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | none |
| description | string,null | false | none | none |
| displayName | string,null | false | none | none |
| name | string | true | none | none |
CreateVariantCodegenFuncV1Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcId | string | true | none | none |
CreateVariantManagementFuncV1Request
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Manages a collection of VPC components and their relationships",
"displayName": "Manage my VPC Components",
"name": "awsCreateMyVpc"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | none |
| description | string,null | false | none | none |
| displayName | string,null | false | none | none |
| name | string | true | none | none |
CreateVariantManagementFuncV1Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcId | string | true | none | none |
CreateVariantQualificationFuncV1Request
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Creates an EC2 Instance",
"displayName": "Create EC2 Instance",
"name": "awsEC2InstanceCreate"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | none |
| description | string,null | false | none | none |
| displayName | string,null | false | none | none |
| name | string | true | none | none |
CreateVariantQualificationFuncV1Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcId | string | true | none | none |
CreateWorkspaceRequest
{
"description": "Production environment for customer deployments",
"displayName": "My Production Workspace",
"instanceUrl": "https://app.systeminit.com",
"isDefault": false
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string | true | none | none |
| displayName | string | true | none | none |
| instanceUrl | string | true | none | none |
| isDefault | boolean | false | none | none |
CreatorUser
{
"firstName": "string",
"lastName": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| firstName | string,null | false | none | none |
| lastName | string,null | false | none | none |
DeleteChangeSetV1Response
{
"success": "true"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
DeleteComponentV1Response
{
"status": "MarkedForDeletion"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
DeleteSecretV1Response
{
"success": true
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
DetachFuncBindingV1Response
{
"success": true
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
DomainPropPath
"string"A prop path, starting from root/domain, with / instead of PROP_PATH_SEPARATOR as its separator
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | A prop path, starting from root/domain, with / instead of PROP_PATH_SEPARATOR as its separator |
DuplicateComponentsV1Request
{
"components": [
"01H9ZQD35JPMBGHH69BT0Q79AA",
"01H9ZQD35JPMBGHH69BT0Q79BB",
"01H9ZQD35JPMBGHH69BT0Q79CC"
],
"prefix": "copy-of-",
"viewName": "MyView"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| components | [array] | true | none | none |
| prefix | string,null | false | none | none |
| viewName | string,null | false | none | none |
DuplicateComponentsV1Response
{
"components": [
"01H9ZQD35JPMBGHH69BT0Q79AA",
"01H9ZQD35JPMBGHH69BT0Q79BB",
"01H9ZQD35JPMBGHH69BT0Q79CC"
]
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| components | [array] | true | none | none |
EraseComponentV1Response
{
"status": "true"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | boolean | true | none | none |
ErrorDetail
{
"code": 0,
"message": "string",
"status_code": 0
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | integer(int32) | true | none | none |
| message | string | true | none | none |
| status_code | integer(int32) | true | none | none |
ErrorResponse
{
"error": {
"code": 0,
"message": "string",
"status_code": 0
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| error | ErrorDetail | true | none | none |
ExecuteManagementFunctionV1Request
{
"viewName": "MyViewName",
"managementFunction": {
"function": "CreateVpc"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| managementFunction | ManagementFunctionReference | true | none | Reference to a management function by either name or ID. This allows clients to use the more human-friendly name approach or the more precise ID approach when working with management functions. |
| viewName | string,null | false | none | none |
ExecuteManagementFunctionV1Response
{
"funcRunId": "string",
"managementFuncJobStateId": "01H9ZQD35JPMBGHH69BT0Q79VY",
"message": "enqueued",
"status": "Ok"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcRunId | string,null | false | none | none |
| managementFuncJobStateId | string | true | none | none |
| message | string,null | false | none | none |
| status | string | true | none | none |
FindComponentV1Params
{
"component": "string",
"componentId": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| component | string,null | false | none | none |
| componentId | string,null | false | none | none |
FindSchemaV1Params
{
"schema": "string",
"schemaId": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| schema | string,null | false | none | none |
| schemaId | string,null | false | none | none |
FindSchemaV1Response
{
"category": "string",
"installed": true,
"schemaId": "string",
"schemaName": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| category | string,null | false | none | none |
| installed | boolean | true | none | none |
| schemaId | string | true | none | none |
| schemaName | string | true | none | none |
ForceApplyChangeSetV1Response
{
"success": "true"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
FuncRunLogViewV1
{
"createdAt": "2025-03-27T19:41:58.514416748Z",
"finalized": true,
"funcRunId": "01JQCJ0AAXGX5M9QY10AVF4GK1",
"id": "01JQCJ0ABJSCE01GNQDWVY1ZP5",
"logs": [
{
"stream": "stdout",
"executionId": "",
"level": "info",
"group": "log",
"message": "Running CLI command: \"aws 'cloudcontrol' 'delete-resource'\"",
"timestamp": 1743104518
},
{
"stream": "output",
"executionId": "01JQCJ0AAXGX5M9QY10AVF4GK1",
"level": "info",
"group": "log",
"message": "Output: {\"protocol\":\"result\",\"status\":\"success\"}",
"timestamp": 1743104521
}
],
"updatedAt": "2025-03-27T19:41:58.514416748Z"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| createdAt | string | true | none | none |
| finalized | boolean | true | none | none |
| funcRunId | string | true | none | none |
| id | string | true | none | none |
| logs | [object] | true | none | none |
| updatedAt | string | true | none | none |
FuncRunV1RequestPath
{
"func_run_id": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| func_run_id | string | true | none | none |
FuncRunViewV1
{
"actionDisplayName": "Destroy",
"actionId": "01JQCHZZY99G3R0C1FA3W4AFR6",
"actionKind": "Destroy",
"actionOriginatingChangeSetId": "01JQCHZZVTAHHZ7DG0ZSCB9RXB",
"actionOriginatingChangeSetName": "2025-03-27-19:41",
"actionPrototypeId": "01JPNHEE9Z3DFW48XVZ1FX04KA",
"actionResultState": "Success",
"attributeValueId": "null",
"backendKind": "JsAction",
"backendResponseType": "Action",
"componentId": "01JP8KHZP3DZKGNXRP83Q6WTQ5",
"componentName": "NAT Gateway IP 1",
"createdAt": "2025-03-27T19:41:58.493298051Z",
"functionArgs": null,
"functionCodeBase64": "YXN5bmMgZnVuY3Rpb24gbWFpbihjb21wb2...",
"functionDescription": "null",
"functionDisplayName": "null",
"functionKind": "Action",
"functionLink": "null",
"functionName": "Delete Asset",
"id": "01JQCJ0AAXGX5M9QY10AVF4GK1",
"logs": {},
"resultValue": null,
"schemaName": "AWS::EC2::EIP",
"state": "Success",
"updatedAt": "2025-03-27T19:42:02.192033089Z"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actionDisplayName | string,null | false | none | none |
| actionId | string,null | false | none | none |
| actionKind | string,null | false | none | none |
| actionOriginatingChangeSetId | string,null | false | none | none |
| actionOriginatingChangeSetName | string,null | false | none | none |
| actionPrototypeId | string,null | false | none | none |
| actionResultState | string,null | false | none | none |
| attributeValueId | string,null | false | none | none |
| backendKind | string | true | none | none |
| backendResponseType | string | true | none | none |
| componentId | string,null | false | none | none |
| componentName | string,null | false | none | none |
| createdAt | string | true | none | none |
| functionArgs | any | true | none | none |
| functionCodeBase64 | string | true | none | none |
| functionDescription | string,null | false | none | none |
| functionDisplayName | string,null | false | none | none |
| functionKind | string | true | none | none |
| functionLink | string,null | false | none | none |
| functionName | string | true | none | none |
| id | string | true | none | none |
| logs | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | FuncRunLogViewV1 | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| resultValue | any | false | none | none |
| schemaName | string,null | false | none | none |
| state | string | true | none | none |
| updatedAt | string | true | none | none |
GenerateTemplateV1Request
{
"assetName": "My Cool Template",
"category": "Templates",
"componentIds": [
"01H9ZQD35JPMBGHH69BT0Q79AA",
"01H9ZQD35JPMBGHH69BT0Q79BB",
"01H9ZQD35JPMBGHH69BT0Q79CC"
],
"funcName": "Generate My Template"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| assetName | string | true | none | none |
| category | string,null | false | none | none |
| componentIds | [string] | true | none | none |
| funcName | string | true | none | none |
GenerateTemplateV1Response
{
"funcId": "01H9ZQD35JPMBGHH69BT0Q79CC",
"schemaId": "01H9ZQD35JPMBGHH69BT0Q79AA",
"schemaVariantId": "01H9ZQD35JPMBGHH69BT0Q79BB"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcId | string | true | none | none |
| schemaId | string | true | none | none |
| schemaVariantId | string | true | none | none |
GetActionsV1Response
{
"actions": [
{
"id": "01H9ZQD35JPMBGHH69BT0Q79VY",
"prototypeId": "01H9ZQD35JPMBGHH69BT0Q79AB",
"componentId": "01H9ZQD35JPMBGHH69BT0Q79CD",
"name": "Create EC2 Instance",
"description": "Provisions a new EC2 instance in AWS",
"kind": "Create",
"state": "Pending",
"originatingChangeSetId": "01H9ZQD35JPMBGHH69BT0Q79EF",
"funcRunId": "01H9ZQD35JPMBGHH69BT0Q79GH"
}
]
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actions | [ActionViewV1] | true | none | none |
GetChangeSetV1Response
{
"changeSet": {
"id": "string",
"isHead": true,
"name": "string",
"status": "string"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| changeSet | ChangeSetViewV1 | true | none | none |
GetComponentV1Response
{
"actionFunctions": [
{
"prototypeId": "01HAXYZF3GC9CYA6ZVSM3E4YGG",
"funcName": "Terminate Instance"
}
],
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
},
"managementFunctions": [
{
"managementPrototypeId": "01HAXYZF3GC9CYA6ZVSM3E4YFF",
"funcName": "Start Instance"
}
]
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actionFunctions | [GetComponentV1ResponseActionFunction] | true | none | none |
| component | ComponentViewV1 | true | none | none |
| managementFunctions | [GetComponentV1ResponseManagementFunction] | true | none | none |
GetComponentV1ResponseActionFunction
{
"funcName": "Terminate Instance",
"prototypeId": "01HAXYZF3GC9CYA6ZVSM3E4YGG"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcName | string | true | none | none |
| prototypeId | string | true | none | none |
GetComponentV1ResponseManagementFunction
{
"funcName": "Start Instance",
"managementPrototypeId": "01HAXYZF3GC9CYA6ZVSM3E4YFF"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcName | string | true | none | none |
| managementPrototypeId | string | true | none | none |
GetFuncRunV1Response
{
"funcRun": {
"actionDisplayName": "Destroy",
"actionId": "01JQCHZZY99G3R0C1FA3W4AFR6",
"actionKind": "Destroy",
"actionOriginatingChangeSetId": "01JQCHZZVTAHHZ7DG0ZSCB9RXB",
"actionOriginatingChangeSetName": "2025-03-27-19:41",
"actionPrototypeId": "01JPNHEE9Z3DFW48XVZ1FX04KA",
"actionResultState": "Success",
"attributeValueId": "null",
"backendKind": "JsAction",
"backendResponseType": "Action",
"componentId": "01JP8KHZP3DZKGNXRP83Q6WTQ5",
"componentName": "NAT Gateway IP 1",
"createdAt": "2025-03-27T19:41:58.493298051Z",
"functionArgs": null,
"functionCodeBase64": "YXN5bmMgZnVuY3Rpb24gbWFpbihjb21wb2...",
"functionDescription": "null",
"functionDisplayName": "null",
"functionKind": "Action",
"functionLink": "null",
"functionName": "Delete Asset",
"id": "01JQCJ0AAXGX5M9QY10AVF4GK1",
"logs": {},
"resultValue": null,
"schemaName": "AWS::EC2::EIP",
"state": "Success",
"updatedAt": "2025-03-27T19:42:02.192033089Z"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcRun | FuncRunViewV1 | true | none | none |
GetFuncV1Response
{
"code": "async function main(input: Input): Promise < Output > {\n if (!input.domain?.region) {\n return {\n result: \"failure\",\n message: \"No Region Name to validate\",\n };\n }\n\n const child = await siExec.waitUntilEnd(\"aws\", [\n \"ec2\",\n \"describe-regions\",\n \"--region-names\",\n input.domain?.region!,\n \"--region\",\n \"us-east-1\",\n ]);\n\n if (child.exitCode !== 0) {\n console.error(child.stderr);\n return {\n result: \"failure\",\n message: \"Error from API\"\n }\n }\n\n const regionDetails = JSON.parse(child.stdout).Regions;\n if (regionDetails.length === 0 || regionDetails.length > 1) {\n return {\n result: \"failure\",\n message: \"Unable to find Region\"\n }\n }\n\n if (regionDetails[0].OptInStatus === \"not-opted-in\") {\n return {\n result: \"failure\",\n message: \"Region not-opted-in for use\"\n }\n }\n\n return {\n result: \"success\",\n message: \"Region is available to use\",\n };\n}",
"description": "Validates if an AWS region exists and is available for use",
"displayName": "Validate Region",
"isLocked": false,
"kind": "Qualification",
"link": "https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeRegions.html",
"name": "AWS Region Validator"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | none |
| description | string,null | false | none | none |
| displayName | string,null | false | none | none |
| isLocked | boolean | true | none | none |
| kind | string | true | none | none |
| link | string,null | false | none | none |
| name | string | true | none | none |
GetManagementFuncJobStateV1Response
{
"funcRunId": "01H9ZQD35JPMBGHH69BT0Q79VY",
"state": "Executing"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcRunId | string,null | false | none | none |
| state | string | true | none | none |
GetSchemaV1Response
{
"defaultVariantId": "01H9ZQD35JPMBGHH69BT0Q79VZ",
"name": "AWS::EC2::Instance",
"schemaId": "string",
"variantIds": [
"01H9ZQD35JPMBGHH69BT0Q79VZ",
"01H9ZQD35JPMBGHH69BT0Q79VY"
]
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| defaultVariantId | string | true | none | none |
| name | string | true | none | none |
| schemaId | string | true | none | none |
| variantIds | [string] | true | none | none |
GetSchemaVariantV1Response
{
"assetFuncId": "01H9ZQD35JPMBGHH69BT0Q75XY",
"category": "AWS::EC2",
"color": "#FF5733",
"description": "Amazon EC2 Instance resource type",
"displayName": "AWS EC2 Instance",
"domainProps": {},
"installedFromUpstream": false,
"isDefaultVariant": true,
"isLocked": false,
"link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html",
"variantFuncIds": [
"01H9ZQD35JPMBGHH69BT0Q75AA",
"01H9ZQD35JPMBGHH69BT0Q75BB"
],
"variantFuncs": [
{
"funcKind": {
"actionKind": "Create",
"kind": "action"
},
"id": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}
],
"variantId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| assetFuncId | string | true | none | none |
| category | string | true | none | none |
| color | string | true | none | none |
| description | string,null | false | none | none |
| displayName | string | true | none | none |
| domainProps | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | PropSchemaV1 | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| installedFromUpstream | boolean | true | none | none |
| isDefaultVariant | boolean | true | none | none |
| isLocked | boolean | true | none | none |
| link | string,null | false | none | none |
| variantFuncIds | [string] | true | none | none |
| variantFuncs | [SchemaVariantFunc] | true | none | none |
| variantId | string | true | none | none |
HashMap
{
"property1": {
"definition": {
"formData": [
{
"name": "access_key_id",
"kind": "string"
},
{
"name": "secret_access_key",
"kind": "password"
}
],
"secretDefinition": "aws_credentials"
},
"secrets": [
{
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHH",
"name": "Production AWS Key",
"definition": "aws_credentials",
"description": "AWS credentials for production environment"
},
{
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHI",
"name": "Development AWS Key",
"definition": "aws_credentials",
"description": "AWS credentials for development environment"
}
]
},
"property2": {
"definition": {
"formData": [
{
"name": "access_key_id",
"kind": "string"
},
{
"name": "secret_access_key",
"kind": "password"
}
],
"secretDefinition": "aws_credentials"
},
"secrets": [
{
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHH",
"name": "Production AWS Key",
"definition": "aws_credentials",
"description": "AWS credentials for production environment"
},
{
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHI",
"name": "Development AWS Key",
"definition": "aws_credentials",
"description": "AWS credentials for development environment"
}
]
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| additionalProperties | object | false | none | none |
| » definition | SecretDefinitionV1 | true | none | none |
| » secrets | [SecretV1] | true | none | none |
InviteMemberRequest
{
"email": "newuser@example.com"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| string | true | none | none |
ListChangeSetV1Response
{
"changeSets": "[{\"id\":\"01H9ZQD35JPMBGHH69BT0Q79VY\",\"name\":\"Add new feature\",\"status\":\"Open\",\"isHead\": \"false\"},{\"id\":\"01H9ZQE356JPMBGHH69BT0Q70UO\",\"name\":\"HEAD\",\"status\":\"Open\", \"isHead\": \"true\"}]"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| changeSets | [object] | true | none | none |
ListComponentsV1Response
{
"componentDetails": [
{
"component_id": "01H9ZQD35JPMBGHH69BT0Q79AA",
"name": "my-vpc",
"schema_name": "AWS::EC2::VPC"
},
{
"component_id": "01H9ZQD35JPMBGHH69BT0Q79BB",
"name": "Public 1",
"schema_name": "AWS::EC2::Subnet"
}
],
"nextCursor": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| componentDetails | [ComponentDetailsV1] | true | none | none |
| nextCursor | string,null | false | none | none |
ListSchemaV1Response
{
"nextCursor": "string",
"schemas": [
{
"category": "AWS::EC2",
"installed": "false",
"schemaId": "01H9ZQD35JPMBGHH69BT0Q79VY",
"schemaName": "AWS::EC2::Instance"
}
]
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| nextCursor | string,null | false | none | none |
| schemas | [SchemaResponse] | true | none | none |
ManageComponentV1Request
{
"componentId": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| componentId | string | true | none | none |
ManageComponentV1Response
{
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| component | ComponentViewV1 | true | none | none |
ManagedByConnectionViewV1
{
"componentId": "string",
"componentName": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| componentId | string | true | none | none |
| componentName | string | true | none | none |
ManagementFuncJobStateV1RequestPath
{
"management_func_job_state_id": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| management_func_job_state_id | string | true | none | none |
ManagementFunctionReference
{
"function": "CreateVpc"
}Reference to a management function by either name or ID. This allows clients to use the more human-friendly name approach or the more precise ID approach when working with management functions.
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » function | string | true | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » managementPrototypeId | string | true | none | none |
ManagingConnectionViewV1
{
"componentId": "string",
"componentName": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| componentId | string | true | none | none |
| componentName | string | true | none | none |
Member
{
"email": "user@example.com",
"nickname": "John Doe",
"role": "OWNER",
"signupAt": "string",
"userId": "01GW0KXH4YJBWC7BTBAZ6ZR7EA"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| string | true | none | none | |
| nickname | string | true | none | none |
| role | string | true | none | none |
| signupAt | string,null | false | none | none |
| userId | string | true | none | none |
MergeStatusV1Response
{
"changeSet": {
"id": "01FXNV4P306V3KGZ73YSVN8A60",
"name": "My feature",
"status": "Ready"
},
"actions": [
{
"id": "01H9ZQD35JPMBGHH69BT0Q79VY",
"component": {
"id": "01H9ZQD35JPMBGHH69BT0Q79AB",
"name": "my-ec2-instance"
},
"state": "Pending",
"kind": "Create",
"name": "Create EC2 Instance"
}
]
}Response for merge status
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| actions | [MergeStatusV1ResponseAction] | true | none | [Action item in merge status response] |
| changeSet | object | true | none | none |
MergeStatusV1ResponseAction
{
"id": "01H9ZQD35JPMBGHH69BT0Q79VY",
"component": {
"id": "01H9ZQD35JPMBGHH69BT0Q79AB",
"name": "my-ec2-instance"
},
"state": "Pending",
"kind": "Create",
"name": "Create EC2 Instance"
}Action item in merge status response
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| component | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | MergeStatusV1ResponseActionComponent | false | none | Component details in action response |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| kind | string | true | none | none |
| name | string | true | none | none |
| state | string | true | none | none |
MergeStatusV1ResponseActionComponent
{
"id": "01H9ZQD35JPMBGHH69BT0Q79AB",
"name": "my-ec2-instance"
}Component details in action response
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| name | string | true | none | none |
OutputLineViewV1
{
"executionId": "01JQCJ0AAXGX5M9QY10AVF4GK1",
"group": "log",
"level": "info",
"message": "Running CLI command: \"aws 'cloudcontrol' 'delete-resource'\"",
"stream": "stdout",
"timestamp": 1743104518
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| executionId | string | true | none | none |
| group | string,null | false | none | none |
| level | string | true | none | none |
| message | string | true | none | none |
| stream | string | true | none | none |
| timestamp | integer(int64) | true | none | none |
PropSchemaV1
{
"children": [
{
"children": [],
"defaultValue": null,
"description": "string",
"docLink": "string",
"hidden": true,
"name": "string",
"propId": "string",
"propType": "string",
"validationFormat": "string"
}
],
"defaultValue": null,
"description": "string",
"docLink": "string",
"hidden": true,
"name": "string",
"propId": "string",
"propType": "string",
"validationFormat": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| children | array,null | false | none | none |
| defaultValue | any | false | none | none |
| description | string,null | false | none | none |
| docLink | string,null | false | none | none |
| hidden | boolean,null | false | none | none |
| name | string | true | none | none |
| propId | string | true | none | none |
| propType | string | true | none | none |
| validationFormat | string,null | false | none | none |
PurgeOpenChangeSetsV1Response
{
"success": {
"success": "true"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
PutOnHoldActionV1Response
{
"success": true
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
RemoveMemberRequest
{
"email": "user@example.com"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| string | true | none | none |
RequestApprovalChangeSetV1Response
{
"success": "true"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
RestoreComponentV1Response
{
"status": "true"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | boolean | true | none | none |
RetryActionV1Response
{
"success": true
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
SchemaResponse
{
"category": "AWS::EC2",
"installed": "false",
"schemaId": "01H9ZQD35JPMBGHH69BT0Q79VY",
"schemaName": "AWS::EC2::Instance"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| category | string,null | false | none | none |
| installed | boolean | true | none | none |
| schemaId | string | true | none | none |
| schemaName | string | true | none | none |
SchemaV1RequestPath
{
"schema_id": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| schema_id | string | true | none | none |
SchemaVariantFunc
{
"funcKind": {
"actionKind": "Create",
"kind": "action"
},
"id": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| funcKind | SchemaVariantFuncKind | true | none | none |
| id | string | true | none | none |
SchemaVariantFuncKind
{
"actionKind": "Create",
"kind": "action"
}Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | Action function; carries the specific ActionKind. |
| » actionKind | string | true | none | Specific action kind |
| » kind | string | true | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | Management function; carries the specific ManagementFuncKind. |
| » kind | string | true | none | none |
| » managementFuncKind | string | true | none | Specific management function kind |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | Any other function; exposes the raw FuncKind category. |
| » funcKind | string | true | none | none |
| » kind | string | true | none | none |
Enumerated Values
| Property | Value |
|---|---|
| kind | action |
| kind | management |
| kind | other |
SchemaVariantV1RequestPath
{
"schema_id": "string",
"schema_variant_id": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| schema_id | string | true | none | none |
| schema_variant_id | string | true | none | none |
SearchComponentsV1Request
{
"queryString": "string",
"schemaCategory": "AWS::EC2",
"schemaName": "AWS::EC2::Instance",
"upgradable": true
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| queryString | string,null | false | none | none |
| schemaCategory | string,null | false | none | none |
| schemaName | string,null | false | none | none |
| upgradable | boolean,null | false | none | none |
SearchComponentsV1Response
{
"components": [
"01H9ZQD35JPMBGHH69BT0Q79AA",
"01H9ZQD35JPMBGHH69BT0Q79BB",
"01H9ZQD35JPMBGHH69BT0Q79CC"
]
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| components | [array] | true | none | none |
SearchSchemasV1Request
{
"category": "AWS::EC2"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| category | string,null | false | none | none |
SearchSchemasV1Response
{
"schemas": [
{
"category": "AWS::EC2",
"installed": "false",
"schemaId": "01H9ZQD35JPMBGHH69BT0Q79VY",
"schemaName": "AWS::EC2::Instance"
}
]
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| schemas | [SchemaResponse] | true | none | none |
SearchV1Request
{
"q": "AWS::EC2::Instance region:us-east-1"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| q | string | true | none | none |
SearchV1Response
{
"components": [
"01H9ZQD35JPMBGHH69BT0Q79AA",
"01H9ZQD35JPMBGHH69BT0Q79BB",
"01H9ZQD35JPMBGHH69BT0Q79CC"
]
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| components | [ComponentSearchResult] | true | none | [Component data in search results.] |
SecretDefinitionV1
{
"formData": [
{
"name": "access_key_id",
"kind": "string"
},
{
"name": "secret_access_key",
"kind": "password"
}
],
"secretDefinition": "aws_credentials"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| formData | [SecretFormDataV1] | true | none | none |
| secretDefinition | string | true | none | none |
SecretFormDataV1
{
"kind": "string",
"name": "access_key_id"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| kind | string | true | none | none |
| name | string | true | none | none |
SecretPropKey
"string"Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SecretPropPath | false | none | none |
SecretPropPath
"string"Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | none |
SecretV1
{
"definition": "aws_credentials",
"description": "AWS credentials for production environment",
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHH",
"name": "Production AWS Key"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| definition | string | true | none | none |
| description | string,null | false | none | none |
| id | string | true | none | none |
| name | string | true | none | none |
SourceViewV1
{
"component": "string",
"propPath": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| component | string | true | none | none |
| propPath | string | true | none | none |
SystemStatusResponse
{
"API Documentation": "Available at /swagger-ui"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| API Documentation | string | true | none | none |
UnlockFuncV1Request
{
"schemaVariantId": "01H9ZQD35JPMBGHH69BT0Q75XY"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| schemaVariantId | string | true | none | none |
UnlockFuncV1Response
{
"unlockedFuncId": "01H9ZQD35JPMBGHH69BT0Q75XY"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| unlockedFuncId | string | true | none | none |
UnlockedSchemaV1Response
{
"schemaId": "01H9ZQD35JPMBGHH69BT0Q79VZ",
"unlockedVariant": {
"assetFuncId": "01H9ZQD35JPMBGHH69BT0Q75XY",
"category": "AWS::EC2",
"color": "#FF5733",
"description": "Amazon EC2 Instance resource type",
"displayName": "AWS EC2 Instance",
"domainProps": {},
"installedFromUpstream": false,
"isDefaultVariant": true,
"isLocked": false,
"link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html",
"variantFuncIds": [
"01H9ZQD35JPMBGHH69BT0Q75AA",
"01H9ZQD35JPMBGHH69BT0Q75BB"
],
"variantFuncs": [
{
"funcKind": {
"actionKind": "Create",
"kind": "action"
},
"id": "01H9ZQD35JPMBGHH69BT0Q79VZ"
}
],
"variantId": "01H9ZQD35JPMBGHH69BT0Q79VZ"
},
"unlockedVariantId": "01H9ZQD35JPMBGHH69BT0Q75XY"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| schemaId | string | true | none | none |
| unlockedVariant | GetSchemaVariantV1Response | true | none | none |
| unlockedVariantId | string | true | none | none |
UpdateComponentV1Request
{
"attributes": {
"/domain/VpcId": {
"$source": {
"component": "01K0WRC69ZPEMD6SMTKC84FBWC",
"path": "/resource_value/VpcId"
}
},
"/domain/SubnetId": {
"$source": {
"component": "01K0WRC69ZPEMD6SMTKC84FBWD",
"path": "/resource_value/SubnetId"
}
},
"/domain/Version": {
"$source": null
}
},
"name": "MyUpdatedComponentName",
"resourceId": "i-12345678",
"secrets": {
"secretDefinitionName": "secretName"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| attributes | object | false | none | none |
| » additionalProperties | any | false | none | none |
| name | string,null | false | none | none |
| resourceId | string,null | false | none | none |
| secrets | object | false | none | none |
| » additionalProperties | any | false | none | none |
UpdateComponentV1Response
{
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| component | ComponentViewV1 | true | none | none |
UpdateFuncV1Request
{
"code": "<!-- String escaped Typescript code here -->",
"description": "Updated Description",
"displayName": "Updated Display Name"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | true | none | none |
| description | string,null | false | none | none |
| displayName | string,null | false | none | none |
UpdateFuncV1Response
{
"success": true
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | true | none | none |
UpdateMemberRoleRequest
{
"role": "EDITOR",
"userId": "01GW0KXH4YJBWC7BTBAZ6ZR7EA"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| role | string | true | none | none |
| userId | string | true | none | none |
UpdateSchemaVariantV1Request
{
"category": "AWS::EC2",
"code": "async function main(input: Input): Promise < Output > {\n if (!input.domain?.region) {\n return {\n result: \"failure\",\n message: \"No Region Name to validate\",\n };\n }\n\n const child = await siExec.waitUntilEnd(\"aws\", [\n \"ec2\",\n \"describe-regions\",\n \"--region-names\",\n input.domain?.region!,\n \"--region\",\n \"us-east-1\",\n ]);\n\n if (child.exitCode !== 0) {\n console.error(child.stderr);\n return {\n result: \"failure\",\n message: \"Error from API\"\n }\n }\n\n const regionDetails = JSON.parse(child.stdout).Regions;\n if (regionDetails.length === 0 || regionDetails.length > 1) {\n return {\n result: \"failure\",\n message: \"Unable to find Region\"\n }\n }\n\n if (regionDetails[0].OptInStatus === \"not-opted-in\") {\n return {\n result: \"failure\",\n message: \"Region not-opted-in for use\"\n }\n }\n\n return {\n result: \"success\",\n message: \"Region is available to use\",\n };\n}",
"color": "#FF5733",
"description": "Validates if an AWS region exists and is available for use",
"link": "https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeRegions.html",
"name": "AWS Region Validator"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| category | string | true | none | none |
| code | string | true | none | none |
| color | string,null | false | none | none |
| description | string,null | false | none | none |
| link | string,null | false | none | none |
| name | string | true | none | none |
UpdateSecretV1Request
{
"description": "Updated AWS Secret Key for EC2 access",
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHH",
"name": "AWS Access Key",
"rawData": {
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"region": "us-west-2",
"default_output": "json"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string,null | false | none | none |
| id | string | true | none | none |
| name | string | true | none | none |
| rawData | object,null | false | none | none |
| » additionalProperties | string | false | none | none |
UpdateSecretV1Response
{
"secret": {
"definition": "aws_credentials",
"description": "AWS credentials for production environment",
"id": "01HAXYZF3GC9CYA6ZVSM3E4YHH",
"name": "Production AWS Key"
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| secret | SecretV1 | true | none | none |
UpdateWorkspaceRequest
{
"description": "Updated description for the workspace",
"displayName": "Updated Workspace Name",
"instanceUrl": "https://app.systeminit.com"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| description | string,null | false | none | none |
| displayName | string,null | false | none | none |
| instanceUrl | string,null | false | none | none |
UpgradeComponentV1Response
{
"component": {
"attributes": {
"/domain/region": "us-east-1",
"/secrets/credential": {
"$source": {
"component": "demo-credential",
"path": "/secrets/AWS Credential"
}
}
},
"canBeUpgraded": true,
"connections": [
{
"managing": {
"componentId": "string",
"componentName": "string"
}
}
],
"domainProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"id": "string",
"name": "string",
"resourceId": "string",
"resourceProps": [
{
"id": "string",
"path": "path/to/prop",
"propId": "string",
"value": null
}
],
"schemaId": "string",
"schemaVariantId": "string",
"toDelete": true,
"views": [
{
"id": "string",
"isDefault": true,
"name": "string"
}
]
}
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| component | ComponentViewV1 | true | none | none |
ViewV1
{
"id": "string",
"isDefault": true,
"name": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | true | none | none |
| isDefault | boolean | true | none | none |
| name | string | true | none | none |
WhoamiResponse
{
"token": {},
"userEmail": "user@example.com",
"userId": "01H9ZQCBJ3E7HBTRN3J58JQX8K",
"workspaceId": "01H9ZQD35JPMBGHH69BT0Q79VY"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| token | object | true | none | none |
| userEmail | string | true | none | none |
| userId | string | true | none | none |
| workspaceId | string | true | none | none |
Workspace
{
"approvalsEnabled": true,
"creatorUser": {},
"creatorUserId": "string",
"description": "string",
"displayName": "string",
"id": "string",
"instanceEnvType": "string",
"instanceUrl": "string",
"isDefault": true,
"quarantinedAt": "string",
"role": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| approvalsEnabled | boolean | true | none | none |
| creatorUser | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | null | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | CreatorUser | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| creatorUserId | string | true | none | none |
| description | string,null | false | none | none |
| displayName | string | true | none | none |
| id | string | true | none | none |
| instanceEnvType | string | true | none | none |
| instanceUrl | string,null | false | none | none |
| isDefault | boolean | true | none | none |
| quarantinedAt | string,null | false | none | none |
| role | string,null | false | none | none |
WorkspaceManagementRequestPath
{
"workspace_id": "string"
}Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| workspace_id | string | true | none | none |