DevOpsAgentService / Client / register_service

register_service

DevOpsAgentService.Client.register_service(**kwargs)

This operation registers the specified service

See also: AWS API Documentation

Request Syntax

response = client.register_service(
    service='dynatrace'|'servicenow'|'pagerduty'|'gitlab'|'eventChannel'|'mcpservernewrelic'|'mcpservergrafana'|'mcpserverdatadog'|'mcpserver'|'mcpserversplunk'|'azureidentity',
    serviceDetails={
        'dynatrace': {
            'accountUrn': 'string',
            'authorizationConfig': {
                'oAuthClientCredentials': {
                    'clientName': 'string',
                    'clientId': 'string',
                    'exchangeParameters': {
                        'string': 'string'
                    },
                    'clientSecret': 'string'
                }
            }
        },
        'servicenow': {
            'instanceUrl': 'string',
            'authorizationConfig': {
                'oAuthClientCredentials': {
                    'clientName': 'string',
                    'clientId': 'string',
                    'exchangeParameters': {
                        'string': 'string'
                    },
                    'clientSecret': 'string'
                }
            }
        },
        'mcpserverdatadog': {
            'name': 'string',
            'endpoint': 'string',
            'description': 'string',
            'authorizationConfig': {
                'authorizationDiscovery': {
                    'returnToEndpoint': 'string'
                }
            }
        },
        'mcpserver': {
            'name': 'string',
            'endpoint': 'string',
            'description': 'string',
            'authorizationConfig': {
                'oAuthClientCredentials': {
                    'clientName': 'string',
                    'clientId': 'string',
                    'exchangeParameters': {
                        'string': 'string'
                    },
                    'clientSecret': 'string',
                    'exchangeUrl': 'string',
                    'scopes': [
                        'string',
                    ]
                },
                'oAuth3LO': {
                    'clientName': 'string',
                    'clientId': 'string',
                    'exchangeParameters': {
                        'string': 'string'
                    },
                    'returnToEndpoint': 'string',
                    'authorizationUrl': 'string',
                    'exchangeUrl': 'string',
                    'clientSecret': 'string',
                    'supportCodeChallenge': True|False,
                    'scopes': [
                        'string',
                    ]
                },
                'apiKey': {
                    'apiKeyName': 'string',
                    'apiKeyValue': 'string',
                    'apiKeyHeader': 'string'
                },
                'bearerToken': {
                    'tokenName': 'string',
                    'tokenValue': 'string',
                    'authorizationHeader': 'string'
                },
                'authorizationDiscovery': {
                    'returnToEndpoint': 'string'
                }
            }
        },
        'gitlab': {
            'targetUrl': 'string',
            'tokenType': 'personal'|'group',
            'tokenValue': 'string',
            'groupId': 'string'
        },
        'mcpserversplunk': {
            'name': 'string',
            'endpoint': 'string',
            'description': 'string',
            'authorizationConfig': {
                'oAuthClientCredentials': {
                    'clientName': 'string',
                    'clientId': 'string',
                    'exchangeParameters': {
                        'string': 'string'
                    },
                    'clientSecret': 'string',
                    'exchangeUrl': 'string',
                    'scopes': [
                        'string',
                    ]
                },
                'oAuth3LO': {
                    'clientName': 'string',
                    'clientId': 'string',
                    'exchangeParameters': {
                        'string': 'string'
                    },
                    'returnToEndpoint': 'string',
                    'authorizationUrl': 'string',
                    'exchangeUrl': 'string',
                    'clientSecret': 'string',
                    'supportCodeChallenge': True|False,
                    'scopes': [
                        'string',
                    ]
                },
                'apiKey': {
                    'apiKeyName': 'string',
                    'apiKeyValue': 'string',
                    'apiKeyHeader': 'string'
                },
                'bearerToken': {
                    'tokenName': 'string',
                    'tokenValue': 'string',
                    'authorizationHeader': 'string'
                },
                'authorizationDiscovery': {
                    'returnToEndpoint': 'string'
                }
            }
        },
        'mcpservernewrelic': {
            'authorizationConfig': {
                'apiKey': {
                    'apiKey': 'string',
                    'accountId': 'string',
                    'region': 'US'|'EU',
                    'applicationIds': [
                        'string',
                    ],
                    'entityGuids': [
                        'string',
                    ],
                    'alertPolicyIds': [
                        'string',
                    ]
                }
            }
        },
        'eventChannel': {
            'type': 'webhook'
        },
        'mcpservergrafana': {
            'name': 'string',
            'endpoint': 'string',
            'description': 'string',
            'authorizationConfig': {
                'oAuthClientCredentials': {
                    'clientName': 'string',
                    'clientId': 'string',
                    'exchangeParameters': {
                        'string': 'string'
                    },
                    'clientSecret': 'string',
                    'exchangeUrl': 'string',
                    'scopes': [
                        'string',
                    ]
                },
                'oAuth3LO': {
                    'clientName': 'string',
                    'clientId': 'string',
                    'exchangeParameters': {
                        'string': 'string'
                    },
                    'returnToEndpoint': 'string',
                    'authorizationUrl': 'string',
                    'exchangeUrl': 'string',
                    'clientSecret': 'string',
                    'supportCodeChallenge': True|False,
                    'scopes': [
                        'string',
                    ]
                },
                'apiKey': {
                    'apiKeyName': 'string',
                    'apiKeyValue': 'string',
                    'apiKeyHeader': 'string'
                },
                'bearerToken': {
                    'tokenName': 'string',
                    'tokenValue': 'string',
                    'authorizationHeader': 'string'
                },
                'authorizationDiscovery': {
                    'returnToEndpoint': 'string'
                }
            }
        },
        'pagerduty': {
            'scopes': [
                'string',
            ],
            'authorizationConfig': {
                'oAuthClientCredentials': {
                    'clientName': 'string',
                    'clientId': 'string',
                    'exchangeParameters': {
                        'string': 'string'
                    },
                    'clientSecret': 'string'
                }
            }
        },
        'azureidentity': {
            'tenantId': 'string',
            'clientId': 'string',
            'webIdentityRoleArn': 'string',
            'webIdentityTokenAudiences': [
                'string',
            ]
        }
    },
    kmsKeyArn='string',
    privateConnectionName='string',
    name='string',
    tags={
        'string': 'string'
    }
)
Parameters:
  • service (string) –

    [REQUIRED]

    Services that can be registered via the post-registration API (excludes OAuth 3LO services).

  • serviceDetails (dict) –

    [REQUIRED]

    Service-specific authorization configuration parameters

    Note

    This is a Tagged Union structure. Only one of the following top level keys can be set: dynatrace, servicenow, mcpserverdatadog, mcpserver, gitlab, mcpserversplunk, mcpservernewrelic, eventChannel, mcpservergrafana, pagerduty, azureidentity.

    • dynatrace (dict) –

      Dynatrace-specific service details.

      • accountUrn (string) – [REQUIRED]

        Dynatrace resource account urn.

      • authorizationConfig (dict) –

        Dynatrace OAuth client credentials configuration. Use this when registering with OAuth client credentials flow.

        Note

        This is a Tagged Union structure. Only one of the following top level keys can be set: oAuthClientCredentials.

        • oAuthClientCredentials (dict) –

          OAuth client credentials configuration.

          • clientName (string) –

            User friendly OAuth client name specified by end user.

          • clientId (string) – [REQUIRED]

            OAuth client ID for authenticating with the service.

          • exchangeParameters (dict) –

            OAuth token exchange parameters for authenticating with the service.

            • (string) –

              • (string) –

                Exchange Parameter value for MCP authentication

          • clientSecret (string) – [REQUIRED]

            OAuth client secret for authenticating with the service.

    • servicenow (dict) –

      ServiceNow-specific service details.

      • instanceUrl (string) – [REQUIRED]

        ServiceNow instance URL.

      • authorizationConfig (dict) –

        ServiceNow OAuth client credentials configuration. Use this when registering with OAuth client credentials flow.

        Note

        This is a Tagged Union structure. Only one of the following top level keys can be set: oAuthClientCredentials.

        • oAuthClientCredentials (dict) –

          OAuth client credentials configuration.

          • clientName (string) –

            User friendly OAuth client name specified by end user.

          • clientId (string) – [REQUIRED]

            OAuth client ID for authenticating with the service.

          • exchangeParameters (dict) –

            OAuth token exchange parameters for authenticating with the service.

            • (string) –

              • (string) –

                Exchange Parameter value for MCP authentication

          • clientSecret (string) – [REQUIRED]

            OAuth client secret for authenticating with the service.

    • mcpserverdatadog (dict) –

      Datadog MCP server-specific service details.

      • name (string) – [REQUIRED]

        MCP server name.

      • endpoint (string) – [REQUIRED]

        MCP server endpoint URL.

      • description (string) –

        Optional description for the MCP server.

      • authorizationConfig (dict) – [REQUIRED]

        Datadog MCP server authorization configuration (only authorization discovery is supported).

        Note

        This is a Tagged Union structure. Only one of the following top level keys can be set: authorizationDiscovery.

        • authorizationDiscovery (dict) –

          Datadog MCP server authorization discovery configuration.

          • returnToEndpoint (string) – [REQUIRED]

            The endpoint to return to after OAuth flow completes (must be AWS console domain)

    • mcpserver (dict) –

      MCP server-specific service details.

      • name (string) – [REQUIRED]

        MCP server name.

      • endpoint (string) – [REQUIRED]

        MCP server endpoint URL.

      • description (string) –

        Optional description for the MCP server.

      • authorizationConfig (dict) – [REQUIRED]

        MCP server authorization configuration.

        Note

        This is a Tagged Union structure. Only one of the following top level keys can be set: oAuthClientCredentials, oAuth3LO, apiKey, bearerToken, authorizationDiscovery.

        • oAuthClientCredentials (dict) –

          MCP server configuration with OAuth client credentials.

          • clientName (string) –

            User friendly OAuth client name specified by end user.

          • clientId (string) – [REQUIRED]

            OAuth client ID for authenticating with the service.

          • exchangeParameters (dict) –

            OAuth token exchange parameters for authenticating with the service.

            • (string) –

              • (string) –

                Exchange Parameter value for MCP authentication

          • clientSecret (string) – [REQUIRED]

            OAuth client secret for authenticating with the service.

          • exchangeUrl (string) – [REQUIRED]

            OAuth token exchange URL.

          • scopes (list) –

            OAuth scopes for 3LO authentication. The service will always request scope offline_access.

            • (string) –

        • oAuth3LO (dict) –

          MCP server configuration with OAuth 3LO.

          • clientName (string) –

            User friendly OAuth client name specified by end user.

          • clientId (string) – [REQUIRED]

            OAuth client ID for authenticating with the service.

          • exchangeParameters (dict) –

            OAuth token exchange parameters for authenticating with the service.

            • (string) –

              • (string) –

                Exchange Parameter value for MCP authentication

          • returnToEndpoint (string) – [REQUIRED]

            The endpoint to return to after OAuth flow completes (must be AWS console domain)

          • authorizationUrl (string) – [REQUIRED]

            OAuth authorization URL for 3LO authentication.

          • exchangeUrl (string) – [REQUIRED]

            OAuth token exchange URL.

          • clientSecret (string) –

            OAuth client secret for authenticating with the service. Required for confidential clients or when PKCE is not supported. Optional for public clients using PKCE.

          • supportCodeChallenge (boolean) –

            Whether the service supports PKCE (Proof Key for Code Exchange) for enhanced security during the OAuth flow.

          • scopes (list) –

            OAuth scopes for 3LO authentication. The service will always request scope offline_access.

            • (string) –

        • apiKey (dict) –

          MCP server configuration with API key authentication.

          • apiKeyName (string) – [REQUIRED]

            User friendly API key name specified by end user.

          • apiKeyValue (string) – [REQUIRED]

            API key value for authenticating with the service.

          • apiKeyHeader (string) – [REQUIRED]

            HTTP header name to send the API key in requests to the service.

        • bearerToken (dict) –

          MCP server configuration with Bearer token (RFC 6750).

          • tokenName (string) – [REQUIRED]

            User friendly bearer token name specified by end user.

          • tokenValue (string) – [REQUIRED]

            Bearer token value in alphanumeric for authenticating with the service.

          • authorizationHeader (string) –

            HTTP header name to send the bearer token in requests to the service. Defaults to ‘Authorization’ per RFC 6750.

        • authorizationDiscovery (dict) –

          MCP server authorization discovery configuration.

          • returnToEndpoint (string) – [REQUIRED]

            The endpoint to return to after OAuth flow completes (must be AWS console domain)

    • gitlab (dict) –

      GitLab-specific service details.

      • targetUrl (string) – [REQUIRED]

        GitLab instance URL (e.g., https://gitlab.com or self-hosted instance).

      • tokenType (string) – [REQUIRED]

        Type of GitLab access token

      • tokenValue (string) – [REQUIRED]

        GitLab access token value

      • groupId (string) –

        Optional GitLab group ID for group-level access tokens

    • mcpserversplunk (dict) –

      Splunk MCP server-specific service details.

      • name (string) – [REQUIRED]

        MCP server name.

      • endpoint (string) – [REQUIRED]

        MCP server endpoint URL.

      • description (string) –

        Optional description for the MCP server.

      • authorizationConfig (dict) – [REQUIRED]

        MCP server authorization configuration.

        Note

        This is a Tagged Union structure. Only one of the following top level keys can be set: oAuthClientCredentials, oAuth3LO, apiKey, bearerToken, authorizationDiscovery.

        • oAuthClientCredentials (dict) –

          MCP server configuration with OAuth client credentials.

          • clientName (string) –

            User friendly OAuth client name specified by end user.

          • clientId (string) – [REQUIRED]

            OAuth client ID for authenticating with the service.

          • exchangeParameters (dict) –

            OAuth token exchange parameters for authenticating with the service.

            • (string) –

              • (string) –

                Exchange Parameter value for MCP authentication

          • clientSecret (string) – [REQUIRED]

            OAuth client secret for authenticating with the service.

          • exchangeUrl (string) – [REQUIRED]

            OAuth token exchange URL.

          • scopes (list) –

            OAuth scopes for 3LO authentication. The service will always request scope offline_access.

            • (string) –

        • oAuth3LO (dict) –

          MCP server configuration with OAuth 3LO.

          • clientName (string) –

            User friendly OAuth client name specified by end user.

          • clientId (string) – [REQUIRED]

            OAuth client ID for authenticating with the service.

          • exchangeParameters (dict) –

            OAuth token exchange parameters for authenticating with the service.

            • (string) –

              • (string) –

                Exchange Parameter value for MCP authentication

          • returnToEndpoint (string) – [REQUIRED]

            The endpoint to return to after OAuth flow completes (must be AWS console domain)

          • authorizationUrl (string) – [REQUIRED]

            OAuth authorization URL for 3LO authentication.

          • exchangeUrl (string) – [REQUIRED]

            OAuth token exchange URL.

          • clientSecret (string) –

            OAuth client secret for authenticating with the service. Required for confidential clients or when PKCE is not supported. Optional for public clients using PKCE.

          • supportCodeChallenge (boolean) –

            Whether the service supports PKCE (Proof Key for Code Exchange) for enhanced security during the OAuth flow.

          • scopes (list) –

            OAuth scopes for 3LO authentication. The service will always request scope offline_access.

            • (string) –

        • apiKey (dict) –

          MCP server configuration with API key authentication.

          • apiKeyName (string) – [REQUIRED]

            User friendly API key name specified by end user.

          • apiKeyValue (string) – [REQUIRED]

            API key value for authenticating with the service.

          • apiKeyHeader (string) – [REQUIRED]

            HTTP header name to send the API key in requests to the service.

        • bearerToken (dict) –

          MCP server configuration with Bearer token (RFC 6750).

          • tokenName (string) – [REQUIRED]

            User friendly bearer token name specified by end user.

          • tokenValue (string) – [REQUIRED]

            Bearer token value in alphanumeric for authenticating with the service.

          • authorizationHeader (string) –

            HTTP header name to send the bearer token in requests to the service. Defaults to ‘Authorization’ per RFC 6750.

        • authorizationDiscovery (dict) –

          MCP server authorization discovery configuration.

          • returnToEndpoint (string) – [REQUIRED]

            The endpoint to return to after OAuth flow completes (must be AWS console domain)

    • mcpservernewrelic (dict) –

      New Relic-specific service details.

      • authorizationConfig (dict) – [REQUIRED]

        New Relic MCP server authorization configuration.

        Note

        This is a Tagged Union structure. Only one of the following top level keys can be set: apiKey.

        • apiKey (dict) –

          New Relic API Key authentication (apiKey, accountId, region).

          • apiKey (string) – [REQUIRED]

            New Relic User API Key

          • accountId (string) – [REQUIRED]

            New Relic Account ID

          • region (string) – [REQUIRED]

            New Relic region (US or EU)

          • applicationIds (list) –

            List of monitored APM application IDs in New Relic

            • (string) –

          • entityGuids (list) –

            List of globally unique IDs for New Relic resources (apps, hosts, services)

            • (string) –

          • alertPolicyIds (list) –

            List of alert policy IDs grouping related conditions

            • (string) –

    • eventChannel (dict) –

      Event Channel specific service details.

      • type (string) –

        The type of event channel

    • mcpservergrafana (dict) –

      Datadog MCP server-specific service details.

      • name (string) – [REQUIRED]

        MCP server name.

      • endpoint (string) – [REQUIRED]

        MCP server endpoint URL.

      • description (string) –

        Optional description for the MCP server.

      • authorizationConfig (dict) – [REQUIRED]

        Grafana MCP server authorization configuration (experimental).

        Note

        This is a Tagged Union structure. Only one of the following top level keys can be set: oAuthClientCredentials, oAuth3LO, apiKey, bearerToken, authorizationDiscovery.

        • oAuthClientCredentials (dict) –

          MCP server configuration with OAuth client credentials.

          • clientName (string) –

            User friendly OAuth client name specified by end user.

          • clientId (string) – [REQUIRED]

            OAuth client ID for authenticating with the service.

          • exchangeParameters (dict) –

            OAuth token exchange parameters for authenticating with the service.

            • (string) –

              • (string) –

                Exchange Parameter value for MCP authentication

          • clientSecret (string) – [REQUIRED]

            OAuth client secret for authenticating with the service.

          • exchangeUrl (string) – [REQUIRED]

            OAuth token exchange URL.

          • scopes (list) –

            OAuth scopes for 3LO authentication. The service will always request scope offline_access.

            • (string) –

        • oAuth3LO (dict) –

          MCP server configuration with OAuth 3LO.

          • clientName (string) –

            User friendly OAuth client name specified by end user.

          • clientId (string) – [REQUIRED]

            OAuth client ID for authenticating with the service.

          • exchangeParameters (dict) –

            OAuth token exchange parameters for authenticating with the service.

            • (string) –

              • (string) –

                Exchange Parameter value for MCP authentication

          • returnToEndpoint (string) – [REQUIRED]

            The endpoint to return to after OAuth flow completes (must be AWS console domain)

          • authorizationUrl (string) – [REQUIRED]

            OAuth authorization URL for 3LO authentication.

          • exchangeUrl (string) – [REQUIRED]

            OAuth token exchange URL.

          • clientSecret (string) –

            OAuth client secret for authenticating with the service. Required for confidential clients or when PKCE is not supported. Optional for public clients using PKCE.

          • supportCodeChallenge (boolean) –

            Whether the service supports PKCE (Proof Key for Code Exchange) for enhanced security during the OAuth flow.

          • scopes (list) –

            OAuth scopes for 3LO authentication. The service will always request scope offline_access.

            • (string) –

        • apiKey (dict) –

          MCP server configuration with API key authentication.

          • apiKeyName (string) – [REQUIRED]

            User friendly API key name specified by end user.

          • apiKeyValue (string) – [REQUIRED]

            API key value for authenticating with the service.

          • apiKeyHeader (string) – [REQUIRED]

            HTTP header name to send the API key in requests to the service.

        • bearerToken (dict) –

          MCP server configuration with Bearer token (RFC 6750).

          • tokenName (string) – [REQUIRED]

            User friendly bearer token name specified by end user.

          • tokenValue (string) – [REQUIRED]

            Bearer token value in alphanumeric for authenticating with the service.

          • authorizationHeader (string) –

            HTTP header name to send the bearer token in requests to the service. Defaults to ‘Authorization’ per RFC 6750.

        • authorizationDiscovery (dict) –

          MCP server authorization discovery configuration.

          • returnToEndpoint (string) – [REQUIRED]

            The endpoint to return to after OAuth flow completes (must be AWS console domain)

    • pagerduty (dict) –

      PagerDuty specific service details.

      • scopes (list) – [REQUIRED]

        PagerDuty scopes.

        • (string) –

      • authorizationConfig (dict) – [REQUIRED]

        PagerDuty authorization configuration

        Note

        This is a Tagged Union structure. Only one of the following top level keys can be set: oAuthClientCredentials.

        • oAuthClientCredentials (dict) –

          OAuth client credentials configuration.

          • clientName (string) –

            User friendly OAuth client name specified by end user.

          • clientId (string) – [REQUIRED]

            OAuth client ID for authenticating with the service.

          • exchangeParameters (dict) –

            OAuth token exchange parameters for authenticating with the service.

            • (string) –

              • (string) –

                Exchange Parameter value for MCP authentication

          • clientSecret (string) – [REQUIRED]

            OAuth client secret for authenticating with the service.

    • azureidentity (dict) –

      Azure integration with AWS Outbound Identity Federation specific service details.

      • tenantId (string) – [REQUIRED]

        The Azure Active Directory tenant ID for the identity.

      • clientId (string) – [REQUIRED]

        The client ID of the service principal or managed identity used for authentication.

      • webIdentityRoleArn (string) – [REQUIRED]

        The role ARN to be assumed by DevOps Agent for requesting Web Identity Token.

      • webIdentityTokenAudiences (list) – [REQUIRED]

        The audiences for the Web Identity Token.

        • (string) –

  • kmsKeyArn (string) – The ARN of the AWS Key Management Service (AWS KMS) customer managed key that’s used to encrypt resources.

  • privateConnectionName (string) – The name of the private connection to use for VPC connectivity.

  • name (string) – The display name for the service registration.

  • tags (dict) –

    Tags to add to the Service at registration time.

    • (string) –

      Tag key string.

      • (string) –

        Tag value string.

Return type:

dict

Returns:

Response Syntax

{
    'serviceId': 'string',
    'additionalStep': {
        'oauth': {
            'authorizationUrl': 'string'
        }
    },
    'kmsKeyArn': 'string',
    'tags': {
        'string': 'string'
    }
}

Response Structure

  • (dict) –

    Output containing the service ID and any additional steps required for registration.

    • serviceId (string) –

      Service ID - present when registration is complete, absent when additional steps are required

    • additionalStep (dict) –

      Indicates if additional steps are required to complete service registration (e.g., 3-legged OAuth)

      Note

      This is a Tagged Union structure. Only one of the following top level keys will be set: oauth. 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'}
      
      • oauth (dict) –

        OAuth authorization step required.

        • authorizationUrl (string) –

          The URL to redirect the user to for OAuth authorization.

    • kmsKeyArn (string) –

      The ARN of the AWS Key Management Service (AWS KMS) customer managed key that’s used to encrypt resources.

    • tags (dict) –

      Tags associated with the registered Service.

      • (string) –

        Tag key string.

        • (string) –

          Tag value string.

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.InvalidParameterException

  • DevOpsAgentService.Client.exceptions.ThrottlingException