github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ssoadmin/permissionsBoundaryAttachment.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package ssoadmin
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Attaches a permissions boundary policy to a Single Sign-On (SSO) Permission Set resource.
    16  //
    17  // > **NOTE:** A permission set can have at most one permissions boundary attached; using more than one `ssoadmin.PermissionsBoundaryAttachment` references the same permission set will show a permanent difference.
    18  //
    19  // ## Example Usage
    20  //
    21  // ### Attaching an AWS-managed policy
    22  //
    23  // <!--Start PulumiCodeChooser -->
    24  // ```go
    25  // package main
    26  //
    27  // import (
    28  //
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssoadmin"
    30  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    31  //
    32  // )
    33  //
    34  //	func main() {
    35  //		pulumi.Run(func(ctx *pulumi.Context) error {
    36  //			_, err := ssoadmin.NewPermissionsBoundaryAttachment(ctx, "example", &ssoadmin.PermissionsBoundaryAttachmentArgs{
    37  //				InstanceArn:      pulumi.Any(exampleAwsSsoadminPermissionSet.InstanceArn),
    38  //				PermissionSetArn: pulumi.Any(exampleAwsSsoadminPermissionSet.Arn),
    39  //				PermissionsBoundary: &ssoadmin.PermissionsBoundaryAttachmentPermissionsBoundaryArgs{
    40  //					ManagedPolicyArn: pulumi.String("arn:aws:iam::aws:policy/ReadOnlyAccess"),
    41  //				},
    42  //			})
    43  //			if err != nil {
    44  //				return err
    45  //			}
    46  //			return nil
    47  //		})
    48  //	}
    49  //
    50  // ```
    51  // <!--End PulumiCodeChooser -->
    52  //
    53  // ## Import
    54  //
    55  // Using `pulumi import`, import SSO Admin Permissions Boundary Attachments using the `permission_set_arn` and `instance_arn`, separated by a comma (`,`). For example:
    56  //
    57  // ```sh
    58  // $ pulumi import aws:ssoadmin/permissionsBoundaryAttachment:PermissionsBoundaryAttachment example arn:aws:sso:::permissionSet/ssoins-2938j0x8920sbj72/ps-80383020jr9302rk,arn:aws:sso:::instance/ssoins-2938j0x8920sbj72
    59  // ```
    60  type PermissionsBoundaryAttachment struct {
    61  	pulumi.CustomResourceState
    62  
    63  	// The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed.
    64  	InstanceArn pulumi.StringOutput `pulumi:"instanceArn"`
    65  	// The Amazon Resource Name (ARN) of the Permission Set.
    66  	PermissionSetArn pulumi.StringOutput `pulumi:"permissionSetArn"`
    67  	// The permissions boundary policy. See below.
    68  	PermissionsBoundary PermissionsBoundaryAttachmentPermissionsBoundaryOutput `pulumi:"permissionsBoundary"`
    69  }
    70  
    71  // NewPermissionsBoundaryAttachment registers a new resource with the given unique name, arguments, and options.
    72  func NewPermissionsBoundaryAttachment(ctx *pulumi.Context,
    73  	name string, args *PermissionsBoundaryAttachmentArgs, opts ...pulumi.ResourceOption) (*PermissionsBoundaryAttachment, error) {
    74  	if args == nil {
    75  		return nil, errors.New("missing one or more required arguments")
    76  	}
    77  
    78  	if args.InstanceArn == nil {
    79  		return nil, errors.New("invalid value for required argument 'InstanceArn'")
    80  	}
    81  	if args.PermissionSetArn == nil {
    82  		return nil, errors.New("invalid value for required argument 'PermissionSetArn'")
    83  	}
    84  	if args.PermissionsBoundary == nil {
    85  		return nil, errors.New("invalid value for required argument 'PermissionsBoundary'")
    86  	}
    87  	opts = internal.PkgResourceDefaultOpts(opts)
    88  	var resource PermissionsBoundaryAttachment
    89  	err := ctx.RegisterResource("aws:ssoadmin/permissionsBoundaryAttachment:PermissionsBoundaryAttachment", name, args, &resource, opts...)
    90  	if err != nil {
    91  		return nil, err
    92  	}
    93  	return &resource, nil
    94  }
    95  
    96  // GetPermissionsBoundaryAttachment gets an existing PermissionsBoundaryAttachment resource's state with the given name, ID, and optional
    97  // state properties that are used to uniquely qualify the lookup (nil if not required).
    98  func GetPermissionsBoundaryAttachment(ctx *pulumi.Context,
    99  	name string, id pulumi.IDInput, state *PermissionsBoundaryAttachmentState, opts ...pulumi.ResourceOption) (*PermissionsBoundaryAttachment, error) {
   100  	var resource PermissionsBoundaryAttachment
   101  	err := ctx.ReadResource("aws:ssoadmin/permissionsBoundaryAttachment:PermissionsBoundaryAttachment", name, id, state, &resource, opts...)
   102  	if err != nil {
   103  		return nil, err
   104  	}
   105  	return &resource, nil
   106  }
   107  
   108  // Input properties used for looking up and filtering PermissionsBoundaryAttachment resources.
   109  type permissionsBoundaryAttachmentState struct {
   110  	// The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed.
   111  	InstanceArn *string `pulumi:"instanceArn"`
   112  	// The Amazon Resource Name (ARN) of the Permission Set.
   113  	PermissionSetArn *string `pulumi:"permissionSetArn"`
   114  	// The permissions boundary policy. See below.
   115  	PermissionsBoundary *PermissionsBoundaryAttachmentPermissionsBoundary `pulumi:"permissionsBoundary"`
   116  }
   117  
   118  type PermissionsBoundaryAttachmentState struct {
   119  	// The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed.
   120  	InstanceArn pulumi.StringPtrInput
   121  	// The Amazon Resource Name (ARN) of the Permission Set.
   122  	PermissionSetArn pulumi.StringPtrInput
   123  	// The permissions boundary policy. See below.
   124  	PermissionsBoundary PermissionsBoundaryAttachmentPermissionsBoundaryPtrInput
   125  }
   126  
   127  func (PermissionsBoundaryAttachmentState) ElementType() reflect.Type {
   128  	return reflect.TypeOf((*permissionsBoundaryAttachmentState)(nil)).Elem()
   129  }
   130  
   131  type permissionsBoundaryAttachmentArgs struct {
   132  	// The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed.
   133  	InstanceArn string `pulumi:"instanceArn"`
   134  	// The Amazon Resource Name (ARN) of the Permission Set.
   135  	PermissionSetArn string `pulumi:"permissionSetArn"`
   136  	// The permissions boundary policy. See below.
   137  	PermissionsBoundary PermissionsBoundaryAttachmentPermissionsBoundary `pulumi:"permissionsBoundary"`
   138  }
   139  
   140  // The set of arguments for constructing a PermissionsBoundaryAttachment resource.
   141  type PermissionsBoundaryAttachmentArgs struct {
   142  	// The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed.
   143  	InstanceArn pulumi.StringInput
   144  	// The Amazon Resource Name (ARN) of the Permission Set.
   145  	PermissionSetArn pulumi.StringInput
   146  	// The permissions boundary policy. See below.
   147  	PermissionsBoundary PermissionsBoundaryAttachmentPermissionsBoundaryInput
   148  }
   149  
   150  func (PermissionsBoundaryAttachmentArgs) ElementType() reflect.Type {
   151  	return reflect.TypeOf((*permissionsBoundaryAttachmentArgs)(nil)).Elem()
   152  }
   153  
   154  type PermissionsBoundaryAttachmentInput interface {
   155  	pulumi.Input
   156  
   157  	ToPermissionsBoundaryAttachmentOutput() PermissionsBoundaryAttachmentOutput
   158  	ToPermissionsBoundaryAttachmentOutputWithContext(ctx context.Context) PermissionsBoundaryAttachmentOutput
   159  }
   160  
   161  func (*PermissionsBoundaryAttachment) ElementType() reflect.Type {
   162  	return reflect.TypeOf((**PermissionsBoundaryAttachment)(nil)).Elem()
   163  }
   164  
   165  func (i *PermissionsBoundaryAttachment) ToPermissionsBoundaryAttachmentOutput() PermissionsBoundaryAttachmentOutput {
   166  	return i.ToPermissionsBoundaryAttachmentOutputWithContext(context.Background())
   167  }
   168  
   169  func (i *PermissionsBoundaryAttachment) ToPermissionsBoundaryAttachmentOutputWithContext(ctx context.Context) PermissionsBoundaryAttachmentOutput {
   170  	return pulumi.ToOutputWithContext(ctx, i).(PermissionsBoundaryAttachmentOutput)
   171  }
   172  
   173  // PermissionsBoundaryAttachmentArrayInput is an input type that accepts PermissionsBoundaryAttachmentArray and PermissionsBoundaryAttachmentArrayOutput values.
   174  // You can construct a concrete instance of `PermissionsBoundaryAttachmentArrayInput` via:
   175  //
   176  //	PermissionsBoundaryAttachmentArray{ PermissionsBoundaryAttachmentArgs{...} }
   177  type PermissionsBoundaryAttachmentArrayInput interface {
   178  	pulumi.Input
   179  
   180  	ToPermissionsBoundaryAttachmentArrayOutput() PermissionsBoundaryAttachmentArrayOutput
   181  	ToPermissionsBoundaryAttachmentArrayOutputWithContext(context.Context) PermissionsBoundaryAttachmentArrayOutput
   182  }
   183  
   184  type PermissionsBoundaryAttachmentArray []PermissionsBoundaryAttachmentInput
   185  
   186  func (PermissionsBoundaryAttachmentArray) ElementType() reflect.Type {
   187  	return reflect.TypeOf((*[]*PermissionsBoundaryAttachment)(nil)).Elem()
   188  }
   189  
   190  func (i PermissionsBoundaryAttachmentArray) ToPermissionsBoundaryAttachmentArrayOutput() PermissionsBoundaryAttachmentArrayOutput {
   191  	return i.ToPermissionsBoundaryAttachmentArrayOutputWithContext(context.Background())
   192  }
   193  
   194  func (i PermissionsBoundaryAttachmentArray) ToPermissionsBoundaryAttachmentArrayOutputWithContext(ctx context.Context) PermissionsBoundaryAttachmentArrayOutput {
   195  	return pulumi.ToOutputWithContext(ctx, i).(PermissionsBoundaryAttachmentArrayOutput)
   196  }
   197  
   198  // PermissionsBoundaryAttachmentMapInput is an input type that accepts PermissionsBoundaryAttachmentMap and PermissionsBoundaryAttachmentMapOutput values.
   199  // You can construct a concrete instance of `PermissionsBoundaryAttachmentMapInput` via:
   200  //
   201  //	PermissionsBoundaryAttachmentMap{ "key": PermissionsBoundaryAttachmentArgs{...} }
   202  type PermissionsBoundaryAttachmentMapInput interface {
   203  	pulumi.Input
   204  
   205  	ToPermissionsBoundaryAttachmentMapOutput() PermissionsBoundaryAttachmentMapOutput
   206  	ToPermissionsBoundaryAttachmentMapOutputWithContext(context.Context) PermissionsBoundaryAttachmentMapOutput
   207  }
   208  
   209  type PermissionsBoundaryAttachmentMap map[string]PermissionsBoundaryAttachmentInput
   210  
   211  func (PermissionsBoundaryAttachmentMap) ElementType() reflect.Type {
   212  	return reflect.TypeOf((*map[string]*PermissionsBoundaryAttachment)(nil)).Elem()
   213  }
   214  
   215  func (i PermissionsBoundaryAttachmentMap) ToPermissionsBoundaryAttachmentMapOutput() PermissionsBoundaryAttachmentMapOutput {
   216  	return i.ToPermissionsBoundaryAttachmentMapOutputWithContext(context.Background())
   217  }
   218  
   219  func (i PermissionsBoundaryAttachmentMap) ToPermissionsBoundaryAttachmentMapOutputWithContext(ctx context.Context) PermissionsBoundaryAttachmentMapOutput {
   220  	return pulumi.ToOutputWithContext(ctx, i).(PermissionsBoundaryAttachmentMapOutput)
   221  }
   222  
   223  type PermissionsBoundaryAttachmentOutput struct{ *pulumi.OutputState }
   224  
   225  func (PermissionsBoundaryAttachmentOutput) ElementType() reflect.Type {
   226  	return reflect.TypeOf((**PermissionsBoundaryAttachment)(nil)).Elem()
   227  }
   228  
   229  func (o PermissionsBoundaryAttachmentOutput) ToPermissionsBoundaryAttachmentOutput() PermissionsBoundaryAttachmentOutput {
   230  	return o
   231  }
   232  
   233  func (o PermissionsBoundaryAttachmentOutput) ToPermissionsBoundaryAttachmentOutputWithContext(ctx context.Context) PermissionsBoundaryAttachmentOutput {
   234  	return o
   235  }
   236  
   237  // The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed.
   238  func (o PermissionsBoundaryAttachmentOutput) InstanceArn() pulumi.StringOutput {
   239  	return o.ApplyT(func(v *PermissionsBoundaryAttachment) pulumi.StringOutput { return v.InstanceArn }).(pulumi.StringOutput)
   240  }
   241  
   242  // The Amazon Resource Name (ARN) of the Permission Set.
   243  func (o PermissionsBoundaryAttachmentOutput) PermissionSetArn() pulumi.StringOutput {
   244  	return o.ApplyT(func(v *PermissionsBoundaryAttachment) pulumi.StringOutput { return v.PermissionSetArn }).(pulumi.StringOutput)
   245  }
   246  
   247  // The permissions boundary policy. See below.
   248  func (o PermissionsBoundaryAttachmentOutput) PermissionsBoundary() PermissionsBoundaryAttachmentPermissionsBoundaryOutput {
   249  	return o.ApplyT(func(v *PermissionsBoundaryAttachment) PermissionsBoundaryAttachmentPermissionsBoundaryOutput {
   250  		return v.PermissionsBoundary
   251  	}).(PermissionsBoundaryAttachmentPermissionsBoundaryOutput)
   252  }
   253  
   254  type PermissionsBoundaryAttachmentArrayOutput struct{ *pulumi.OutputState }
   255  
   256  func (PermissionsBoundaryAttachmentArrayOutput) ElementType() reflect.Type {
   257  	return reflect.TypeOf((*[]*PermissionsBoundaryAttachment)(nil)).Elem()
   258  }
   259  
   260  func (o PermissionsBoundaryAttachmentArrayOutput) ToPermissionsBoundaryAttachmentArrayOutput() PermissionsBoundaryAttachmentArrayOutput {
   261  	return o
   262  }
   263  
   264  func (o PermissionsBoundaryAttachmentArrayOutput) ToPermissionsBoundaryAttachmentArrayOutputWithContext(ctx context.Context) PermissionsBoundaryAttachmentArrayOutput {
   265  	return o
   266  }
   267  
   268  func (o PermissionsBoundaryAttachmentArrayOutput) Index(i pulumi.IntInput) PermissionsBoundaryAttachmentOutput {
   269  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *PermissionsBoundaryAttachment {
   270  		return vs[0].([]*PermissionsBoundaryAttachment)[vs[1].(int)]
   271  	}).(PermissionsBoundaryAttachmentOutput)
   272  }
   273  
   274  type PermissionsBoundaryAttachmentMapOutput struct{ *pulumi.OutputState }
   275  
   276  func (PermissionsBoundaryAttachmentMapOutput) ElementType() reflect.Type {
   277  	return reflect.TypeOf((*map[string]*PermissionsBoundaryAttachment)(nil)).Elem()
   278  }
   279  
   280  func (o PermissionsBoundaryAttachmentMapOutput) ToPermissionsBoundaryAttachmentMapOutput() PermissionsBoundaryAttachmentMapOutput {
   281  	return o
   282  }
   283  
   284  func (o PermissionsBoundaryAttachmentMapOutput) ToPermissionsBoundaryAttachmentMapOutputWithContext(ctx context.Context) PermissionsBoundaryAttachmentMapOutput {
   285  	return o
   286  }
   287  
   288  func (o PermissionsBoundaryAttachmentMapOutput) MapIndex(k pulumi.StringInput) PermissionsBoundaryAttachmentOutput {
   289  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *PermissionsBoundaryAttachment {
   290  		return vs[0].(map[string]*PermissionsBoundaryAttachment)[vs[1].(string)]
   291  	}).(PermissionsBoundaryAttachmentOutput)
   292  }
   293  
   294  func init() {
   295  	pulumi.RegisterInputType(reflect.TypeOf((*PermissionsBoundaryAttachmentInput)(nil)).Elem(), &PermissionsBoundaryAttachment{})
   296  	pulumi.RegisterInputType(reflect.TypeOf((*PermissionsBoundaryAttachmentArrayInput)(nil)).Elem(), PermissionsBoundaryAttachmentArray{})
   297  	pulumi.RegisterInputType(reflect.TypeOf((*PermissionsBoundaryAttachmentMapInput)(nil)).Elem(), PermissionsBoundaryAttachmentMap{})
   298  	pulumi.RegisterOutputType(PermissionsBoundaryAttachmentOutput{})
   299  	pulumi.RegisterOutputType(PermissionsBoundaryAttachmentArrayOutput{})
   300  	pulumi.RegisterOutputType(PermissionsBoundaryAttachmentMapOutput{})
   301  }