WorkforcePoolProviderScimToken class
Represents a SCIM Token for a Workforce Pool Provider Scim Tenant. The SCIM Token is used for authenticating SCIM provisioning requests during the synchronization of user/group identities from external identity provider into Google Cloud using the System for Cross-domain Identity Management (SCIM) protocol. This needs to be provided in the Secret (Long Lived) Token field when configuring SCIM on an IdP.
To get more information about WorkforcePoolProviderScimToken, see:
- API documentation
- How-to Guides
- Create a SCIM Token for the SCIM Tenant
Example Usage
Iam Workforce Pool Provider Scim Token Basic
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const pool = new gcp.iam.WorkforcePool("pool", {
workforcePoolId: "example-pool",
parent: "organizations/123456789",
location: "global",
});
const provider = new gcp.iam.WorkforcePoolProvider("provider", {
location: "global",
workforcePoolId: pool.workforcePoolId,
providerId: "example-prvdr",
attributeMapping: {
"google.subject": "assertion.sub",
},
oidc: {
issuerUri: "https://accounts.thirdparty.com",
clientId: "client-id",
clientSecret: {
value: {
plainText: "client-secret",
},
},
webSsoConfig: {
responseType: "CODE",
assertionClaimsBehavior: "MERGE_USER_INFO_OVER_ID_TOKEN_CLAIMS",
additionalScopes: [
"groups",
"roles",
],
},
},
displayName: "Display name",
description: "A sample OIDC workforce pool provider.",
disabled: false,
attributeCondition: "true",
});
const tenant = new gcp.iam.WorkforcePoolProviderScimTenant("tenant", {
location: "global",
workforcePoolId: pool.workforcePoolId,
providerId: provider.providerId,
scimTenantId: "example-tenant",
displayName: "SCIM Tenant display Name",
description: "A SCIM Tenant for IAM Workforce Pool Provider",
claimMapping: {
"google.subject": "user.externalId",
"google.group": "group.externalId",
},
hardDelete: true,
});
const example = new gcp.iam.WorkforcePoolProviderScimToken("example", {
location: "global",
workforcePoolId: pool.workforcePoolId,
providerId: provider.providerId,
scimTenantId: tenant.scimTenantId,
scimTokenId: "example-scim-token",
displayName: "SCIM Token display Name",
});
import pulumi
import pulumi_gcp as gcp
pool = gcp.iam.WorkforcePool("pool",
workforce_pool_id="example-pool",
parent="organizations/123456789",
location="global")
provider = gcp.iam.WorkforcePoolProvider("provider",
location="global",
workforce_pool_id=pool.workforce_pool_id,
provider_id="example-prvdr",
attribute_mapping={
"google.subject": "assertion.sub",
},
oidc={
"issuer_uri": "https://accounts.thirdparty.com",
"client_id": "client-id",
"client_secret": {
"value": {
"plain_text": "client-secret",
},
},
"web_sso_config": {
"response_type": "CODE",
"assertion_claims_behavior": "MERGE_USER_INFO_OVER_ID_TOKEN_CLAIMS",
"additional_scopes": [
"groups",
"roles",
],
},
},
display_name="Display name",
description="A sample OIDC workforce pool provider.",
disabled=False,
attribute_condition="true")
tenant = gcp.iam.WorkforcePoolProviderScimTenant("tenant",
location="global",
workforce_pool_id=pool.workforce_pool_id,
provider_id=provider.provider_id,
scim_tenant_id="example-tenant",
display_name="SCIM Tenant display Name",
description="A SCIM Tenant for IAM Workforce Pool Provider",
claim_mapping={
"google.subject": "user.externalId",
"google.group": "group.externalId",
},
hard_delete=True)
example = gcp.iam.WorkforcePoolProviderScimToken("example",
location="global",
workforce_pool_id=pool.workforce_pool_id,
provider_id=provider.provider_id,
scim_tenant_id=tenant.scim_tenant_id,
scim_token_id="example-scim-token",
display_name="SCIM Token display Name")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var pool = new Gcp.Iam.WorkforcePool("pool", new()
{
WorkforcePoolId = "example-pool",
Parent = "organizations/123456789",
Location = "global",
});
var provider = new Gcp.Iam.WorkforcePoolProvider("provider", new()
{
Location = "global",
WorkforcePoolId = pool.WorkforcePoolId,
ProviderId = "example-prvdr",
AttributeMapping =
{
{ "google.subject", "assertion.sub" },
},
Oidc = new Gcp.Iam.Inputs.WorkforcePoolProviderOidcArgs
{
IssuerUri = "https://accounts.thirdparty.com",
ClientId = "client-id",
ClientSecret = new Gcp.Iam.Inputs.WorkforcePoolProviderOidcClientSecretArgs
{
Value = new Gcp.Iam.Inputs.WorkforcePoolProviderOidcClientSecretValueArgs
{
PlainText = "client-secret",
},
},
WebSsoConfig = new Gcp.Iam.Inputs.WorkforcePoolProviderOidcWebSsoConfigArgs
{
ResponseType = "CODE",
AssertionClaimsBehavior = "MERGE_USER_INFO_OVER_ID_TOKEN_CLAIMS",
AdditionalScopes = new[]
{
"groups",
"roles",
},
},
},
DisplayName = "Display name",
Description = "A sample OIDC workforce pool provider.",
Disabled = false,
AttributeCondition = "true",
});
var tenant = new Gcp.Iam.WorkforcePoolProviderScimTenant("tenant", new()
{
Location = "global",
WorkforcePoolId = pool.WorkforcePoolId,
ProviderId = provider.ProviderId,
ScimTenantId = "example-tenant",
DisplayName = "SCIM Tenant display Name",
Description = "A SCIM Tenant for IAM Workforce Pool Provider",
ClaimMapping =
{
{ "google.subject", "user.externalId" },
{ "google.group", "group.externalId" },
},
HardDelete = true,
});
var example = new Gcp.Iam.WorkforcePoolProviderScimToken("example", new()
{
Location = "global",
WorkforcePoolId = pool.WorkforcePoolId,
ProviderId = provider.ProviderId,
ScimTenantId = tenant.ScimTenantId,
ScimTokenId = "example-scim-token",
DisplayName = "SCIM Token display Name",
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/iam"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
pool, err := iam.NewWorkforcePool(ctx, "pool", &iam.WorkforcePoolArgs{
WorkforcePoolId: pulumi.String("example-pool"),
Parent: pulumi.String("organizations/123456789"),
Location: pulumi.String("global"),
})
if err != nil {
return err
}
provider, err := iam.NewWorkforcePoolProvider(ctx, "provider", &iam.WorkforcePoolProviderArgs{
Location: pulumi.String("global"),
WorkforcePoolId: pool.WorkforcePoolId,
ProviderId: pulumi.String("example-prvdr"),
AttributeMapping: pulumi.StringMap{
"google.subject": pulumi.String("assertion.sub"),
},
Oidc: &iam.WorkforcePoolProviderOidcArgs{
IssuerUri: pulumi.String("https://accounts.thirdparty.com"),
ClientId: pulumi.String("client-id"),
ClientSecret: &iam.WorkforcePoolProviderOidcClientSecretArgs{
Value: &iam.WorkforcePoolProviderOidcClientSecretValueArgs{
PlainText: pulumi.String("client-secret"),
},
},
WebSsoConfig: &iam.WorkforcePoolProviderOidcWebSsoConfigArgs{
ResponseType: pulumi.String("CODE"),
AssertionClaimsBehavior: pulumi.String("MERGE_USER_INFO_OVER_ID_TOKEN_CLAIMS"),
AdditionalScopes: pulumi.StringArray{
pulumi.String("groups"),
pulumi.String("roles"),
},
},
},
DisplayName: pulumi.String("Display name"),
Description: pulumi.String("A sample OIDC workforce pool provider."),
Disabled: pulumi.Bool(false),
AttributeCondition: pulumi.String("true"),
})
if err != nil {
return err
}
tenant, err := iam.NewWorkforcePoolProviderScimTenant(ctx, "tenant", &iam.WorkforcePoolProviderScimTenantArgs{
Location: pulumi.String("global"),
WorkforcePoolId: pool.WorkforcePoolId,
ProviderId: provider.ProviderId,
ScimTenantId: pulumi.String("example-tenant"),
DisplayName: pulumi.String("SCIM Tenant display Name"),
Description: pulumi.String("A SCIM Tenant for IAM Workforce Pool Provider"),
ClaimMapping: pulumi.StringMap{
"google.subject": pulumi.String("user.externalId"),
"google.group": pulumi.String("group.externalId"),
},
HardDelete: pulumi.Bool(true),
})
if err != nil {
return err
}
_, err = iam.NewWorkforcePoolProviderScimToken(ctx, "example", &iam.WorkforcePoolProviderScimTokenArgs{
Location: pulumi.String("global"),
WorkforcePoolId: pool.WorkforcePoolId,
ProviderId: provider.ProviderId,
ScimTenantId: tenant.ScimTenantId,
ScimTokenId: pulumi.String("example-scim-token"),
DisplayName: pulumi.String("SCIM Token display Name"),
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
}
}
resource "gcp_iam_workforcepool" "pool" {
workforce_pool_id = "example-pool"
parent = "organizations/123456789"
location = "global"
}
resource "gcp_iam_workforcepoolprovider" "provider" {
location = "global"
workforce_pool_id = gcp_iam_workforcepool.pool.workforce_pool_id
provider_id = "example-prvdr"
attribute_mapping = {
"google.subject" = "assertion.sub"
}
oidc = {
issuer_uri = "https://accounts.thirdparty.com"
client_id = "client-id"
client_secret = {
value = {
plain_text = "client-secret"
}
}
web_sso_config = {
response_type = "CODE"
assertion_claims_behavior = "MERGE_USER_INFO_OVER_ID_TOKEN_CLAIMS"
additional_scopes = ["groups", "roles"]
}
}
display_name = "Display name"
description = "A sample OIDC workforce pool provider."
disabled = false
attribute_condition = "true"
}
resource "gcp_iam_workforcepoolproviderscimtenant" "tenant" {
location = "global"
workforce_pool_id = gcp_iam_workforcepool.pool.workforce_pool_id
provider_id = gcp_iam_workforcepoolprovider.provider.provider_id
scim_tenant_id = "example-tenant"
display_name = "SCIM Tenant display Name"
description = "A SCIM Tenant for IAM Workforce Pool Provider"
claim_mapping = {
"google.subject" = "user.externalId"
"google.group" = "group.externalId"
}
hard_delete = true
}
resource "gcp_iam_workforcepoolproviderscimtoken" "example" {
location = "global"
workforce_pool_id = gcp_iam_workforcepool.pool.workforce_pool_id
provider_id = gcp_iam_workforcepoolprovider.provider.provider_id
scim_tenant_id = gcp_iam_workforcepoolproviderscimtenant.tenant.scim_tenant_id
scim_token_id = "example-scim-token"
display_name = "SCIM Token display Name"
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.iam.WorkforcePool;
import com.pulumi.gcp.iam.WorkforcePoolArgs;
import com.pulumi.gcp.iam.WorkforcePoolProvider;
import com.pulumi.gcp.iam.WorkforcePoolProviderArgs;
import com.pulumi.gcp.iam.inputs.WorkforcePoolProviderOidcArgs;
import com.pulumi.gcp.iam.inputs.WorkforcePoolProviderOidcClientSecretArgs;
import com.pulumi.gcp.iam.inputs.WorkforcePoolProviderOidcClientSecretValueArgs;
import com.pulumi.gcp.iam.inputs.WorkforcePoolProviderOidcWebSsoConfigArgs;
import com.pulumi.gcp.iam.WorkforcePoolProviderScimTenant;
import com.pulumi.gcp.iam.WorkforcePoolProviderScimTenantArgs;
import com.pulumi.gcp.iam.WorkforcePoolProviderScimToken;
import com.pulumi.gcp.iam.WorkforcePoolProviderScimTokenArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var pool = new WorkforcePool("pool", WorkforcePoolArgs.builder()
.workforcePoolId("example-pool")
.parent("organizations/123456789")
.location("global")
.build());
var provider = new WorkforcePoolProvider("provider", WorkforcePoolProviderArgs.builder()
.location("global")
.workforcePoolId(pool.workforcePoolId())
.providerId("example-prvdr")
.attributeMapping(Map.of("google.subject", "assertion.sub"))
.oidc(WorkforcePoolProviderOidcArgs.builder()
.issuerUri("https://accounts.thirdparty.com")
.clientId("client-id")
.clientSecret(WorkforcePoolProviderOidcClientSecretArgs.builder()
.value(WorkforcePoolProviderOidcClientSecretValueArgs.builder()
.plainText("client-secret")
.build())
.build())
.webSsoConfig(WorkforcePoolProviderOidcWebSsoConfigArgs.builder()
.responseType("CODE")
.assertionClaimsBehavior("MERGE_USER_INFO_OVER_ID_TOKEN_CLAIMS")
.additionalScopes(
"groups",
"roles")
.build())
.build())
.displayName("Display name")
.description("A sample OIDC workforce pool provider.")
.disabled(false)
.attributeCondition("true")
.build());
var tenant = new WorkforcePoolProviderScimTenant("tenant", WorkforcePoolProviderScimTenantArgs.builder()
.location("global")
.workforcePoolId(pool.workforcePoolId())
.providerId(provider.providerId())
.scimTenantId("example-tenant")
.displayName("SCIM Tenant display Name")
.description("A SCIM Tenant for IAM Workforce Pool Provider")
.claimMapping(Map.ofEntries(
Map.entry("google.subject", "user.externalId"),
Map.entry("google.group", "group.externalId")
))
.hardDelete(true)
.build());
var example = new WorkforcePoolProviderScimToken("example", WorkforcePoolProviderScimTokenArgs.builder()
.location("global")
.workforcePoolId(pool.workforcePoolId())
.providerId(provider.providerId())
.scimTenantId(tenant.scimTenantId())
.scimTokenId("example-scim-token")
.displayName("SCIM Token display Name")
.build());
}
}
resources:
pool:
type: gcp:iam:WorkforcePool
properties:
workforcePoolId: example-pool
parent: organizations/123456789
location: global
provider:
type: gcp:iam:WorkforcePoolProvider
properties:
location: global
workforcePoolId: ${pool.workforcePoolId}
providerId: example-prvdr
attributeMapping:
google.subject: assertion.sub
oidc:
issuerUri: https://accounts.thirdparty.com
clientId: client-id
clientSecret:
value:
plainText: client-secret
webSsoConfig:
responseType: CODE
assertionClaimsBehavior: MERGE_USER_INFO_OVER_ID_TOKEN_CLAIMS
additionalScopes:
- groups
- roles
displayName: Display name
description: A sample OIDC workforce pool provider.
disabled: false
attributeCondition: 'true'
tenant:
type: gcp:iam:WorkforcePoolProviderScimTenant
properties:
location: global
workforcePoolId: ${pool.workforcePoolId}
providerId: ${provider.providerId}
scimTenantId: example-tenant
displayName: SCIM Tenant display Name
description: A SCIM Tenant for IAM Workforce Pool Provider
claimMapping:
google.subject: user.externalId
google.group: group.externalId
hardDelete: true # state, base_uri, purge_time and service_agent are output only, not settable
example:
type: gcp:iam:WorkforcePoolProviderScimToken
properties:
location: global
workforcePoolId: ${pool.workforcePoolId}
providerId: ${provider.providerId}
scimTenantId: ${tenant.scimTenantId}
scimTokenId: example-scim-token
displayName: SCIM Token display Name
Import
WorkforcePoolProviderScimToken can be imported using any of these accepted formats:
locations/{{location}}/workforcePools/{{workforce_pool_id}}/providers/{{provider_id}}/scimTenants/{{scim_tenant_id}}/tokens/{{scim_token_id}}{{location}}/{{workforce_pool_id}}/{{provider_id}}/{{scim_tenant_id}}/{{scim_token_id}}
When using the pulumi import command, WorkforcePoolProviderScimToken can be imported using one of the formats above. For example:
$ pulumi import gcp:iam/workforcePoolProviderScimToken:WorkforcePoolProviderScimToken default locations/{{location}}/workforcePools/{{workforce_pool_id}}/providers/{{provider_id}}/scimTenants/{{scim_tenant_id}}/tokens/{{scim_token_id}}
$ pulumi import gcp:iam/workforcePoolProviderScimToken:WorkforcePoolProviderScimToken default {{location}}/{{workforce_pool_id}}/{{provider_id}}/{{scim_tenant_id}}/{{scim_token_id}}
Constructors
- WorkforcePoolProviderScimToken(String name, {WorkforcePoolProviderScimTokenArgs? args, CustomResourceOptions? options})
-
Creates a new WorkforcePoolProviderScimToken.
nameThe Pulumi resource name.argsArguments used to configure this WorkforcePoolProviderScimToken. The set of arguments for WorkforcePoolProviderScimToken.optionsResource options controlling this resource's behavior. - WorkforcePoolProviderScimToken.reference(String urn)
- Creates a typed reference to an existing WorkforcePoolProviderScimToken resource.
Properties
-
childResources
→ Set<
Resource> -
finalinherited
-
completionSources
↔ Map<
String, IOutputCompletionSource> -
latefinalinherited
-
deletionPolicy
↔ Output<
String> -
Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
When a 'terraform destroy' or 'pulumi up' would delete the resource,
the command will fail if this field is set to "PREVENT" in Terraform state.
When set to "ABANDON", the command will remove the resource from Terraform
management without updating or deleting the resource in the API.
When set to "DELETE", deleting the resource is allowed.
latefinal
-
displayName
↔ Output<
String?> -
A user-specified display name for the scim token. Cannot exceed 32 characters.
latefinal
- hashCode → int
-
The hash code for this object.
no setterinherited
-
id
↔ Output<
String> -
getter/setter pairinherited
- isCustom → bool
-
Returns whether this resource is provider-managed.
no setterinherited
- isProtected → bool
-
Returns whether this resource is protected from deletion.
no setterinherited
- isRemote → bool
-
Whether this resource is registered as remote.
no setterinherited
- isResourceReference → bool
-
Whether this instance represents a resource value returned over RPC.
finalinherited
-
location
↔ Output<
String> -
The location for the resource.
latefinal
-
name
↔ Output<
String> -
Identifier. The resource name of the scim token.
Format:
locations/{location}/workforcePools/{workforce_pool}/providers/{workforce_pool_provider}/scimTenants/{scim_tenant_id}/tokens/{scim_token_id}latefinal -
providerId
↔ Output<
String> -
The ID of the Provider.
latefinal
-
resourceTransforms
→ List<
ResourceTransform> -
Inherited/explicit async transforms.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
scimTenantId
↔ Output<
String> -
The ID of the SCIM Tenant.
latefinal
-
scimTokenId
↔ Output<
String> -
The ID to use for the SCIM Token, which becomes the final component of the resource name. This value should be 4-32 characters and follow the pattern:
(a-z).latefinal -
securityToken
↔ Output<
String> -
The token string provided to the IdP for authentication and will be set only during creation.
Note: This property is sensitive and will not be displayed in the plan.
latefinal
-
state
↔ Output<
String> -
The current state of the scim token.
latefinal
-
transformations
→ List<
ResourceTransformation> -
Inherited/explicit legacy transformations.
no setterinherited
-
urn
↔ Output<
String> -
latefinalinherited
-
workforcePoolId
↔ Output<
String> -
The ID of the Workforce Pool.
latefinal
Methods
-
failId(
Object error) → void -
Completes this resource ID with an error when registration fails.
inherited
-
failOutputs(
Object error) → void -
Completes all output properties with
error.inherited -
failUrn(
Object error) → void -
Completes this resource URN with an error when registration fails.
inherited
-
getProvider(
String moduleMember) → ProviderResource? -
Returns provider for
moduleMember's package, if configured.inherited -
getResourceName(
) → String -
Returns this resource's logical name.
inherited
-
getResourceType(
) → String -
Returns this resource's Pulumi type token.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
registerOutput<
T> (String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output< T> -
Registers a dynamic output property for this resource.
inherited
-
resolveId(
String? value, {required bool isKnown}) → void -
Resolves the provider-assigned ID for this resource.
inherited
-
resolveOutputs(
Struct outputs) → void -
Resolves all output properties from a monitor response payload.
inherited
-
resolveUrn(
String value) → void -
Resolves this resource's URN once assigned by the engine.
inherited
-
serializeProperties(
Map< String, dynamic> properties) → Future<Struct> -
Serializes resource properties for RPC transmission.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
get(
String name, Input< String> id, {WorkforcePoolProviderScimTokenState? state, CustomResourceOptions? options}) → WorkforcePoolProviderScimToken -
Gets an existing WorkforcePoolProviderScimToken resource's state with the given
nameandid.