InstanceAccessControlAttributes class

Provides a Single Sign-On (SSO) ABAC Resource: https://docs.aws.amazon.com/singlesignon/latest/userguide/abac.html

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = aws.ssoadmin.getInstances({});
const exampleInstanceAccessControlAttributes = new aws.ssoadmin.InstanceAccessControlAttributes("example", {
    attributes: [
        {
            values: [{
                sources: ["${path:name.givenName}"],
            }],
            key: "name",
        },
        {
            values: [{
                sources: ["${path:name.familyName}"],
            }],
            key: "last",
        },
    ],
    instanceArn: example.then(example => example.arns?.[0]),
});
import pulumi
import pulumi_aws as aws

example = aws.ssoadmin.get_instances()
example_instance_access_control_attributes = aws.ssoadmin.InstanceAccessControlAttributes("example",
    attributes=[
        {
            "values": [{
                "sources": ["${path:name.givenName}"],
            }],
            "key": "name",
        },
        {
            "values": [{
                "sources": ["${path:name.familyName}"],
            }],
            "key": "last",
        },
    ],
    instance_arn=example.arns[0])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() =>
{
    var example = Aws.SsoAdmin.GetInstances.Invoke();

    var exampleInstanceAccessControlAttributes = new Aws.SsoAdmin.InstanceAccessControlAttributes("example", new()
    {
        Attributes = new[]
        {
            new Aws.SsoAdmin.Inputs.InstanceAccessControlAttributesAttributeArgs
            {
                Values = new[]
                {
                    new Aws.SsoAdmin.Inputs.InstanceAccessControlAttributesAttributeValueArgs
                    {
                        Sources = new[]
                        {
                            "${path:name.givenName}",
                        },
                    },
                },
                Key = "name",
            },
            new Aws.SsoAdmin.Inputs.InstanceAccessControlAttributesAttributeArgs
            {
                Values = new[]
                {
                    new Aws.SsoAdmin.Inputs.InstanceAccessControlAttributesAttributeValueArgs
                    {
                        Sources = new[]
                        {
                            "${path:name.familyName}",
                        },
                    },
                },
                Key = "last",
            },
        },
        InstanceArn = example.Apply(getInstancesResult => getInstancesResult.Arns[0]),
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ssoadmin"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := ssoadmin.GetInstances(ctx, &ssoadmin.GetInstancesArgs{}, nil)
		if err != nil {
			return err
		}
		_, err = ssoadmin.NewInstanceAccessControlAttributes(ctx, "example", &ssoadmin.InstanceAccessControlAttributesArgs{
			Attributes: ssoadmin.InstanceAccessControlAttributesAttributeArray{
				&ssoadmin.InstanceAccessControlAttributesAttributeArgs{
					Values: ssoadmin.InstanceAccessControlAttributesAttributeValueArray{
						&ssoadmin.InstanceAccessControlAttributesAttributeValueArgs{
							Sources: pulumi.StringArray{
								pulumi.String("${path:name.givenName}"),
							},
						},
					},
					Key: pulumi.String("name"),
				},
				&ssoadmin.InstanceAccessControlAttributesAttributeArgs{
					Values: ssoadmin.InstanceAccessControlAttributesAttributeValueArray{
						&ssoadmin.InstanceAccessControlAttributesAttributeValueArgs{
							Sources: pulumi.StringArray{
								pulumi.String("${path:name.familyName}"),
							},
						},
					},
					Key: pulumi.String("last"),
				},
			},
			InstanceArn: pulumi.String(example.Arns[0]),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    aws = {
      source = "pulumi/aws"
    }
  }
}

data "aws_ssoadmin_getinstances" "example" {
}

resource "aws_ssoadmin_instanceaccesscontrolattributes" "example" {
  attributes {
    values {
      sources = ["$${path:name.givenName}"]
    }
    key = "name"
  }
  attributes {
    values {
      sources = ["$${path:name.familyName}"]
    }
    key = "last"
  }
  instance_arn = data.aws_ssoadmin_getinstances.example.arns[0]
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ssoadmin.SsoadminFunctions;
import com.pulumi.aws.ssoadmin.inputs.GetInstancesArgs;
import com.pulumi.aws.ssoadmin.InstanceAccessControlAttributes;
import com.pulumi.aws.ssoadmin.InstanceAccessControlAttributesArgs;
import com.pulumi.aws.ssoadmin.inputs.InstanceAccessControlAttributesAttributeArgs;
import com.pulumi.aws.ssoadmin.inputs.InstanceAccessControlAttributesAttributeValueArgs;
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) {
        final var example = SsoadminFunctions.getInstances(GetInstancesArgs.builder()
            .build());

        var exampleInstanceAccessControlAttributes = new InstanceAccessControlAttributes("exampleInstanceAccessControlAttributes", InstanceAccessControlAttributesArgs.builder()
            .attributes(
                InstanceAccessControlAttributesAttributeArgs.builder()
                    .values(InstanceAccessControlAttributesAttributeValueArgs.builder()
                        .sources("${path:name.givenName}")
                        .build())
                    .key("name")
                    .build(),
                InstanceAccessControlAttributesAttributeArgs.builder()
                    .values(InstanceAccessControlAttributesAttributeValueArgs.builder()
                        .sources("${path:name.familyName}")
                        .build())
                    .key("last")
                    .build())
            .instanceArn(example.arns()[0])
            .build());

    }
}
resources:
  exampleInstanceAccessControlAttributes:
    type: aws:ssoadmin:InstanceAccessControlAttributes
    name: example
    properties:
      attributes:
        - values:
            - sources:
                - $${path:name.givenName}
          key: name
        - values:
            - sources:
                - $${path:name.familyName}
          key: last
      instanceArn: ${example.arns[0]}
variables:
  example:
    fn::invoke:
      function: aws:ssoadmin:getInstances
      arguments: {}

Import

Using pulumi import, import SSO Account Assignments using the instanceArn. For example:

$ pulumi import aws:ssoadmin/instanceAccessControlAttributes:InstanceAccessControlAttributes example arn:aws:sso:::instance/ssoins-0123456789abcdef

Constructors

InstanceAccessControlAttributes(String name, {InstanceAccessControlAttributesArgs? args, CustomResourceOptions? options})
Creates a new InstanceAccessControlAttributes. name The Pulumi resource name. args Arguments used to configure this InstanceAccessControlAttributes. The set of arguments for InstanceAccessControlAttributes. options Resource options controlling this resource's behavior.
InstanceAccessControlAttributes.reference(String urn)
Creates a typed reference to an existing InstanceAccessControlAttributes resource.

Properties

attributes ↔ Output<List<InstanceAccessControlAttributesAttribute>>
See AccessControlAttribute for more details.
latefinal
childResources Set<Resource>
finalinherited
completionSources Map<String, IOutputCompletionSource>
latefinalinherited
hashCode int
The hash code for this object.
no setterinherited
id ↔ Output<String>
getter/setter pairinherited
instanceArn ↔ Output<String>
ARN of the SSO Instance.
latefinal
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
region ↔ Output<String>
Region where this resource will be managed. Defaults to the Region set in the provider configuration.
latefinal
resourceTransforms List<ResourceTransform>
Inherited/explicit async transforms.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
status ↔ Output<String>
latefinal
statusReason ↔ Output<String>
latefinal
transformations List<ResourceTransformation>
Inherited/explicit legacy transformations.
no setterinherited
urn ↔ Output<String>
latefinalinherited

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, {InstanceAccessControlAttributesState? state, CustomResourceOptions? options}) InstanceAccessControlAttributes
Gets an existing InstanceAccessControlAttributes resource's state with the given name and id.