SDK for PHP V3

Client: Aws\CloudWatchOmni\CloudWatchOmniClient
Service ID: cloudwatchomni
Version: 2025-01-01

This page describes the parameters and results for the operations of the CloudWatch Omni (2025-01-01), and shows how to use the Aws\CloudWatchOmni\CloudWatchOmniClient object to call the described operations. This documentation is specific to the 2025-01-01 API version of the service.

Operation Summary

Each of the following operations can be created from a client using $client->getCommand('CommandName'), where "CommandName" is the name of one of the following operations. Note: a command is a value that encapsulates an operation and the parameters used to create an HTTP request.

You can also create and send a command immediately using the magic methods available on a client object: $client->commandName(/* parameters */). You can send the command asynchronously (returning a promise) by appending the word "Async" to the operation name: $client->commandNameAsync(/* parameters */).

CreateAccessGrant ( array $params = [] )
Creates an AccessGrant that authorizes a principal to perform a set of actions on resources in a space.
CreateAccessProfile ( array $params = [] )
Creates an access profile in a space.
CreateAlert ( array $params = [] )
Creates a new alert within a space.
CreateDomain ( array $params = [] )
Creates a domain with identity provider configuration.
CreateDomainAccessGrantForOrganization ( array $params = [] )
Creates an AccessGrant that authorizes a principal to administer an organization domain.
CreateDomainForOrganization ( array $params = [] )
Creates an organization-scoped domain for the caller's AWS Organization.
CreateIntegration ( array $params = [] )
Creates an integration with a third-party provider.
CreateOmniDashboard ( array $params = [] )
Creates a new dashboard within a space.
CreateOneTimeDeepLinkCode ( array $params = [] )
Generates a one-time code for deep-link authentication.
CreateSpace ( array $params = [] )
Creates a space in a domain.
CreateView ( array $params = [] )
Creates a new SQL view.
DeleteAccessGrant ( array $params = [] )
Removes an existing AccessGrant, revoking the access it granted.
DeleteAccessProfile ( array $params = [] )
Removes an access profile.
DeleteAlert ( array $params = [] )
Deletes an alert by its identifier.
DeleteDomain ( array $params = [] )
Removes a domain and all of its resources.
DeleteDomainAccessGrantForOrganization ( array $params = [] )
Removes an existing organization access grant, revoking the access it granted.
DeleteDomainForOrganization ( array $params = [] )
Removes an organization domain and all of its resources.
DeleteIntegration ( array $params = [] )
Deletes an integration.
DeleteOmniDashboard ( array $params = [] )
Removes a dashboard from a space.
DeleteSpace ( array $params = [] )
Removes a space and all of its resources.
DeleteView ( array $params = [] )
Deletes the specified view.
GetAccessGrant ( array $params = [] )
Retrieves the full detail of a single AccessGrant by ID.
GetAccessProfile ( array $params = [] )
Retrieves an access profile by ID.
GetAlert ( array $params = [] )
Retrieves a single alert by its identifier.
GetContextGraph ( array $params = [] )
Queries the context graph with filtering, traversal, and pagination support.
GetDomain ( array $params = [] )
Retrieves the details of a domain by ID.
GetDomainAccessGrantForOrganization ( array $params = [] )
Retrieves the full detail of a single organization access grant by ID.
GetDomainForOrganization ( array $params = [] )
Retrieves the details of an organization domain by ID.
GetIntegration ( array $params = [] )
Returns the details of a single integration, identified by its identifier, Amazon Resource Name, or name.
GetIntelligenceConfiguration ( array $params = [] )
Retrieves the intelligence configuration for the calling account.
GetOmniDashboard ( array $params = [] )
Retrieves a dashboard by ID within a space.
GetSpace ( array $params = [] )
Retrieves the details of a space by ID.
GetSpaceCredentialsForOrganization ( array $params = [] )
Returns temporary credentials for a space in an organization member account.
GetTelemetryQueryResults ( array $params = [] )
Returns the results for the specified query.
GetView ( array $params = [] )
Returns the definition and metadata of the specified view.
ListAccessGrants ( array $params = [] )
Returns AccessGrants, with optional filtering by domain, space, principal, or permission.
ListAccessProfiles ( array $params = [] )
Returns the access profiles in a space.
ListAlerts ( array $params = [] )
Lists alerts within a space, optionally filtered by exact name(s), a single name prefix, or exact alertId(s), with pagination.
ListDomainAccessGrantsForOrganization ( array $params = [] )
Returns organization-level domain access grants, with optional filtering by domain, principal, or permission.
ListDomains ( array $params = [] )
Returns the caller's domains: the account-scoped domain and the organization-scoped domain, if either exists.
ListIntegrations ( array $params = [] )
Lists the integrations in the account, optionally filtered by type, status, or name.
ListOmniDashboards ( array $params = [] )
Returns the dashboards in a space, optionally filtered by name prefix.
ListSpaces ( array $params = [] )
Returns the spaces in the account, optionally filtered by domain.
ListSpacesForOrganization ( array $params = [] )
Returns the spaces across all member accounts in the organization.
ListTelemetryFields ( array $params = [] )
Lists fields available for telemetry queries.
ListTelemetryQuerySessions ( array $params = [] )
Lists telemetry query sessions.
ListViews ( array $params = [] )
Lists the views in the caller's account and region.
PutIntelligenceConfiguration ( array $params = [] )
Creates or updates the intelligence configuration for the calling account.
SearchPrincipals ( array $params = [] )
Searches Identity Center for users and groups in a domain.
StartTelemetryQuery ( array $params = [] )
Starts a telemetry query within a session.
StartTelemetryQuerySession ( array $params = [] )
Starts a new telemetry query session.
StopTelemetryQuery ( array $params = [] )
Stops a running telemetry query.
StopTelemetryQuerySession ( array $params = [] )
Stops a telemetry query session.
UpdateAccessProfile ( array $params = [] )
Updates the name or description of an access profile.
UpdateAlert ( array $params = [] )
Updates an existing alert.
UpdateDomain ( array $params = [] )
Updates a domain's name or identity provider configuration.
UpdateDomainForOrganization ( array $params = [] )
Updates an organization domain's name or identity provider configuration.
UpdateIntegration ( array $params = [] )
Updates an existing integration, identified by its id, ARN, or name.
UpdateOmniDashboard ( array $params = [] )
Updates an existing dashboard within a space.
UpdateSpace ( array $params = [] )
Updates a space.
UpdateView ( array $params = [] )
Updates an existing view's definition and/or description.

Paginators

Paginators handle automatically iterating over paginated API results. Paginators are associated with specific API operations, and they accept the parameters that the corresponding API operation accepts. You can get a paginator from a client class using getPaginator($paginatorName, $operationParameters). This client supports the following paginators:

GetContextGraph
GetTelemetryQueryResults
ListAccessGrants
ListAccessProfiles
ListAlerts
ListDomainAccessGrantsForOrganization
ListDomains
ListIntegrations
ListOmniDashboards
ListSpaces
ListSpacesForOrganization
ListTelemetryFields
ListTelemetryQuerySessions
ListViews
SearchPrincipals

Operations

CreateAccessGrant

$result = $client->createAccessGrant([/* ... */]);
$promise = $client->createAccessGrantAsync([/* ... */]);

Creates an AccessGrant that authorizes a principal to perform a set of actions on resources in a space.

Optionally narrow the grant with scoped actions that limit it to specific resources and fields. Use ListAccessGrants and GetAccessGrant to retrieve grants, and DeleteAccessGrant to remove them.

Parameter Syntax

$result = $client->createAccessGrant([
    'clientToken' => '<string>',
    'domainId' => '<string>', // REQUIRED
    'name' => '<string>', // REQUIRED
    'permission' => 'SPACE_ADMIN|READ|READ_WRITE_DELETE|CUSTOM', // REQUIRED
    'principal' => [ // REQUIRED
        'principalAttributes' => [
            [
                'key' => '<string>', // REQUIRED
                'value' => '<string>', // REQUIRED
            ],
            // ...
        ],
        'principalId' => '<string>',
        'principalType' => 'IDC_USER|IDC_GROUP|IAM_USER|IAM_ROLE|IAM_ROOT|ACCESS_PROFILE|ALERT|AGENT', // REQUIRED
    ],
    'scopedActions' => [
        [
            'actions' => ['<string>', ...], // REQUIRED
            'contextConditions' => [
                '<String>' => ['<string>', ...],
                // ...
            ],
            'resources' => [
                [
                    'resourceArns' => ['<string>', ...],
                    'resourceType' => '<string>', // REQUIRED
                    'rowScopeGroups' => [
                        [
                            [
                                'field' => '<string>', // REQUIRED
                                'operator' => 'IN', // REQUIRED
                                'values' => ['<string>', ...], // REQUIRED
                            ],
                            // ...
                        ],
                        // ...
                    ],
                    'signalTypes' => ['<string>', ...],
                    'tags' => ['<string>', ...],
                ],
                // ...
            ],
        ],
        // ...
    ],
    'spaceId' => '<string>', // REQUIRED
    'tags' => ['<string>', ...],
]);

Parameter Details

Members
clientToken
Type: string

Idempotency token for safe retries. Repeated requests with the same token return the original result instead of creating a duplicate.

domainId
Required: Yes
Type: string

The ID of the domain that contains the space.

name
Required: Yes
Type: string

A name that identifies the access grant.

permission
Required: Yes
Type: string

The permission to grant. Exactly one permission is granted per request.

principal
Required: Yes
Type: AccessGrantPrincipal structure

The principal receiving the grant.

scopedActions
Type: Array of ScopedActions structures

Groups of actions to allow, each with the resource scopes and conditions that limit those actions.

spaceId
Required: Yes
Type: string

The ID of the space to scope the grant to.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags to associate with the access grant.

Result Syntax

