Actions
The ballerinax/aws.marketplace.mpm package exposes the following clients:
| Client | Purpose |
|---|---|
Client | Interacts with the AWS Marketplace Metering Service for customer resolution and usage metering. |
Client
Interacts with the AWS Marketplace Metering Service for customer resolution and usage metering.
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
region | Region | Required | The AWS region for the Metering Service endpoint (e.g., US_EAST_1). |
auth | AuthConfig | Required | AWS authentication credentials containing accessKeyId, secretAccessKey, and optional sessionToken. |
Initializing the client
import ballerinax/aws.marketplace.mpm;
configurable string accessKeyId = ?;
configurable string secretAccessKey = ?;
mpm:Client mpmClient = check new ({
region: mpm:US_EAST_1,
auth: {
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey
}
});
Operations
Customer resolution
resolveCustomer
Resolves a customer from an AWS Marketplace registration token, returning the customer identifier, AWS account ID, and product code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
registrationToken | string | Yes | The registration token provided by AWS Marketplace when a customer subscribes to your product. |
Returns: ResolveCustomerResponse|Error
Sample code:
mpm:ResolveCustomerResponse response = check mpmClient->resolveCustomer("<registration-token>");
Sample response:
{"customerAWSAccountId": "123456789012", "customerIdentifier": "cust-abc123xyz", "productCode": "prod-example1234"}
Usage metering
batchMeterUsage
Submits a batch of metering usage records to AWS Marketplace for billing. Accepts up to 25 usage records per request.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
productCode | string | Yes | The product code of your AWS Marketplace product (1–255 characters, alphanumeric and special characters). |
usageRecords | UsageRecord[] | No | Array of usage records to submit (max 25). Defaults to an empty array. |
Returns: BatchMeterUsageResponse|Error
Sample code:
mpm:BatchMeterUsageResponse response = check mpmClient->batchMeterUsage(
productCode = "prod-example1234",
usageRecords = [
{
customerIdentifier: "cust-abc123xyz",
dimension: "api_calls",
timestamp: [1700000000, 0],
quantity: 150
}
]
);
Sample response:
{"results": [{"meteringRecordId": "mtr-12345abcde", "status": "Success", "usageRecord": {"customerIdentifier": "cust-abc123xyz", "dimension": "api_calls", "timestamp": [1700000000, 0], "quantity": 150}}], "unprocessedRecords": []}
Connection management
close
Closes the client connection and releases associated resources.
Returns: Error?
Sample code:
check mpmClient->close();