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 }