github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ssoadmin/applicationAssignmentConfiguration.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  // Resource for managing an AWS SSO Admin Application Assignment Configuration.
    16  //
    17  // By default, applications will require users to have an explicit assignment in order to access an application.
    18  // This resource can be used to adjust this default behavior if necessary.
    19  //
    20  // > Deleting this resource will return the assignment configuration for the application to the default AWS behavior (ie. `assignmentRequired = true`).
    21  //
    22  // ## Example Usage
    23  //
    24  // ### Basic Usage
    25  //
    26  // <!--Start PulumiCodeChooser -->
    27  // ```go
    28  // package main
    29  //
    30  // import (
    31  //
    32  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssoadmin"
    33  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    34  //
    35  // )
    36  //
    37  //	func main() {
    38  //		pulumi.Run(func(ctx *pulumi.Context) error {
    39  //			_, err := ssoadmin.NewApplicationAssignmentConfiguration(ctx, "example", &ssoadmin.ApplicationAssignmentConfigurationArgs{
    40  //				ApplicationArn:     pulumi.Any(exampleAwsSsoadminApplication.ApplicationArn),
    41  //				AssignmentRequired: pulumi.Bool(true),
    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 Application Assignment Configuration using the `id`. For example:
    56  //
    57  // ```sh
    58  // $ pulumi import aws:ssoadmin/applicationAssignmentConfiguration:ApplicationAssignmentConfiguration example arn:aws:sso::012345678901:application/id-12345678
    59  // ```
    60  type ApplicationAssignmentConfiguration struct {
    61  	pulumi.CustomResourceState
    62  
    63  	// ARN of the application.
    64  	ApplicationArn pulumi.StringOutput `pulumi:"applicationArn"`
    65  	// Indicates whether users must have an explicit assignment to access the application. If `false`, all users have access to the application.
    66  	AssignmentRequired pulumi.BoolOutput `pulumi:"assignmentRequired"`
    67  }
    68  
    69  // NewApplicationAssignmentConfiguration registers a new resource with the given unique name, arguments, and options.
    70  func NewApplicationAssignmentConfiguration(ctx *pulumi.Context,
    71  	name string, args *ApplicationAssignmentConfigurationArgs, opts ...pulumi.ResourceOption) (*ApplicationAssignmentConfiguration, error) {
    72  	if args == nil {
    73  		return nil, errors.New("missing one or more required arguments")
    74  	}
    75  
    76  	if args.ApplicationArn == nil {
    77  		return nil, errors.New("invalid value for required argument 'ApplicationArn'")
    78  	}
    79  	if args.AssignmentRequired == nil {
    80  		return nil, errors.New("invalid value for required argument 'AssignmentRequired'")
    81  	}
    82  	opts = internal.PkgResourceDefaultOpts(opts)
    83  	var resource ApplicationAssignmentConfiguration
    84  	err := ctx.RegisterResource("aws:ssoadmin/applicationAssignmentConfiguration:ApplicationAssignmentConfiguration", name, args, &resource, opts...)
    85  	if err != nil {
    86  		return nil, err
    87  	}
    88  	return &resource, nil
    89  }
    90  
    91  // GetApplicationAssignmentConfiguration gets an existing ApplicationAssignmentConfiguration resource's state with the given name, ID, and optional
    92  // state properties that are used to uniquely qualify the lookup (nil if not required).
    93  func GetApplicationAssignmentConfiguration(ctx *pulumi.Context,
    94  	name string, id pulumi.IDInput, state *ApplicationAssignmentConfigurationState, opts ...pulumi.ResourceOption) (*ApplicationAssignmentConfiguration, error) {
    95  	var resource ApplicationAssignmentConfiguration
    96  	err := ctx.ReadResource("aws:ssoadmin/applicationAssignmentConfiguration:ApplicationAssignmentConfiguration", name, id, state, &resource, opts...)
    97  	if err != nil {
    98  		return nil, err
    99  	}
   100  	return &resource, nil
   101  }
   102  
   103  // Input properties used for looking up and filtering ApplicationAssignmentConfiguration resources.
   104  type applicationAssignmentConfigurationState struct {
   105  	// ARN of the application.
   106  	ApplicationArn *string `pulumi:"applicationArn"`
   107  	// Indicates whether users must have an explicit assignment to access the application. If `false`, all users have access to the application.
   108  	AssignmentRequired *bool `pulumi:"assignmentRequired"`
   109  }
   110  
   111  type ApplicationAssignmentConfigurationState struct {
   112  	// ARN of the application.
   113  	ApplicationArn pulumi.StringPtrInput
   114  	// Indicates whether users must have an explicit assignment to access the application. If `false`, all users have access to the application.
   115  	AssignmentRequired pulumi.BoolPtrInput
   116  }
   117  
   118  func (ApplicationAssignmentConfigurationState) ElementType() reflect.Type {
   119  	return reflect.TypeOf((*applicationAssignmentConfigurationState)(nil)).Elem()
   120  }
   121  
   122  type applicationAssignmentConfigurationArgs struct {
   123  	// ARN of the application.
   124  	ApplicationArn string `pulumi:"applicationArn"`
   125  	// Indicates whether users must have an explicit assignment to access the application. If `false`, all users have access to the application.
   126  	AssignmentRequired bool `pulumi:"assignmentRequired"`
   127  }
   128  
   129  // The set of arguments for constructing a ApplicationAssignmentConfiguration resource.
   130  type ApplicationAssignmentConfigurationArgs struct {
   131  	// ARN of the application.
   132  	ApplicationArn pulumi.StringInput
   133  	// Indicates whether users must have an explicit assignment to access the application. If `false`, all users have access to the application.
   134  	AssignmentRequired pulumi.BoolInput
   135  }
   136  
   137  func (ApplicationAssignmentConfigurationArgs) ElementType() reflect.Type {
   138  	return reflect.TypeOf((*applicationAssignmentConfigurationArgs)(nil)).Elem()
   139  }
   140  
   141  type ApplicationAssignmentConfigurationInput interface {
   142  	pulumi.Input
   143  
   144  	ToApplicationAssignmentConfigurationOutput() ApplicationAssignmentConfigurationOutput
   145  	ToApplicationAssignmentConfigurationOutputWithContext(ctx context.Context) ApplicationAssignmentConfigurationOutput
   146  }
   147  
   148  func (*ApplicationAssignmentConfiguration) ElementType() reflect.Type {
   149  	return reflect.TypeOf((**ApplicationAssignmentConfiguration)(nil)).Elem()
   150  }
   151  
   152  func (i *ApplicationAssignmentConfiguration) ToApplicationAssignmentConfigurationOutput() ApplicationAssignmentConfigurationOutput {
   153  	return i.ToApplicationAssignmentConfigurationOutputWithContext(context.Background())
   154  }
   155  
   156  func (i *ApplicationAssignmentConfiguration) ToApplicationAssignmentConfigurationOutputWithContext(ctx context.Context) ApplicationAssignmentConfigurationOutput {
   157  	return pulumi.ToOutputWithContext(ctx, i).(ApplicationAssignmentConfigurationOutput)
   158  }
   159  
   160  // ApplicationAssignmentConfigurationArrayInput is an input type that accepts ApplicationAssignmentConfigurationArray and ApplicationAssignmentConfigurationArrayOutput values.
   161  // You can construct a concrete instance of `ApplicationAssignmentConfigurationArrayInput` via:
   162  //
   163  //	ApplicationAssignmentConfigurationArray{ ApplicationAssignmentConfigurationArgs{...} }
   164  type ApplicationAssignmentConfigurationArrayInput interface {
   165  	pulumi.Input
   166  
   167  	ToApplicationAssignmentConfigurationArrayOutput() ApplicationAssignmentConfigurationArrayOutput
   168  	ToApplicationAssignmentConfigurationArrayOutputWithContext(context.Context) ApplicationAssignmentConfigurationArrayOutput
   169  }
   170  
   171  type ApplicationAssignmentConfigurationArray []ApplicationAssignmentConfigurationInput
   172  
   173  func (ApplicationAssignmentConfigurationArray) ElementType() reflect.Type {
   174  	return reflect.TypeOf((*[]*ApplicationAssignmentConfiguration)(nil)).Elem()
   175  }
   176  
   177  func (i ApplicationAssignmentConfigurationArray) ToApplicationAssignmentConfigurationArrayOutput() ApplicationAssignmentConfigurationArrayOutput {
   178  	return i.ToApplicationAssignmentConfigurationArrayOutputWithContext(context.Background())
   179  }
   180  
   181  func (i ApplicationAssignmentConfigurationArray) ToApplicationAssignmentConfigurationArrayOutputWithContext(ctx context.Context) ApplicationAssignmentConfigurationArrayOutput {
   182  	return pulumi.ToOutputWithContext(ctx, i).(ApplicationAssignmentConfigurationArrayOutput)
   183  }
   184  
   185  // ApplicationAssignmentConfigurationMapInput is an input type that accepts ApplicationAssignmentConfigurationMap and ApplicationAssignmentConfigurationMapOutput values.
   186  // You can construct a concrete instance of `ApplicationAssignmentConfigurationMapInput` via:
   187  //
   188  //	ApplicationAssignmentConfigurationMap{ "key": ApplicationAssignmentConfigurationArgs{...} }
   189  type ApplicationAssignmentConfigurationMapInput interface {
   190  	pulumi.Input
   191  
   192  	ToApplicationAssignmentConfigurationMapOutput() ApplicationAssignmentConfigurationMapOutput
   193  	ToApplicationAssignmentConfigurationMapOutputWithContext(context.Context) ApplicationAssignmentConfigurationMapOutput
   194  }
   195  
   196  type ApplicationAssignmentConfigurationMap map[string]ApplicationAssignmentConfigurationInput
   197  
   198  func (ApplicationAssignmentConfigurationMap) ElementType() reflect.Type {
   199  	return reflect.TypeOf((*map[string]*ApplicationAssignmentConfiguration)(nil)).Elem()
   200  }
   201  
   202  func (i ApplicationAssignmentConfigurationMap) ToApplicationAssignmentConfigurationMapOutput() ApplicationAssignmentConfigurationMapOutput {
   203  	return i.ToApplicationAssignmentConfigurationMapOutputWithContext(context.Background())
   204  }
   205  
   206  func (i ApplicationAssignmentConfigurationMap) ToApplicationAssignmentConfigurationMapOutputWithContext(ctx context.Context) ApplicationAssignmentConfigurationMapOutput {
   207  	return pulumi.ToOutputWithContext(ctx, i).(ApplicationAssignmentConfigurationMapOutput)
   208  }
   209  
   210  type ApplicationAssignmentConfigurationOutput struct{ *pulumi.OutputState }
   211  
   212  func (ApplicationAssignmentConfigurationOutput) ElementType() reflect.Type {
   213  	return reflect.TypeOf((**ApplicationAssignmentConfiguration)(nil)).Elem()
   214  }
   215  
   216  func (o ApplicationAssignmentConfigurationOutput) ToApplicationAssignmentConfigurationOutput() ApplicationAssignmentConfigurationOutput {
   217  	return o
   218  }
   219  
   220  func (o ApplicationAssignmentConfigurationOutput) ToApplicationAssignmentConfigurationOutputWithContext(ctx context.Context) ApplicationAssignmentConfigurationOutput {
   221  	return o
   222  }
   223  
   224  // ARN of the application.
   225  func (o ApplicationAssignmentConfigurationOutput) ApplicationArn() pulumi.StringOutput {
   226  	return o.ApplyT(func(v *ApplicationAssignmentConfiguration) pulumi.StringOutput { return v.ApplicationArn }).(pulumi.StringOutput)
   227  }
   228  
   229  // Indicates whether users must have an explicit assignment to access the application. If `false`, all users have access to the application.
   230  func (o ApplicationAssignmentConfigurationOutput) AssignmentRequired() pulumi.BoolOutput {
   231  	return o.ApplyT(func(v *ApplicationAssignmentConfiguration) pulumi.BoolOutput { return v.AssignmentRequired }).(pulumi.BoolOutput)
   232  }
   233  
   234  type ApplicationAssignmentConfigurationArrayOutput struct{ *pulumi.OutputState }
   235  
   236  func (ApplicationAssignmentConfigurationArrayOutput) ElementType() reflect.Type {
   237  	return reflect.TypeOf((*[]*ApplicationAssignmentConfiguration)(nil)).Elem()
   238  }
   239  
   240  func (o ApplicationAssignmentConfigurationArrayOutput) ToApplicationAssignmentConfigurationArrayOutput() ApplicationAssignmentConfigurationArrayOutput {
   241  	return o
   242  }
   243  
   244  func (o ApplicationAssignmentConfigurationArrayOutput) ToApplicationAssignmentConfigurationArrayOutputWithContext(ctx context.Context) ApplicationAssignmentConfigurationArrayOutput {
   245  	return o
   246  }
   247  
   248  func (o ApplicationAssignmentConfigurationArrayOutput) Index(i pulumi.IntInput) ApplicationAssignmentConfigurationOutput {
   249  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ApplicationAssignmentConfiguration {
   250  		return vs[0].([]*ApplicationAssignmentConfiguration)[vs[1].(int)]
   251  	}).(ApplicationAssignmentConfigurationOutput)
   252  }
   253  
   254  type ApplicationAssignmentConfigurationMapOutput struct{ *pulumi.OutputState }
   255  
   256  func (ApplicationAssignmentConfigurationMapOutput) ElementType() reflect.Type {
   257  	return reflect.TypeOf((*map[string]*ApplicationAssignmentConfiguration)(nil)).Elem()
   258  }
   259  
   260  func (o ApplicationAssignmentConfigurationMapOutput) ToApplicationAssignmentConfigurationMapOutput() ApplicationAssignmentConfigurationMapOutput {
   261  	return o
   262  }
   263  
   264  func (o ApplicationAssignmentConfigurationMapOutput) ToApplicationAssignmentConfigurationMapOutputWithContext(ctx context.Context) ApplicationAssignmentConfigurationMapOutput {
   265  	return o
   266  }
   267  
   268  func (o ApplicationAssignmentConfigurationMapOutput) MapIndex(k pulumi.StringInput) ApplicationAssignmentConfigurationOutput {
   269  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ApplicationAssignmentConfiguration {
   270  		return vs[0].(map[string]*ApplicationAssignmentConfiguration)[vs[1].(string)]
   271  	}).(ApplicationAssignmentConfigurationOutput)
   272  }
   273  
   274  func init() {
   275  	pulumi.RegisterInputType(reflect.TypeOf((*ApplicationAssignmentConfigurationInput)(nil)).Elem(), &ApplicationAssignmentConfiguration{})
   276  	pulumi.RegisterInputType(reflect.TypeOf((*ApplicationAssignmentConfigurationArrayInput)(nil)).Elem(), ApplicationAssignmentConfigurationArray{})
   277  	pulumi.RegisterInputType(reflect.TypeOf((*ApplicationAssignmentConfigurationMapInput)(nil)).Elem(), ApplicationAssignmentConfigurationMap{})
   278  	pulumi.RegisterOutputType(ApplicationAssignmentConfigurationOutput{})
   279  	pulumi.RegisterOutputType(ApplicationAssignmentConfigurationArrayOutput{})
   280  	pulumi.RegisterOutputType(ApplicationAssignmentConfigurationMapOutput{})
   281  }