M2A Compute Internal API (local)

Download OpenAPI specification:

The M2A Computer API enables provisioning and management of compute infrastructure through two resource types: compute configurations and compute resources.

Workflow:

  1. Create a compute configuration via this API, defining networking, instance settings, and optional load balancer configuration.

  2. Create compute resources via M2A Workflows, referencing your configuration by resource name. The configuration settings are applied to each resource automatically.

  3. Query compute resources via this API to monitor state and retrieve connection details.

This separation allows infrastructure teams to define approved configurations once, while workflow users simply reference them without needing to specify low-level infrastructure details.

Health

Health check endpoints.

Get Health Status

Authorizations:
public

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "api-version": "string",
  • "build-version": "string"
}

Compute Resources

Query compute resources to monitor state, retrieve instance details, and obtain connection information. Compute resources are created and managed through M2A Workflows, where you specify a compute configuration to apply. This API provides read-only access for observability.

Get Compute Resource

Authorizations:
http_security_schema
path Parameters
compute_resource_id
required
string
query Parameters
owner
required
string <uuid>
header Parameters
accept
string
Value: "application/vnd.api+json"

Content type (expressed as MIME types) the client is able to understand.

Content-Type
string
Value: "application/vnd.api+json"

The original media type of the resource.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Compute Configurations

A compute configuration is a reusable template that brings together multiple AWS resources to provide managed access to compute instances. A single configuration can provision an Auto Scaling Group, Network Load Balancer, and Route 53 DNS records as a cohesive unit.

Configurations support two access patterns: load-balanced access through an NLB with DNS resolution, or direct access to EC2 instances when a load balancer is not required.

Each configuration has a resource-name that must be unique per owner (target account). You can look up configurations by either UUID or by name using the resource_name: prefix (e.g., /compute-configurations/resource_name:my-config).

Create configurations here, then reference them by name or ID when creating compute resources in M2A Workflows. This eliminates repetitive specification of networking, instance types, storage, and load balancer settings.

List Compute Configurations

Retrieve all compute configurations for a target account. Configurations define reusable infrastructure settings (networking, compute, load balancer) that can be referenced when creating compute resources.

Authorizations:
http_security_schema
query Parameters
owner
required
string <uuid>

Filter configurations by owner target account ID.

page[number]
integer >= 1
Default: 1

Page number to retrieve (1-indexed).

page[size]
integer [ 1 .. 100 ]
Default: 25

Number of items per page.

header Parameters
accept
string
Value: "application/vnd.api+json"

Content type (expressed as MIME types) the client is able to understand.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    ],
  • "links": {},
  • "meta": {
    }
}

Create Compute Configuration

Create a new compute configuration template. Configurations define networking (subnets, security groups), compute (instance types, AMI, storage), and load balancer settings that compute resources will inherit.

Authorizations:
http_security_schema
header Parameters
accept
string
Value: "application/vnd.api+json"

Content type (expressed as MIME types) the client is able to understand.

Content-Type
required
string
Value: "application/vnd.api+json"

The original media type of the resource.

Request Body schema: application/vnd.api+json
required
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Get Compute Configuration

Retrieve a specific compute configuration by ID.

Authorizations:
http_security_schema
path Parameters
compute_configuration_id
required
string

Configuration identifier. Accepts either a UUID or a resource name prefixed with "resource_name:" (e.g., "resource_name:video-processor-standard").

query Parameters
owner
required
string <uuid>

Owner target account ID.

header Parameters
accept
string
Value: "application/vnd.api+json"

Content type (expressed as MIME types) the client is able to understand.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Patch Compute Configuration

Partially update a compute configuration. Only include the fields you wish to change; omitted fields are left unchanged. For list fields (e.g. subnets, instance-types, ports), the entire list is replaced with the provided value. Requires If-Match header with current ETag for optimistic concurrency control.

Authorizations:
http_security_schema
path Parameters
compute_configuration_id
required
string

Configuration identifier. Accepts either a UUID or a resource name prefixed with "resource_name:" (e.g., "resource_name:video-processor-standard").

query Parameters
owner
required
string <uuid>

Owner target account ID.

header Parameters
accept
string
Value: "application/vnd.api+json"

Content type (expressed as MIME types) the client is able to understand.

Content-Type
required
string
Value: "application/vnd.api+json"

The original media type of the resource.

If-Match
required
string <uuid>

ETag for optimistic concurrency control.

Request Body schema: application/vnd.api+json
required
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    }
}

Delete Compute Configuration

Delete a compute configuration. Will fail if the configuration is currently referenced by any compute resources.

Authorizations:
http_security_schema
path Parameters
compute_configuration_id
required
string

Configuration identifier. Accepts either a UUID or a resource name prefixed with "resource_name:" (e.g., "resource_name:video-processor-standard").

query Parameters
owner
required
string <uuid>

Owner target account ID.

header Parameters
accept
string
Value: "application/vnd.api+json"

Content type (expressed as MIME types) the client is able to understand.

Responses

Response samples

Content type
application/vnd.api+json
{
  • "errors": [
    ]
}