DevOpsAgentService / Client / associate_service

associate_service

DevOpsAgentService.Client.associate_service(**kwargs)

Adds a specific service association to an AgentSpace. It overwrites the existing association of the same service. Returns 201 Created on success.

See also: AWS API Documentation

Request Syntax

response = client.associate_service(
    agentSpaceId='string',
    serviceId='string',
    configuration={
        'sourceAws': {
            'accountId': 'string',
            'accountType': 'source',
            'assumableRoleArn': 'string',
            'externalId': 'string'
        },
        'aws': {
            'assumableRoleArn': 'string',
            'accountId': 'string',
            'accountType': 'monitor'
        },
        'github': {
            'repoName': 'string',
            'repoId': 'string',
            'owner': 'string',
            'ownerType': 'organization'|'user',
            'instanceIdentifier': 'string'
        },
        'slack': {
            'workspaceId': 'string',
            'workspaceName': 'string',
            'transmissionTarget': {
                'opsOncallTarget': {
                    'channelName': 'string',
                    'channelId': 'string'
                },
                'opsSRETarget': {
                    'channelName': 'string',
                    'channelId': 'string'
                }
            }
        },
        'dynatrace': {
            'envId': 'string',
            'resources': [
                'string',
            ]
        },
        'servicenow': {
            'instanceId': 'string',
            'authScopes': [
                'string',
            ]
        },
        'mcpservernewrelic': {
            'accountId': 'string',
            'endpoint': 'string'
        },
        'gitlab': {
            'projectId': 'string',
            'projectPath': 'string',
            'instanceIdentifier': 'string'
        },
        'eventChannel': {}
        ,
        'azure': {
            'subscriptionId': 'string'
        },
        'azuredevops': {
            'organizationName': 'string',
            'projectId': 'string',
            'projectName': 'string'
        },
        'mcpservergrafana': {
            'endpoint': 'string',
            'organizationId': 'string',
            'tools': [
                'string',
            ]
        },
        'pagerduty': {
            'services': [
                'string',
            ],
            'customerEmail': 'string'
        }
    }
)
Parameters:
  • agentSpaceId (string) –

    [REQUIRED]

    The unique identifier of the AgentSpace

  • serviceId (string) –

    [REQUIRED]

    The unique identifier of the service.

  • configuration (dict) –

    [REQUIRED]

    The configuration that directs how AgentSpace interacts with the given service.

    Note

    This is a Tagged Union structure. Only one of the following top level keys can be set: sourceAws, aws, github, slack, dynatrace, servicenow, mcpservernewrelic, gitlab, eventChannel, azure, azuredevops, mcpservergrafana, pagerduty.

    • sourceAws (dict) –

      AWS source account configuration for monitoring resources.

      • accountId (string) – [REQUIRED]

        AWS Account Id corresponding to provided resources.

      • accountType (string) – [REQUIRED]

        Account Type ‘source’ for AIDevOps monitoring.

      • assumableRoleArn (string) – [REQUIRED]

        Role ARN to be assumed by AIDevOps to operate on behalf of customer.

      • externalId (string) –

        External ID for additional security when assuming the role. Used to prevent the confused deputy problem.

    • aws (dict) –

      AWS monitor account configuration.

      • assumableRoleArn (string) – [REQUIRED]

        Role ARN to be assumed by AIDevOps to operate on behalf of customer.

      • accountId (string) – [REQUIRED]

        AWS Account Id corresponding to provided resources.

      • accountType (string) – [REQUIRED]

        Account Type ‘monitor’ for AIDevOps monitoring.

    • github (dict) –

      GitHub repository integration configuration.

      • repoName (string) – [REQUIRED]

        Associated Github repo name

      • repoId (string) – [REQUIRED]

        Associated Github repo ID

      • owner (string) – [REQUIRED]

        The GitHub repository owner name.

      • ownerType (string) – [REQUIRED]

        Type of GitHub repository owner.

      • instanceIdentifier (string) –

        GitHub instance identifier (e.g., github.com or github.enterprise.com)

    • slack (dict) –

      Slack workspace integration configuration.

      • workspaceId (string) – [REQUIRED]

        Associated Slack workspace ID

      • workspaceName (string) – [REQUIRED]

        Associated Slack workspace name

      • transmissionTarget (dict) – [REQUIRED]

        Transmission targets for agent notifications

        • opsOncallTarget (dict) – [REQUIRED]

          Destination for On-call Agent (Ops1)

          • channelName (string) –

            Slack channel name

          • channelId (string) – [REQUIRED]

            Slack channel ID

        • opsSRETarget (dict) –

          Destination for SRE Agent (Ops1.5)

          • channelName (string) –

            Slack channel name

          • channelId (string) – [REQUIRED]

            Slack channel ID

    • dynatrace (dict) –

      Dynatrace monitoring integration configuration.

      • envId (string) – [REQUIRED]

        Dynatrace environment id

      • resources (list) –

        List of Dynatrace resources to monitor

        • (string) –

    • servicenow (dict) –

      ServiceNow instance integration configuration.

      • instanceId (string) –

        ServiceNow instance ID

      • authScopes (list) –

        Scoped down authentication scopes for fine grained control

        • (string) –

    • mcpservernewrelic (dict) –

      NewRelic instance integration configuration.

      • accountId (string) – [REQUIRED]

        New Relic Account ID

      • endpoint (string) – [REQUIRED]

        MCP server endpoint URL (e.g., https://mcp.newrelic.com/mcp/)

    • gitlab (dict) –

      GitLab project integration configuration.

      • projectId (string) – [REQUIRED]

        GitLab numeric project ID.

      • projectPath (string) – [REQUIRED]

        Full GitLab project path (e.g., namespace/project-name).

      • instanceIdentifier (string) –

        GitLab instance identifier (e.g., gitlab.com or e2e.gamma.dev.us-east-1.gitlab.falco.ai.aws.dev)

    • eventChannel (dict) –

      Event Channel instance integration configuration.

    • azure (dict) –

      Azure subscription integration configuration.

      • subscriptionId (string) – [REQUIRED]

        Azure subscription ID corresponding to provided resources.

    • azuredevops (dict) –

      Azure DevOps project integration configuration.

      • organizationName (string) – [REQUIRED]

        Azure DevOps organization name.

      • projectId (string) – [REQUIRED]

        Azure DevOps project ID.

      • projectName (string) – [REQUIRED]

        Azure DevOps project name.

    • mcpservergrafana (dict) –

      Grafana MCP server integration configuration.

      • endpoint (string) – [REQUIRED]

        Grafana instance URL (e.g., https://your-instance.grafana.net)

      • organizationId (string) –

        The Grafana organization ID that can be used.

      • tools (list) –

        List of MCP tools that can be used.

        • (string) –

    • pagerduty (dict) –

      PagerDuty integration configuration

      • services (list) – [REQUIRED]

        List of Pagerduty service available for the association.

        • (string) –

      • customerEmail (string) – [REQUIRED]

        Email to be used in Pagerduty API header

Return type:

dict

Returns:

Response Syntax

{
    'association': {
        'agentSpaceId': 'string',
        'createdAt': datetime(2015, 1, 1),
        'updatedAt': datetime(2015, 1, 1),
        'status': 'valid'|'invalid'|'pending-confirmation',
        'associationId': 'string',
        'serviceId': 'string',
        'configuration': {
            'sourceAws': {
                'accountId': 'string',
                'accountType': 'source',
                'assumableRoleArn': 'string',
                'externalId': 'string'
            },
            'aws': {
                'assumableRoleArn': 'string',
                'accountId': 'string',
                'accountType': 'monitor'
            },
            'github': {
                'repoName': 'string',
                'repoId': 'string',
                'owner': 'string',
                'ownerType': 'organization'|'user',
                'instanceIdentifier': 'string'
            },
            'slack': {
                'workspaceId': 'string',
                'workspaceName': 'string',
                'transmissionTarget': {
                    'opsOncallTarget': {
                        'channelName': 'string',
                        'channelId': 'string'
                    },
                    'opsSRETarget': {
                        'channelName': 'string',
                        'channelId': 'string'
                    }
                }
            },
            'dynatrace': {
                'envId': 'string',
                'resources': [
                    'string',
                ]
            },
            'servicenow': {
                'instanceId': 'string',
                'authScopes': [
                    'string',
                ]
            },
            'mcpservernewrelic': {
                'accountId': 'string',
                'endpoint': 'string'
            },
            'gitlab': {
                'projectId': 'string',
                'projectPath': 'string',
                'instanceIdentifier': 'string'
            },
            'eventChannel': {},
            'azure': {
                'subscriptionId': 'string'
            },
            'azuredevops': {
                'organizationName': 'string',
                'projectId': 'string',
                'projectName': 'string'
            },
            'mcpservergrafana': {
                'endpoint': 'string',
                'organizationId': 'string',
                'tools': [
                    'string',
                ]
            },
            'pagerduty': {
                'services': [
                    'string',
                ],
                'customerEmail': 'string'
            }
        }
    },
    'webhook': {
        'webhookUrl': 'string',
        'webhookId': 'string',
        'webhookType': 'hmac'|'apikey'|'gitlab'|'pagerduty',
        'webhookSecret': 'string',
        'apiKey': 'string'
    }
}

Response Structure

  • (dict) –

    Output containing the newly created association and optional webhook configuration.

    • association (dict) –

      Represents a service association within an AgentSpace, defining how the agent interacts with external services.

      • agentSpaceId (string) –

        The unique identifier of the AgentSpace

      • createdAt (datetime) –

        The timestamp when the resource was created.

      • updatedAt (datetime) –

        The timestamp when the resource was last updated.

      • status (string) –

        Validation status

      • associationId (string) –

        The unique identifier of the given association.

      • serviceId (string) –

        The identifier for associated service

      • configuration (dict) –

        The configuration that directs how AgentSpace interacts with the given service.

        Note

        This is a Tagged Union structure. Only one of the following top level keys will be set: sourceAws, aws, github, slack, dynatrace, servicenow, mcpservernewrelic, gitlab, eventChannel, azure, azuredevops, mcpservergrafana, pagerduty. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

        'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
        
        • sourceAws (dict) –

          AWS source account configuration for monitoring resources.

          • accountId (string) –

            AWS Account Id corresponding to provided resources.

          • accountType (string) –

            Account Type ‘source’ for AIDevOps monitoring.

          • assumableRoleArn (string) –

            Role ARN to be assumed by AIDevOps to operate on behalf of customer.

          • externalId (string) –

            External ID for additional security when assuming the role. Used to prevent the confused deputy problem.

        • aws (dict) –

          AWS monitor account configuration.

          • assumableRoleArn (string) –

            Role ARN to be assumed by AIDevOps to operate on behalf of customer.

          • accountId (string) –

            AWS Account Id corresponding to provided resources.

          • accountType (string) –

            Account Type ‘monitor’ for AIDevOps monitoring.

        • github (dict) –

          GitHub repository integration configuration.

          • repoName (string) –

            Associated Github repo name

          • repoId (string) –

            Associated Github repo ID

          • owner (string) –

            The GitHub repository owner name.

          • ownerType (string) –

            Type of GitHub repository owner.

          • instanceIdentifier (string) –

            GitHub instance identifier (e.g., github.com or github.enterprise.com)

        • slack (dict) –

          Slack workspace integration configuration.

          • workspaceId (string) –

            Associated Slack workspace ID

          • workspaceName (string) –

            Associated Slack workspace name

          • transmissionTarget (dict) –

            Transmission targets for agent notifications

            • opsOncallTarget (dict) –

              Destination for On-call Agent (Ops1)

              • channelName (string) –

                Slack channel name

              • channelId (string) –

                Slack channel ID

            • opsSRETarget (dict) –

              Destination for SRE Agent (Ops1.5)

              • channelName (string) –

                Slack channel name

              • channelId (string) –

                Slack channel ID

        • dynatrace (dict) –

          Dynatrace monitoring integration configuration.

          • envId (string) –

            Dynatrace environment id

          • resources (list) –

            List of Dynatrace resources to monitor

            • (string) –

        • servicenow (dict) –

          ServiceNow instance integration configuration.

          • instanceId (string) –

            ServiceNow instance ID

          • authScopes (list) –

            Scoped down authentication scopes for fine grained control

            • (string) –

        • mcpservernewrelic (dict) –

          NewRelic instance integration configuration.

        • gitlab (dict) –

          GitLab project integration configuration.

          • projectId (string) –

            GitLab numeric project ID.

          • projectPath (string) –

            Full GitLab project path (e.g., namespace/project-name).

          • instanceIdentifier (string) –

            GitLab instance identifier (e.g., gitlab.com or e2e.gamma.dev.us-east-1.gitlab.falco.ai.aws.dev)

        • eventChannel (dict) –

          Event Channel instance integration configuration.

        • azure (dict) –

          Azure subscription integration configuration.

          • subscriptionId (string) –

            Azure subscription ID corresponding to provided resources.

        • azuredevops (dict) –

          Azure DevOps project integration configuration.

          • organizationName (string) –

            Azure DevOps organization name.

          • projectId (string) –

            Azure DevOps project ID.

          • projectName (string) –

            Azure DevOps project name.

        • mcpservergrafana (dict) –

          Grafana MCP server integration configuration.

          • endpoint (string) –

            Grafana instance URL (e.g., https://your-instance.grafana.net)

          • organizationId (string) –

            The Grafana organization ID that can be used.

          • tools (list) –

            List of MCP tools that can be used.

            • (string) –

        • pagerduty (dict) –

          PagerDuty integration configuration

          • services (list) –

            List of Pagerduty service available for the association.

            • (string) –

          • customerEmail (string) –

            Email to be used in Pagerduty API header

    • webhook (dict) –

      Generic webhook configuration

      • webhookUrl (string) –

        The webhook URL endpoint

      • webhookId (string) –

        The unique webhook identifier

      • webhookType (string) –

        The webhook authentication type

      • webhookSecret (string) –

        The webhook secret for authentication

      • apiKey (string) –

        API Key for API Key webhook authentication

Exceptions

  • DevOpsAgentService.Client.exceptions.ValidationException

  • DevOpsAgentService.Client.exceptions.ContentSizeExceededException

  • DevOpsAgentService.Client.exceptions.ServiceQuotaExceededException

  • DevOpsAgentService.Client.exceptions.ConflictException

  • DevOpsAgentService.Client.exceptions.InternalServerException

  • DevOpsAgentService.Client.exceptions.AccessDeniedException

  • DevOpsAgentService.Client.exceptions.ResourceNotFoundException

  • DevOpsAgentService.Client.exceptions.ThrottlingException

  • DevOpsAgentService.Client.exceptions.InvalidParameterException