Create a GitHub cloud auth persona mapping
https://api.datadoghq.com/api/v2/cloud_auth/github/persona_mappinghttps://api.us3.datadoghq.com/api/v2/cloud_auth/github/persona_mappinghttps://api.us5.datadoghq.com/api/v2/cloud_auth/github/persona_mappinghttps://api.datadoghq.eu/api/v2/cloud_auth/github/persona_mappinghttps://api.ap1.datadoghq.com/api/v2/cloud_auth/github/persona_mappinghttps://api.ap2.datadoghq.com/api/v2/cloud_auth/github/persona_mappinghttps://api.uk1.datadoghq.com/api/v2/cloud_auth/github/persona_mappinghttps://api.ddog-gov.com/api/v2/cloud_auth/github/persona_mappinghttps://api.us2.ddog-gov.com/api/v2/cloud_auth/github/persona_mappingPrésentation
Create a GitHub cloud authentication persona mapping. This endpoint associates a GitHub Actions OIDC principal with a Datadog user. The mapped principal can request an impersonation token.
Requête
Body Data (required)
data [required]Data for creating a GitHub cloud authentication persona mapping.
attributes [required]Attributes for creating a GitHub cloud authentication persona mapping.
account_identifier [required]Datadog account identifier (email or handle) mapped to the GitHub principal.
claim_matchers [required]GitHub Actions OIDC claims to match against. Each field is a regular expression.
The sub claim is required; all other claims are optional. A token matches only when
all provided patterns match simultaneously (AND semantics).
actorRegular expression matched against the actor claim.
actor_idRegular expression matched against the actor_id claim.
enterpriseRegular expression matched against the enterprise claim.
enterprise_idRegular expression matched against the enterprise_id claim.
environmentRegular expression matched against the environment claim.
event_nameRegular expression matched against the event_name claim.
job_workflow_refRegular expression matched against the job_workflow_ref claim.
refRegular expression matched against the ref claim.
ref_typeRegular expression matched against the ref_type claim.
repositoryRegular expression matched against the repository claim.
repository_idRegular expression matched against the repository_id claim.
repository_ownerRegular expression matched against the repository_owner claim.
repository_owner_idRegular expression matched against the repository_owner_id claim.
repository_visibilityRegular expression matched against the repository_visibility claim.
runner_environmentRegular expression matched against the runner_environment claim.
sub [required]Regular expression matched against the entire sub (subject) claim, the primary GitHub Actions OIDC
identifier (for example, repo:<OWNER>/<REPO>:ref:refs/heads/main). The pattern must begin with
repo:<OWNER>/, where <OWNER> is a literal repository-owner name rather than a regular expression.
workflowRegular expression matched against the workflow claim.
workflow_refRegular expression matched against the workflow_ref claim.
type [required]Type identifier for GitHub cloud authentication persona mapping.
github_oidc_auth_config{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"claim_matchers": {
"actor": "octocat",
"actor_id": "1234567",
"enterprise": "test_enterprise",
"enterprise_id": "42",
"environment": "production",
"event_name": "push",
"job_workflow_ref": "test_owner/test_repo/.github/workflows/jobs.yml@refs/heads/main",
"ref": "refs/heads/main",
"ref_type": "branch",
"repository": "test_owner/test_repo",
"repository_id": "123456789",
"repository_owner": "test_owner",
"repository_owner_id": "987654321",
"repository_visibility": "public",
"runner_environment": "github-hosted",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)",
"workflow": "CI",
"workflow_ref": "test_owner/test_repo/.github/workflows/ci.yml@refs/heads/main"
}
},
"type": "github_oidc_auth_config"
}
}Réponse
Created
Response containing a single GitHub cloud authentication persona mapping.
data [required]Data for GitHub cloud authentication persona mapping response.
attributes [required]Attributes for GitHub cloud authentication persona mapping response.
account_identifier [required]Datadog account identifier (email or handle) mapped to the GitHub principal.
account_uuid [required]Datadog account UUID.
claim_matchers [required]GitHub Actions OIDC claims to match against. Each field is a regular expression.
The sub claim is required; all other claims are optional. A token matches only when
all provided patterns match simultaneously (AND semantics).
actorRegular expression matched against the actor claim.
actor_idRegular expression matched against the actor_id claim.
enterpriseRegular expression matched against the enterprise claim.
enterprise_idRegular expression matched against the enterprise_id claim.
environmentRegular expression matched against the environment claim.
event_nameRegular expression matched against the event_name claim.
job_workflow_refRegular expression matched against the job_workflow_ref claim.
refRegular expression matched against the ref claim.
ref_typeRegular expression matched against the ref_type claim.
repositoryRegular expression matched against the repository claim.
repository_idRegular expression matched against the repository_id claim.
repository_ownerRegular expression matched against the repository_owner claim.
repository_owner_idRegular expression matched against the repository_owner_id claim.
repository_visibilityRegular expression matched against the repository_visibility claim.
runner_environmentRegular expression matched against the runner_environment claim.
sub [required]Regular expression matched against the entire sub (subject) claim, the primary GitHub Actions OIDC
identifier (for example, repo:<OWNER>/<REPO>:ref:refs/heads/main). The pattern must begin with
repo:<OWNER>/, where <OWNER> is a literal repository-owner name rather than a regular expression.
workflowRegular expression matched against the workflow claim.
workflow_refRegular expression matched against the workflow_ref claim.
id [required]Unique identifier for the persona mapping.
type [required]Type identifier for GitHub cloud authentication persona mapping.
github_oidc_auth_config{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"account_uuid": "12bbdc5c-5966-47e0-8733-285f9e44bcf4",
"claim_matchers": {
"actor": "octocat",
"actor_id": "1234567",
"enterprise": "test_enterprise",
"enterprise_id": "42",
"environment": "production",
"event_name": "push",
"job_workflow_ref": "test_owner/test_repo/.github/workflows/jobs.yml@refs/heads/main",
"ref": "refs/heads/main",
"ref_type": "branch",
"repository": "test_owner/test_repo",
"repository_id": "123456789",
"repository_owner": "test_owner",
"repository_owner_id": "987654321",
"repository_visibility": "public",
"runner_environment": "github-hosted",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)",
"workflow": "CI",
"workflow_ref": "test_owner/test_repo/.github/workflows/ci.yml@refs/heads/main"
}
},
"id": "c5c758c6-18c2-4484-ae3f-46b84128404a",
"type": "github_oidc_auth_config"
}
}Bad Request
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Forbidden
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Conflict
API error response.
errors [required]A list of errors.
detailA human-readable explanation specific to this occurrence of the error.
metaNon-standard meta-information about the error
sourceReferences to the source of the error.
headerA string indicating the name of a single request header which caused the error.
parameterA string indicating which URI query parameter caused the error.
pointerA JSON pointer to the value in the request document that caused the error.
statusStatus code of the response.
titleShort human-readable summary of the error.
{
"errors": [
{
"detail": "Missing required attribute in body",
"meta": {},
"source": {
"header": "Authorization",
"parameter": "limit",
"pointer": "/data/attributes/title"
},
"status": "400",
"title": "Bad Request"
}
]
}Too many requests
API error response.
errors [required]A list of errors.
{
"errors": [
"Bad Request"
]
}Exemple de code
# Set your Datadog site and credentials
export DD_SITE="datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/cloud_auth/github/persona_mapping" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"claim_matchers": {
"ref": "refs/heads/main",
"repository": "test_owner/test_repo",
"repository_owner": "test_owner",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)"
}
},
"type": "github_oidc_auth_config"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us3.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/cloud_auth/github/persona_mapping" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"claim_matchers": {
"ref": "refs/heads/main",
"repository": "test_owner/test_repo",
"repository_owner": "test_owner",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)"
}
},
"type": "github_oidc_auth_config"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us5.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/cloud_auth/github/persona_mapping" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"claim_matchers": {
"ref": "refs/heads/main",
"repository": "test_owner/test_repo",
"repository_owner": "test_owner",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)"
}
},
"type": "github_oidc_auth_config"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="datadoghq.eu"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/cloud_auth/github/persona_mapping" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"claim_matchers": {
"ref": "refs/heads/main",
"repository": "test_owner/test_repo",
"repository_owner": "test_owner",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)"
}
},
"type": "github_oidc_auth_config"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/cloud_auth/github/persona_mapping" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"claim_matchers": {
"ref": "refs/heads/main",
"repository": "test_owner/test_repo",
"repository_owner": "test_owner",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)"
}
},
"type": "github_oidc_auth_config"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ap2.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/cloud_auth/github/persona_mapping" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"claim_matchers": {
"ref": "refs/heads/main",
"repository": "test_owner/test_repo",
"repository_owner": "test_owner",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)"
}
},
"type": "github_oidc_auth_config"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="uk1.datadoghq.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/cloud_auth/github/persona_mapping" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"claim_matchers": {
"ref": "refs/heads/main",
"repository": "test_owner/test_repo",
"repository_owner": "test_owner",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)"
}
},
"type": "github_oidc_auth_config"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/cloud_auth/github/persona_mapping" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"claim_matchers": {
"ref": "refs/heads/main",
"repository": "test_owner/test_repo",
"repository_owner": "test_owner",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)"
}
},
"type": "github_oidc_auth_config"
}
}
EOF# Set your Datadog site and credentials
export DD_SITE="us2.ddog-gov.com"
# Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"
curl -X POST "https://api.${DD_SITE}/api/v2/cloud_auth/github/persona_mapping" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN}" \
-d @- << EOF
{
"data": {
"attributes": {
"account_identifier": "test@example.com",
"claim_matchers": {
"ref": "refs/heads/main",
"repository": "test_owner/test_repo",
"repository_owner": "test_owner",
"sub": "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)"
}
},
"type": "github_oidc_auth_config"
}
}
EOF// Create a GitHub cloud auth persona mapping returns "Created" response
package main
import (
"context"
"encoding/json"
"fmt"
"os"
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)
func main() {
body := datadogV2.GitHubCloudAuthPersonaMappingCreateRequest{
Data: datadogV2.GitHubCloudAuthPersonaMappingCreateData{
Attributes: datadogV2.GitHubCloudAuthPersonaMappingCreateAttributes{
AccountIdentifier: "test@example.com",
ClaimMatchers: datadogV2.GitHubOIDCClaimPatterns{
Actor: datadog.PtrString("octocat"),
ActorId: datadog.PtrString("1234567"),
Enterprise: datadog.PtrString("test_enterprise"),
EnterpriseId: datadog.PtrString("42"),
Environment: datadog.PtrString("production"),
EventName: datadog.PtrString("push"),
JobWorkflowRef: datadog.PtrString("test_owner/test_repo/.github/workflows/jobs.yml@refs/heads/main"),
Ref: datadog.PtrString("refs/heads/main"),
RefType: datadog.PtrString("branch"),
Repository: datadog.PtrString("test_owner/test_repo"),
RepositoryId: datadog.PtrString("123456789"),
RepositoryOwner: datadog.PtrString("test_owner"),
RepositoryOwnerId: datadog.PtrString("987654321"),
RepositoryVisibility: datadog.PtrString("public"),
RunnerEnvironment: datadog.PtrString("github-hosted"),
Sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)",
Workflow: datadog.PtrString("CI"),
WorkflowRef: datadog.PtrString("test_owner/test_repo/.github/workflows/ci.yml@refs/heads/main"),
},
},
Type: datadogV2.GITHUBCLOUDAUTHPERSONAMAPPINGTYPE_GITHUB_OIDC_AUTH_CONFIG,
},
}
ctx := datadog.NewDefaultContext(context.Background())
ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
configuration := datadog.NewConfiguration()
configuration.SetUnstableOperationEnabled("v2.CreateGitHubCloudAuthPersonaMapping", true)
apiClient := datadog.NewAPIClient(configuration)
api := datadogV2.NewCloudAuthenticationApi(apiClient)
resp, r, err := api.CreateGitHubCloudAuthPersonaMapping(ctx, body)
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `CloudAuthenticationApi.CreateGitHubCloudAuthPersonaMapping`: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
responseContent, _ := json.MarshalIndent(resp, "", " ")
fmt.Fprintf(os.Stdout, "Response from `CloudAuthenticationApi.CreateGitHubCloudAuthPersonaMapping`:\n%s\n", responseContent)
}
Instructions
First install the library and its dependencies and then save the example to main.go and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"// Create a GitHub cloud auth persona mapping returns "Created" response
import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.CloudAuthenticationApi;
import com.datadog.api.client.v2.model.GitHubCloudAuthPersonaMappingCreateAttributes;
import com.datadog.api.client.v2.model.GitHubCloudAuthPersonaMappingCreateData;
import com.datadog.api.client.v2.model.GitHubCloudAuthPersonaMappingCreateRequest;
import com.datadog.api.client.v2.model.GitHubCloudAuthPersonaMappingResponse;
import com.datadog.api.client.v2.model.GitHubCloudAuthPersonaMappingType;
import com.datadog.api.client.v2.model.GitHubOIDCClaimPatterns;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = ApiClient.getDefaultApiClient();
defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
defaultClient.setUnstableOperationEnabled("v2.createGitHubCloudAuthPersonaMapping", true);
CloudAuthenticationApi apiInstance = new CloudAuthenticationApi(defaultClient);
GitHubCloudAuthPersonaMappingCreateRequest body =
new GitHubCloudAuthPersonaMappingCreateRequest()
.data(
new GitHubCloudAuthPersonaMappingCreateData()
.attributes(
new GitHubCloudAuthPersonaMappingCreateAttributes()
.accountIdentifier("test@example.com")
.claimMatchers(
new GitHubOIDCClaimPatterns()
.actor("octocat")
.actorId("1234567")
.enterprise("test_enterprise")
.enterpriseId("42")
.environment("production")
.eventName("push")
.jobWorkflowRef(
"test_owner/test_repo/.github/workflows/jobs.yml@refs/heads/main")
.ref("refs/heads/main")
.refType("branch")
.repository("test_owner/test_repo")
.repositoryId("123456789")
.repositoryOwner("test_owner")
.repositoryOwnerId("987654321")
.repositoryVisibility("public")
.runnerEnvironment("github-hosted")
.sub(
"repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)")
.workflow("CI")
.workflowRef(
"test_owner/test_repo/.github/workflows/ci.yml@refs/heads/main")))
.type(GitHubCloudAuthPersonaMappingType.GITHUB_OIDC_AUTH_CONFIG));
try {
GitHubCloudAuthPersonaMappingResponse result =
apiInstance.createGitHubCloudAuthPersonaMapping(body);
System.out.println(result);
} catch (ApiException e) {
System.err.println(
"Exception when calling CloudAuthenticationApi#createGitHubCloudAuthPersonaMapping");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Instructions
First install the library and its dependencies and then save the example to Example.java and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java""""
Create a GitHub cloud auth persona mapping returns "Created" response
"""
from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.cloud_authentication_api import CloudAuthenticationApi
from datadog_api_client.v2.model.git_hub_cloud_auth_persona_mapping_create_attributes import (
GitHubCloudAuthPersonaMappingCreateAttributes,
)
from datadog_api_client.v2.model.git_hub_cloud_auth_persona_mapping_create_data import (
GitHubCloudAuthPersonaMappingCreateData,
)
from datadog_api_client.v2.model.git_hub_cloud_auth_persona_mapping_create_request import (
GitHubCloudAuthPersonaMappingCreateRequest,
)
from datadog_api_client.v2.model.git_hub_cloud_auth_persona_mapping_type import GitHubCloudAuthPersonaMappingType
from datadog_api_client.v2.model.git_hub_oidc_claim_patterns import GitHubOIDCClaimPatterns
body = GitHubCloudAuthPersonaMappingCreateRequest(
data=GitHubCloudAuthPersonaMappingCreateData(
attributes=GitHubCloudAuthPersonaMappingCreateAttributes(
account_identifier="test@example.com",
claim_matchers=GitHubOIDCClaimPatterns(
actor="octocat",
actor_id="1234567",
enterprise="test_enterprise",
enterprise_id="42",
environment="production",
event_name="push",
job_workflow_ref="test_owner/test_repo/.github/workflows/jobs.yml@refs/heads/main",
ref="refs/heads/main",
ref_type="branch",
repository="test_owner/test_repo",
repository_id="123456789",
repository_owner="test_owner",
repository_owner_id="987654321",
repository_visibility="public",
runner_environment="github-hosted",
sub="repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)",
workflow="CI",
workflow_ref="test_owner/test_repo/.github/workflows/ci.yml@refs/heads/main",
),
),
type=GitHubCloudAuthPersonaMappingType.GITHUB_OIDC_AUTH_CONFIG,
),
)
configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
configuration.unstable_operations["create_git_hub_cloud_auth_persona_mapping"] = True
with ApiClient(configuration) as api_client:
api_instance = CloudAuthenticationApi(api_client)
response = api_instance.create_git_hub_cloud_auth_persona_mapping(body=body)
print(response)
Instructions
First install the library and its dependencies and then save the example to example.py and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"# Create a GitHub cloud auth persona mapping returns "Created" response
require "datadog_api_client"
DatadogAPIClient.configure do |config|
config.access_token = ENV["DD_BEARER_TOKEN"]
config.unstable_operations["v2.create_git_hub_cloud_auth_persona_mapping".to_sym] = true
end
api_instance = DatadogAPIClient::V2::CloudAuthenticationAPI.new
body = DatadogAPIClient::V2::GitHubCloudAuthPersonaMappingCreateRequest.new({
data: DatadogAPIClient::V2::GitHubCloudAuthPersonaMappingCreateData.new({
attributes: DatadogAPIClient::V2::GitHubCloudAuthPersonaMappingCreateAttributes.new({
account_identifier: "test@example.com",
claim_matchers: DatadogAPIClient::V2::GitHubOIDCClaimPatterns.new({
actor: "octocat",
actor_id: "1234567",
enterprise: "test_enterprise",
enterprise_id: "42",
environment: "production",
event_name: "push",
job_workflow_ref: "test_owner/test_repo/.github/workflows/jobs.yml@refs/heads/main",
ref: "refs/heads/main",
ref_type: "branch",
repository: "test_owner/test_repo",
repository_id: "123456789",
repository_owner: "test_owner",
repository_owner_id: "987654321",
repository_visibility: "public",
runner_environment: "github-hosted",
sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)",
workflow: "CI",
workflow_ref: "test_owner/test_repo/.github/workflows/ci.yml@refs/heads/main",
}),
}),
type: DatadogAPIClient::V2::GitHubCloudAuthPersonaMappingType::GITHUB_OIDC_AUTH_CONFIG,
}),
})
p api_instance.create_git_hub_cloud_auth_persona_mapping(body)
Instructions
First install the library and its dependencies and then save the example to example.rb and run following commands:
DD_SITE="datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us3.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us5.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="datadoghq.eu" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ap2.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="uk1.datadoghq.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"DD_SITE="us2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"// Create a GitHub cloud auth persona mapping returns "Created" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_cloud_authentication::CloudAuthenticationAPI;
use datadog_api_client::datadogV2::model::GitHubCloudAuthPersonaMappingCreateAttributes;
use datadog_api_client::datadogV2::model::GitHubCloudAuthPersonaMappingCreateData;
use datadog_api_client::datadogV2::model::GitHubCloudAuthPersonaMappingCreateRequest;
use datadog_api_client::datadogV2::model::GitHubCloudAuthPersonaMappingType;
use datadog_api_client::datadogV2::model::GitHubOIDCClaimPatterns;
#[tokio::main]
async fn main() {
let body = GitHubCloudAuthPersonaMappingCreateRequest::new(
GitHubCloudAuthPersonaMappingCreateData::new(
GitHubCloudAuthPersonaMappingCreateAttributes::new(
"test@example.com".to_string(),
GitHubOIDCClaimPatterns::new(
"repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)".to_string(),
)
.actor("octocat".to_string())
.actor_id("1234567".to_string())
.enterprise("test_enterprise".to_string())
.enterprise_id("42".to_string())
.environment("production".to_string())
.event_name("push".to_string())
.job_workflow_ref(
"test_owner/test_repo/.github/workflows/jobs.yml@refs/heads/main".to_string(),
)
.ref_("refs/heads/main".to_string())
.ref_type("branch".to_string())
.repository("test_owner/test_repo".to_string())
.repository_id("123456789".to_string())
.repository_owner("test_owner".to_string())
.repository_owner_id("987654321".to_string())
.repository_visibility("public".to_string())
.runner_environment("github-hosted".to_string())
.workflow("CI".to_string())
.workflow_ref(
"test_owner/test_repo/.github/workflows/ci.yml@refs/heads/main".to_string(),
),
),
GitHubCloudAuthPersonaMappingType::GITHUB_OIDC_AUTH_CONFIG,
),
);
let mut configuration = datadog::Configuration::new();
configuration
.set_unstable_operation_enabled("v2.create_git_hub_cloud_auth_persona_mapping", true);
let api = CloudAuthenticationAPI::with_config(configuration);
let resp = api.create_git_hub_cloud_auth_persona_mapping(body).await;
if let Ok(value) = resp {
println!("{:#?}", value);
} else {
println!("{:#?}", resp.unwrap_err());
}
}
Instructions
First install the library and its dependencies and then save the example to src/main.rs and run following commands:
DD_SITE="datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us3.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us5.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="datadoghq.eu" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ap2.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="uk1.datadoghq.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo runDD_SITE="us2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run