[
    'accessGrant' => [
        'accountId' => '<string>',
        'createdAt' => <DateTime>,
        'createdBy' => '<string>',
        'domainId' => '<string>',
        'grantArn' => '<string>',
        'grantId' => '<string>',
        'grantType' => 'SERVICE_MANAGED|CUSTOMER_MANAGED',
        'name' => '<string>',
        'permission' => 'SPACE_ADMIN|READ|READ_WRITE_DELETE|CUSTOM',
        'principal' => [
            'principalAttributes' => [
                [
                    'key' => '<string>',
                    'value' => '<string>',
                ],
                // ...
            ],
            'principalId' => '<string>',
            'principalType' => 'IDC_USER|IDC_GROUP|IAM_USER|IAM_ROLE|IAM_ROOT|ACCESS_PROFILE|ALERT|AGENT',
        ],
        'scopedActions' => [
            [
                'actions' => ['<string>', ...],
                'contextConditions' => [
                    '<String>' => ['<string>', ...],
                    // ...
                ],
                'resources' => [
                    [
                        'resourceArns' => ['<string>', ...],
                        'resourceType' => '<string>',
                        'rowScopeGroups' => [
                            [
                                [
                                    'field' => '<string>',
                                    'operator' => 'IN',
                                    'values' => ['<string>', ...],
                                ],
                                // ...
                            ],
                            // ...
                        ],
                        'signalTypes' => ['<string>', ...],
                        'tags' => ['<string>', ...],
                    ],
                    // ...
                ],
            ],
            // ...
        ],
        'spaceId' => '<string>',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
accessGrant
Required: Yes
Type: AccessGrant structure

The details of the created access grant.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Create an access grant

The following example creates a custom access grant that authorizes an Identity Center user to read and update a specific dashboard in a space. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createAccessGrant([
    'name' => 'analyst-read-access',
    'clientToken' => '3f2a9c1e-7b04-4d8a-9e15-6c2b8d0f4a73',
    'domainId' => 'd-1a2b3c4d5e',
    'permission' => 'CUSTOM',
    'principal' => [
        'principalId' => '94b6c7d8-1a2b-4c3d-9e4f-5a6b7c8d9e0f',
        'principalType' => 'IDC_USER',
    ],
    'scopedActions' => [
        [
            'actions' => [
                'cloudwatch:GetOmniDashboard',
                'cloudwatch:UpdateOmniDashboard',
            ],
            'resources' => [
                [
                    'resourceArns' => [
                        'arn:aws:cloudwatch:us-east-1:123456789012:omni-dashboard/c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
                    ],
                    'resourceType' => 'OmniDashboard',
                ],
            ],
        ],
    ],
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    'tags' => [
        'Team' => 'observability',
    ],
]);

Result syntax:

[
    'accessGrant' => [
        'name' => 'analyst-read-access',
        'accountId' => '123456789012',
        'createdAt' => ,
        'createdBy' => 'arn:aws:iam::123456789012:role/ObservabilityAdmin',
        'domainId' => 'd-1a2b3c4d5e',
        'grantArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:access-grant/7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
        'grantId' => '7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
        'grantType' => 'CUSTOMER_MANAGED',
        'permission' => 'CUSTOM',
        'principal' => [
            'principalId' => '94b6c7d8-1a2b-4c3d-9e4f-5a6b7c8d9e0f',
            'principalType' => 'IDC_USER',
        ],
        'scopedActions' => [
            [
                'actions' => [
                    'cloudwatch:GetOmniDashboard',
                    'cloudwatch:UpdateOmniDashboard',
                ],
                'resources' => [
                    [
                        'resourceArns' => [
                            'arn:aws:cloudwatch:us-east-1:123456789012:omni-dashboard/c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
                        ],
                        'resourceType' => 'OmniDashboard',
                    ],
                ],
            ],
        ],
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'updatedAt' => ,
    ],
]

CreateAccessProfile

$result = $client->createAccessProfile([/* ... */]);
$promise = $client->createAccessProfileAsync([/* ... */]);

Creates an access profile in a space.

Use GetAccessProfile and ListAccessProfiles to retrieve profiles, and UpdateAccessProfile to modify one.

Parameter Syntax

$result = $client->createAccessProfile([
    'clientToken' => '<string>',
    'description' => '<string>',
    'name' => '<string>', // REQUIRED
    'spaceId' => '<string>', // REQUIRED
    'tags' => ['<string>', ...],
]);

Parameter Details

Members
clientToken
Type: string

Idempotency token for safe retries. Repeated requests with the same token return the original result instead of creating a duplicate.

description
Type: string

An optional description of the access profile.

name
Required: Yes
Type: string

A name that identifies the access profile.

spaceId
Required: Yes
Type: string

The unique ID of the space to create the profile in.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags to associate with the access profile.

Result Syntax

[
    'accessProfile' => [
        'arn' => '<string>',
        'assumeStatus' => 'ALLOWED|DENIED',
        'createdAt' => <DateTime>,
        'description' => '<string>',
        'name' => '<string>',
        'profileId' => '<string>',
        'profileType' => 'SERVICE_MANAGED|CUSTOMER_MANAGED',
        'spaceId' => '<string>',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
accessProfile
Required: Yes
Type: AccessProfile structure

The access profile.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Create an access profile

The following example creates a customer-managed access profile in a space. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createAccessProfile([
    'name' => 'Analyst read-only profile',
    'clientToken' => '3f2a9c1e-7b04-4d8a-9e15-6c2b8d0f4a73',
    'description' => 'Read-only access for analysts.',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    'tags' => [
        'Team' => 'observability',
    ],
]);

Result syntax:

[
    'accessProfile' => [
        'name' => 'Analyst read-only profile',
        'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:access-profile/analyst-readonly',
        'assumeStatus' => 'ALLOWED',
        'createdAt' => ,
        'description' => 'Read-only access for analysts.',
        'profileId' => 'analyst-readonly',
        'profileType' => 'CUSTOMER_MANAGED',
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'updatedAt' => ,
    ],
]

CreateAlert

$result = $client->createAlert([/* ... */]);
$promise = $client->createAlertAsync([/* ... */]);

Creates a new alert within a space.

Use GetAlert and ListAlerts to retrieve alerts, UpdateAlert to modify one, and DeleteAlert to remove it.

Parameter Syntax

$result = $client->createAlert([
    'clientToken' => '<string>',
    'description' => '<string>',
    'name' => '<string>', // REQUIRED
    'notificationRules' => [
        [
            'target' => [ // REQUIRED
                'arn' => '<string>', // REQUIRED
                'metadata' => ['<string>', ...],
                'type' => 'sns|slack|pagerduty', // REQUIRED
            ],
            'trigger' => [ // REQUIRED
                'stateValues' => ['<string>', ...],
            ],
        ],
        // ...
    ],
    'notificationsEnabled' => true || false,
    'profileId' => '<string>', // REQUIRED
    'rule' => [ // REQUIRED
        'telemetryRule' => [
            'condition' => [
                'comparator' => 'GT|LT|GTE|LTE',
                'criticalThreshold' => <float>,
                'thresholdField' => '<string>',
                'thresholdMode' => 'COUNT_OF_RESULTS|FIELD_VALUE',
                'warningThreshold' => <float>,
            ],
            'evaluation' => [
                'intervalSeconds' => <integer>, // REQUIRED
                'pendingDurationSeconds' => <integer>,
                'recoveryDurationSeconds' => <integer>,
            ],
            'noData' => [
                'treatAs' => 'OK|WARNING|CRITICAL|NODATA', // REQUIRED
            ],
            'query' => [
                'expression' => '<string>', // REQUIRED
                'language' => 'SQL|PROMQL', // REQUIRED
            ],
        ],
    ],
    'spaceId' => '<string>', // REQUIRED
    'tags' => ['<string>', ...],
]);

Parameter Details

Members
clientToken
Type: string

Idempotency token for safe retries. Retrying with the same token within the idempotency window returns the original alert instead of creating a duplicate.

description
Type: string

An optional description of the alert.

name
Required: Yes
Type: string

Alert name, for display. Max 256 (the AlarmName budget). Not the alert's identity: the backend mints a separate uuid as the {@link AlertId}, so the name need not be unique within a space and addressing an alert never depends on it. UpdateAlert accepts a new name to rename the alert.

notificationRules
Type: Array of NotificationRule structures

The notification rules that determine when and where notifications are sent.

notificationsEnabled
Type: boolean

Whether actions (notifications) are enabled for this alert. Defaults to true when omitted.

profileId
Required: Yes
Type: string

The ID of the access profile the alert uses to evaluate its query and execute notifications. The caller supplies it: there is no managed alert profile, and the service does not pick one on the caller's behalf.

rule
Required: Yes
Type: Rule structure

The rule that defines how the alert is evaluated.

spaceId
Required: Yes
Type: string

The unique ID of the space to create the alert in.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags to associate with the alert.

Result Syntax

[
    'alert' => [
        'accountId' => '<string>',
        'alertArn' => '<string>',
        'alertId' => '<string>',
        'createdAt' => <DateTime>,
        'description' => '<string>',
        'name' => '<string>',
        'notificationRules' => [
            [
                'target' => [
                    'arn' => '<string>',
                    'metadata' => ['<string>', ...],
                    'type' => 'sns|slack|pagerduty',
                ],
                'trigger' => [
                    'stateValues' => ['<string>', ...],
                ],
            ],
            // ...
        ],
        'notificationStatus' => 'ENABLED|DISABLED',
        'profileId' => '<string>',
        'rule' => [
            'telemetryRule' => [
                'condition' => [
                    'comparator' => 'GT|LT|GTE|LTE',
                    'criticalThreshold' => <float>,
                    'thresholdField' => '<string>',
                    'thresholdMode' => 'COUNT_OF_RESULTS|FIELD_VALUE',
                    'warningThreshold' => <float>,
                ],
                'evaluation' => [
                    'intervalSeconds' => <integer>,
                    'pendingDurationSeconds' => <integer>,
                    'recoveryDurationSeconds' => <integer>,
                ],
                'noData' => [
                    'treatAs' => 'OK|WARNING|CRITICAL|NODATA',
                ],
                'query' => [
                    'expression' => '<string>',
                    'language' => 'SQL|PROMQL',
                ],
            ],
        ],
        'spaceId' => '<string>',
        'state' => [
            'contributorSummary' => [
                'criticalCount' => <integer>,
                'warningCount' => <integer>,
            ],
            'data' => [
                'thresholdBreached' => <float>,
            ],
            'transitionedAt' => <DateTime>,
            'value' => 'OK|WARNING|CRITICAL|NODATA',
        ],
        'updatedAt' => <DateTime>,
    ],
    'alertArn' => '<string>',
]

Result Details

Members
alert
Required: Yes
Type: Alert structure

The alert that was created. The same Alert shape GetAlert returns, so a caller need not read the alert back to learn its timestamps or its minted alert id.

{@code alert.state} is absent here — see the state member of Alert. Every other member is populated exactly as GetAlert populates it.

alertArn
Type: string

Deprecated. Use alert.alertArn, which carries the same value. Kept so an existing caller keeps working while it moves to alert.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Create an alert on a field value

The following example creates an alert whose threshold is compared against a named field of each result row, so every service the query groups by is tracked as its own contributor. FIELD_VALUE requires thresholdField. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createAlert([
    'name' => 'service-error-count-elevated',
    'clientToken' => '3f2a9c1e-7b04-4d8a-9e15-6c2b8d0f4a73',
    'description' => 'Alerts when a service logs more errors than its accepted rate.',
    'notificationRules' => [
        [
            'target' => [
                'metadata' => [
                    'channel' => 'oncall-alerts',
                ],
                'type' => 'slack',
                'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:integration/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
            ],
            'trigger' => [
                'stateValues' => [
                    'CRITICAL',
                ],
            ],
        ],
    ],
    'notificationsEnabled' => 1,
    'profileId' => 'analyst-readonly',
    'rule' => [
        'telemetryRule' => [
            'condition' => [
                'comparator' => 'GT',
                'criticalThreshold' => 200,
                'thresholdField' => 'error_count',
                'thresholdMode' => 'FIELD_VALUE',
                'warningThreshold' => 50,
            ],
            'evaluation' => [
                'intervalSeconds' => 300,
                'pendingDurationSeconds' => 600,
                'recoveryDurationSeconds' => 300,
            ],
            'noData' => [
                'treatAs' => 'NODATA',
            ],
            'query' => [
                'expression' => 'SELECT resource['attributes']['service.name'] AS service, COUNT(*) AS error_count FROM "logs.default" WHERE severityText = 'ERROR' GROUP BY service',
                'language' => 'SQL',
            ],
        ],
    ],
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    'tags' => [
        'Team' => 'observability',
    ],
]);

Result syntax:

[
    'alert' => [
        'name' => 'service-error-count-elevated',
        'accountId' => '123456789012',
        'alertArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:alert/c3d4e5f67a8b4c9d8e0f1a2b3c4d5e6f',
        'alertId' => 'c3d4e5f67a8b4c9d8e0f1a2b3c4d5e6f',
        'createdAt' => ,
        'description' => 'Alerts when a service logs more errors than its accepted rate.',
        'notificationRules' => [
            [
                'target' => [
                    'metadata' => [
                        'channel' => 'oncall-alerts',
                    ],
                    'type' => 'slack',
                    'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:integration/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
                ],
                'trigger' => [
                    'stateValues' => [
                        'CRITICAL',
                    ],
                ],
            ],
        ],
        'notificationStatus' => 'ENABLED',
        'profileId' => 'analyst-readonly',
        'rule' => [
            'telemetryRule' => [
                'condition' => [
                    'comparator' => 'GT',
                    'criticalThreshold' => 200,
                    'thresholdField' => 'error_count',
                    'thresholdMode' => 'FIELD_VALUE',
                    'warningThreshold' => 50,
                ],
                'evaluation' => [
                    'intervalSeconds' => 300,
                    'pendingDurationSeconds' => 600,
                    'recoveryDurationSeconds' => 300,
                ],
                'noData' => [
                    'treatAs' => 'NODATA',
                ],
                'query' => [
                    'expression' => 'SELECT resource['attributes']['service.name'] AS service, COUNT(*) AS error_count FROM "logs.default" WHERE severityText = 'ERROR' GROUP BY service',
                    'language' => 'SQL',
                ],
            ],
        ],
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'updatedAt' => ,
    ],
]
Example 2: Create an alert on the number of matching rows

The following example creates an alert whose threshold is compared against how many rows the query returns, rather than a value within them. COUNT_OF_RESULTS takes no thresholdField. Notifications are created disabled, so the alert evaluates and records state without sending anything, and an empty result set is treated as OK rather than as missing data. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createAlert([
    'name' => 'service-checkout-5xx-responses',
    'description' => 'Counts checkout responses that returned a server error.',
    'notificationsEnabled' => ,
    'profileId' => 'analyst-readonly',
    'rule' => [
        'telemetryRule' => [
            'condition' => [
                'comparator' => 'GT',
                'criticalThreshold' => 50,
                'thresholdMode' => 'COUNT_OF_RESULTS',
                'warningThreshold' => 10,
            ],
            'evaluation' => [
                'intervalSeconds' => 60,
                'pendingDurationSeconds' => 120,
            ],
            'noData' => [
                'treatAs' => 'OK',
            ],
            'query' => [
                'expression' => 'SELECT * FROM "logs.default" WHERE resource['attributes']['service.name'] = 'checkout' AND attributes['http.response.status_code'] >= 500',
                'language' => 'SQL',
            ],
        ],
    ],
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'alert' => [
        'name' => 'service-checkout-5xx-responses',
        'accountId' => '123456789012',
        'alertArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:alert/d4e5f6a78b9c4d0e9f1a2b3c4d5e6f70',
        'alertId' => 'd4e5f6a78b9c4d0e9f1a2b3c4d5e6f70',
        'createdAt' => ,
        'description' => 'Counts checkout responses that returned a server error.',
        'notificationStatus' => 'DISABLED',
        'profileId' => 'analyst-readonly',
        'rule' => [
            'telemetryRule' => [
                'condition' => [
                    'comparator' => 'GT',
                    'criticalThreshold' => 50,
                    'thresholdMode' => 'COUNT_OF_RESULTS',
                    'warningThreshold' => 10,
                ],
                'evaluation' => [
                    'intervalSeconds' => 60,
                    'pendingDurationSeconds' => 120,
                ],
                'noData' => [
                    'treatAs' => 'OK',
                ],
                'query' => [
                    'expression' => 'SELECT * FROM "logs.default" WHERE resource['attributes']['service.name'] = 'checkout' AND attributes['http.response.status_code'] >= 500',
                    'language' => 'SQL',
                ],
            ],
        ],
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'updatedAt' => ,
    ],
]
Example 3: Create an alert from a PromQL query

The following example creates an alert from a PromQL expression instead of SQL. A PromQL rule compares against the series value, which is carried as the `value` field, so the condition is FIELD_VALUE with thresholdField set to `value`. Notifications go to an Amazon SNS topic, whose ARN is the topic itself rather than an integration. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createAlert([
    'name' => 'checkout-error-rate-promql',
    'description' => 'Alerts on the checkout server error rate over a five-minute window.',
    'notificationRules' => [
        [
            'target' => [
                'type' => 'sns',
                'arn' => 'arn:aws:sns:us-east-1:123456789012:checkout-oncall',
            ],
            'trigger' => [
                'stateValues' => [
                    'WARNING',
                    'CRITICAL',
                ],
            ],
        ],
    ],
    'profileId' => 'analyst-readonly',
    'rule' => [
        'telemetryRule' => [
            'condition' => [
                'comparator' => 'GT',
                'criticalThreshold' => 0.1,
                'thresholdField' => 'value',
                'thresholdMode' => 'FIELD_VALUE',
                'warningThreshold' => 0.05,
            ],
            'evaluation' => [
                'intervalSeconds' => 300,
                'pendingDurationSeconds' => 300,
            ],
            'noData' => [
                'treatAs' => 'NODATA',
            ],
            'query' => [
                'expression' => 'sum by (service_name) (rate(http_server_errors_total{service_name="checkout"}[5m]))',
                'language' => 'PROMQL',
            ],
        ],
    ],
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'alert' => [
        'name' => 'checkout-error-rate-promql',
        'accountId' => '123456789012',
        'alertArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:alert/e5f6a78b9c0d4e1f8a2b3c4d5e6f7081',
        'alertId' => 'e5f6a78b9c0d4e1f8a2b3c4d5e6f7081',
        'createdAt' => ,
        'description' => 'Alerts on the checkout server error rate over a five-minute window.',
        'notificationRules' => [
            [
                'target' => [
                    'type' => 'sns',
                    'arn' => 'arn:aws:sns:us-east-1:123456789012:checkout-oncall',
                ],
                'trigger' => [
                    'stateValues' => [
                        'WARNING',
                        'CRITICAL',
                    ],
                ],
            ],
        ],
        'notificationStatus' => 'ENABLED',
        'profileId' => 'analyst-readonly',
        'rule' => [
            'telemetryRule' => [
                'condition' => [
                    'comparator' => 'GT',
                    'criticalThreshold' => 0.1,
                    'thresholdField' => 'value',
                    'thresholdMode' => 'FIELD_VALUE',
                    'warningThreshold' => 0.05,
                ],
                'evaluation' => [
                    'intervalSeconds' => 300,
                    'pendingDurationSeconds' => 300,
                ],
                'noData' => [
                    'treatAs' => 'NODATA',
                ],
                'query' => [
                    'expression' => 'sum by (service_name) (rate(http_server_errors_total{service_name="checkout"}[5m]))',
                    'language' => 'PROMQL',
                ],
            ],
        ],
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'updatedAt' => ,
    ],
]

CreateDomain

$result = $client->createDomain([/* ... */]);
$promise = $client->createDomainAsync([/* ... */]);

Creates a domain with identity provider configuration.

Use GetDomain to retrieve the domain, UpdateDomain to change its configuration, and CreateSpace to add spaces within it.

Parameter Syntax

$result = $client->createDomain([
    'clientToken' => '<string>',
    'identityProviderConfiguration' => [
        'identityCenterConfiguration' => [
            'identityCenterInstanceArn' => '<string>',
        ],
    ],
    'identityProviders' => ['<string>', ...], // REQUIRED
    'name' => '<string>', // REQUIRED
    'tags' => ['<string>', ...],
]);

Parameter Details

Members
clientToken
Type: string

Idempotency token for safe retries. Repeated requests with the same token return the original result instead of creating a duplicate.

identityProviderConfiguration

Identity provider configuration for the domain.

identityProviders
Required: Yes
Type: Array of strings

The identity providers to configure for the domain.

name
Required: Yes
Type: string

A name that identifies the domain. Must be 3-63 characters: lowercase letters, numbers, and hyphens. It must begin and end with a letter or number and cannot contain consecutive hyphens.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags to associate with the domain.

Result Syntax

[
    'domain' => [
        'createdAt' => <DateTime>,
        'customEndpointUrls' => ['<string>', ...],
        'domainArn' => '<string>',
        'domainEndpointUrl' => '<string>',
        'domainId' => '<string>',
        'identityCenterApplicationArn' => '<string>',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => '<string>',
            ],
        ],
        'identityProviders' => ['<string>', ...],
        'name' => '<string>',
        'region' => '<string>',
        'status' => 'ACTIVE',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
domain
Required: Yes
Type: Domain structure

The details of the created domain.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Create a domain

The following example creates an Identity Center domain and configures it with an Identity Center instance. The name must be 3-63 characters of lowercase letters, numbers, and hyphens, and the endpoint URLs are derived from it. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createDomain([
    'name' => 'prod-observability',
    'clientToken' => '3f2a9c1e-7b04-4d8a-9e15-6c2b8d0f4a73',
    'identityProviderConfiguration' => [
        'identityCenterConfiguration' => [
            'identityCenterInstanceArn' => 'arn:aws:sso:::instance/ssoins-1234567890abcdef',
        ],
    ],
    'identityProviders' => [
        'IDC',
    ],
    'tags' => [
        'Team' => 'observability',
    ],
]);

Result syntax:

[
    'domain' => [
        'name' => 'prod-observability',
        'createdAt' => ,
        'customEndpointUrls' => [
            'https://prod-observability.cloudwatch-omni.global.app.aws',
        ],
        'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:domain/d-1a2b3c4d5e',
        'domainEndpointUrl' => 'https://d-1a2b3c4d5e.cloudwatch-omni.global.app.aws',
        'domainId' => 'd-1a2b3c4d5e',
        'identityCenterApplicationArn' => 'arn:aws:sso::123456789012:application/ssoins-1234567890abcdef/apl-0f9e8d7c6b5a4938',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => 'arn:aws:sso:::instance/ssoins-1234567890abcdef',
            ],
        ],
        'identityProviders' => [
            'IDC',
        ],
        'region' => 'us-east-1',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

CreateDomainAccessGrantForOrganization

$result = $client->createDomainAccessGrantForOrganization([/* ... */]);
$promise = $client->createDomainAccessGrantForOrganizationAsync([/* ... */]);

Creates an AccessGrant that authorizes a principal to administer an organization domain.

Parameter Syntax

$result = $client->createDomainAccessGrantForOrganization([
    'clientToken' => '<string>',
    'domainId' => '<string>', // REQUIRED
    'name' => '<string>', // REQUIRED
    'permission' => 'ADMIN', // REQUIRED
    'principal' => [ // REQUIRED
        'principalAttributes' => [
            [
                'key' => '<string>', // REQUIRED
                'value' => '<string>', // REQUIRED
            ],
            // ...
        ],
        'principalId' => '<string>',
        'principalType' => 'IDC_USER|IDC_GROUP|IAM_USER|IAM_ROLE|IAM_ROOT', // REQUIRED
    ],
    'tags' => ['<string>', ...],
]);

Parameter Details

Members
clientToken
Type: string

Idempotency token for safe retries. Repeated requests with the same token return the original result instead of creating a duplicate.

domainId
Required: Yes
Type: string

The ID of the organization domain to create the grant on.

name
Required: Yes
Type: string

A name that identifies the access grant.

permission
Required: Yes
Type: string

The permission to grant.

principal
Required: Yes
Type: OrganizationAccessGrantPrincipal structure

The principal receiving the grant.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags to associate with the access grant.

Result Syntax

[
    'accessGrant' => [
        'createdAt' => <DateTime>,
        'createdBy' => '<string>',
        'domainId' => '<string>',
        'grantArn' => '<string>',
        'grantId' => '<string>',
        'grantType' => 'SERVICE_MANAGED|CUSTOMER_MANAGED',
        'name' => '<string>',
        'permission' => 'ADMIN',
        'principal' => [
            'principalAttributes' => [
                [
                    'key' => '<string>',
                    'value' => '<string>',
                ],
                // ...
            ],
            'principalId' => '<string>',
            'principalType' => 'IDC_USER|IDC_GROUP|IAM_USER|IAM_ROLE|IAM_ROOT',
        ],
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
accessGrant
Required: Yes
Type: OrganizationAccessGrant structure

The details of the created organization access grant.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Create an organization domain access grant

The following example grants an Identity Center user administrative access to an organization domain. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createDomainAccessGrantForOrganization([
    'name' => 'org-domain-admin',
    'clientToken' => '3f2a9c1e-7b04-4d8a-9e15-6c2b8d0f4a73',
    'domainId' => 'd-1a2b3c4d5e',
    'permission' => 'ADMIN',
    'principal' => [
        'principalId' => '94b6c7d8-1a2b-4c3d-9e4f-5a6b7c8d9e0f',
        'principalType' => 'IDC_USER',
    ],
    'tags' => [
        'Team' => 'observability',
    ],
]);

Result syntax:

[
    'accessGrant' => [
        'name' => 'org-domain-admin',
        'createdAt' => ,
        'createdBy' => 'arn:aws:iam::123456789012:role/ObservabilityAdmin',
        'domainId' => 'd-1a2b3c4d5e',
        'grantArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:organization-access-grant/7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
        'grantId' => '7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
        'grantType' => 'CUSTOMER_MANAGED',
        'permission' => 'ADMIN',
        'principal' => [
            'principalId' => '94b6c7d8-1a2b-4c3d-9e4f-5a6b7c8d9e0f',
            'principalType' => 'IDC_USER',
        ],
        'updatedAt' => ,
    ],
]

CreateDomainForOrganization

$result = $client->createDomainForOrganization([/* ... */]);
$promise = $client->createDomainForOrganizationAsync([/* ... */]);

Creates an organization-scoped domain for the caller's AWS Organization. Only the organization's management account can call this operation.

Parameter Syntax

$result = $client->createDomainForOrganization([
    'clientToken' => '<string>',
    'domainAccessRoleArn' => '<string>', // REQUIRED
    'identityProviderConfiguration' => [
        'identityCenterConfiguration' => [
            'identityCenterInstanceArn' => '<string>',
        ],
    ],
    'identityProviders' => ['<string>', ...], // REQUIRED
    'name' => '<string>', // REQUIRED
    'tags' => ['<string>', ...],
]);

Parameter Details

Members
clientToken
Type: string

Idempotency token for safe retries. Repeated requests with the same token return the original result instead of creating a duplicate.

domainAccessRoleArn
Required: Yes
Type: string

The ARN of an IAM role in the management account used for domain access. You must create this role, and its trust policy must allow the service principal to assume it.

identityProviderConfiguration

Identity provider configuration for the domain.

identityProviders
Required: Yes
Type: Array of strings

The identity providers to configure for the domain.

name
Required: Yes
Type: string

A name that identifies the organization domain. Must be 3-63 characters: lowercase letters, numbers, and hyphens. It must begin and end with a letter or number and cannot contain consecutive hyphens.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags to associate with the domain.

Result Syntax

[
    'organizationDomain' => [
        'createdAt' => <DateTime>,
        'customEndpointUrls' => ['<string>', ...],
        'domainAccessRoleArn' => '<string>',
        'domainArn' => '<string>',
        'domainEndpointUrl' => '<string>',
        'domainId' => '<string>',
        'identityCenterApplicationArn' => '<string>',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => '<string>',
            ],
        ],
        'identityProviders' => ['<string>', ...],
        'name' => '<string>',
        'organizationId' => '<string>',
        'ownerAccountId' => '<string>',
        'region' => '<string>',
        'status' => 'ACTIVE',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
organizationDomain
Required: Yes
Type: OrganizationDomain structure

The details of the created organization domain.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Create an organization domain

The following example creates an organization-scoped domain from the organization's management account, configures it with an Identity Center instance, and supplies an IAM role in the management account for domain access. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createDomainForOrganization([
    'name' => 'prod-observability-org',
    'clientToken' => '3f2a9c1e-7b04-4d8a-9e15-6c2b8d0f4a73',
    'domainAccessRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchOrganizationDomainAccessRole',
    'identityProviderConfiguration' => [
        'identityCenterConfiguration' => [
            'identityCenterInstanceArn' => 'arn:aws:sso:::instance/ssoins-1234567890abcdef',
        ],
    ],
    'identityProviders' => [
        'IDC',
    ],
    'tags' => [
        'Team' => 'observability',
    ],
]);

Result syntax:

[
    'organizationDomain' => [
        'name' => 'prod-observability-org',
        'createdAt' => ,
        'customEndpointUrls' => [
            'https://prod-observability-org.cloudwatch-omni.global.app.aws',
        ],
        'domainAccessRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchOrganizationDomainAccessRole',
        'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:organization-domain/d-9z8y7x6w5v',
        'domainEndpointUrl' => 'https://d-9z8y7x6w5v.cloudwatch-omni.global.app.aws',
        'domainId' => 'd-9z8y7x6w5v',
        'identityCenterApplicationArn' => 'arn:aws:sso::123456789012:application/ssoins-1234567890abcdef/apl-0f9e8d7c6b5a4938',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => 'arn:aws:sso:::instance/ssoins-1234567890abcdef',
            ],
        ],
        'identityProviders' => [
            'IDC',
        ],
        'organizationId' => 'o-a1b2c3d4e5',
        'ownerAccountId' => '123456789012',
        'region' => 'us-east-1',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

CreateIntegration

$result = $client->createIntegration([/* ... */]);
$promise = $client->createIntegrationAsync([/* ... */]);

Creates an integration with a third-party provider. Returns the integration identifier and its initial status; when the provider requires interactive consent, an authorization URL is returned for the user to complete setup.

Parameter Syntax

$result = $client->createIntegration([
    'clientToken' => '<string>',
    'credential' => [
        'apiKeyCredential' => [
            'apiKeyValue' => '<string>', // REQUIRED
        ],
        'oauthClientCredential' => [
            'clientId' => '<string>', // REQUIRED
            'clientSecret' => '<string>', // REQUIRED
            'providerId' => '<string>',
        ],
        'oauthCodeCredential' => [
            'authCode' => '<string>', // REQUIRED
        ],
    ],
    'integrationAttributes' => ['<string>', ...],
    'integrationType' => 'AWS_CONFIG_SLREC|SLACK|EXTERNAL_AGENT|AWS_INTEGRATION', // REQUIRED
    'name' => '<string>', // REQUIRED
    'roleArn' => '<string>',
    'tags' => ['<string>', ...],
]);

Parameter Details

Members
clientToken
Type: string

Idempotency token for safe retries. Retrying with the same token returns the original integration instead of creating a duplicate.

credential
Type: IntegrationCredential structure

The credential used to authenticate with the third-party provider.

integrationAttributes
Type: Associative array of custom strings keys (CreateIntegrationInputIntegrationAttributesMapKeyString) to strings

Provider-specific attributes to associate with the integration.

integrationType
Required: Yes
Type: string

The type of third-party provider to integrate with.

name
Required: Yes
Type: string

The name for the new integration; unique within the account.

roleArn
Type: string

The Amazon Resource Name of the IAM role assumed to access the integration.

tags
Type: Associative array of custom strings keys (TagKey) to strings

Tags to apply to the integration at creation time (Tagris tag-on-create).

Result Syntax

[
    'integration' => [
        'authType' => 'NONE|OAUTH2|API_KEY',
        'authorizationUrl' => '<string>',
        'createdAt' => <DateTime>,
        'credentialArn' => '<string>',
        'errorMessage' => '<string>',
        'integrationArn' => '<string>',
        'integrationAttributes' => ['<string>', ...],
        'integrationId' => '<string>',
        'integrationType' => 'AWS_CONFIG_SLREC|SLACK|EXTERNAL_AGENT|AWS_INTEGRATION',
        'name' => '<string>',
        'roleArn' => '<string>',
        'scope' => 'ACCOUNT|ORGANIZATION',
        'status' => 'ACTIVE|DELETED|PENDING|PENDING_OAUTH|ERROR|FAILED',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
integration
Required: Yes
Type: Integration structure

The details of the created integration. This is the same object returned by GetIntegration and UpdateIntegration.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Create an AWS integration

The following example creates an AWS_INTEGRATION named my-aws-integration, authorized by an IAM role. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createIntegration([
    'name' => 'my-aws-integration',
    'clientToken' => 'b3f8c7d6-5b4a-4c3d-9e2f-1a0b2c3d4e5f',
    'integrationType' => 'AWS_INTEGRATION',
    'roleArn' => 'arn:aws:iam::123456789012:role/service-role/CloudWatchIntegrationRole',
]);

Result syntax:

[
    'integration' => [
        'name' => 'my-aws-integration',
        'createdAt' => ,
        'integrationArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:integration/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'integrationId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'integrationType' => 'AWS_INTEGRATION',
        'roleArn' => 'arn:aws:iam::123456789012:role/service-role/CloudWatchIntegrationRole',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

CreateOmniDashboard

$result = $client->createOmniDashboard([/* ... */]);
$promise = $client->createOmniDashboardAsync([/* ... */]);

Creates a new dashboard within a space.

Use GetOmniDashboard and ListOmniDashboards to retrieve dashboards, UpdateOmniDashboard to modify one, and DeleteOmniDashboard to remove it.

Parameter Syntax

$result = $client->createOmniDashboard([
    'body' => '<string>', // REQUIRED
    'clientToken' => '<string>',
    'description' => '<string>',
    'name' => '<string>', // REQUIRED
    'spaceId' => '<string>', // REQUIRED
    'tags' => ['<string>', ...],
]);

Parameter Details

Members
body
Required: Yes
Type: string

The dashboard definition, as a JSON document. Maximum 1 MiB.

clientToken
Type: string

Idempotency token for safe retries. Repeated requests with the same token return the original result instead of creating a duplicate.

description
Type: string

An optional description of the dashboard.

name
Required: Yes
Type: string

A name that identifies the dashboard.

spaceId
Required: Yes
Type: string

The unique ID of the space to create the dashboard in.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags to associate with the dashboard.

Result Syntax

[
    'omniDashboard' => [
        'arn' => '<string>',
        'body' => '<string>',
        'createdAt' => <DateTime>,
        'createdBy' => '<string>',
        'dashboardId' => '<string>',
        'description' => '<string>',
        'name' => '<string>',
        'tags' => ['<string>', ...],
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
omniDashboard
Required: Yes
Type: OmniDashboard structure

The dashboard.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Create a dashboard

The following example creates a dashboard in a space from a JSON dashboard definition. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createOmniDashboard([
    'name' => 'service-health-overview',
    'body' => '{"widgets":[{"type":"metric","x":0,"y":0,"width":12,"height":6,"properties":{"metrics":[["AWS/Lambda","Errors","FunctionName","OrderProcessor"]],"region":"us-east-1","title":"Lambda Errors"}}]}',
    'clientToken' => '3f2a9c1e-7b04-4d8a-9e15-6c2b8d0f4a73',
    'description' => 'Overview of service health metrics.',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    'tags' => [
        'Team' => 'observability',
    ],
]);

Result syntax:

[
    'omniDashboard' => [
        'name' => 'service-health-overview',
        'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:omni-dashboard/c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
        'body' => '{"widgets":[{"type":"metric","x":0,"y":0,"width":12,"height":6,"properties":{"metrics":[["AWS/Lambda","Errors","FunctionName","OrderProcessor"]],"region":"us-east-1","title":"Lambda Errors"}}]}',
        'createdAt' => ,
        'createdBy' => 'arn:aws:iam::123456789012:role/ObservabilityAdmin',
        'dashboardId' => 'c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
        'description' => 'Overview of service health metrics.',
        'tags' => [
            'Team' => 'observability',
        ],
        'updatedAt' => ,
    ],
]

CreateOneTimeDeepLinkCode

$result = $client->createOneTimeDeepLinkCode([/* ... */]);
$promise = $client->createOneTimeDeepLinkCodeAsync([/* ... */]);

Generates a one-time code for deep-link authentication.

Direct the user's browser to the returned deepLinkUrl before it expires. The code is exchanged for an authenticated, domain-scoped session and can be used only once.

Parameter Syntax

$result = $client->createOneTimeDeepLinkCode([
    'domainId' => '<string>', // REQUIRED
    'redirectUrl' => '<string>',
    'ttlSeconds' => <integer>,
]);

Parameter Details

Members
domainId
Required: Yes
Type: string

The ID of the domain to generate the code for.

redirectUrl
Type: string

The URL to redirect to after the deep-link code is used. Must be an HTTPS URL in the domain with a path of /auth/callback, and cannot include a query string or fragment. If omitted, no redirect is applied.

ttlSeconds
Type: int

How long the code remains valid, in seconds. Defaults to 300.

Result Syntax

[
    'code' => '<string>',
    'deepLinkUrl' => '<string>',
    'expiresAt' => <DateTime>,
]

Result Details

Members
code
Required: Yes
Type: string

The one-time deep-link code.

deepLinkUrl
Required: Yes
Type: string

The deep-link URL containing the one-time code.

expiresAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the code expires.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Create a one-time deep-link code

The following example creates a one-time deep-link code for a domain that remains valid for 300 seconds and, once used, redirects the browser to the domain's /auth/callback path. Direct the user's browser to the returned deepLinkUrl before it expires; the code can be used only once. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createOneTimeDeepLinkCode([
    'domainId' => 'd-1a2b3c4d5e',
    'redirectUrl' => 'https://d-1a2b3c4d5e.cloudwatch-omni.global.app.aws/auth/callback',
    'ttlSeconds' => 300,
]);

Result syntax:

[
    'code' => 'dlc-EXAMPLE1234567890',
    'deepLinkUrl' => 'https://d-1a2b3c4d5e.cloudwatch-omni.global.app.aws/deeplink?code=EXAMPLE1234567890',
    'expiresAt' => ,
]

CreateSpace

$result = $client->createSpace([/* ... */]);
$promise = $client->createSpaceAsync([/* ... */]);

Creates a space in a domain.

Use GetSpace to retrieve the space, ListSpaces to enumerate spaces, UpdateSpace to modify it, and DeleteSpace to remove it.

Parameter Syntax

$result = $client->createSpace([
    'agentCoreEvaluationRoleArn' => '<string>',
    'clientToken' => '<string>',
    'dataAccessRoleArn' => '<string>', // REQUIRED
    'domainId' => '<string>', // REQUIRED
    'encryptionConfiguration' => [
        'encryptionStrategy' => 'AWS_OWNED|CUSTOMER_MANAGED', // REQUIRED
        'kmsKeyArn' => '<string>',
    ],
    'name' => '<string>', // REQUIRED
    'tags' => ['<string>', ...],
]);

Parameter Details

Members
agentCoreEvaluationRoleArn
Type: string

The ARN of the IAM role used by AgentCore online evaluation. Must be in the caller's account. Omit if the space does not use AgentCore online evaluation.

clientToken
Type: string

Idempotency token for safe retries. Repeated requests with the same token return the original result instead of creating a duplicate.

dataAccessRoleArn
Required: Yes
Type: string

The ARN of the IAM role used for data access. The role must be in the caller's account.

domainId
Required: Yes
Type: string

The ID of the domain to create the space in.

encryptionConfiguration
Type: EncryptionConfiguration structure

How to encrypt the space's data at rest. Omit for service owned encryption, which is equivalent to passing encryptionStrategy AWS_OWNED.

name
Required: Yes
Type: string

A name that identifies the space. Must be 3-64 characters: lowercase letters, numbers, and hyphens. It must begin and end with a letter or number and cannot contain consecutive hyphens.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags to associate with the space.

Result Syntax

[
    'space' => [
        'agentCoreEvaluationRoleArn' => '<string>',
        'createdAt' => <DateTime>,
        'dataAccessRoleArn' => '<string>',
        'domainArn' => '<string>',
        'encryptionConfiguration' => [
            'encryptionStrategy' => 'AWS_OWNED|CUSTOMER_MANAGED',
            'kmsKeyArn' => '<string>',
        ],
        'name' => '<string>',
        'ownerAccountId' => '<string>',
        'region' => '<string>',
        'spaceArn' => '<string>',
        'spaceId' => '<string>',
        'status' => 'ACTIVE|SUSPENDED|MOVING',
        'statusReason' => '<string>',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
space
Required: Yes
Type: Space structure

The details of the created space.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Create a space

The following example creates a space in a domain and encrypts its data at rest with a customer managed KMS key. The name must be 3-64 characters of lowercase letters, numbers, and hyphens. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createSpace([
    'name' => 'prod-observability',
    'agentCoreEvaluationRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchAgentCoreEvaluationRole',
    'clientToken' => '3f2a9c1e-7b04-4d8a-9e15-6c2b8d0f4a73',
    'dataAccessRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchSpaceDataAccessRole',
    'domainId' => 'd-1a2b3c4d5e',
    'encryptionConfiguration' => [
        'encryptionStrategy' => 'CUSTOMER_MANAGED',
        'kmsKeyArn' => 'arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    ],
    'tags' => [
        'Team' => 'observability',
    ],
]);

Result syntax:

[
    'space' => [
        'name' => 'prod-observability',
        'agentCoreEvaluationRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchAgentCoreEvaluationRole',
        'createdAt' => ,
        'dataAccessRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchSpaceDataAccessRole',
        'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:domain/d-1a2b3c4d5e',
        'encryptionConfiguration' => [
            'encryptionStrategy' => 'CUSTOMER_MANAGED',
            'kmsKeyArn' => 'arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        ],
        'ownerAccountId' => '123456789012',
        'region' => 'us-east-1',
        'spaceArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:space/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

CreateView

$result = $client->createView([/* ... */]);
$promise = $client->createViewAsync([/* ... */]);

Creates a new SQL view.

A view is a named, reusable SQL query that can be referenced from telemetry queries. View names must be unique within the account and region. Only USER views can be created — MANAGED views are provisioned by AWS.

Parameter Syntax

$result = $client->createView([
    'clientToken' => '<string>',
    'definition' => '<string>', // REQUIRED
    'description' => '<string>',
    'name' => '<string>', // REQUIRED
    'tags' => ['<string>', ...],
]);

Parameter Details

Members
clientToken
Type: string

Idempotency token for safe retries. Retrying with the same token returns the original view instead of creating a duplicate.

definition
Required: Yes
Type: string

The SQL query that defines the view.

description
Type: string

A description of the view.

name
Required: Yes
Type: string

The name of the view. Must begin with the "view." prefix. View names must be unique within the account and region.

tags
Type: Associative array of custom strings keys (TagKey) to strings

Resource tags.

Result Syntax

[
    'arn' => '<string>',
    'createdAt' => <DateTime>,
    'definition' => '<string>',
    'description' => '<string>',
    'name' => '<string>',
    'type' => 'USER|MANAGED',
    'updatedAt' => <DateTime>,
]

Result Details

Members
arn
Required: Yes
Type: string

The ARN of the view.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the view was created.

definition
Required: Yes
Type: string

The SQL query that defines the view.

description
Type: string

The description of the view.

name
Required: Yes
Type: string

The name of the view.

type
Required: Yes
Type: string

The ownership category of the view.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the view was last updated.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Create a view

The following example creates a user view that saves an error-count-by-service query. View names must begin with the view. prefix and be unique within the account and Region. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->createView([
    'name' => 'view.service_errors',
    'clientToken' => '3f2a9c1e-7b04-4d8a-9e15-6c2b8d0f4a73',
    'definition' => 'SELECT resource['attributes']['service.name'] AS service, COUNT(*) AS error_count FROM "logs.default" WHERE severityText = 'ERROR' GROUP BY service',
    'description' => 'Error counts by service',
    'tags' => [
        'Team' => 'observability',
    ],
]);

Result syntax:

[
    'name' => 'view.service_errors',
    'type' => 'USER',
    'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:view/view.service_errors',
    'createdAt' => ,
    'definition' => 'SELECT resource['attributes']['service.name'] AS service, COUNT(*) AS error_count FROM "logs.default" WHERE severityText = 'ERROR' GROUP BY service',
    'description' => 'Error counts by service',
    'updatedAt' => ,
]

DeleteAccessGrant

$result = $client->deleteAccessGrant([/* ... */]);
$promise = $client->deleteAccessGrantAsync([/* ... */]);

Removes an existing AccessGrant, revoking the access it granted.

A service-managed grant cannot be deleted.

Parameter Syntax

$result = $client->deleteAccessGrant([
    'grantId' => '<string>', // REQUIRED
]);

Parameter Details

Members
grantId
Required: Yes
Type: string

The ID of the access grant to delete.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Delete an access grant

The following example deletes an access grant by ID, revoking the access it granted. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->deleteAccessGrant([
    'grantId' => '7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
]);

Result syntax:

[
]

DeleteAccessProfile

$result = $client->deleteAccessProfile([/* ... */]);
$promise = $client->deleteAccessProfileAsync([/* ... */]);

Removes an access profile.

An access profile cannot be deleted while access grants reference it.

Parameter Syntax

$result = $client->deleteAccessProfile([
    'profileId' => '<string>', // REQUIRED
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
profileId
Required: Yes
Type: string

The unique ID of the access profile to delete.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Delete an access profile

The following example deletes an access profile from a space. An access profile cannot be deleted while access grants reference it. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->deleteAccessProfile([
    'profileId' => 'analyst-readonly',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
]

DeleteAlert

$result = $client->deleteAlert([/* ... */]);
$promise = $client->deleteAlertAsync([/* ... */]);

Deletes an alert by its identifier.

Idempotent: deleting an alert that has already been removed succeeds without error.

Parameter Syntax

$result = $client->deleteAlert([
    'alertId' => '<string>', // REQUIRED
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
alertId
Required: Yes
Type: string

The alert to delete.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Delete an alert

The following example removes an alert from a space. Deleting an alert that has already been removed succeeds without error. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->deleteAlert([
    'alertId' => 'c3d4e5f67a8b4c9d8e0f1a2b3c4d5e6f',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
]

DeleteDomain

$result = $client->deleteDomain([/* ... */]);
$promise = $client->deleteDomainAsync([/* ... */]);

Removes a domain and all of its resources. Call this operation in the Region where the domain was created.

A domain cannot be deleted while it contains spaces.

Parameter Syntax

$result = $client->deleteDomain([
    'domainId' => '<string>', // REQUIRED
]);

Parameter Details

Members
domainId
Required: Yes
Type: string

The unique ID of the domain to delete.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Delete a domain

The following example deletes a domain in the Region where it was created. The domain must not contain any spaces. A successful response returns an empty body. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->deleteDomain([
    'domainId' => 'd-1a2b3c4d5e',
]);

Result syntax:

[
]

DeleteDomainAccessGrantForOrganization

$result = $client->deleteDomainAccessGrantForOrganization([/* ... */]);
$promise = $client->deleteDomainAccessGrantForOrganizationAsync([/* ... */]);

Removes an existing organization access grant, revoking the access it granted.

A service-managed grant cannot be deleted.

Parameter Syntax

$result = $client->deleteDomainAccessGrantForOrganization([
    'grantId' => '<string>', // REQUIRED
]);

Parameter Details

Members
grantId
Required: Yes
Type: string

The ID of the access grant to delete.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Delete an organization domain access grant

The following example deletes an organization domain access grant by ID, revoking the access it granted. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->deleteDomainAccessGrantForOrganization([
    'grantId' => '7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
]);

Result syntax:

[
]

DeleteDomainForOrganization

$result = $client->deleteDomainForOrganization([/* ... */]);
$promise = $client->deleteDomainForOrganizationAsync([/* ... */]);

Removes an organization domain and all of its resources. Call this operation in the Region where the domain was created.

A domain cannot be deleted while it contains spaces.

Parameter Syntax

$result = $client->deleteDomainForOrganization([
    'domainId' => '<string>', // REQUIRED
]);

Parameter Details

Members
domainId
Required: Yes
Type: string

The ID of the organization domain to delete.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Delete an organization domain

The following example deletes an organization domain in the Region where it was created. The domain must not contain any spaces. A successful response returns an empty body. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->deleteDomainForOrganization([
    'domainId' => 'd-9z8y7x6w5v',
]);

Result syntax:

[
]

DeleteIntegration

$result = $client->deleteIntegration([/* ... */]);
$promise = $client->deleteIntegrationAsync([/* ... */]);

Deletes an integration. Returns the resulting status.

Parameter Syntax

$result = $client->deleteIntegration([
    'identifier' => [ // REQUIRED
        'integrationArn' => '<string>',
        'integrationId' => '<string>',
        'integrationName' => '<string>',
    ],
]);

Parameter Details

Members
identifier
Required: Yes
Type: IntegrationIdentifier structure

Identifies the integration to delete — exactly one of integrationId, integrationArn, or integrationName.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Delete an integration by id

The following example deletes the integration identified by its id. DeleteIntegration is idempotent and returns an empty response. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->deleteIntegration([
    'identifier' => [
        'integrationId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    ],
]);

Result syntax:

[
]

DeleteOmniDashboard

$result = $client->deleteOmniDashboard([/* ... */]);
$promise = $client->deleteOmniDashboardAsync([/* ... */]);

Removes a dashboard from a space.

Parameter Syntax

$result = $client->deleteOmniDashboard([
    'dashboardId' => '<string>', // REQUIRED
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
dashboardId
Required: Yes
Type: string

The unique ID of the dashboard.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Delete a dashboard

The following example removes a dashboard from a space. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->deleteOmniDashboard([
    'dashboardId' => 'c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
]

DeleteSpace

$result = $client->deleteSpace([/* ... */]);
$promise = $client->deleteSpaceAsync([/* ... */]);

Removes a space and all of its resources.

Parameter Syntax

$result = $client->deleteSpace([
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
spaceId
Required: Yes
Type: string

The unique ID of the space to delete.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Delete a space

The following example removes a space and all of its resources. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->deleteSpace([
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
]

DeleteView

$result = $client->deleteView([/* ... */]);
$promise = $client->deleteViewAsync([/* ... */]);

Deletes the specified view.

Queries that reference the view fail after it is deleted. Managed views cannot be deleted.

Parameter Syntax

$result = $client->deleteView([
    'name' => '<string>', // REQUIRED
]);

Parameter Details

Members
name
Required: Yes
Type: string

The name of the view to delete.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Delete a view

The following example deletes a view. The response body is empty. Queries that reference the view fail after it is deleted. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->deleteView([
    'name' => 'view.service_errors',
]);

Result syntax:

[
]

GetAccessGrant

$result = $client->getAccessGrant([/* ... */]);
$promise = $client->getAccessGrantAsync([/* ... */]);

Retrieves the full detail of a single AccessGrant by ID.

Parameter Syntax

$result = $client->getAccessGrant([
    'grantId' => '<string>', // REQUIRED
]);

Parameter Details

Members
grantId
Required: Yes
Type: string

The ID of the access grant to retrieve.

Result Syntax

[
    'accessGrant' => [
        'accountId' => '<string>',
        'createdAt' => <DateTime>,
        'createdBy' => '<string>',
        'domainId' => '<string>',
        'grantArn' => '<string>',
        'grantId' => '<string>',
        'grantType' => 'SERVICE_MANAGED|CUSTOMER_MANAGED',
        'name' => '<string>',
        'permission' => 'SPACE_ADMIN|READ|READ_WRITE_DELETE|CUSTOM',
        'principal' => [
            'principalAttributes' => [
                [
                    'key' => '<string>',
                    'value' => '<string>',
                ],
                // ...
            ],
            'principalId' => '<string>',
            'principalType' => 'IDC_USER|IDC_GROUP|IAM_USER|IAM_ROLE|IAM_ROOT|ACCESS_PROFILE|ALERT|AGENT',
        ],
        'scopedActions' => [
            [
                'actions' => ['<string>', ...],
                'contextConditions' => [
                    '<String>' => ['<string>', ...],
                    // ...
                ],
                'resources' => [
                    [
                        'resourceArns' => ['<string>', ...],
                        'resourceType' => '<string>',
                        'rowScopeGroups' => [
                            [
                                [
                                    'field' => '<string>',
                                    'operator' => 'IN',
                                    'values' => ['<string>', ...],
                                ],
                                // ...
                            ],
                            // ...
                        ],
                        'signalTypes' => ['<string>', ...],
                        'tags' => ['<string>', ...],
                    ],
                    // ...
                ],
            ],
            // ...
        ],
        'spaceId' => '<string>',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
accessGrant
Required: Yes
Type: AccessGrant structure

The full details of the access grant.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get an access grant

The following example retrieves the full detail of a single access grant by ID. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getAccessGrant([
    'grantId' => '7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
]);

Result syntax:

[
    'accessGrant' => [
        'name' => 'analyst-read-access',
        'accountId' => '123456789012',
        'createdAt' => ,
        'createdBy' => 'arn:aws:iam::123456789012:role/ObservabilityAdmin',
        'domainId' => 'd-1a2b3c4d5e',
        'grantArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:access-grant/7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
        'grantId' => '7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
        'grantType' => 'CUSTOMER_MANAGED',
        'permission' => 'CUSTOM',
        'principal' => [
            'principalId' => '94b6c7d8-1a2b-4c3d-9e4f-5a6b7c8d9e0f',
            'principalType' => 'IDC_USER',
        ],
        'scopedActions' => [
            [
                'actions' => [
                    'cloudwatch:GetOmniDashboard',
                    'cloudwatch:UpdateOmniDashboard',
                ],
                'resources' => [
                    [
                        'resourceArns' => [
                            'arn:aws:cloudwatch:us-east-1:123456789012:omni-dashboard/c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
                        ],
                        'resourceType' => 'OmniDashboard',
                    ],
                ],
            ],
        ],
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'updatedAt' => ,
    ],
]

GetAccessProfile

$result = $client->getAccessProfile([/* ... */]);
$promise = $client->getAccessProfileAsync([/* ... */]);

Retrieves an access profile by ID.

The response indicates whether the calling principal is currently allowed to assume the profile.

Parameter Syntax

$result = $client->getAccessProfile([
    'profileId' => '<string>', // REQUIRED
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
profileId
Required: Yes
Type: string

The unique ID of the access profile.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[
    'accessProfile' => [
        'arn' => '<string>',
        'assumeStatus' => 'ALLOWED|DENIED',
        'createdAt' => <DateTime>,
        'description' => '<string>',
        'name' => '<string>',
        'profileId' => '<string>',
        'profileType' => 'SERVICE_MANAGED|CUSTOMER_MANAGED',
        'spaceId' => '<string>',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
accessProfile
Required: Yes
Type: AccessProfile structure

The access profile.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get an access profile

The following example retrieves an access profile by ID, including whether the calling principal is currently allowed to assume it. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getAccessProfile([
    'profileId' => 'analyst-readonly',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'accessProfile' => [
        'name' => 'Analyst read-only profile',
        'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:access-profile/analyst-readonly',
        'assumeStatus' => 'ALLOWED',
        'createdAt' => ,
        'description' => 'Read-only access for analysts.',
        'profileId' => 'analyst-readonly',
        'profileType' => 'CUSTOMER_MANAGED',
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'updatedAt' => ,
    ],
]

GetAlert

$result = $client->getAlert([/* ... */]);
$promise = $client->getAlertAsync([/* ... */]);

Retrieves a single alert by its identifier.

Use ListAlerts to enumerate alerts in the space.

Parameter Syntax

$result = $client->getAlert([
    'alertId' => '<string>', // REQUIRED
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
alertId
Required: Yes
Type: string

The alert to retrieve.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[
    'alert' => [
        'accountId' => '<string>',
        'alertArn' => '<string>',
        'alertId' => '<string>',
        'createdAt' => <DateTime>,
        'description' => '<string>',
        'name' => '<string>',
        'notificationRules' => [
            [
                'target' => [
                    'arn' => '<string>',
                    'metadata' => ['<string>', ...],
                    'type' => 'sns|slack|pagerduty',
                ],
                'trigger' => [
                    'stateValues' => ['<string>', ...],
                ],
            ],
            // ...
        ],
        'notificationStatus' => 'ENABLED|DISABLED',
        'profileId' => '<string>',
        'rule' => [
            'telemetryRule' => [
                'condition' => [
                    'comparator' => 'GT|LT|GTE|LTE',
                    'criticalThreshold' => <float>,
                    'thresholdField' => '<string>',
                    'thresholdMode' => 'COUNT_OF_RESULTS|FIELD_VALUE',
                    'warningThreshold' => <float>,
                ],
                'evaluation' => [
                    'intervalSeconds' => <integer>,
                    'pendingDurationSeconds' => <integer>,
                    'recoveryDurationSeconds' => <integer>,
                ],
                'noData' => [
                    'treatAs' => 'OK|WARNING|CRITICAL|NODATA',
                ],
                'query' => [
                    'expression' => '<string>',
                    'language' => 'SQL|PROMQL',
                ],
            ],
        ],
        'spaceId' => '<string>',
        'state' => [
            'contributorSummary' => [
                'criticalCount' => <integer>,
                'warningCount' => <integer>,
            ],
            'data' => [
                'thresholdBreached' => <float>,
            ],
            'transitionedAt' => <DateTime>,
            'value' => 'OK|WARNING|CRITICAL|NODATA',
        ],
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
alert
Required: Yes
Type: Alert structure

The full alert entity.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Retrieve an alert

The following example retrieves an alert by its identifier, including the live evaluation state that CreateAlert does not report. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getAlert([
    'alertId' => 'c3d4e5f67a8b4c9d8e0f1a2b3c4d5e6f',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'alert' => [
        'name' => 'service-error-count-elevated',
        'accountId' => '123456789012',
        'alertArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:alert/c3d4e5f67a8b4c9d8e0f1a2b3c4d5e6f',
        'alertId' => 'c3d4e5f67a8b4c9d8e0f1a2b3c4d5e6f',
        'createdAt' => ,
        'description' => 'Alerts when a service logs more errors than its accepted rate.',
        'notificationRules' => [
            [
                'target' => [
                    'metadata' => [
                        'channel' => 'oncall-alerts',
                    ],
                    'type' => 'slack',
                    'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:integration/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
                ],
                'trigger' => [
                    'stateValues' => [
                        'CRITICAL',
                    ],
                ],
            ],
        ],
        'notificationStatus' => 'ENABLED',
        'profileId' => 'analyst-readonly',
        'rule' => [
            'telemetryRule' => [
                'condition' => [
                    'comparator' => 'GT',
                    'criticalThreshold' => 200,
                    'thresholdField' => 'error_count',
                    'thresholdMode' => 'FIELD_VALUE',
                    'warningThreshold' => 50,
                ],
                'evaluation' => [
                    'intervalSeconds' => 300,
                    'pendingDurationSeconds' => 600,
                    'recoveryDurationSeconds' => 300,
                ],
                'noData' => [
                    'treatAs' => 'NODATA',
                ],
                'query' => [
                    'expression' => 'SELECT resource['attributes']['service.name'] AS service, COUNT(*) AS error_count FROM "logs.default" WHERE severityText = 'ERROR' GROUP BY service',
                    'language' => 'SQL',
                ],
            ],
        ],
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'state' => [
            'value' => 'CRITICAL',
            'contributorSummary' => [
                'criticalCount' => 1,
                'warningCount' => 3,
            ],
            'transitionedAt' => ,
        ],
        'updatedAt' => ,
    ],
]

GetContextGraph

$result = $client->getContextGraph([/* ... */]);
$promise = $client->getContextGraphAsync([/* ... */]);

Queries the context graph with filtering, traversal, and pagination support.

Pagination note: nodes and edges are returned together as a coherent subgraph. Pagination cursors advance over nodes (the primary collection); each page includes all edges connecting nodes within that page. Callers should treat nodes as the paginated collection and edges as supplementary relationship data attached to those nodes.

Parameter Syntax

$result = $client->getContextGraph([
    'depth' => <integer>,
    'edgeFilters' => [
        'edgeId' => '<string>',
        'edgeType' => 'CALLS|ACCESSES|RUNS_ON',
        'from' => '<string>',
        'operations' => ['<string>', ...],
        'sources' => ['<string>', ...],
        'telemetryAttributes' => [
            [
                'key' => '<string>', // REQUIRED
                'values' => ['<string>', ...],
            ],
            // ...
        ],
        'to' => '<string>',
    ],
    'endTime' => <integer || string || DateTime>, // REQUIRED
    'includeMetadata' => true || false,
    'maxEdgesPerNode' => <integer>,
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'nodeFilters' => [
        'category' => ['<string>', ...],
        'cloudProvider' => ['<string>', ...],
        'name' => '<string>',
        'namespace' => ['<string>', ...],
        'nodeId' => '<string>',
        'nodeType' => 'SERVICE|RESOURCE|REMOTE_SERVICE',
        'region' => ['<string>', ...],
        'sourceAccountId' => ['<string>', ...],
        'sources' => ['<string>', ...],
        'stage' => ['<string>', ...],
        'tags' => [
            [
                'key' => '<string>', // REQUIRED
                'values' => ['<string>', ...],
            ],
            // ...
        ],
        'telemetryAttributes' => [
            [
                'key' => '<string>', // REQUIRED
                'values' => ['<string>', ...],
            ],
            // ...
        ],
    ],
    'startTime' => <integer || string || DateTime>, // REQUIRED
]);

Parameter Details

Members
depth
Type: int

How many hops to traverse out from the nodes matched by nodeFilters. 0 returns only the matched nodes themselves.

edgeFilters
Type: EdgeFilters structure

Criteria restricting which edges are returned.

endTime
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

End of the time range (UTC), inclusive.

includeMetadata
Type: boolean

Whether to return the metadata block, semantics included, on each node and edge. Off by default because it costs an extra lookup per returned node.

maxEdgesPerNode
Type: int

The maximum number of edges to return per node, bounding the fan-out of a densely connected node.

maxResults
Type: int

The maximum number of nodes to return in a single page.

nextToken
Type: string

Pagination token from a previous response, to retrieve the next page.

nodeFilters
Type: NodeFilters structure

Criteria restricting which nodes are returned.

startTime
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

Start of the time range (UTC), inclusive.

Result Syntax

[
    'nextToken' => '<string>',
    'nodes' => [
        [
            'alternateNames' => ['<string>', ...],
            'edges' => [
                [
                    'edgeId' => '<string>',
                    'edgeProperties' => [
                        'blocked' => true || false,
                        'destinationPort' => '<string>',
                        'errorCode' => '<string>',
                        'httpMethod' => '<string>',
                        'httpStatusCode' => '<string>',
                        'protocol' => '<string>',
                        'serviceInitiated' => true || false,
                        'sourcePort' => '<string>',
                        'trafficStats' => [
                            'bytes' => <integer>,
                            'flows' => <integer>,
                            'packets' => <integer>,
                            'receivedBytes' => <integer>,
                            'sentBytes' => <integer>,
                        ],
                    ],
                    'edgeType' => 'CALLS|ACCESSES|RUNS_ON',
                    'firstObservedAt' => <DateTime>,
                    'from' => '<string>',
                    'lastObservedAt' => <DateTime>,
                    'metadata' => [
                        'logs' => [
                            [
                                'attributes' => ['<string>', ...],
                            ],
                            // ...
                        ],
                        'metrics' => [
                            [
                                'attributes' => ['<string>', ...],
                                'metricType' => '<string>',
                                'name' => '<string>',
                                'namespace' => '<string>',
                                'preferredStat' => '<string>',
                                'semantics' => [
                                    'description' => '<string>',
                                    'unit' => '<string>',
                                ],
                            ],
                            // ...
                        ],
                        'semantics' => [
                            'framework' => '<string>',
                            'kind' => '<string>',
                            'language' => '<string>',
                            'purpose' => '<string>',
                            'repository' => '<string>',
                        ],
                        'traces' => [
                            [
                                'attributes' => ['<string>', ...],
                            ],
                            // ...
                        ],
                    ],
                    'operations' => ['<string>', ...],
                    'signalTypes' => ['<string>', ...],
                    'sources' => ['<string>', ...],
                    'telemetryAttributes' => ['<string>', ...],
                    'to' => '<string>',
                ],
                // ...
            ],
            'firstObservedAt' => <DateTime>,
            'lastObservedAt' => <DateTime>,
            'metadata' => [
                'logs' => [
                    [
                        'attributes' => ['<string>', ...],
                    ],
                    // ...
                ],
                'metrics' => [
                    [
                        'attributes' => ['<string>', ...],
                        'metricType' => '<string>',
                        'name' => '<string>',
                        'namespace' => '<string>',
                        'preferredStat' => '<string>',
                        'semantics' => [
                            'description' => '<string>',
                            'unit' => '<string>',
                        ],
                    ],
                    // ...
                ],
                'semantics' => [
                    'framework' => '<string>',
                    'kind' => '<string>',
                    'language' => '<string>',
                    'purpose' => '<string>',
                    'repository' => '<string>',
                ],
                'traces' => [
                    [
                        'attributes' => ['<string>', ...],
                    ],
                    // ...
                ],
            ],
            'name' => '<string>',
            'nodeId' => '<string>',
            'nodeProperties' => [
                'category' => 'GEN_AI_AGENT|GEN_AI_MODEL|DATABASE|MESSAGING_QUEUE|COMPUTE|STORAGE|NETWORK',
                'cloudProvider' => '<string>',
                'namespace' => '<string>',
                'region' => '<string>',
                'sourceAccountId' => '<string>',
                'stage' => '<string>',
            ],
            'nodeType' => 'SERVICE|RESOURCE|REMOTE_SERVICE',
            'operationDetails' => [
                '<OperationName>' => [
                    ['<string>', ...],
                    // ...
                ],
                // ...
            ],
            'signalTypes' => ['<string>', ...],
            'sources' => ['<string>', ...],
            'tags' => ['<string>', ...],
            'telemetryAttributes' => ['<string>', ...],
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

Pagination token for the next page; absent when there are no more results.

nodes
Required: Yes
Type: Array of Node structures

The page of nodes matching the request. This is the paginated collection.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Query a service and its immediate dependencies

The following example returns context graph nodes matching the filter and traverses one hop out to their direct dependencies, over a one-hour window. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getContextGraph([
    'depth' => 1,
    'endTime' => ,
    'includeMetadata' => ,
    'maxResults' => 100,
    'nodeFilters' => [
        'namespace' => [
            'ecommerce',
        ],
        'nodeType' => 'SERVICE',
    ],
    'startTime' => ,
]);

Result syntax:

[
    'nextToken' => 'eyJvZmZzZXQiOjEwMH0=',
    'nodes' => [
        [
            'name' => 'checkout-service',
            'edges' => [
                [
                    'operations' => [
                        'POST /charges',
                    ],
                    'edgeId' => 'edge:checkout-service->payments-service',
                    'edgeType' => 'CALLS',
                    'firstObservedAt' => ,
                    'from' => 'svc:checkout-service',
                    'lastObservedAt' => ,
                    'signalTypes' => [
                        'TRACES',
                    ],
                    'sources' => [
                        'TELEMETRY',
                    ],
                    'to' => 'svc:payments-service',
                ],
            ],
            'firstObservedAt' => ,
            'lastObservedAt' => ,
            'nodeId' => 'svc:checkout-service',
            'nodeProperties' => [
                'cloudProvider' => 'aws',
                'namespace' => 'ecommerce',
                'region' => 'us-east-1',
                'sourceAccountId' => '123456789012',
            ],
            'nodeType' => 'SERVICE',
            'signalTypes' => [
                'TRACES',
            ],
            'sources' => [
                'TELEMETRY',
            ],
        ],
        [
            'name' => 'payments-service',
            'firstObservedAt' => ,
            'lastObservedAt' => ,
            'nodeId' => 'svc:payments-service',
            'nodeProperties' => [
                'cloudProvider' => 'aws',
                'namespace' => 'ecommerce',
                'region' => 'us-east-1',
                'sourceAccountId' => '123456789012',
            ],
            'nodeType' => 'SERVICE',
            'signalTypes' => [
                'TRACES',
            ],
            'sources' => [
                'TELEMETRY',
            ],
        ],
    ],
]

GetDomain

$result = $client->getDomain([/* ... */]);
$promise = $client->getDomainAsync([/* ... */]);

Retrieves the details of a domain by ID.

Parameter Syntax

$result = $client->getDomain([
    'domainId' => '<string>', // REQUIRED
]);

Parameter Details

Members
domainId
Required: Yes
Type: string

The unique ID of the domain.

Result Syntax

[
    'domain' => [
        'createdAt' => <DateTime>,
        'customEndpointUrls' => ['<string>', ...],
        'domainArn' => '<string>',
        'domainEndpointUrl' => '<string>',
        'domainId' => '<string>',
        'identityCenterApplicationArn' => '<string>',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => '<string>',
            ],
        ],
        'identityProviders' => ['<string>', ...],
        'name' => '<string>',
        'region' => '<string>',
        'status' => 'ACTIVE',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
domain
Required: Yes
Type: Domain structure

The details of the domain.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get a domain

The following example retrieves the configuration and status of an Identity Center domain by its ID. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getDomain([
    'domainId' => 'd-1a2b3c4d5e',
]);

Result syntax:

[
    'domain' => [
        'name' => 'prod-observability',
        'createdAt' => ,
        'customEndpointUrls' => [
            'https://prod-observability.cloudwatch-omni.global.app.aws',
        ],
        'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:domain/d-1a2b3c4d5e',
        'domainEndpointUrl' => 'https://d-1a2b3c4d5e.cloudwatch-omni.global.app.aws',
        'domainId' => 'd-1a2b3c4d5e',
        'identityCenterApplicationArn' => 'arn:aws:sso::123456789012:application/ssoins-1234567890abcdef/apl-0f9e8d7c6b5a4938',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => 'arn:aws:sso:::instance/ssoins-1234567890abcdef',
            ],
        ],
        'identityProviders' => [
            'IDC',
        ],
        'region' => 'us-east-1',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

GetDomainAccessGrantForOrganization

$result = $client->getDomainAccessGrantForOrganization([/* ... */]);
$promise = $client->getDomainAccessGrantForOrganizationAsync([/* ... */]);

Retrieves the full detail of a single organization access grant by ID.

Parameter Syntax

$result = $client->getDomainAccessGrantForOrganization([
    'grantId' => '<string>', // REQUIRED
]);

Parameter Details

Members
grantId
Required: Yes
Type: string

The ID of the access grant to retrieve.

Result Syntax

[
    'accessGrant' => [
        'createdAt' => <DateTime>,
        'createdBy' => '<string>',
        'domainId' => '<string>',
        'grantArn' => '<string>',
        'grantId' => '<string>',
        'grantType' => 'SERVICE_MANAGED|CUSTOMER_MANAGED',
        'name' => '<string>',
        'permission' => 'ADMIN',
        'principal' => [
            'principalAttributes' => [
                [
                    'key' => '<string>',
                    'value' => '<string>',
                ],
                // ...
            ],
            'principalId' => '<string>',
            'principalType' => 'IDC_USER|IDC_GROUP|IAM_USER|IAM_ROLE|IAM_ROOT',
        ],
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
accessGrant
Required: Yes
Type: OrganizationAccessGrant structure

The retrieved organization access grant.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get an organization domain access grant

The following example retrieves the full detail of a single organization domain access grant by ID. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getDomainAccessGrantForOrganization([
    'grantId' => '7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
]);

Result syntax:

[
    'accessGrant' => [
        'name' => 'org-domain-admin',
        'createdAt' => ,
        'createdBy' => 'arn:aws:iam::123456789012:role/ObservabilityAdmin',
        'domainId' => 'd-1a2b3c4d5e',
        'grantArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:organization-access-grant/7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
        'grantId' => '7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
        'grantType' => 'CUSTOMER_MANAGED',
        'permission' => 'ADMIN',
        'principal' => [
            'principalId' => '94b6c7d8-1a2b-4c3d-9e4f-5a6b7c8d9e0f',
            'principalType' => 'IDC_USER',
        ],
        'updatedAt' => ,
    ],
]

GetDomainForOrganization

$result = $client->getDomainForOrganization([/* ... */]);
$promise = $client->getDomainForOrganizationAsync([/* ... */]);

Retrieves the details of an organization domain by ID.

Parameter Syntax

$result = $client->getDomainForOrganization([
    'domainId' => '<string>', // REQUIRED
]);

Parameter Details

Members
domainId
Required: Yes
Type: string

The ID of the organization domain.

Result Syntax

[
    'organizationDomain' => [
        'createdAt' => <DateTime>,
        'customEndpointUrls' => ['<string>', ...],
        'domainAccessRoleArn' => '<string>',
        'domainArn' => '<string>',
        'domainEndpointUrl' => '<string>',
        'domainId' => '<string>',
        'identityCenterApplicationArn' => '<string>',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => '<string>',
            ],
        ],
        'identityProviders' => ['<string>', ...],
        'name' => '<string>',
        'organizationId' => '<string>',
        'ownerAccountId' => '<string>',
        'region' => '<string>',
        'status' => 'ACTIVE',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
organizationDomain
Required: Yes
Type: OrganizationDomain structure

The details of the organization domain.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get an organization domain

The following example retrieves the configuration and status of an organization-scoped domain by its ID. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getDomainForOrganization([
    'domainId' => 'd-9z8y7x6w5v',
]);

Result syntax:

[
    'organizationDomain' => [
        'name' => 'prod-observability-org',
        'createdAt' => ,
        'customEndpointUrls' => [
            'https://prod-observability-org.cloudwatch-omni.global.app.aws',
        ],
        'domainAccessRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchOrganizationDomainAccessRole',
        'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:organization-domain/d-9z8y7x6w5v',
        'domainEndpointUrl' => 'https://d-9z8y7x6w5v.cloudwatch-omni.global.app.aws',
        'domainId' => 'd-9z8y7x6w5v',
        'identityCenterApplicationArn' => 'arn:aws:sso::123456789012:application/ssoins-1234567890abcdef/apl-0f9e8d7c6b5a4938',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => 'arn:aws:sso:::instance/ssoins-1234567890abcdef',
            ],
        ],
        'identityProviders' => [
            'IDC',
        ],
        'organizationId' => 'o-a1b2c3d4e5',
        'ownerAccountId' => '123456789012',
        'region' => 'us-east-1',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

GetIntegration

$result = $client->getIntegration([/* ... */]);
$promise = $client->getIntegrationAsync([/* ... */]);

Returns the details of a single integration, identified by its identifier, Amazon Resource Name, or name.

Parameter Syntax

$result = $client->getIntegration([
    'identifier' => [ // REQUIRED
        'integrationArn' => '<string>',
        'integrationId' => '<string>',
        'integrationName' => '<string>',
    ],
]);

Parameter Details

Members
identifier
Required: Yes
Type: IntegrationIdentifier structure

Identifies the integration to return — exactly one of integrationId, integrationArn, or integrationName.

Result Syntax

[
    'integration' => [
        'authType' => 'NONE|OAUTH2|API_KEY',
        'authorizationUrl' => '<string>',
        'createdAt' => <DateTime>,
        'credentialArn' => '<string>',
        'errorMessage' => '<string>',
        'integrationArn' => '<string>',
        'integrationAttributes' => ['<string>', ...],
        'integrationId' => '<string>',
        'integrationType' => 'AWS_CONFIG_SLREC|SLACK|EXTERNAL_AGENT|AWS_INTEGRATION',
        'name' => '<string>',
        'roleArn' => '<string>',
        'scope' => 'ACCOUNT|ORGANIZATION',
        'status' => 'ACTIVE|DELETED|PENDING|PENDING_OAUTH|ERROR|FAILED',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
integration
Required: Yes
Type: Integration structure

The details of the requested integration.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get an integration by id

The following example returns the integration with the given id. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getIntegration([
    'identifier' => [
        'integrationId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    ],
]);

Result syntax:

[
    'integration' => [
        'name' => 'my-aws-integration',
        'createdAt' => ,
        'integrationArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:integration/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'integrationId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'integrationType' => 'AWS_INTEGRATION',
        'roleArn' => 'arn:aws:iam::123456789012:role/service-role/CloudWatchIntegrationRole',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

GetIntelligenceConfiguration

$result = $client->getIntelligenceConfiguration([/* ... */]);
$promise = $client->getIntelligenceConfigurationAsync([/* ... */]);

Retrieves the intelligence configuration for the calling account. Account is identified via FAS (caller identity). Returns the default configuration if none exists yet.

Parameter Syntax

$result = $client->getIntelligenceConfiguration([
]);

Parameter Details

Members

Result Syntax

[
    'accountId' => '<string>',
    'createdAt' => <DateTime>,
    'kmsKeyArn' => '<string>',
    'updatedAt' => <DateTime>,
]

Result Details

Members
accountId
Required: Yes
Type: string

The AWS account ID this configuration applies to.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

ISO-8601 timestamp of initial creation.

kmsKeyArn
Type: string

The currently active KMS key ARN for customer-managed encryption, if configured.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

ISO-8601 timestamp of the last update.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Retrieve the intelligence configuration

The following example retrieves the intelligence configuration for the calling account. The request carries no parameters; the account is taken from the caller identity. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getIntelligenceConfiguration([
]);

Result syntax:

[
    'accountId' => '123456789012',
    'createdAt' => ,
    'kmsKeyArn' => 'arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    'updatedAt' => ,
]

GetOmniDashboard

$result = $client->getOmniDashboard([/* ... */]);
$promise = $client->getOmniDashboardAsync([/* ... */]);

Retrieves a dashboard by ID within a space.

Parameter Syntax

$result = $client->getOmniDashboard([
    'dashboardId' => '<string>', // REQUIRED
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
dashboardId
Required: Yes
Type: string

The unique ID of the dashboard.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[
    'omniDashboard' => [
        'arn' => '<string>',
        'body' => '<string>',
        'createdAt' => <DateTime>,
        'createdBy' => '<string>',
        'dashboardId' => '<string>',
        'description' => '<string>',
        'name' => '<string>',
        'tags' => ['<string>', ...],
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
omniDashboard
Required: Yes
Type: OmniDashboard structure

The dashboard.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get a dashboard

The following example retrieves a dashboard by ID within a space, including its full body. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getOmniDashboard([
    'dashboardId' => 'c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'omniDashboard' => [
        'name' => 'service-health-overview',
        'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:omni-dashboard/c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
        'body' => '{"widgets":[{"type":"metric","x":0,"y":0,"width":12,"height":6,"properties":{"metrics":[["AWS/Lambda","Errors","FunctionName","OrderProcessor"]],"region":"us-east-1","title":"Lambda Errors"}}]}',
        'createdAt' => ,
        'createdBy' => 'arn:aws:iam::123456789012:role/ObservabilityAdmin',
        'dashboardId' => 'c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
        'description' => 'Overview of service health metrics.',
        'tags' => [
            'Team' => 'observability',
        ],
        'updatedAt' => ,
    ],
]

GetSpace

$result = $client->getSpace([/* ... */]);
$promise = $client->getSpaceAsync([/* ... */]);

Retrieves the details of a space by ID.

Parameter Syntax

$result = $client->getSpace([
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[
    'space' => [
        'agentCoreEvaluationRoleArn' => '<string>',
        'createdAt' => <DateTime>,
        'dataAccessRoleArn' => '<string>',
        'domainArn' => '<string>',
        'encryptionConfiguration' => [
            'encryptionStrategy' => 'AWS_OWNED|CUSTOMER_MANAGED',
            'kmsKeyArn' => '<string>',
        ],
        'name' => '<string>',
        'ownerAccountId' => '<string>',
        'region' => '<string>',
        'spaceArn' => '<string>',
        'spaceId' => '<string>',
        'status' => 'ACTIVE|SUSPENDED|MOVING',
        'statusReason' => '<string>',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
space
Required: Yes
Type: Space structure

The details of the space.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get a space

The following example retrieves the details of a space by ID. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getSpace([
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'space' => [
        'name' => 'prod-observability',
        'agentCoreEvaluationRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchAgentCoreEvaluationRole',
        'createdAt' => ,
        'dataAccessRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchSpaceDataAccessRole',
        'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:domain/d-1a2b3c4d5e',
        'encryptionConfiguration' => [
            'encryptionStrategy' => 'CUSTOMER_MANAGED',
            'kmsKeyArn' => 'arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        ],
        'ownerAccountId' => '123456789012',
        'region' => 'us-east-1',
        'spaceArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:space/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

GetSpaceCredentialsForOrganization

$result = $client->getSpaceCredentialsForOrganization([/* ... */]);
$promise = $client->getSpaceCredentialsForOrganizationAsync([/* ... */]);

Returns temporary credentials for a space in an organization member account. The credentials are valid for one hour.

The caller must be the organization's management account or a delegated administrator with access to the target space. The target account must be an active member of the same organization as the domain, and the space must already exist.

Parameter Syntax

$result = $client->getSpaceCredentialsForOrganization([
    'context' => [ // REQUIRED
        'domainId' => '<string>',
        'spaceId' => '<string>',
        'targetAccountId' => '<string>',
    ],
    'credentialType' => 'SPACE_OPERATION', // REQUIRED
]);

Parameter Details

Members
context
Required: Yes
Type: SpaceCredentialRequestContext structure

Context for credential resolution.

credentialType
Required: Yes
Type: string

Selects which member-account credential to return. Set this to SPACE_OPERATION.

Result Syntax

[
    'credentials' => [
        'accessKeyId' => '<string>',
        'expiration' => <DateTime>,
        'secretAccessKey' => '<string>',
        'sessionToken' => '<string>',
    ],
]

Result Details

Members
credentials
Required: Yes
Type: AwsCredentials structure

The temporary AWS credentials for the space.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get space credentials for an organization member account

The following example returns temporary, space-scoped AWS credentials for an existing space in an organization member account, selected by spaceId. The credentials are valid for one hour, as reflected by the expiration timestamp. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getSpaceCredentialsForOrganization([
    'context' => [
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    ],
    'credentialType' => 'SPACE_OPERATION',
]);

Result syntax:

[
    'credentials' => [
        'accessKeyId' => 'ASIAIOSFODNN7EXAMPLE',
        'expiration' => ,
        'secretAccessKey' => 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
        'sessionToken' => 'IQoJb3JpZ2luX2VjEXAMPLESESSIONTOKEN1234567890',
    ],
]

GetTelemetryQueryResults

$result = $client->getTelemetryQueryResults([/* ... */]);
$promise = $client->getTelemetryQueryResultsAsync([/* ... */]);

Returns the results for the specified query.

Parameter Syntax

$result = $client->getTelemetryQueryResults([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'queryId' => '<string>', // REQUIRED
]);

Parameter Details

Members
maxResults
Type: int

The maximum number of result rows to return per page.

nextToken
Type: string

A token to retrieve the next page of results.

queryId
Required: Yes
Type: string

The unique ID of the query.

Result Syntax

[
    'nextToken' => '<string>',
    'rows' => [
        ['<string>', ...],
        // ...
    ],
    'statistics' => [
        'bytesScanned' => <float>,
        'partialResults' => [
            'partialResultsDetected' => true || false,
        ],
        'percentComplete' => <integer>,
        'recordsMatched' => <integer>,
        'recordsScanned' => <integer>,
    ],
    'status' => 'Running|Failed|Complete|Cancelled',
]

Result Details

Members
nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

rows
Type: Array of stringss

The result rows returned by the query.

statistics
Type: QueryStatistics structure

Statistics about the query execution.

status
Required: Yes
Type: string

The current execution status of the query.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get telemetry query results

The following example retrieves a page of results for a completed query, along with execution statistics. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getTelemetryQueryResults([
    'maxResults' => 100,
    'queryId' => '3b2a1c0d-7e6f-4a5b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'rows' => [
        [
            'error_count' => '42',
            'service.name' => 'checkout-service',
        ],
        [
            'error_count' => '7',
            'service.name' => 'payments-service',
        ],
    ],
    'statistics' => [
        'bytesScanned' => 1048576,
        'partialResults' => [
            'partialResultsDetected' => ,
        ],
        'percentComplete' => 100,
        'recordsMatched' => 49,
        'recordsScanned' => 20000,
    ],
    'status' => 'Complete',
]

GetView

$result = $client->getView([/* ... */]);
$promise = $client->getViewAsync([/* ... */]);

Returns the definition and metadata of the specified view.

Parameter Syntax

$result = $client->getView([
    'name' => '<string>', // REQUIRED
]);

Parameter Details

Members
name
Required: Yes
Type: string

The name of the view.

Result Syntax

[
    'arn' => '<string>',
    'createdAt' => <DateTime>,
    'definition' => '<string>',
    'description' => '<string>',
    'name' => '<string>',
    'type' => 'USER|MANAGED',
    'updatedAt' => <DateTime>,
]

Result Details

Members
arn
Required: Yes
Type: string

The ARN of the view.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the view was created.

definition
Required: Yes
Type: string

The SQL query that defines the view.

description
Type: string

The description of the view.

name
Required: Yes
Type: string

The name of the view.

type
Required: Yes
Type: string

The ownership category of the view.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the view was last updated.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Get a view

The following example returns the definition and metadata of a view. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->getView([
    'name' => 'view.service_errors',
]);

Result syntax:

[
    'name' => 'view.service_errors',
    'type' => 'USER',
    'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:view/view.service_errors',
    'createdAt' => ,
    'definition' => 'SELECT resource['attributes']['service.name'] AS service, COUNT(*) AS error_count FROM "logs.default" WHERE severityText = 'ERROR' GROUP BY service',
    'description' => 'Error counts by service',
    'updatedAt' => ,
]

ListAccessGrants

$result = $client->listAccessGrants([/* ... */]);
$promise = $client->listAccessGrantsAsync([/* ... */]);

Returns AccessGrants, with optional filtering by domain, space, principal, or permission. A grant is returned only when it matches every filter supplied. With no filters, returns the grants for the current account and Region.

Parameter Syntax

$result = $client->listAccessGrants([
    'domainId' => '<string>',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'permission' => 'SPACE_ADMIN|READ|READ_WRITE_DELETE|CUSTOM',
    'principalId' => '<string>',
    'principalType' => 'IDC_USER|IDC_GROUP|IAM_USER|IAM_ROLE|IAM_ROOT|ACCESS_PROFILE|ALERT|AGENT',
    'spaceId' => '<string>',
]);

Parameter Details

Members
domainId
Type: string

Filter by domain ID.

maxResults
Type: int

The maximum number of access grants to return per page. Defaults to 100. A page can contain fewer results than this value even when more results remain; continue while nextToken is present.

nextToken
Type: string

A token to retrieve the next page of results. Supply the same filters used on the request that returned it. Tokens expire after 24 hours.

permission
Type: string

Filter by permission level.

principalId
Type: string

Filter by principal ID.

principalType
Type: string

Filter by principal type.

spaceId
Type: string

Filter by space ID.

Result Syntax

[
    'items' => [
        [
            'domainId' => '<string>',
            'grantArn' => '<string>',
            'grantId' => '<string>',
            'grantType' => 'SERVICE_MANAGED|CUSTOMER_MANAGED',
            'name' => '<string>',
            'permission' => 'SPACE_ADMIN|READ|READ_WRITE_DELETE|CUSTOM',
            'principal' => [
                'principalAttributes' => [
                    [
                        'key' => '<string>',
                        'value' => '<string>',
                    ],
                    // ...
                ],
                'principalId' => '<string>',
                'principalType' => 'IDC_USER|IDC_GROUP|IAM_USER|IAM_ROLE|IAM_ROOT|ACCESS_PROFILE|ALERT|AGENT',
            ],
            'spaceId' => '<string>',
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of AccessGrantSummary structures

The list of access grant summaries.

nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List access grants in a space

The following example lists the first page of access grants in a space and returns a nextToken to retrieve the next page. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listAccessGrants([
    'domainId' => 'd-1a2b3c4d5e',
    'maxResults' => 50,
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'items' => [
        [
            'name' => 'analyst-read-access',
            'domainId' => 'd-1a2b3c4d5e',
            'grantArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:access-grant/7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
            'grantId' => '7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
            'grantType' => 'CUSTOMER_MANAGED',
            'permission' => 'CUSTOM',
            'principal' => [
                'principalId' => '94b6c7d8-1a2b-4c3d-9e4f-5a6b7c8d9e0f',
                'principalType' => 'IDC_USER',
            ],
            'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        ],
        [
            'name' => 'oncall-read-write',
            'domainId' => 'd-1a2b3c4d5e',
            'grantArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:access-grant/8a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d',
            'grantId' => '8a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d',
            'grantType' => 'CUSTOMER_MANAGED',
            'permission' => 'READ_WRITE_DELETE',
            'principal' => [
                'principalId' => '2f5a8c1b-6d3e-4f7a-8b9c-0d1e2f3a4b5c',
                'principalType' => 'IDC_GROUP',
            ],
            'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        ],
    ],
    'nextToken' => 'eyJvZmZzZXQiOjIwfQ==',
]

ListAccessProfiles

$result = $client->listAccessProfiles([/* ... */]);
$promise = $client->listAccessProfilesAsync([/* ... */]);

Returns the access profiles in a space.

Parameter Syntax

$result = $client->listAccessProfiles([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
maxResults
Type: int

The maximum number of access profiles to return per page. Defaults to 100.

nextToken
Type: string

A token to retrieve the next page of results.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[
    'items' => [
        [
            'arn' => '<string>',
            'description' => '<string>',
            'name' => '<string>',
            'profileId' => '<string>',
            'profileType' => 'SERVICE_MANAGED|CUSTOMER_MANAGED',
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of AccessProfileSummary structures

The list of access profile summaries.

nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List access profiles in a space

The following example lists the first page of access profiles in a space and returns a nextToken to retrieve the next page. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listAccessProfiles([
    'maxResults' => 50,
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'items' => [
        [
            'name' => 'Analyst read-only profile',
            'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:access-profile/analyst-readonly',
            'description' => 'Read-only access for analysts.',
            'profileId' => 'analyst-readonly',
            'profileType' => 'CUSTOMER_MANAGED',
        ],
        [
            'name' => 'On-call admin profile',
            'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:access-profile/oncall-admin',
            'description' => 'Full access for on-call responders.',
            'profileId' => 'oncall-admin',
            'profileType' => 'CUSTOMER_MANAGED',
        ],
    ],
    'nextToken' => 'eyJvZmZzZXQiOjIwfQ==',
]

ListAlerts

$result = $client->listAlerts([/* ... */]);
$promise = $client->listAlertsAsync([/* ... */]);

Lists alerts within a space, optionally filtered by exact name(s), a single name prefix, or exact alertId(s), with pagination.

Use GetAlert to retrieve a single alert's full detail.

Parameter Syntax

$result = $client->listAlerts([
    'filterCriteria' => [
        'ids' => ['<string>', ...],
        'namePrefix' => '<string>',
        'names' => ['<string>', ...],
        'notificationsEnabled' => true || false,
        'stateValue' => ['<string>', ...],
    ],
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'sortBy' => 'NAME|STATE',
    'sortOrder' => 'ASC|DESC',
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
filterCriteria
Type: AlertFilterCriteria structure

Filter criteria narrowing which alerts are returned. All members are optional; the three name/id filters are mutually exclusive.

maxResults
Type: int

The maximum number of alerts to return per page.

nextToken
Type: string

A token to retrieve the next page of results.

sortBy
Type: string

The field to sort results by.

sortOrder
Type: string

The order in which to sort results.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[
    'items' => [
        [
            'alertArn' => '<string>',
            'alertId' => '<string>',
            'createdAt' => <DateTime>,
            'name' => '<string>',
            'notificationStatus' => 'ENABLED|DISABLED',
            'profileId' => '<string>',
            'spaceId' => '<string>',
            'state' => [
                'contributorSummary' => [
                    'criticalCount' => <integer>,
                    'warningCount' => <integer>,
                ],
                'data' => [
                    'thresholdBreached' => <float>,
                ],
                'transitionedAt' => <DateTime>,
                'value' => 'OK|WARNING|CRITICAL|NODATA',
            ],
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of AlertSummary structures

The list of alert summaries.

nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List alerts in a space

The following example lists the first page of alerts in a space, sorted by state, and returns a nextToken to retrieve the next page. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listAlerts([
    'filterCriteria' => [
        'namePrefix' => 'service-',
        'stateValue' => [
            'WARNING',
            'CRITICAL',
        ],
    ],
    'maxResults' => 50,
    'sortBy' => 'STATE',
    'sortOrder' => 'DESC',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'items' => [
        [
            'name' => 'service-error-count-elevated',
            'alertArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:alert/c3d4e5f67a8b4c9d8e0f1a2b3c4d5e6f',
            'alertId' => 'c3d4e5f67a8b4c9d8e0f1a2b3c4d5e6f',
            'createdAt' => ,
            'notificationStatus' => 'ENABLED',
            'profileId' => 'analyst-readonly',
            'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
            'state' => [
                'value' => 'CRITICAL',
                'contributorSummary' => [
                    'criticalCount' => 1,
                    'warningCount' => 3,
                ],
                'transitionedAt' => ,
            ],
            'updatedAt' => ,
        ],
        [
            'name' => 'service-checkout-5xx-responses',
            'alertArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:alert/d4e5f6a78b9c4d0e9f1a2b3c4d5e6f70',
            'alertId' => 'd4e5f6a78b9c4d0e9f1a2b3c4d5e6f70',
            'createdAt' => ,
            'notificationStatus' => 'DISABLED',
            'profileId' => 'analyst-readonly',
            'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
            'state' => [
                'value' => 'WARNING',
                'data' => [
                    'thresholdBreached' => 14,
                ],
                'transitionedAt' => ,
            ],
            'updatedAt' => ,
        ],
    ],
    'nextToken' => 'eyJvZmZzZXQiOjIwfQ==',
]

ListDomainAccessGrantsForOrganization

$result = $client->listDomainAccessGrantsForOrganization([/* ... */]);
$promise = $client->listDomainAccessGrantsForOrganizationAsync([/* ... */]);

Returns organization-level domain access grants, with optional filtering by domain, principal, or permission. A grant is returned only when it matches every filter supplied. With no filters, returns the grants for the caller's organization.

Parameter Syntax

$result = $client->listDomainAccessGrantsForOrganization([
    'domainId' => '<string>',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'permission' => 'ADMIN',
    'principalId' => '<string>',
    'principalType' => 'IDC_USER|IDC_GROUP|IAM_USER|IAM_ROLE|IAM_ROOT',
]);

Parameter Details

Members
domainId
Type: string

Filter by domain ID.

maxResults
Type: int

The maximum number of access grants to return per page. Defaults to 100. A page can contain fewer results than this value even when more results remain; continue while nextToken is present.

nextToken
Type: string

A token to retrieve the next page of results. Supply the same filters used on the request that returned it. Tokens expire after 24 hours.

permission
Type: string

Filter by permission level.

principalId
Type: string

Filter by principal ID.

principalType
Type: string

Filter by principal type.

Result Syntax

[
    'items' => [
        [
            'createdAt' => <DateTime>,
            'domainId' => '<string>',
            'grantArn' => '<string>',
            'grantId' => '<string>',
            'grantType' => 'SERVICE_MANAGED|CUSTOMER_MANAGED',
            'name' => '<string>',
            'permission' => 'ADMIN',
            'principal' => [
                'principalAttributes' => [
                    [
                        'key' => '<string>',
                        'value' => '<string>',
                    ],
                    // ...
                ],
                'principalId' => '<string>',
                'principalType' => 'IDC_USER|IDC_GROUP|IAM_USER|IAM_ROLE|IAM_ROOT',
            ],
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of OrganizationAccessGrantSummary structures

The list of organization access grant summaries.

nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List organization domain access grants

The following example lists the first page of organization domain access grants and returns a nextToken to retrieve the next page. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listDomainAccessGrantsForOrganization([
    'domainId' => 'd-1a2b3c4d5e',
    'maxResults' => 50,
]);

Result syntax:

[
    'items' => [
        [
            'name' => 'org-domain-admin',
            'createdAt' => ,
            'domainId' => 'd-1a2b3c4d5e',
            'grantArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:organization-access-grant/7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
            'grantId' => '7f3e9d21-4c8b-4f6a-b1d2-3e4f5a6b7c8d',
            'grantType' => 'CUSTOMER_MANAGED',
            'permission' => 'ADMIN',
            'principal' => [
                'principalId' => '94b6c7d8-1a2b-4c3d-9e4f-5a6b7c8d9e0f',
                'principalType' => 'IDC_USER',
            ],
            'updatedAt' => ,
        ],
        [
            'name' => 'org-domain-admin-group',
            'createdAt' => ,
            'domainId' => 'd-1a2b3c4d5e',
            'grantArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:organization-access-grant/8a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d',
            'grantId' => '8a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d',
            'grantType' => 'CUSTOMER_MANAGED',
            'permission' => 'ADMIN',
            'principal' => [
                'principalId' => '2f5a8c1b-6d3e-4f7a-8b9c-0d1e2f3a4b5c',
                'principalType' => 'IDC_GROUP',
            ],
            'updatedAt' => ,
        ],
    ],
    'nextToken' => 'eyJvZmZzZXQiOjIwfQ==',
]

ListDomains

$result = $client->listDomains([/* ... */]);
$promise = $client->listDomainsAsync([/* ... */]);

Returns the caller's domains: the account-scoped domain and the organization-scoped domain, if either exists. At most two domains are returned.

Parameter Syntax

$result = $client->listDomains([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
maxResults
Type: int

The maximum number of domains to return per page. Defaults to 100.

nextToken
Type: string

A token to retrieve the next page of results. Tokens expire after 24 hours.

Result Syntax

[
    'items' => [
        [
            'createdAt' => <DateTime>,
            'domainArn' => '<string>',
            'domainId' => '<string>',
            'identityCenterInstanceArn' => '<string>',
            'name' => '<string>',
            'region' => '<string>',
            'status' => 'ACTIVE',
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of DomainSummary structures

The list of domain summaries.

nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List domains

The following example lists the caller's domains. At most two are returned — the account-scoped domain and the organization-scoped domain — so there is no nextToken. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listDomains([
]);

Result syntax:

[
    'items' => [
        [
            'name' => 'prod-observability',
            'createdAt' => ,
            'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:domain/d-1a2b3c4d5e',
            'domainId' => 'd-1a2b3c4d5e',
            'identityCenterInstanceArn' => 'arn:aws:sso:::instance/ssoins-1234567890abcdef',
            'region' => 'us-east-1',
            'status' => 'ACTIVE',
            'updatedAt' => ,
        ],
        [
            'name' => 'prod-observability-org',
            'createdAt' => ,
            'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:organization-domain/d-9z8y7x6w5v',
            'domainId' => 'd-9z8y7x6w5v',
            'identityCenterInstanceArn' => 'arn:aws:sso:::instance/ssoins-1234567890abcdef',
            'region' => 'us-east-1',
            'status' => 'ACTIVE',
            'updatedAt' => ,
        ],
    ],
]

ListIntegrations

$result = $client->listIntegrations([/* ... */]);
$promise = $client->listIntegrationsAsync([/* ... */]);

Lists the integrations in the account, optionally filtered by type, status, or name. Results are paginated.

Parameter Syntax

$result = $client->listIntegrations([
    'integrationType' => 'AWS_CONFIG_SLREC|SLACK|EXTERNAL_AGENT|AWS_INTEGRATION',
    'maxResults' => <integer>,
    'name' => '<string>',
    'nextToken' => '<string>',
    'status' => 'ACTIVE|DELETED|PENDING|PENDING_OAUTH|ERROR|FAILED',
]);

Parameter Details

Members
integrationType
Type: string

Returns only integrations of this provider type.

maxResults
Type: int

Maximum number of integrations to return in one page.

name
Type: string

Returns only the integration with this exact name.

nextToken
Type: string

Pagination token from a previous response; omit for the first page.

status
Type: string

Returns only integrations in this status.

Result Syntax

[
    'items' => [
        [
            'authType' => 'NONE|OAUTH2|API_KEY',
            'authorizationUrl' => '<string>',
            'createdAt' => <DateTime>,
            'credentialArn' => '<string>',
            'errorMessage' => '<string>',
            'integrationArn' => '<string>',
            'integrationAttributes' => ['<string>', ...],
            'integrationId' => '<string>',
            'integrationType' => 'AWS_CONFIG_SLREC|SLACK|EXTERNAL_AGENT|AWS_INTEGRATION',
            'name' => '<string>',
            'roleArn' => '<string>',
            'scope' => 'ACCOUNT|ORGANIZATION',
            'status' => 'ACTIVE|DELETED|PENDING|PENDING_OAUTH|ERROR|FAILED',
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of Integration structures

The page of integrations.

nextToken
Type: string

Pagination token for the next page; absent when there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List integrations of a type

The following example lists up to 20 AWS_INTEGRATION integrations in the account. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listIntegrations([
    'integrationType' => 'AWS_INTEGRATION',
    'maxResults' => 20,
]);

Result syntax:

[
    'items' => [
        [
            'name' => 'my-aws-integration',
            'createdAt' => ,
            'integrationArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:integration/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
            'integrationId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
            'integrationType' => 'AWS_INTEGRATION',
            'status' => 'ACTIVE',
            'updatedAt' => ,
        ],
    ],
    'nextToken' => 'eyJvZmZzZXQiOjIwfQ==',
]

ListOmniDashboards

$result = $client->listOmniDashboards([/* ... */]);
$promise = $client->listOmniDashboardsAsync([/* ... */]);

Returns the dashboards in a space, optionally filtered by name prefix.

Parameter Syntax

$result = $client->listOmniDashboards([
    'maxResults' => <integer>,
    'namePrefix' => '<string>',
    'nextToken' => '<string>',
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
maxResults
Type: int

The maximum number of dashboards to return per page. Defaults to 100. A page can contain fewer results than this value even when more results remain; continue while nextToken is present.

namePrefix
Type: string

Filter to dashboards whose name starts with this prefix.

nextToken
Type: string

A token to retrieve the next page of results.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[
    'items' => [
        [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'createdBy' => '<string>',
            'dashboardId' => '<string>',
            'description' => '<string>',
            'name' => '<string>',
            'tags' => ['<string>', ...],
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of OmniDashboardSummary structures

The list of dashboard summaries.

nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List dashboards in a space

The following example lists the first page of dashboards in a space and returns a nextToken to retrieve the next page. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listOmniDashboards([
    'maxResults' => 50,
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'items' => [
        [
            'name' => 'service-health-overview',
            'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:omni-dashboard/c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
            'createdAt' => ,
            'createdBy' => 'arn:aws:iam::123456789012:role/ObservabilityAdmin',
            'dashboardId' => 'c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
            'description' => 'Overview of service health metrics.',
            'updatedAt' => ,
        ],
        [
            'name' => 'cost-explorer-dashboard',
            'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:omni-dashboard/d4e5f6a7-8b9c-4d0e-9f1a-2b3c4d5e6f70',
            'createdAt' => ,
            'createdBy' => 'arn:aws:iam::123456789012:role/ObservabilityAdmin',
            'dashboardId' => 'd4e5f6a7-8b9c-4d0e-9f1a-2b3c4d5e6f70',
            'description' => 'Monthly cost breakdown by service.',
            'updatedAt' => ,
        ],
    ],
    'nextToken' => 'eyJvZmZzZXQiOjIwfQ==',
]

ListSpaces

$result = $client->listSpaces([/* ... */]);
$promise = $client->listSpacesAsync([/* ... */]);

Returns the spaces in the account, optionally filtered by domain.

Parameter Syntax

$result = $client->listSpaces([
    'domainId' => '<string>',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
domainId
Type: string

Filter by domain ID.

maxResults
Type: int

The maximum number of spaces to return per page. Defaults to 100. A page can contain fewer results than this value even when more results remain; continue while nextToken is present.

nextToken
Type: string

A token to retrieve the next page of results. Supply the same filters used on the request that returned it. Tokens expire after 24 hours.

Result Syntax

[
    'items' => [
        [
            'createdAt' => <DateTime>,
            'domainArn' => '<string>',
            'name' => '<string>',
            'ownerAccountId' => '<string>',
            'region' => '<string>',
            'spaceArn' => '<string>',
            'spaceId' => '<string>',
            'status' => 'ACTIVE|SUSPENDED|MOVING',
            'statusReason' => '<string>',
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of SpaceSummary structures

The list of space summaries.

nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List spaces in a domain

The following example lists the first page of spaces in a domain and returns a nextToken to retrieve the next page. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listSpaces([
    'domainId' => 'd-1a2b3c4d5e',
    'maxResults' => 50,
]);

Result syntax:

[
    'items' => [
        [
            'name' => 'prod-observability',
            'createdAt' => ,
            'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:domain/d-1a2b3c4d5e',
            'ownerAccountId' => '123456789012',
            'region' => 'us-east-1',
            'spaceArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:space/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
            'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
            'status' => 'ACTIVE',
            'updatedAt' => ,
        ],
        [
            'name' => 'staging-observability',
            'createdAt' => ,
            'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:domain/d-1a2b3c4d5e',
            'ownerAccountId' => '123456789012',
            'region' => 'us-east-1',
            'spaceArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:space/b2c3d4e5-6f7a-4b8c-9d0e-1f2a3b4c5d6e',
            'spaceId' => 'b2c3d4e5-6f7a-4b8c-9d0e-1f2a3b4c5d6e',
            'status' => 'ACTIVE',
            'updatedAt' => ,
        ],
    ],
    'nextToken' => 'eyJvZmZzZXQiOjIwfQ==',
]

ListSpacesForOrganization

$result = $client->listSpacesForOrganization([/* ... */]);
$promise = $client->listSpacesForOrganizationAsync([/* ... */]);

Returns the spaces across all member accounts in the organization.

Parameter Syntax

$result = $client->listSpacesForOrganization([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
maxResults
Type: int

The maximum number of spaces to return per page. Defaults to 100.

nextToken
Type: string

A token to retrieve the next page of results. Tokens expire after 24 hours.

Result Syntax

[
    'items' => [
        [
            'createdAt' => <DateTime>,
            'domainArn' => '<string>',
            'name' => '<string>',
            'ownerAccountId' => '<string>',
            'region' => '<string>',
            'spaceArn' => '<string>',
            'spaceId' => '<string>',
            'status' => 'ACTIVE|SUSPENDED|MOVING',
            'statusReason' => '<string>',
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of SpaceSummary structures

The list of space summaries.

nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List spaces across the organization

The following example lists the first page of spaces across all member accounts in the organization. The results include spaces owned by different accounts, along with a nextToken to retrieve the next page. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listSpacesForOrganization([
    'maxResults' => 50,
]);

Result syntax:

[
    'items' => [
        [
            'name' => 'prod-observability',
            'createdAt' => ,
            'ownerAccountId' => '111122223333',
            'region' => 'us-east-1',
            'spaceArn' => 'arn:aws:cloudwatch:us-east-1:111122223333:space/c1d2e3f4-5a6b-4c7d-8e9f-0a1b2c3d4e5f',
            'spaceId' => 'c1d2e3f4-5a6b-4c7d-8e9f-0a1b2c3d4e5f',
            'status' => 'ACTIVE',
            'updatedAt' => ,
        ],
        [
            'name' => 'prod-observability',
            'createdAt' => ,
            'ownerAccountId' => '444455556666',
            'region' => 'us-east-1',
            'spaceArn' => 'arn:aws:cloudwatch:us-east-1:444455556666:space/d4e5f6a7-8b9c-4d0e-8f1a-2b3c4d5e6f7a',
            'spaceId' => 'd4e5f6a7-8b9c-4d0e-8f1a-2b3c4d5e6f7a',
            'status' => 'ACTIVE',
            'updatedAt' => ,
        ],
    ],
    'nextToken' => 'eyJvZmZzZXQiOjIwfQ==',
]

ListTelemetryFields

$result = $client->listTelemetryFields([/* ... */]);
$promise = $client->listTelemetryFieldsAsync([/* ... */]);

Lists fields available for telemetry queries.

Returns a list of fields included in the specified dataset, granular to telemetry type. Returned field names reflect the exact stored casing and are case-sensitive when referenced in query expressions; the query engine does not normalize identifier case.

Parameter Syntax

$result = $client->listTelemetryFields([
    'dataSetName' => '<string>', // REQUIRED
    'endTime' => <integer || string || DateTime>,
    'nextToken' => '<string>',
    'startTime' => <integer || string || DateTime>,
    'telemetryType' => 'LOGS|TRACES',
]);

Parameter Details

Members
dataSetName
Required: Yes
Type: string

The name of the dataset to list fields for.

endTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

Inclusive end of the lookback window. When omitted, the service defaults to the current time.

nextToken
Type: string

A token to retrieve the next page of results. Reserved for future pagination; the service does not paginate at this time and returns null.

startTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

Inclusive start of the lookback window. When omitted, the service defaults to the configured lookback before endTime.

telemetryType
Type: string

The type of telemetry to filter fields by.

Result Syntax

[
    'fields' => [
        [
            'children' => [
                [...], // RECURSIVE
                // ...
            ],
            'name' => '<string>',
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
fields
Required: Yes
Type: Array of Field structures

The list of fields available for queries.

nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List fields for a dataset

The following example lists the log fields available in the specified dataset. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listTelemetryFields([
    'dataSetName' => 'default',
    'telemetryType' => 'LOGS',
]);

Result syntax:

[
    'fields' => [
        [
            'name' => '@timestamp',
        ],
        [
            'name' => '@message',
        ],
        [
            'name' => 'attributes',
            'children' => [
                [
                    'name' => 'http.method',
                ],
                [
                    'name' => 'http.status_code',
                ],
            ],
        ],
    ],
]

ListTelemetryQuerySessions

$result = $client->listTelemetryQuerySessions([/* ... */]);
$promise = $client->listTelemetryQuerySessionsAsync([/* ... */]);

Lists telemetry query sessions.

Returns a list of telemetry query sessions owned by the caller.

Parameter Syntax

$result = $client->listTelemetryQuerySessions([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
maxResults
Type: int

The maximum number of sessions to return per page.

nextToken
Type: string

A token to retrieve the next page of results.

Result Syntax

[
    'nextToken' => '<string>',
    'sessions' => [
        [
            'createdAt' => <DateTime>,
            'lastActivityAt' => <DateTime>,
            'sessionId' => '<string>',
            'sessionName' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

sessions
Required: Yes
Type: Array of SessionSummary structures

The list of session summaries.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List telemetry query sessions

The following example lists the query sessions owned by the caller. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listTelemetryQuerySessions([
    'maxResults' => 10,
]);

Result syntax:

[
    'nextToken' => 'eyJvZmZzZXQiOjEwfQ==',
    'sessions' => [
        [
            'createdAt' => ,
            'lastActivityAt' => ,
            'sessionId' => '9f8c7d6e-5b4a-4c3d-9e2f-1a0b2c3d4e5f',
            'sessionName' => 'prod-latency-investigation',
        ],
    ],
]

ListViews

$result = $client->listViews([/* ... */]);
$promise = $client->listViewsAsync([/* ... */]);

Lists the views in the caller's account and region.

Returns a summary for each view, optionally filtered by view type. View definitions are not included — use GetView to retrieve them.

Parameter Syntax

$result = $client->listViews([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'type' => 'USER|MANAGED',
]);

Parameter Details

Members
maxResults
Type: int

The maximum number of views to return per page.

nextToken
Type: string

A token to retrieve the next page of results.

type
Type: string

Return only views of this ownership category.

Result Syntax

[
    'items' => [
        [
            'createdAt' => <DateTime>,
            'description' => '<string>',
            'name' => '<string>',
            'type' => 'USER|MANAGED',
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of ViewSummary structures

The list of view summaries.

nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: List the views in an account and Region

The following example returns a page of view summaries, filtered to user-created views. Definitions are not included — call GetView to retrieve them. A nextToken is returned when more results are available. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->listViews([
    'type' => 'USER',
    'maxResults' => 10,
]);

Result syntax:

[
    'items' => [
        [
            'name' => 'view.service_errors',
            'type' => 'USER',
            'createdAt' => ,
            'description' => 'Error counts by service',
            'updatedAt' => ,
        ],
    ],
    'nextToken' => 'eyJvZmZzZXQiOjEwfQ==',
]

PutIntelligenceConfiguration

$result = $client->putIntelligenceConfiguration([/* ... */]);
$promise = $client->putIntelligenceConfigurationAsync([/* ... */]);

Creates or updates the intelligence configuration for the calling account. Account is identified via FAS (caller identity).

Parameter Syntax

$result = $client->putIntelligenceConfiguration([
    'clientToken' => '<string>',
    'kmsKeyArn' => '<string>',
    'removeKmsKey' => true || false,
]);

Parameter Details

Members
clientToken
Type: string

Idempotency token for safe retries. Repeating a request with the same token applies the update at most once instead of reprocessing it.

kmsKeyArn
Type: string

Optional KMS key ARN to configure customer-managed encryption for anomaly data.

removeKmsKey
Type: boolean

Set to true to disassociate the configured KMS key. Mutually exclusive with kmsKeyArn; the service returns ValidationException if both are provided.

Result Syntax

[
    'accountId' => '<string>',
    'createdAt' => <DateTime>,
    'kmsKeyArn' => '<string>',
    'updatedAt' => <DateTime>,
]

Result Details

Members
accountId
Required: Yes
Type: string

The AWS account ID this configuration applies to.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

ISO-8601 timestamp of initial creation.

kmsKeyArn
Type: string

The currently active KMS key ARN for customer-managed encryption, if configured.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

ISO-8601 timestamp of the last update.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Configure a customer-managed KMS key

The following example sets the customer-managed KMS key used to encrypt the account's intelligence data. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->putIntelligenceConfiguration([
    'clientToken' => 'b3f8c7d6-5b4a-4c3d-9e2f-1a0b2c3d4e5f',
    'kmsKeyArn' => 'arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'accountId' => '123456789012',
    'createdAt' => ,
    'kmsKeyArn' => 'arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    'updatedAt' => ,
]

SearchPrincipals

$result = $client->searchPrincipals([/* ... */]);
$promise = $client->searchPrincipalsAsync([/* ... */]);

Searches Identity Center for users and groups in a domain. The domain must be configured with Identity Center.

To grant access to a result, pass its principalId to CreateAccessGrant with a principalType of IDC_USER for a user or IDC_GROUP for a group.

Parameter Syntax

$result = $client->searchPrincipals([
    'domainId' => '<string>', // REQUIRED
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'searchQuery' => '<string>', // REQUIRED
]);

Parameter Details

Members
domainId
Required: Yes
Type: string

The ID of the domain to search within.

maxResults
Type: int

The maximum number of results to return. Defaults to 10. Valid only when searchQuery is *; other searches reject this parameter and return at most 10 results.

nextToken
Type: string

A token to retrieve the next page of results. Valid only when searchQuery is *; other searches do not paginate and reject this parameter. Tokens expire after 24 hours.

searchQuery
Required: Yes
Type: string

A search term to match against user names, display names, and IDs. Pass * to list all principals. Maximum 128 characters.

Result Syntax

[
    'nextToken' => '<string>',
    'results' => [
        [
            'description' => '<string>',
            'displayName' => '<string>',
            'principalId' => '<string>',
            'principalType' => 'USER|GROUP',
            'userName' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

A token to retrieve the next page of results, or null if there are no more results.

results
Required: Yes
Type: Array of PrincipalSearchResult structures

The list of matching principals.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Search principals by name

The following example searches a domain for principals whose name matches a text query. A text search (any searchQuery other than *) returns at most 10 results and does not paginate, so maxResults and nextToken are not supplied and no nextToken is returned. To grant access to a result, pass its principalId to CreateAccessGrant with a principalType of IDC_USER for a user or IDC_GROUP for a group. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->searchPrincipals([
    'domainId' => 'd-1a2b3c4d5e',
    'searchQuery' => 'jane',
]);

Result syntax:

[
    'results' => [
        [
            'displayName' => 'Jane Doe',
            'principalId' => '94b6c7d8-1a2b-4c3d-9e4f-5a6b7c8d9e0f',
            'principalType' => 'USER',
            'userName' => 'jane.doe',
        ],
        [
            'displayName' => 'Jane's Analysts',
            'principalId' => '2f5a8c1b-6d3e-4f7a-8b9c-0d1e2f3a4b5c',
            'principalType' => 'GROUP',
        ],
    ],
]

StartTelemetryQuery

$result = $client->startTelemetryQuery([/* ... */]);
$promise = $client->startTelemetryQueryAsync([/* ... */]);

Starts a telemetry query within a session.

Submits the provided query string for execution in the specified session. Use GetTelemetryQueryResults to poll for results and check query status.

Parameter Syntax

$result = $client->startTelemetryQuery([
    'queryString' => '<string>', // REQUIRED
    'sessionId' => '<string>', // REQUIRED
]);

Parameter Details

Members
queryString
Required: Yes
Type: string

The query string to execute.

sessionId
Required: Yes
Type: string

The unique ID of the session.

Result Syntax

[
    'queryId' => '<string>',
    'sessionId' => '<string>',
]

Result Details

Members
queryId
Required: Yes
Type: string

The unique ID of the query.

sessionId
Required: Yes
Type: string

The unique ID of the session.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Start a telemetry query

The following example submits a SQL query within a session and returns the query ID used to poll for results. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->startTelemetryQuery([
    'queryString' => 'SELECT `@timestamp`, `@message` FROM "logs.default" WHERE `@timestamp` BETWEEN NOW() - INTERVAL '1 HOUR' AND NOW() ORDER BY `@timestamp` DESC LIMIT 100',
    'sessionId' => '9f8c7d6e-5b4a-4c3d-9e2f-1a0b2c3d4e5f',
]);

Result syntax:

[
    'queryId' => '3b2a1c0d-7e6f-4a5b-8c9d-0e1f2a3b4c5d',
    'sessionId' => '9f8c7d6e-5b4a-4c3d-9e2f-1a0b2c3d4e5f',
]

StartTelemetryQuerySession

$result = $client->startTelemetryQuerySession([/* ... */]);
$promise = $client->startTelemetryQuerySessionAsync([/* ... */]);

Starts a new telemetry query session.

A session provides a logical grouping for one or more telemetry queries. The returned session ID is required when starting queries via StartTelemetryQuery.

Parameter Syntax

$result = $client->startTelemetryQuerySession([
    'sessionName' => '<string>',
]);

Parameter Details

Members
sessionName
Type: string

A human-readable name for the session. Names under /aws/ are reserved for service integrations.

Result Syntax

[
    'sessionId' => '<string>',
]

Result Details

Members
sessionId
Required: Yes
Type: string

The unique ID of the session.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Start a telemetry query session

The following example starts a session for grouping telemetry queries and returns its session ID. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->startTelemetryQuerySession([
    'sessionName' => 'prod-latency-investigation',
]);

Result syntax:

[
    'sessionId' => '9f8c7d6e-5b4a-4c3d-9e2f-1a0b2c3d4e5f',
]

StopTelemetryQuery

$result = $client->stopTelemetryQuery([/* ... */]);
$promise = $client->stopTelemetryQueryAsync([/* ... */]);

Stops a running telemetry query.

Parameter Syntax

$result = $client->stopTelemetryQuery([
    'queryId' => '<string>', // REQUIRED
]);

Parameter Details

Members
queryId
Required: Yes
Type: string

The unique ID of the query.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Stop a running telemetry query

The following example stops a running query by its ID. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->stopTelemetryQuery([
    'queryId' => '3b2a1c0d-7e6f-4a5b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
]

StopTelemetryQuerySession

$result = $client->stopTelemetryQuerySession([/* ... */]);
$promise = $client->stopTelemetryQuerySessionAsync([/* ... */]);

Stops a telemetry query session.

Terminates the specified session. After a session is stopped it cannot be reused.

Parameter Syntax

$result = $client->stopTelemetryQuerySession([
    'sessionId' => '<string>', // REQUIRED
]);

Parameter Details

Members
sessionId
Required: Yes
Type: string

The unique ID of the session.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Stop a telemetry query session

The following example terminates the specified session. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->stopTelemetryQuerySession([
    'sessionId' => '9f8c7d6e-5b4a-4c3d-9e2f-1a0b2c3d4e5f',
]);

Result syntax:

[
]

UpdateAccessProfile

$result = $client->updateAccessProfile([/* ... */]);
$promise = $client->updateAccessProfileAsync([/* ... */]);

Updates the name or description of an access profile.

Only the provided fields are changed; omitted fields are left unchanged.

Parameter Syntax

$result = $client->updateAccessProfile([
    'description' => '<string>',
    'name' => '<string>',
    'profileId' => '<string>', // REQUIRED
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
description
Type: string

A new description of the access profile. Omit to leave unchanged.

name
Type: string

A new name for the access profile. Omit to leave unchanged.

profileId
Required: Yes
Type: string

The unique ID of the access profile to update.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[
    'accessProfile' => [
        'arn' => '<string>',
        'assumeStatus' => 'ALLOWED|DENIED',
        'createdAt' => <DateTime>,
        'description' => '<string>',
        'name' => '<string>',
        'profileId' => '<string>',
        'profileType' => 'SERVICE_MANAGED|CUSTOMER_MANAGED',
        'spaceId' => '<string>',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
accessProfile
Required: Yes
Type: AccessProfile structure

The access profile.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Update an access profile description

The following example updates only the description of an access profile; the name is left unchanged. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->updateAccessProfile([
    'description' => 'Read-only access for analysts and on-call responders.',
    'profileId' => 'analyst-readonly',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'accessProfile' => [
        'name' => 'Analyst read-only profile',
        'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:access-profile/analyst-readonly',
        'createdAt' => ,
        'description' => 'Read-only access for analysts and on-call responders.',
        'profileId' => 'analyst-readonly',
        'profileType' => 'CUSTOMER_MANAGED',
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'updatedAt' => ,
    ],
]

UpdateAlert

$result = $client->updateAlert([/* ... */]);
$promise = $client->updateAlertAsync([/* ... */]);

Updates an existing alert.

Only non-null fields overwrite existing values.

Parameter Syntax

$result = $client->updateAlert([
    'alertId' => '<string>', // REQUIRED
    'description' => '<string>',
    'name' => '<string>',
    'notificationRules' => [
        [
            'target' => [ // REQUIRED
                'arn' => '<string>', // REQUIRED
                'metadata' => ['<string>', ...],
                'type' => 'sns|slack|pagerduty', // REQUIRED
            ],
            'trigger' => [ // REQUIRED
                'stateValues' => ['<string>', ...],
            ],
        ],
        // ...
    ],
    'notificationsEnabled' => true || false,
    'profileId' => '<string>',
    'rule' => [
        'telemetryRule' => [
            'condition' => [
                'comparator' => 'GT|LT|GTE|LTE',
                'criticalThreshold' => <float>,
                'thresholdField' => '<string>',
                'thresholdMode' => 'COUNT_OF_RESULTS|FIELD_VALUE',
                'warningThreshold' => <float>,
            ],
            'evaluation' => [
                'intervalSeconds' => <integer>, // REQUIRED
                'pendingDurationSeconds' => <integer>,
                'recoveryDurationSeconds' => <integer>,
            ],
            'noData' => [
                'treatAs' => 'OK|WARNING|CRITICAL|NODATA', // REQUIRED
            ],
            'query' => [
                'expression' => '<string>', // REQUIRED
                'language' => 'SQL|PROMQL', // REQUIRED
            ],
        ],
    ],
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
alertId
Required: Yes
Type: string

The alert to update.

description
Type: string

A new description of the alert. Omit to leave unchanged.

name
Type: string

A new display name for the alert. Omit to leave the name unchanged (apply-if-present / PATCH). Same constraints as CreateAlert.name; the name is not the alert's identity, so a rename never changes the alertId.

notificationRules
Type: Array of NotificationRule structures

Replaces the entire notification rule list when present; full-replace, not merge. Omitted = leave existing rules unchanged. An empty list clears all rules (the alert keeps evaluating; only notifications stop).

notificationsEnabled
Type: boolean

Whether actions (notifications) are enabled for this alert. Omitted = leave existing value unchanged.

profileId
Type: string

The ID of the access profile associated with the alert.

rule
Type: Rule structure

The rule that defines how the alert is evaluated. Omit to leave unchanged. Each sub-block is replaced whole when present: {@code query}, {@code condition}, {@code evaluation} and {@code noData} are applied only when supplied, and within a supplied block an omitted optional member is cleared to unset (null/absent) rather than preserved from the stored alert or defaulted. See {@link AlertCondition} and {@link AlertEvaluation}.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Raise an alert's thresholds

The following example replaces only the condition of an alert's rule; the query, the evaluation cadence and the notification rules are left unchanged. A supplied condition is replaced whole rather than merged, so every threshold to keep is sent again. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->updateAlert([
    'alertId' => 'c3d4e5f67a8b4c9d8e0f1a2b3c4d5e6f',
    'rule' => [
        'telemetryRule' => [
            'condition' => [
                'comparator' => 'GT',
                'criticalThreshold' => 400,
                'thresholdField' => 'error_count',
                'thresholdMode' => 'FIELD_VALUE',
                'warningThreshold' => 100,
            ],
        ],
    ],
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
]

UpdateDomain

$result = $client->updateDomain([/* ... */]);
$promise = $client->updateDomainAsync([/* ... */]);

Updates a domain's name or identity provider configuration.

Only the provided fields are changed; omitted fields are left unchanged. Renaming a domain also changes the endpoint URLs derived from its name.

Parameter Syntax

$result = $client->updateDomain([
    'domainId' => '<string>', // REQUIRED
    'identityProviderConfiguration' => [
        'identityCenterConfiguration' => [
            'identityCenterInstanceArn' => '<string>',
        ],
    ],
    'identityProviders' => ['<string>', ...],
    'name' => '<string>',
]);

Parameter Details

Members
domainId
Required: Yes
Type: string

The unique ID of the domain to update.

identityProviderConfiguration

Identity provider configuration for the domain.

identityProviders
Type: Array of strings

The identity providers to configure for the domain.

name
Type: string

A new name for the domain. Omit to leave unchanged. Must be 3-63 characters: lowercase letters, numbers, and hyphens. It must begin and end with a letter or number and cannot contain consecutive hyphens.

Result Syntax

[
    'domain' => [
        'createdAt' => <DateTime>,
        'customEndpointUrls' => ['<string>', ...],
        'domainArn' => '<string>',
        'domainEndpointUrl' => '<string>',
        'domainId' => '<string>',
        'identityCenterApplicationArn' => '<string>',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => '<string>',
            ],
        ],
        'identityProviders' => ['<string>', ...],
        'name' => '<string>',
        'region' => '<string>',
        'status' => 'ACTIVE',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
domain
Required: Yes
Type: Domain structure

The details of the updated domain.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Rename a domain

The following example performs a partial update that changes only the domain name; the omitted fields are left unchanged. Renaming the domain also updates the endpoint URLs derived from its name, and updatedAt advances past createdAt. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->updateDomain([
    'name' => 'prod-observability-metrics',
    'domainId' => 'd-1a2b3c4d5e',
]);

Result syntax:

[
    'domain' => [
        'name' => 'prod-observability-metrics',
        'createdAt' => ,
        'customEndpointUrls' => [
            'https://prod-observability-metrics.cloudwatch-omni.global.app.aws',
        ],
        'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:domain/d-1a2b3c4d5e',
        'domainEndpointUrl' => 'https://d-1a2b3c4d5e.cloudwatch-omni.global.app.aws',
        'domainId' => 'd-1a2b3c4d5e',
        'identityCenterApplicationArn' => 'arn:aws:sso::123456789012:application/ssoins-1234567890abcdef/apl-0f9e8d7c6b5a4938',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => 'arn:aws:sso:::instance/ssoins-1234567890abcdef',
            ],
        ],
        'identityProviders' => [
            'IDC',
        ],
        'region' => 'us-east-1',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

UpdateDomainForOrganization

$result = $client->updateDomainForOrganization([/* ... */]);
$promise = $client->updateDomainForOrganizationAsync([/* ... */]);

Updates an organization domain's name or identity provider configuration. Call this operation in the Region where the domain was created.

Only the provided fields are changed; omitted fields are left unchanged. Renaming a domain also changes the endpoint URLs derived from its name.

Parameter Syntax

$result = $client->updateDomainForOrganization([
    'domainId' => '<string>', // REQUIRED
    'identityProviderConfiguration' => [
        'identityCenterConfiguration' => [
            'identityCenterInstanceArn' => '<string>',
        ],
    ],
    'identityProviders' => ['<string>', ...],
    'name' => '<string>',
]);

Parameter Details

Members
domainId
Required: Yes
Type: string

The ID of the organization domain to update.

identityProviderConfiguration

Identity provider configuration for the domain. Omit to leave unchanged.

identityProviders
Type: Array of strings

The identity providers to configure for the domain. Omit to leave unchanged.

name
Type: string

A new name for the organization domain. Omit to leave unchanged. Must be 3-63 characters: lowercase letters, numbers, and hyphens. It must begin and end with a letter or number and cannot contain consecutive hyphens.

Result Syntax

[
    'organizationDomain' => [
        'createdAt' => <DateTime>,
        'customEndpointUrls' => ['<string>', ...],
        'domainAccessRoleArn' => '<string>',
        'domainArn' => '<string>',
        'domainEndpointUrl' => '<string>',
        'domainId' => '<string>',
        'identityCenterApplicationArn' => '<string>',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => '<string>',
            ],
        ],
        'identityProviders' => ['<string>', ...],
        'name' => '<string>',
        'organizationId' => '<string>',
        'ownerAccountId' => '<string>',
        'region' => '<string>',
        'status' => 'ACTIVE',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
organizationDomain
Required: Yes
Type: OrganizationDomain structure

The details of the updated organization domain.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Rename an organization domain

The following example performs a partial update that changes only the organization domain name; the omitted fields are left unchanged. The endpoint URLs derived from the name are updated, and updatedAt advances past createdAt. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->updateDomainForOrganization([
    'name' => 'prod-observability-org-metrics',
    'domainId' => 'd-9z8y7x6w5v',
]);

Result syntax:

[
    'organizationDomain' => [
        'name' => 'prod-observability-org-metrics',
        'createdAt' => ,
        'customEndpointUrls' => [
            'https://prod-observability-org-metrics.cloudwatch-omni.global.app.aws',
        ],
        'domainAccessRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchOrganizationDomainAccessRole',
        'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:organization-domain/d-9z8y7x6w5v',
        'domainEndpointUrl' => 'https://d-9z8y7x6w5v.cloudwatch-omni.global.app.aws',
        'domainId' => 'd-9z8y7x6w5v',
        'identityCenterApplicationArn' => 'arn:aws:sso::123456789012:application/ssoins-1234567890abcdef/apl-0f9e8d7c6b5a4938',
        'identityProviderConfiguration' => [
            'identityCenterConfiguration' => [
                'identityCenterInstanceArn' => 'arn:aws:sso:::instance/ssoins-1234567890abcdef',
            ],
        ],
        'identityProviders' => [
            'IDC',
        ],
        'organizationId' => 'o-a1b2c3d4e5',
        'ownerAccountId' => '123456789012',
        'region' => 'us-east-1',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

UpdateIntegration

$result = $client->updateIntegration([/* ... */]);
$promise = $client->updateIntegrationAsync([/* ... */]);

Updates an existing integration, identified by its id, ARN, or name. Only the fields you provide are changed.

Parameter Syntax

$result = $client->updateIntegration([
    'credential' => [
        'apiKeyCredential' => [
            'apiKeyValue' => '<string>', // REQUIRED
        ],
        'oauthClientCredential' => [
            'clientId' => '<string>', // REQUIRED
            'clientSecret' => '<string>', // REQUIRED
            'providerId' => '<string>',
        ],
        'oauthCodeCredential' => [
            'authCode' => '<string>', // REQUIRED
        ],
    ],
    'identifier' => [ // REQUIRED
        'integrationArn' => '<string>',
        'integrationId' => '<string>',
        'integrationName' => '<string>',
    ],
    'integrationAttributes' => ['<string>', ...],
    'roleArn' => '<string>',
]);

Parameter Details

Members
credential
Type: IntegrationCredential structure

The replacement credential used to authenticate with the provider.

identifier
Required: Yes
Type: IntegrationIdentifier structure

Identifies the integration to update — exactly one of integrationId, integrationArn, or integrationName.

integrationAttributes
Type: Associative array of custom strings keys (StringMapKeyString) to strings

The provider-specific attributes to associate with the integration.

roleArn
Type: string

The Amazon Resource Name of the IAM role assumed to access the integration.

Result Syntax

[
    'integration' => [
        'authType' => 'NONE|OAUTH2|API_KEY',
        'authorizationUrl' => '<string>',
        'createdAt' => <DateTime>,
        'credentialArn' => '<string>',
        'errorMessage' => '<string>',
        'integrationArn' => '<string>',
        'integrationAttributes' => ['<string>', ...],
        'integrationId' => '<string>',
        'integrationType' => 'AWS_CONFIG_SLREC|SLACK|EXTERNAL_AGENT|AWS_INTEGRATION',
        'name' => '<string>',
        'roleArn' => '<string>',
        'scope' => 'ACCOUNT|ORGANIZATION',
        'status' => 'ACTIVE|DELETED|PENDING|PENDING_OAUTH|ERROR|FAILED',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
integration
Type: Integration structure

The details of the updated integration. This is the same object returned by GetIntegration and CreateIntegration. Populated on a successful update; absent only if the post-update read-back of the resource did not complete.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

Examples

Example 1: Update an integration's attributes

The following example replaces the provider-specific attributes of the integration identified by its id. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->updateIntegration([
    'identifier' => [
        'integrationId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
    ],
    'integrationAttributes' => [
        'notificationChannel' => 'ops-oncall',
    ],
]);

Result syntax:

[
    'integration' => [
        'name' => 'my-aws-integration',
        'createdAt' => ,
        'integrationArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:integration/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'integrationAttributes' => [
            'notificationChannel' => 'ops-oncall',
        ],
        'integrationId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'integrationType' => 'AWS_INTEGRATION',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

UpdateOmniDashboard

$result = $client->updateOmniDashboard([/* ... */]);
$promise = $client->updateOmniDashboardAsync([/* ... */]);

Updates an existing dashboard within a space.

Only the provided fields are changed; omitted fields are left unchanged.

Parameter Syntax

$result = $client->updateOmniDashboard([
    'body' => '<string>',
    'dashboardId' => '<string>', // REQUIRED
    'description' => '<string>',
    'name' => '<string>',
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
body
Type: string

The new dashboard definition, as a JSON document. Maximum 1 MiB. Omit to leave unchanged.

dashboardId
Required: Yes
Type: string

The unique ID of the dashboard.

description
Type: string

A new description of the dashboard. Omit to leave unchanged.

name
Type: string

A new name for the dashboard. Omit to leave unchanged.

spaceId
Required: Yes
Type: string

The unique ID of the space.

Result Syntax

[
    'omniDashboard' => [
        'arn' => '<string>',
        'body' => '<string>',
        'createdAt' => <DateTime>,
        'createdBy' => '<string>',
        'dashboardId' => '<string>',
        'description' => '<string>',
        'name' => '<string>',
        'tags' => ['<string>', ...],
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
omniDashboard
Required: Yes
Type: OmniDashboard structure

The dashboard.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Update a dashboard body

The following example updates only the body of a dashboard; the name and description are left unchanged. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->updateOmniDashboard([
    'body' => '{"widgets":[{"type":"metric","x":0,"y":0,"width":24,"height":6,"properties":{"metrics":[["AWS/Lambda","Errors","FunctionName","OrderProcessor"],["AWS/Lambda","Throttles","FunctionName","OrderProcessor"]],"region":"us-east-1","title":"Lambda Errors and Throttles"}}]}',
    'dashboardId' => 'c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'omniDashboard' => [
        'name' => 'service-health-overview',
        'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:omni-dashboard/c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
        'body' => '{"widgets":[{"type":"metric","x":0,"y":0,"width":24,"height":6,"properties":{"metrics":[["AWS/Lambda","Errors","FunctionName","OrderProcessor"],["AWS/Lambda","Throttles","FunctionName","OrderProcessor"]],"region":"us-east-1","title":"Lambda Errors and Throttles"}}]}',
        'createdAt' => ,
        'createdBy' => 'arn:aws:iam::123456789012:role/ObservabilityAdmin',
        'dashboardId' => 'c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f',
        'description' => 'Overview of service health metrics.',
        'tags' => [
            'Team' => 'observability',
        ],
        'updatedAt' => ,
    ],
]

UpdateSpace

$result = $client->updateSpace([/* ... */]);
$promise = $client->updateSpaceAsync([/* ... */]);

Updates a space.

Only the provided fields are changed; omitted fields are left unchanged.

Parameter Syntax

$result = $client->updateSpace([
    'encryptionConfiguration' => [
        'encryptionStrategy' => 'AWS_OWNED|CUSTOMER_MANAGED', // REQUIRED
        'kmsKeyArn' => '<string>',
    ],
    'name' => '<string>',
    'spaceId' => '<string>', // REQUIRED
]);

Parameter Details

Members
encryptionConfiguration
Type: EncryptionConfiguration structure

How to encrypt the space's data at rest. Omit to leave encryption unchanged. Pass encryptionStrategy AWS_OWNED to stop using a customer managed key and revert to service owned encryption.

name
Type: string

A new name for the space. Omit to leave unchanged. Must be 3-64 characters: lowercase letters, numbers, and hyphens. It must begin and end with a letter or number and cannot contain consecutive hyphens.

spaceId
Required: Yes
Type: string

The unique ID of the space to update.

Result Syntax

[
    'space' => [
        'agentCoreEvaluationRoleArn' => '<string>',
        'createdAt' => <DateTime>,
        'dataAccessRoleArn' => '<string>',
        'domainArn' => '<string>',
        'encryptionConfiguration' => [
            'encryptionStrategy' => 'AWS_OWNED|CUSTOMER_MANAGED',
            'kmsKeyArn' => '<string>',
        ],
        'name' => '<string>',
        'ownerAccountId' => '<string>',
        'region' => '<string>',
        'spaceArn' => '<string>',
        'spaceId' => '<string>',
        'status' => 'ACTIVE|SUSPENDED|MOVING',
        'statusReason' => '<string>',
        'updatedAt' => <DateTime>,
    ],
]

Result Details

Members
space
Required: Yes
Type: Space structure

The updated details of the space.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

ServiceQuotaExceededException:

A service quota was exceeded.

Examples

Example 1: Rename a space

The following example updates only the name of a space; omitted fields are left unchanged. The response returns the full space with a later updatedAt timestamp. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->updateSpace([
    'name' => 'prod-observability-team',
    'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
]);

Result syntax:

[
    'space' => [
        'name' => 'prod-observability-team',
        'agentCoreEvaluationRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchAgentCoreEvaluationRole',
        'createdAt' => ,
        'dataAccessRoleArn' => 'arn:aws:iam::123456789012:role/CloudWatchSpaceDataAccessRole',
        'domainArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:domain/d-1a2b3c4d5e',
        'encryptionConfiguration' => [
            'encryptionStrategy' => 'CUSTOMER_MANAGED',
            'kmsKeyArn' => 'arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        ],
        'ownerAccountId' => '123456789012',
        'region' => 'us-east-1',
        'spaceArn' => 'arn:aws:cloudwatch:us-east-1:123456789012:space/a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'spaceId' => 'a1b2c3d4-5e6f-4a3b-8c9d-0e1f2a3b4c5d',
        'status' => 'ACTIVE',
        'updatedAt' => ,
    ],
]

UpdateView

$result = $client->updateView([/* ... */]);
$promise = $client->updateViewAsync([/* ... */]);

Updates an existing view's definition and/or description.

Only the fields you provide are changed. Managed views cannot be updated.

Parameter Syntax

$result = $client->updateView([
    'definition' => '<string>',
    'description' => '<string>',
    'name' => '<string>', // REQUIRED
]);

Parameter Details

Members
definition
Type: string

The new SQL query that defines the view. Omit to leave unchanged.

description
Type: string

The new description of the view. Omit to leave unchanged.

name
Required: Yes
Type: string

The name of the view to update.

Result Syntax

[
    'arn' => '<string>',
    'createdAt' => <DateTime>,
    'definition' => '<string>',
    'description' => '<string>',
    'name' => '<string>',
    'type' => 'USER|MANAGED',
    'updatedAt' => <DateTime>,
]

Result Details

Members
arn
Required: Yes
Type: string

The ARN of the view.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the view was created.

definition
Required: Yes
Type: string

The SQL query that defines the view.

description
Type: string

The description of the view.

name
Required: Yes
Type: string

The name of the view.

type
Required: Yes
Type: string

The ownership category of the view.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the view was last updated.

Errors

ThrottlingException:

The request was throttled due to exceeding the allowed request rate.

ValidationException:

A parameter is specified incorrectly.

ResourceNotFoundException:

The specified resource does not exist.

AccessDeniedException:

The caller is not authorized to perform this action.

InternalServerException:

An unexpected error occurred while processing the request.

ConflictException:

The operation could not be completed because of a conflict with the current state of the resource.

Examples

Example 1: Update a view's definition

The following example changes only the definition; the omitted description is left unchanged. Managed views cannot be updated. The response carries the view's effective configuration. Payloads are shown as JSON; on the wire they are CBOR-encoded.

$result = $client->updateView([
    'name' => 'view.service_errors',
    'definition' => 'SELECT resource['attributes']['service.name'] AS service, COUNT(*) AS error_count FROM "logs.default" WHERE status['code'] IN ('2', 'ERROR') GROUP BY service',
]);

Result syntax:

[
    'name' => 'view.service_errors',
    'type' => 'USER',
    'arn' => 'arn:aws:cloudwatch:us-east-1:123456789012:view/view.service_errors',
    'createdAt' => ,
    'definition' => 'SELECT resource['attributes']['service.name'] AS service, COUNT(*) AS error_count FROM "logs.default" WHERE status['code'] IN ('2', 'ERROR') GROUP BY service',
    'description' => 'Error counts by service',
    'updatedAt' => ,
]

Shapes

AccessDeniedException

Description

The caller is not authorized to perform this action.

Members
message
Required: Yes
Type: string

AccessGrant

Description

Full AccessGrant structure returned by API operations.

Members
accountId
Required: Yes
Type: string

The AWS account ID that owns the grant.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the grant was created.

createdBy
Required: Yes
Type: string

The principal that created the grant.

domainId
Required: Yes
Type: string

The ID of the domain the grant belongs to.

grantArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the access grant.

grantId
Required: Yes
Type: string

The unique ID of the access grant.

grantType
Required: Yes
Type: string

Who manages the grant.

name
Type: string

A name that identifies the access grant.

permission
Required: Yes
Type: string

The permission granted.

principal
Required: Yes
Type: AccessGrantPrincipal structure

The principal receiving the grant.

scopedActions
Type: Array of ScopedActions structures

Groups of actions allowed by the grant, each with the resource scopes and conditions that limit those actions.

spaceId
Required: Yes
Type: string

The space this grant applies to. Domain-scoped grants are returned by ListDomainAccessGrantsForOrganization instead.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the grant was last updated.

AccessGrantPrincipal

Description

The principal receiving the grant. Specify principalId, principalAttributes, or both.

Members
principalAttributes
Type: Array of AccessGrantPrincipalAttribute structures

Attribute conditions for attribute-based access. When provided, the grant targets any principal matching all specified conditions. Supported only for IDC_USER principals.

principalId
Type: string

The ID of the principal receiving the grant.

principalType
Required: Yes
Type: string

The type of principal receiving the grant.

AccessGrantPrincipalAttribute

Description

A single attribute condition used to match principals for attribute-based access.

Members
key
Required: Yes
Type: string

The Identity Center user attribute to match on. One of userName, active, userStatus, displayName, email, name.givenName, name.familyName, enterprise.department, enterprise.division, enterprise.organization, enterprise.costCenter, or enterprise.employeeNumber. Each key may appear only once per grant.

value
Required: Yes
Type: string

The attribute value.

AccessGrantSummary

Description

Summary of an AccessGrant. Call GetAccessGrant for the full grant.

Members
domainId
Required: Yes
Type: string

The ID of the domain the grant belongs to.

grantArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the access grant.

grantId
Required: Yes
Type: string

The unique ID of the access grant.

grantType
Required: Yes
Type: string

Who manages the grant.

name
Type: string

A name that identifies the access grant.

permission
Required: Yes
Type: string

The permission granted.

principal
Required: Yes
Type: AccessGrantPrincipal structure

The principal receiving the grant.

spaceId
Required: Yes
Type: string

The space this grant applies to. Domain-scoped grants are returned by ListDomainAccessGrantsForOrganization instead.

AccessProfile

Description

An Access Profile.

Members
arn
Required: Yes
Type: string

The ARN of this access profile.

assumeStatus
Type: string

The calling principal's authorization to assume this access profile.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the access profile was created.

description
Type: string

An optional description of the access profile.

name
Required: Yes
Type: string

A name that identifies the access profile.

profileId
Required: Yes
Type: string

The unique ID of the access profile.

profileType
Type: string

Who manages the access profile.

spaceId
Required: Yes
Type: string

The ID of the space the profile belongs to.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the access profile was last updated.

AccessProfileSummary

Description

Summary of an access profile. Call GetAccessProfile for the full profile.

Members
arn
Required: Yes
Type: string

The ARN of this access profile.

description
Type: string

An optional description of the access profile.

name
Required: Yes
Type: string

A name that identifies the access profile.

profileId
Required: Yes
Type: string

The unique ID of the access profile.

profileType
Type: string

Who manages the access profile.

Alert

Description

Full alert entity, returned by both CreateAlert and GetAlert. A create and a read of the same alert describe it identically except for {@code state}, which only the read paths populate. UpdateAlert returns an empty response.

Members
accountId
Required: Yes
Type: string

The AWS account ID that owns the alert.

alertArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the alert.

alertId
Type: string

The stable alert identifier (see {@link AlertId}), minted on create and immutable across updates. Use it (not {@code name}) to address the alert on GetAlert/UpdateAlert/DeleteAlert; it is also the ARN's resource id.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the alert was created.

description
Type: string

An optional description of the alert.

name
Required: Yes
Type: string

The name of the alert.

notificationRules
Type: Array of NotificationRule structures

The notification rules for the alert.

notificationStatus
Type: string

Whether notifications are enabled.

profileId
Type: string

The ID of the access profile associated with the alert.

rule
Required: Yes
Type: Rule structure

The rule that defines how the alert is evaluated.

spaceId
Type: string

The ID of the space the alert belongs to.

state
Type: AlertStateInfo structure

Live evaluation state (read-only, system-managed). Populated by GetAlert. ListAlerts reports state on AlertSummary instead, where it stays required.

Absent on CreateAlert: a newly created alert has never been evaluated, so any state reported there would be a default rather than an observation. Call GetAlert for live state. Not @required for that reason — GetAlert always populates it.

contributorSummary is nested inside this member, so it too is absent on CreateAlert.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the alert was last updated.

AlertCondition

Description

The condition that determines when the alert fires.

On UpdateAlert a supplied condition is replaced whole, not merged: an omitted {@code warningThreshold} or {@code criticalThreshold} removes that tier, and an omitted {@code thresholdField} clears it. A condition must keep at least one tier. {@code thresholdMode} and {@code comparator} are optional at the Smithy level (so a single-tier condition is expressible) but are required whenever a threshold is present; enforced by the service-side validator.

Members
comparator
Type: string

The comparison operator applied to the threshold.

criticalThreshold
Type: double

The value at which the alert enters the CRITICAL state.

thresholdField
Type: string

The field the threshold is evaluated against.

thresholdMode
Type: string

How the threshold is applied to query results.

warningThreshold
Type: double

The value at which the alert enters the WARNING state.

AlertEvaluation

Description

Evaluation cadence. {@code intervalSeconds} must be one of {30, 60, 120, 300, 600, 900, 1800, 3600}; {@code pendingDurationSeconds} and {@code recoveryDurationSeconds} must be multiples of {@code intervalSeconds}. A duration of 0 means fire/clear immediately with no delay.

On UpdateAlert a supplied evaluation block is replaced whole, not merged: an omitted {@code pendingDurationSeconds} or {@code recoveryDurationSeconds} is cleared to unset (no such duration), not preserved and not defaulted to 0. {@code intervalSeconds} is required whenever the block is present. All enforced server-side / by the front-door validator.

Members
intervalSeconds
Required: Yes
Type: int

The interval between evaluations, in seconds.

pendingDurationSeconds
Type: int

The duration a breach must persist before the alert fires, in seconds.

recoveryDurationSeconds
Type: int

The duration a recovery must persist before the alert clears, in seconds.

AlertFilterCriteria

Description

Filter criteria for ListAlerts. All members are optional; each omitted member is unconstrained. At most one of {@code names}, {@code namePrefix}, {@code ids} may be provided (mutually exclusive; the service rejects more than one). The remaining members combine with AND.

Members
ids
Type: Array of strings

Filter to alerts whose {@link AlertId} exactly matches any entry (OR semantics). Mutually exclusive with {@code names} and {@code namePrefix}.

namePrefix
Type: string

Filter to alerts whose name starts with this prefix. Mutually exclusive with {@code names} and {@code ids}.

names
Type: Array of strings

Filter to alerts whose name exactly matches any entry (OR semantics). Mutually exclusive with {@code namePrefix} and {@code ids}.

notificationsEnabled
Type: boolean

Filter to alerts by whether notifications are enabled.

stateValue
Type: Array of strings

Filter to alerts currently in any of these states (OR semantics).

AlertRuleQuery

Description

Query expression and the language it's written in.

Members
expression
Required: Yes
Type: string

The query expression to evaluate.

language
Required: Yes
Type: string

The query language of the expression.

AlertStateData

Description

Structured detail about the current evaluation.

Members
thresholdBreached
Type: double

For COUNT_OF_RESULTS alerts, the row count that breached; null for FIELD_VALUE (multi-contributor) alerts.

AlertStateInfo

Description

Live evaluation state for an alert. Read-only, system-managed.

Members
contributorSummary
Type: ContributorSummary structure

Counts of contributors currently breaching each severity threshold. Present only when contributor-level tracking is active; absent until the first contributor breaches a {@code WARNING} or {@code CRITICAL} threshold.

data
Type: AlertStateData structure

Structured detail about why the alert is in its current state.

transitionedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the alert transitioned to its current state.

value
Required: Yes
Type: string

Current flat state.

AlertSummary

Description

Summary representation of an alert used in list responses.

Members
alertArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the alert.

alertId
Type: string

The stable alert identifier (see {@link Alert#alertId}). Use it to address the alert; it is also the ARN's resource id.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the alert was created.

name
Required: Yes
Type: string

The name of the alert.

notificationStatus
Type: string

Whether notifications are enabled.

profileId
Type: string

The ID of the access profile associated with the alert.

spaceId
Type: string

The ID of the space the alert belongs to.

state
Required: Yes
Type: AlertStateInfo structure

Live evaluation state (read-only, system-managed).

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the alert was last updated.

ApiKeyCredential

Description

An API key used to authenticate an integration with its external system.

Members
apiKeyValue
Required: Yes
Type: string

The API key value used to authenticate with the external system.

AwsCredentials

Description

A set of temporary AWS credentials.

Members
accessKeyId
Required: Yes
Type: string

The AWS access key ID.

expiration
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the credentials expire.

secretAccessKey
Required: Yes
Type: string

The AWS secret access key.

sessionToken
Required: Yes
Type: string

The AWS session token.

ConflictException

Description

The operation could not be completed because of a conflict with the current state of the resource.

Members
conflictType
Type: string

The type of conflict that caused the request to fail. Not always present.

errorCode
Type: string

The error code associated with the conflict. Not always present.

message
Required: Yes
Type: string

A human-readable description of the conflict.

resourceId
Type: string

The identifier of the resource that is in conflict. Not always present.

resourceType
Type: string

The type of the resource that is in conflict. Not always present.

ContributorSummary

Description

Counts of contributors currently breaching each severity threshold.

Members
criticalCount
Type: int

Number of contributors currently breaching the critical threshold.

warningCount
Type: int

Number of contributors currently breaching the warning threshold.

Domain

Description

Detailed information about a domain.

Members
createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the domain was created.

customEndpointUrls
Type: Array of strings

Additional endpoint URLs derived from the domain name.

domainArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the domain.

domainEndpointUrl
Required: Yes
Type: string

The HTTPS endpoint URL for accessing the domain.

domainId
Required: Yes
Type: string

The unique ID of the domain.

identityCenterApplicationArn
Type: string

The ARN of the Identity Center application. Absent for IAM-only domains.

identityProviderConfiguration

Identity provider configuration for the domain.

identityProviders
Required: Yes
Type: Array of strings

The identity providers configured for the domain.

name
Type: string

A name that identifies the domain.

region
Required: Yes
Type: string

The Region where this domain was created.

status
Required: Yes
Type: string

Current status of the domain.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the domain was last updated.

DomainSummary

Description

Summary of a domain. Call GetDomain for the full domain.

Members
createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the domain was created.

domainArn
Type: string

The Amazon Resource Name (ARN) of the domain.

domainId
Required: Yes
Type: string

The unique ID of the domain.

identityCenterInstanceArn
Type: string

Identity Center instance ARN configured for the domain. Absent for IAM-only domains.

name
Type: string

A name that identifies the domain.

region
Type: string

The Region where this domain was created.

status
Required: Yes
Type: string

Current status of the domain.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the domain was last updated.

Edge

Description

A directed edge in the context graph connecting two nodes.

Members
edgeId
Type: string

The unique identifier of the edge within the context graph.

edgeProperties
Type: EdgeProperties structure

Attributes promoted out of the flat attribute map onto typed members. Which members are present depends on what produced the edge.

edgeType
Type: string

The kind of relationship the edge represents.

firstObservedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When this edge was first observed (UTC), at minute granularity. For an edge that merged across sources, this is the earliest value any source reported.

from
Type: string

The node identifier the edge originates from.

lastObservedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When this edge was most recently observed (UTC), at minute granularity. For an edge that merged across sources, this is the latest value any source reported.

metadata
Type: Metadata structure

Descriptive metadata about the edge. Present only when the request sets includeMetadata.

operations
Type: Array of strings

The operations observed on this edge.

signalTypes
Type: Array of strings

The kinds of telemetry signal observed on this edge.

sources
Type: Array of strings

The discovery sources that contributed this edge.

telemetryAttributes
Type: Associative array of custom strings keys (String) to strings

The edge's OpenTelemetry (OTel) attributes, as emitted by telemetry. A key promoted onto an edgeProperties member is removed here, so no value appears twice.

to
Type: string

The node identifier the edge points to.

EdgeFilters

Description

Criteria for filtering edges in a context graph query.

Members
edgeId
Type: string

Match only the edge with this identifier.

edgeType
Type: string

Match only edges of this relationship kind.

from
Type: string

Match only edges originating from this node identifier.

operations
Type: Array of strings

Match edges carrying any of these operations.

sources
Type: Array of strings

Match edges contributed by any of these discovery sources.

telemetryAttributes
Type: Array of KeyFilter structures

Match edges by their OpenTelemetry (OTel) telemetry attributes. Not yet enforced: currently accepted but ignored (does not filter), matching nodeFilters.telemetryAttributes.

to
Type: string

Match only edges pointing to this node identifier.

EdgeProperties

Description

Edge attributes promoted out of the flat attribute map onto typed members. Which members are present depends entirely on what produced the edge, so most edges carry only a few of them.

Members
blocked
Type: boolean

Whether the observed network flow was denied. Absent means the edge was not derived from network flow data, which is not the same as allowed.

destinationPort
Type: string

The destination port of the observed traffic. May be a placeholder when the port is unknown.

errorCode
Type: string

The error code returned when the call was attempted and refused. Its presence means the edge exists but the dependency is failing.

httpMethod
Type: string

The HTTP method observed on the request.

httpStatusCode
Type: string

The HTTP status code observed on the request. Distinct from errorCode.

protocol
Type: string

The IANA protocol name for the observed network traffic, such as "tcp".

serviceInitiated
Type: boolean

Whether the caller was an AWS service principal rather than a user or role. Absent means the edge was not derived from a source that reports it.

sourcePort
Type: string

The source port of the observed traffic. May be a placeholder when the port is unknown.

trafficStats
Type: EdgeTrafficStats structure

Traffic counters accumulated over the edge's observation window.

EdgeTrafficStats

Description

Additive traffic counters accumulated over an edge's observation window. Which counters are populated depends on what produced the edge.

Members
bytes
Type: long (int|float)

Total bytes observed across the edge.

flows
Type: long (int|float)

Total network flows observed across the edge.

packets
Type: long (int|float)

Total packets observed across the edge.

receivedBytes
Type: long (int|float)

Total bytes received from the destination.

sentBytes
Type: long (int|float)

Total bytes sent to the destination.

EncryptionConfiguration

Description

How a resource's data at rest is encrypted.

kmsKeyArn is required when encryptionStrategy is CUSTOMER_MANAGED and must be absent when it is AWS_OWNED; a mismatch is a ValidationException rather than a silently ignored field, so a caller that selects AWS_OWNED while still passing a key learns that the key was not applied.

Members
encryptionStrategy
Required: Yes
Type: string

Which kind of key to use. Required.

kmsKeyArn
Type: string

Customer managed KMS key ARN. Required when encryptionStrategy is CUSTOMER_MANAGED, and must be omitted when it is AWS_OWNED. Must be a symmetric ENCRYPT_DECRYPT key in the caller's account and region.

Field

Description

A telemetry field available for use in query expressions.

Members
children
Type: Array of Field structures

Child fields nested under this field.

name
Required: Yes
Type: string

The name of the field. Field names are case-sensitive and must be used exactly as returned when referencing them in query expressions.

IdentityCenterConfiguration

Description

Identity Center specific configuration.

Members
identityCenterInstanceArn
Type: string

Identity Center instance ARN

IdentityProviderConfiguration

Description

Identity provider configuration for domain authentication. Contains provider-specific configuration blocks.

Members
identityCenterConfiguration
Type: IdentityCenterConfiguration structure

Identity Center configuration. Required when identityProviders includes IDC.

Integration

Description

A connection between CloudWatch and an external system — such as a source of telemetry or configuration data, a messaging destination, or a model provider.

Members
authType
Type: string

The authentication method that an integration uses to connect to its external system.

authorizationUrl
Type: string

The URL the customer visits to authorize the integration. Present while an OAuth authorization is pending.

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The time at which the integration was created.

credentialArn
Type: string

The Amazon Resource Name (ARN) of the secret that stores the integration's credentials.

errorMessage
Type: string

A human-readable description of why the integration is in an ERROR or FAILED state. Present only when the integration has failed.

integrationArn
Type: string

The Amazon Resource Name (ARN) of the integration.

integrationAttributes
Type: Associative array of custom strings keys (StringMapKeyString) to strings

Provider-specific key/value attributes that configure the integration.

integrationId
Required: Yes
Type: string

The unique identifier of the integration.

integrationType
Required: Yes
Type: string

The type of external system that an integration connects to, such as a source of configuration data, a messaging destination, or a model provider.

name
Required: Yes
Type: string

The customer-provided name of the integration.

roleArn
Type: string

The Amazon Resource Name (ARN) of the IAM role that CloudWatch assumes to access the external system.

scope
Type: string

Whether this integration is account-scoped (ACCOUNT, customer-created) or organization-scoped (ORGANIZATION, created by an org-enablement rule). Absent on legacy records is treated as ACCOUNT.

status
Required: Yes
Type: string

The current lifecycle state of an integration.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The time at which the integration was last updated.

IntegrationCredential

Description

The credential that an integration uses to authenticate with its external system. Exactly one member is set, matching the integration's authentication type.

Members
apiKeyCredential
Type: ApiKeyCredential structure

An API key credential.

oauthClientCredential
Type: OAuthClientCredential structure

Credentials for an OAuth 2.0 client-credentials grant.

oauthCodeCredential
Type: OAuthCodeCredential structure

Credentials for an OAuth 2.0 authorization-code grant.

IntegrationIdentifier

Description

Identifies a single integration by exactly one of its unique keys: the integration id, the integration ARN, or the integration name.

Members
integrationArn
Type: string

The Amazon Resource Name of the integration.

integrationId
Type: string

The unique identifier of the integration.

integrationName
Type: string

The name of the integration; unique within the account.

InternalServerException

Description

An unexpected error occurred while processing the request.

Members
errorCode
Type: string

The error code associated with the internal error.

message
Required: Yes
Type: string

KeyFilter

Description

Key-value filter used for tags and attributes filtering. Multiple KeyFilters are AND'ed. Multiple values within a single KeyFilter are OR'ed. Values support pattern syntax: exact, negation (!value), wildcard (value, value*, *value).

Members
key
Required: Yes
Type: string

The tag or attribute key to filter on.

values
Type: Array of strings

The values to match for this key, OR'ed together. Each supports exact, negation (!value), and wildcard (value, value*, *value) syntax.

LogMetadata

Description

One LOGS query selector block on a node. The attributes map's keys are AND'd; each selects with col = value. Deliberately RAW/un-normalized so the selector matches the store, not the node's merged identity.

Members
attributes
Type: Associative array of custom strings keys (String) to strings

One LOGS query-selector block: EXACT store column -> raw SCALAR value (mirroring the scalar MetadataAttributeMap). Keyed by the store column that carries the value (e.g. resource.attributes['service.name'], attributes['aws.local.service'], @logGroupName) so the selector matches the emitted signal. A dimension seen under several values (a service under two namespaces, several log groups) becomes several blocks with the same columns and different values, which the console ORs. Dedicated to the LOGS selector so its cap evolves independently of the metric attribute map and the TRACES map. Selector caps are deliberately DISTINCT from the metric caps.

Metadata

Description

Descriptive information about a context graph node or edge, as opposed to its identity and structure. Returned only when the request sets includeMetadata.

Members
logs
Type: Array of LogMetadata structures

Per-signal LOGS query selectors: a LIST of blocks the console ORs, each an AND of exact store column -> raw values. Node-level (edges carry only traces). Populated when the request sets includeMetadata; derived labels (logSourceType) are added by the service projection, not stored here.

metrics
Type: Array of MetricMetadata structures

The metrics observed on the element.

semantics
Type: NodeSemantics structure

Semantic description of the node. Absent on an edge, because semantics describe a service rather than a relationship.

traces
Type: Array of TraceMetadata structures

Per-signal TRACES query selectors (same block shape as logs). Present on both node and edge metadata. serviceName is derived at the service projection, not stored here.

MetricMetadata

Description

A single metric observed on a context graph node.

Members
attributes
Type: Associative array of custom strings keys (String) to strings

Per-metric qualifying attributes the console uses to query this metric's telemetry. These are the RAW, store-matching values keyed by their OTel names ("service.name", "service.namespace", "cloud.provider", "cloud.account.id", "cloud.region", "instrumentation_scope") — deliberately NOT the node's normalized/merged identity, so the query selectors match the emitted series. A merged node can carry different values per metric, which is why they live here rather than on the node.

metricType
Type: string

OTel metric kind: "gauge", "sum", "histogram", "exponential_histogram", or "summary" (CloudWatch-vended metrics carry the same kinds). Absent when the producer did not report one.

name
Type: string

The metric name as emitted, such as "Duration".

namespace
Type: string

DEPRECATED: read attributes["service.namespace"] instead. Retained (deprecated) for backward compatibility with existing consumers; will be removed once they migrate. The logical service grouping the metric belongs to.

preferredStat
Type: string

The statistic to chart or alarm on, such as "p99" or "Sum". Free-form and frequently absent.

semantics
Type: MetricSemantics structure

What the metric means and the unit it is reported in.

MetricSemantics

Description

The meaning and unit of a single metric.

Members
description
Type: string

Human-readable description of what the metric measures.

unit
Type: string

The unit the metric is reported in.

NoData

Description

Configures how the alert reacts when an evaluation produces no data. {@code treatAs} carries the resulting state; defaults to {@code NODATA} when omitted.

Members
treatAs
Required: Yes
Type: string

The state to report when an evaluation produces no data.

Node

Description

A node in the context graph representing a service, resource, or remote service.

Members
alternateNames
Type: Array of strings

Other names this node was observed under. A node that merged across sources reports one resolved name, and the names it was merged away from appear here.

edges
Type: Array of Edge structures

Outbound edges originating from this node. Each edge carries its from.

firstObservedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When this node was first observed (UTC), at minute granularity. For a node that merged across sources, this is the earliest value any source reported.

lastObservedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When this node was most recently observed (UTC), at minute granularity. For a node that merged across sources, this is the latest value any source reported.

metadata
Type: Metadata structure

Descriptive metadata about the node. Present only when the request sets includeMetadata.

name
Type: string

The primary display name of the node.

nodeId
Type: string

The unique identifier of the node within the context graph.

nodeProperties
Type: NodeProperties structure

Identity attributes promoted out of the flat attribute map onto typed members.

nodeType
Type: string

Whether the node is a service, a resource, or a remote service.

operationDetails
Type: Associative array of custom strings keys (OperationName) to lists

The operations observed on this node, keyed by operation name. Each value lists the dimension sets that identify the metric series for that operation.

signalTypes
Type: Array of strings

The kinds of telemetry signal observed on this node.

sources
Type: Array of strings

The discovery sources that contributed this node.

tags
Type: Associative array of custom strings keys (String) to strings

The tags observed on the underlying resource.

telemetryAttributes
Type: Associative array of custom strings keys (String) to strings

The node's OpenTelemetry (OTel) attributes, as emitted by telemetry — the raw values, as opposed to the normalized nodeProperties. A key promoted onto a nodeProperties member is removed here, so no value appears twice.

NodeFilters

Description

Criteria for selecting nodes in a context graph query.

Members
category
Type: Array of strings

Match nodes of any of these categories.

cloudProvider
Type: Array of strings

Match nodes on any of these cloud providers.

name
Type: string

Match only nodes with this name.

namespace
Type: Array of strings

Match nodes in any of these logical service groupings.

nodeId
Type: string

Match only the node with this identifier.

nodeType
Type: string

Match only nodes of this type.

region
Type: Array of strings

Match nodes in any of these regions.

sourceAccountId
Type: Array of strings

Match nodes discovered from telemetry produced by any of these accounts.

sources
Type: Array of strings

Match nodes contributed by any of these discovery sources.

stage
Type: Array of strings

Match nodes observed in any of these deployment environments.

tags
Type: Array of KeyFilter structures

Match nodes by the tags on the underlying resource.

telemetryAttributes
Type: Array of KeyFilter structures

Match nodes by their OpenTelemetry (OTel) telemetry attributes.

NodeProperties

Description

Node identity attributes promoted out of the flat attribute map onto typed members. The first four are part of the node's merge key, so a node that merged across sources reports one resolved value for each.

Members
category
Type: string

What kind of thing the node is, coarser than nodeType.

cloudProvider
Type: string

The cloud provider hosting the node, resolved from the reported provider, platform, or vendor namespace, and defaulting to "aws".

namespace
Type: string

The logical service grouping the node belongs to. This is not a metric namespace.

region
Type: string

The region the node runs in. Falls back to the region the telemetry was ingested from when the node does not report one.

sourceAccountId
Type: string

The account that produced the telemetry this node was discovered from.

stage
Type: string

The node's deployment environment. A node may be observed in several; this is the highest-precedence one. Match any of them with NodeFilters.stage.

NodeSemantics

Description

Semantic description of the service a context graph node represents.

Members
framework
Type: string

The application framework the service is built on.

kind
Type: string

The kind of workload the service is.

language
Type: string

The primary programming language the service is written in.

purpose
Type: string

What the service does.

repository
Type: string

The source repository the service is built from.

NotificationRule

Description

Single notification rule: which transitions trigger this rule and where the resulting notification should be sent.

Members
target
Required: Yes
Type: NotificationTarget structure

The destination for notifications from this rule.

trigger
Required: Yes
Type: NotificationTrigger structure

The conditions that trigger this notification rule.

NotificationTarget

Description

The destination for a notification.

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the notification target. For {@code slack} and {@code pagerduty}, an integration ARN as returned by {@code ListIntegrations}.

metadata
Type: Associative array of custom strings keys (NotificationTargetMetadataMapKeyString) to strings

Additional target-specific metadata.

type
Required: Yes
Type: string

The type of notification target.

NotificationTrigger

Description

Trigger conditions for a notification rule. {@code stateValues} entries combine with OR semantics; empty / omitted = any state.

Members
stateValues
Type: Array of strings

Alert state(s) that trigger this rule. Empty / omitted = any state.

OAuthClientCredential

Description

Credentials for an OAuth 2.0 client-credentials grant used to authenticate an integration with its external system.

Members
clientId
Required: Yes
Type: string

The OAuth 2.0 client identifier registered with the external system.

clientSecret
Required: Yes
Type: string

The OAuth 2.0 client secret that pairs with the client identifier.

providerId
Type: string

The identifier of the OAuth provider that issued the client credentials.

OAuthCodeCredential

Description

Credentials for an OAuth 2.0 authorization-code grant, supplied when completing the authorization of an integration.

Members
authCode
Required: Yes
Type: string

The OAuth 2.0 authorization code returned by the external system's authorization endpoint.

OmniDashboard

Description

A dashboard within a space, including its body.

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the dashboard.

body
Required: Yes
Type: string

The dashboard definition.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the dashboard was created.

createdBy
Required: Yes
Type: string

The principal that created the dashboard.

dashboardId
Required: Yes
Type: string

The unique ID of the dashboard.

description
Type: string

An optional description of the dashboard.

name
Required: Yes
Type: string

A name that identifies the dashboard.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags associated with the dashboard.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the dashboard was last updated.

OmniDashboardSummary

Description

Summary of a dashboard. Call GetOmniDashboard for the full dashboard.

Members
arn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the dashboard.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the dashboard was created.

createdBy
Required: Yes
Type: string

The principal that created the dashboard.

dashboardId
Required: Yes
Type: string

The unique ID of the dashboard.

description
Type: string

An optional description of the dashboard.

name
Required: Yes
Type: string

A name that identifies the dashboard.

tags
Type: Associative array of custom strings keys (TagKey) to strings

The tags associated with the dashboard.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the dashboard was last updated.

OrganizationAccessGrant

Description

An organization-scoped access grant.

Members
createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the grant was created.

createdBy
Required: Yes
Type: string

The principal that created the grant.

domainId
Required: Yes
Type: string

The ID of the organization domain the grant belongs to.

grantArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the access grant.

grantId
Required: Yes
Type: string

The unique ID of the access grant.

grantType
Required: Yes
Type: string

Who manages the grant.

name
Type: string

A name that identifies the access grant.

permission
Required: Yes
Type: string

The permission granted.

principal
Required: Yes
Type: OrganizationAccessGrantPrincipal structure

The principal receiving the grant.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the grant was last updated.

OrganizationAccessGrantPrincipal

Description

The principal receiving an organization-level domain access grant. Specify principalId, principalAttributes, or both.

Members
principalAttributes
Type: Array of AccessGrantPrincipalAttribute structures

Attribute conditions for attribute-based access. When provided, the grant targets any principal matching all specified conditions. Supported only for IDC_USER principals.

principalId
Type: string

The ID of the principal receiving the grant.

principalType
Required: Yes
Type: string

The type of principal receiving the grant.

OrganizationAccessGrantSummary

Description

Summary of an organization access grant. Call GetDomainAccessGrantForOrganization for the full grant.

Members
createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the access grant was created.

domainId
Required: Yes
Type: string

The ID of the organization domain the grant belongs to.

grantArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the access grant.

grantId
Required: Yes
Type: string

The unique ID of the access grant.

grantType
Required: Yes
Type: string

Who manages the grant.

name
Type: string

A name that identifies the access grant.

permission
Required: Yes
Type: string

The permission granted.

principal
Required: Yes
Type: OrganizationAccessGrantPrincipal structure

The principal receiving the grant.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the access grant was last updated.

OrganizationDomain

Description

Detailed information about an organization domain.

Members
createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the organization domain was created.

customEndpointUrls
Type: Array of strings

Additional endpoint URLs derived from the domain name.

domainAccessRoleArn
Type: string

The ARN of the customer-provided IAM role in the management account used for domain access.

domainArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the organization domain.

domainEndpointUrl
Required: Yes
Type: string

The HTTPS endpoint URL for accessing the organization domain.

domainId
Required: Yes
Type: string

The unique ID of the organization domain.

identityCenterApplicationArn
Type: string

The ARN of the Identity Center application. Absent for IAM-only domains.

identityProviderConfiguration

Identity provider configuration for the organization domain.

identityProviders
Required: Yes
Type: Array of strings

The identity providers configured for the organization domain.

name
Type: string

A name that identifies the organization domain.

organizationId
Required: Yes
Type: string

The ID of the AWS Organization that owns the domain.

ownerAccountId
Required: Yes
Type: string

The AWS account ID that owns the organization domain.

region
Required: Yes
Type: string

The Region where this organization domain was created.

status
Required: Yes
Type: string

Current status of the organization domain.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the organization domain was last updated.

PartialResults

Description

Indicates whether a query returned partial results.

Members
partialResultsDetected
Type: boolean

True when the query returned partial results (some data could not be read).

PrincipalSearchResult

Description

A user or group matched by SearchPrincipals.

Members
description
Type: string

An optional description of the principal.

displayName
Required: Yes
Type: string

The display name of the principal.

principalId
Required: Yes
Type: string

The unique ID of the principal.

principalType
Required: Yes
Type: string

Whether the principal is a user or a group.

userName
Type: string

The user name of the principal. Present for users only.

QueryStatistics

Description

Statistics about a telemetry query execution.

Members
bytesScanned
Type: double

The number of bytes scanned by the query.

partialResults
Type: PartialResults structure

Information about whether the query returned partial results.

percentComplete
Type: int

The percentage of the query that has completed.

recordsMatched
Type: long (int|float)

The number of records that matched the query criteria.

recordsScanned
Type: long (int|float)

The total number of records scanned.

ResourceNotFoundException

Description

The specified resource does not exist.

Members
errorCode
Type: string

The error code associated with the failure.

message
Required: Yes
Type: string
resourceId
Type: string

The identifier of the resource that could not be found. Not always present.

resourceType
Type: string

The type of the resource that could not be found. Not always present.

ResourceScope

Description

A single resource scope entry within an AccessGrant. Associates a resource type with optional ARN patterns, tag conditions, and row-level filters.

Members
resourceArns
Type: Array of strings

Specific resource ARNs or ARN patterns. When set, actions are limited to these resources. When absent, defaults to "*".

resourceType
Required: Yes
Type: string

Resource type name (e.g., "DataSet", "OmniDashboard").

rowScopeGroups
Type: Array of RowScope structuress

Row-level filters for this scope, as an OR of AND-groups: a row is visible when it matches every filter in any one group. Requires signalTypes.

Row filters are additive across a principal's matching grants. A signal type with no matching group is unrestricted, and when rowScopeGroups is omitted all rows are visible for all signal types.

signalTypes
Type: Array of strings

Signal types this scope's row filtering applies to. Required when rowScopeGroups is set.

tags
Type: Associative array of custom strings keys (String) to strings

Tag-based conditions for dynamic resource scoping. Access applies only to resources carrying all of the specified tag key/value pairs.

RowScope

Description

A single additive row-level filter on an AccessGrant. A row is visible when its value for the given field matches the filter's values. Row filters are additive: the visible rows are the union of all row filters across a principal's matching grants.

Members
field
Required: Yes
Type: string

The field (column) the allowlist applies to (e.g., "serviceName", "accountId").

operator
Required: Yes
Type: string

Match operator applied to this filter's values.

values
Required: Yes
Type: Array of strings

The values the field is matched against.

Rule

Description

Top-level rule definition.

{@code telemetryRule} members are optional at the Smithy level to support PATCH semantics on UpdateAlert (send only the sub-blocks you want to change). On CreateAlert, presence is enforced by the service-side validator.

Members
telemetryRule
Type: TelemetryRule structure

The telemetry-based rule definition.

ScopedActions

Description

A group of actions within an access grant, together with the resource scopes and context conditions that apply to exactly those actions.

Members
actions
Required: Yes
Type: Array of strings

The actions this group applies to.

contextConditions
Type: Associative array of custom strings keys (String) to stringss

Optional context conditions for fine-grained access control on these actions.

resources
Type: Array of ResourceScope structures

Optional resource scopes constraining these actions to specific resources.

ServiceQuotaExceededException

Description

A service quota was exceeded.

Members
message
Required: Yes
Type: string

SessionSummary

Description

Summary information about a query session, including its identifier, name, and activity timestamps.

Members
createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the session was created.

lastActivityAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp of the most recent activity in the session.

sessionId
Required: Yes
Type: string

The unique ID of the session.

sessionName
Type: string

The human-readable name of the session. Names under /aws/ are reserved for service integrations.

Space

Description

Detailed information about a space.

Members
agentCoreEvaluationRoleArn
Type: string

The ARN of the IAM role used by AgentCore online evaluation. Absent when the space was created without one.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the space was created.

dataAccessRoleArn
Required: Yes
Type: string

The ARN of the IAM role used for data access.

domainArn
Type: string

The Amazon Resource Name (ARN) of the domain the space belongs to. Absent when the space is not associated with a domain, so callers must tolerate its absence.

encryptionConfiguration
Type: EncryptionConfiguration structure

How the space's data at rest is encrypted. Always populated: a space with no customer managed key reports encryptionStrategy AWS_OWNED and no kmsKeyArn.

name
Required: Yes
Type: string

A name that identifies the space.

ownerAccountId
Required: Yes
Type: string

AWS account ID that owns this space.

region
Required: Yes
Type: string

The region where this space was created.

spaceArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the space.

spaceId
Required: Yes
Type: string

The unique ID of the space.

status
Required: Yes
Type: string

The status of the space.

statusReason
Type: string

Reason for the current space status.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the space was last updated.

SpaceCredentialRequestContext

Description

Identifies what the credentials are for: either an existing space, or a target account in a domain. Specify spaceId, or both domainId and targetAccountId.

Members
domainId
Type: string

The ID of the domain, when returning credentials for a target account that does not yet have a space.

spaceId
Type: string

The ID of an existing space to return credentials for.

targetAccountId
Type: string

The ID of the target member account. Required when domainId is set.

SpaceSummary

Description

Summary of a space. Call GetSpace for the full space.

Members
createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the space was created.

domainArn
Type: string

The Amazon Resource Name (ARN) of the domain the space belongs to. Absent when the space is not associated with a domain, so callers must tolerate its absence.

name
Required: Yes
Type: string

A name that identifies the space.

ownerAccountId
Required: Yes
Type: string

AWS account ID that owns this space.

region
Required: Yes
Type: string

The region where this space was created.

spaceArn
Required: Yes
Type: string

The Amazon Resource Name (ARN) of the space.

spaceId
Required: Yes
Type: string

The unique ID of the space.

status
Required: Yes
Type: string

The status of the space.

statusReason
Type: string

Reason for the current space status.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the space was last updated.

TelemetryRule

Description

Telemetry-based rule: what to query, how to evaluate the result, what condition makes it fire, and what to do on missing data.

Members
condition
Type: AlertCondition structure

The condition that determines when the alert fires.

evaluation
Type: AlertEvaluation structure

The evaluation cadence and durations.

noData
Type: NoData structure

How the alert behaves when a query produces no data.

query
Type: AlertRuleQuery structure

The query expression to evaluate.

ThrottlingException

Description

The request was throttled due to exceeding the allowed request rate.

Members
message
Required: Yes
Type: string
retryAfterSeconds
Type: int

The number of seconds to wait before retrying the request. Not always present.

TraceMetadata

Description

One TRACES query selector block on a node/edge (see LogMetadata).

Members
attributes
Type: Associative array of custom strings keys (String) to strings

TRACES counterpart of LogMetadataAttributeMap — a dedicated per-signal map so the two evolve independently (same scalar shape and cap today).

ValidationException

Description

A parameter is specified incorrectly.

Members
errorCode
Type: string

The error code associated with the validation failure.

message
Required: Yes
Type: string

ViewSummary

Description

Summary information about a view. Does not include the view definition.

Members
createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the view was created.

description
Type: string

The description of the view.

name
Required: Yes
Type: string

The name of the view.

type
Required: Yes
Type: string

The ownership category of the view.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the view was last updated.