github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/inspector2/organizationConfiguration.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 inspector2
     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 Amazon Inspector Organization Configuration.
    16  //
    17  // > **NOTE:** In order for this resource to work, the account you use must be an Inspector Delegated Admin Account.
    18  //
    19  // > **NOTE:** When this resource is deleted, EC2, ECR, Lambda, and Lambda code scans will no longer be automatically enabled for new members of your Amazon Inspector organization.
    20  //
    21  // ## Example Usage
    22  //
    23  // ### Basic Usage
    24  //
    25  // <!--Start PulumiCodeChooser -->
    26  // ```go
    27  // package main
    28  //
    29  // import (
    30  //
    31  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/inspector2"
    32  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    33  //
    34  // )
    35  //
    36  //	func main() {
    37  //		pulumi.Run(func(ctx *pulumi.Context) error {
    38  //			_, err := inspector2.NewOrganizationConfiguration(ctx, "example", &inspector2.OrganizationConfigurationArgs{
    39  //				AutoEnable: &inspector2.OrganizationConfigurationAutoEnableArgs{
    40  //					Ec2:        pulumi.Bool(true),
    41  //					Ecr:        pulumi.Bool(false),
    42  //					Lambda:     pulumi.Bool(true),
    43  //					LambdaCode: pulumi.Bool(true),
    44  //				},
    45  //			})
    46  //			if err != nil {
    47  //				return err
    48  //			}
    49  //			return nil
    50  //		})
    51  //	}
    52  //
    53  // ```
    54  // <!--End PulumiCodeChooser -->
    55  type OrganizationConfiguration struct {
    56  	pulumi.CustomResourceState
    57  
    58  	// Configuration block for auto enabling. See below.
    59  	AutoEnable OrganizationConfigurationAutoEnableOutput `pulumi:"autoEnable"`
    60  	// Whether your configuration reached the max account limit.
    61  	MaxAccountLimitReached pulumi.BoolOutput `pulumi:"maxAccountLimitReached"`
    62  }
    63  
    64  // NewOrganizationConfiguration registers a new resource with the given unique name, arguments, and options.
    65  func NewOrganizationConfiguration(ctx *pulumi.Context,
    66  	name string, args *OrganizationConfigurationArgs, opts ...pulumi.ResourceOption) (*OrganizationConfiguration, error) {
    67  	if args == nil {
    68  		return nil, errors.New("missing one or more required arguments")
    69  	}
    70  
    71  	if args.AutoEnable == nil {
    72  		return nil, errors.New("invalid value for required argument 'AutoEnable'")
    73  	}
    74  	opts = internal.PkgResourceDefaultOpts(opts)
    75  	var resource OrganizationConfiguration
    76  	err := ctx.RegisterResource("aws:inspector2/organizationConfiguration:OrganizationConfiguration", name, args, &resource, opts...)
    77  	if err != nil {
    78  		return nil, err
    79  	}
    80  	return &resource, nil
    81  }
    82  
    83  // GetOrganizationConfiguration gets an existing OrganizationConfiguration resource's state with the given name, ID, and optional
    84  // state properties that are used to uniquely qualify the lookup (nil if not required).
    85  func GetOrganizationConfiguration(ctx *pulumi.Context,
    86  	name string, id pulumi.IDInput, state *OrganizationConfigurationState, opts ...pulumi.ResourceOption) (*OrganizationConfiguration, error) {
    87  	var resource OrganizationConfiguration
    88  	err := ctx.ReadResource("aws:inspector2/organizationConfiguration:OrganizationConfiguration", name, id, state, &resource, opts...)
    89  	if err != nil {
    90  		return nil, err
    91  	}
    92  	return &resource, nil
    93  }
    94  
    95  // Input properties used for looking up and filtering OrganizationConfiguration resources.
    96  type organizationConfigurationState struct {
    97  	// Configuration block for auto enabling. See below.
    98  	AutoEnable *OrganizationConfigurationAutoEnable `pulumi:"autoEnable"`
    99  	// Whether your configuration reached the max account limit.
   100  	MaxAccountLimitReached *bool `pulumi:"maxAccountLimitReached"`
   101  }
   102  
   103  type OrganizationConfigurationState struct {
   104  	// Configuration block for auto enabling. See below.
   105  	AutoEnable OrganizationConfigurationAutoEnablePtrInput
   106  	// Whether your configuration reached the max account limit.
   107  	MaxAccountLimitReached pulumi.BoolPtrInput
   108  }
   109  
   110  func (OrganizationConfigurationState) ElementType() reflect.Type {
   111  	return reflect.TypeOf((*organizationConfigurationState)(nil)).Elem()
   112  }
   113  
   114  type organizationConfigurationArgs struct {
   115  	// Configuration block for auto enabling. See below.
   116  	AutoEnable OrganizationConfigurationAutoEnable `pulumi:"autoEnable"`
   117  }
   118  
   119  // The set of arguments for constructing a OrganizationConfiguration resource.
   120  type OrganizationConfigurationArgs struct {
   121  	// Configuration block for auto enabling. See below.
   122  	AutoEnable OrganizationConfigurationAutoEnableInput
   123  }
   124  
   125  func (OrganizationConfigurationArgs) ElementType() reflect.Type {
   126  	return reflect.TypeOf((*organizationConfigurationArgs)(nil)).Elem()
   127  }
   128  
   129  type OrganizationConfigurationInput interface {
   130  	pulumi.Input
   131  
   132  	ToOrganizationConfigurationOutput() OrganizationConfigurationOutput
   133  	ToOrganizationConfigurationOutputWithContext(ctx context.Context) OrganizationConfigurationOutput
   134  }
   135  
   136  func (*OrganizationConfiguration) ElementType() reflect.Type {
   137  	return reflect.TypeOf((**OrganizationConfiguration)(nil)).Elem()
   138  }
   139  
   140  func (i *OrganizationConfiguration) ToOrganizationConfigurationOutput() OrganizationConfigurationOutput {
   141  	return i.ToOrganizationConfigurationOutputWithContext(context.Background())
   142  }
   143  
   144  func (i *OrganizationConfiguration) ToOrganizationConfigurationOutputWithContext(ctx context.Context) OrganizationConfigurationOutput {
   145  	return pulumi.ToOutputWithContext(ctx, i).(OrganizationConfigurationOutput)
   146  }
   147  
   148  // OrganizationConfigurationArrayInput is an input type that accepts OrganizationConfigurationArray and OrganizationConfigurationArrayOutput values.
   149  // You can construct a concrete instance of `OrganizationConfigurationArrayInput` via:
   150  //
   151  //	OrganizationConfigurationArray{ OrganizationConfigurationArgs{...} }
   152  type OrganizationConfigurationArrayInput interface {
   153  	pulumi.Input
   154  
   155  	ToOrganizationConfigurationArrayOutput() OrganizationConfigurationArrayOutput
   156  	ToOrganizationConfigurationArrayOutputWithContext(context.Context) OrganizationConfigurationArrayOutput
   157  }
   158  
   159  type OrganizationConfigurationArray []OrganizationConfigurationInput
   160  
   161  func (OrganizationConfigurationArray) ElementType() reflect.Type {
   162  	return reflect.TypeOf((*[]*OrganizationConfiguration)(nil)).Elem()
   163  }
   164  
   165  func (i OrganizationConfigurationArray) ToOrganizationConfigurationArrayOutput() OrganizationConfigurationArrayOutput {
   166  	return i.ToOrganizationConfigurationArrayOutputWithContext(context.Background())
   167  }
   168  
   169  func (i OrganizationConfigurationArray) ToOrganizationConfigurationArrayOutputWithContext(ctx context.Context) OrganizationConfigurationArrayOutput {
   170  	return pulumi.ToOutputWithContext(ctx, i).(OrganizationConfigurationArrayOutput)
   171  }
   172  
   173  // OrganizationConfigurationMapInput is an input type that accepts OrganizationConfigurationMap and OrganizationConfigurationMapOutput values.
   174  // You can construct a concrete instance of `OrganizationConfigurationMapInput` via:
   175  //
   176  //	OrganizationConfigurationMap{ "key": OrganizationConfigurationArgs{...} }
   177  type OrganizationConfigurationMapInput interface {
   178  	pulumi.Input
   179  
   180  	ToOrganizationConfigurationMapOutput() OrganizationConfigurationMapOutput
   181  	ToOrganizationConfigurationMapOutputWithContext(context.Context) OrganizationConfigurationMapOutput
   182  }
   183  
   184  type OrganizationConfigurationMap map[string]OrganizationConfigurationInput
   185  
   186  func (OrganizationConfigurationMap) ElementType() reflect.Type {
   187  	return reflect.TypeOf((*map[string]*OrganizationConfiguration)(nil)).Elem()
   188  }
   189  
   190  func (i OrganizationConfigurationMap) ToOrganizationConfigurationMapOutput() OrganizationConfigurationMapOutput {
   191  	return i.ToOrganizationConfigurationMapOutputWithContext(context.Background())
   192  }
   193  
   194  func (i OrganizationConfigurationMap) ToOrganizationConfigurationMapOutputWithContext(ctx context.Context) OrganizationConfigurationMapOutput {
   195  	return pulumi.ToOutputWithContext(ctx, i).(OrganizationConfigurationMapOutput)
   196  }
   197  
   198  type OrganizationConfigurationOutput struct{ *pulumi.OutputState }
   199  
   200  func (OrganizationConfigurationOutput) ElementType() reflect.Type {
   201  	return reflect.TypeOf((**OrganizationConfiguration)(nil)).Elem()
   202  }
   203  
   204  func (o OrganizationConfigurationOutput) ToOrganizationConfigurationOutput() OrganizationConfigurationOutput {
   205  	return o
   206  }
   207  
   208  func (o OrganizationConfigurationOutput) ToOrganizationConfigurationOutputWithContext(ctx context.Context) OrganizationConfigurationOutput {
   209  	return o
   210  }
   211  
   212  // Configuration block for auto enabling. See below.
   213  func (o OrganizationConfigurationOutput) AutoEnable() OrganizationConfigurationAutoEnableOutput {
   214  	return o.ApplyT(func(v *OrganizationConfiguration) OrganizationConfigurationAutoEnableOutput { return v.AutoEnable }).(OrganizationConfigurationAutoEnableOutput)
   215  }
   216  
   217  // Whether your configuration reached the max account limit.
   218  func (o OrganizationConfigurationOutput) MaxAccountLimitReached() pulumi.BoolOutput {
   219  	return o.ApplyT(func(v *OrganizationConfiguration) pulumi.BoolOutput { return v.MaxAccountLimitReached }).(pulumi.BoolOutput)
   220  }
   221  
   222  type OrganizationConfigurationArrayOutput struct{ *pulumi.OutputState }
   223  
   224  func (OrganizationConfigurationArrayOutput) ElementType() reflect.Type {
   225  	return reflect.TypeOf((*[]*OrganizationConfiguration)(nil)).Elem()
   226  }
   227  
   228  func (o OrganizationConfigurationArrayOutput) ToOrganizationConfigurationArrayOutput() OrganizationConfigurationArrayOutput {
   229  	return o
   230  }
   231  
   232  func (o OrganizationConfigurationArrayOutput) ToOrganizationConfigurationArrayOutputWithContext(ctx context.Context) OrganizationConfigurationArrayOutput {
   233  	return o
   234  }
   235  
   236  func (o OrganizationConfigurationArrayOutput) Index(i pulumi.IntInput) OrganizationConfigurationOutput {
   237  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OrganizationConfiguration {
   238  		return vs[0].([]*OrganizationConfiguration)[vs[1].(int)]
   239  	}).(OrganizationConfigurationOutput)
   240  }
   241  
   242  type OrganizationConfigurationMapOutput struct{ *pulumi.OutputState }
   243  
   244  func (OrganizationConfigurationMapOutput) ElementType() reflect.Type {
   245  	return reflect.TypeOf((*map[string]*OrganizationConfiguration)(nil)).Elem()
   246  }
   247  
   248  func (o OrganizationConfigurationMapOutput) ToOrganizationConfigurationMapOutput() OrganizationConfigurationMapOutput {
   249  	return o
   250  }
   251  
   252  func (o OrganizationConfigurationMapOutput) ToOrganizationConfigurationMapOutputWithContext(ctx context.Context) OrganizationConfigurationMapOutput {
   253  	return o
   254  }
   255  
   256  func (o OrganizationConfigurationMapOutput) MapIndex(k pulumi.StringInput) OrganizationConfigurationOutput {
   257  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OrganizationConfiguration {
   258  		return vs[0].(map[string]*OrganizationConfiguration)[vs[1].(string)]
   259  	}).(OrganizationConfigurationOutput)
   260  }
   261  
   262  func init() {
   263  	pulumi.RegisterInputType(reflect.TypeOf((*OrganizationConfigurationInput)(nil)).Elem(), &OrganizationConfiguration{})
   264  	pulumi.RegisterInputType(reflect.TypeOf((*OrganizationConfigurationArrayInput)(nil)).Elem(), OrganizationConfigurationArray{})
   265  	pulumi.RegisterInputType(reflect.TypeOf((*OrganizationConfigurationMapInput)(nil)).Elem(), OrganizationConfigurationMap{})
   266  	pulumi.RegisterOutputType(OrganizationConfigurationOutput{})
   267  	pulumi.RegisterOutputType(OrganizationConfigurationArrayOutput{})
   268  	pulumi.RegisterOutputType(OrganizationConfigurationMapOutput{})
   269  }