github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ecr/registryScanningConfiguration.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 ecr
     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  // Provides an Elastic Container Registry Scanning Configuration. Can't be completely deleted, instead reverts to the default `BASIC` scanning configuration without rules.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Basic example
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := ecr.NewRegistryScanningConfiguration(ctx, "configuration", &ecr.RegistryScanningConfigurationArgs{
    35  //				ScanType: pulumi.String("ENHANCED"),
    36  //				Rules: ecr.RegistryScanningConfigurationRuleArray{
    37  //					&ecr.RegistryScanningConfigurationRuleArgs{
    38  //						ScanFrequency: pulumi.String("CONTINUOUS_SCAN"),
    39  //						RepositoryFilters: ecr.RegistryScanningConfigurationRuleRepositoryFilterArray{
    40  //							&ecr.RegistryScanningConfigurationRuleRepositoryFilterArgs{
    41  //								Filter:     pulumi.String("example"),
    42  //								FilterType: pulumi.String("WILDCARD"),
    43  //							},
    44  //						},
    45  //					},
    46  //				},
    47  //			})
    48  //			if err != nil {
    49  //				return err
    50  //			}
    51  //			return nil
    52  //		})
    53  //	}
    54  //
    55  // ```
    56  // <!--End PulumiCodeChooser -->
    57  //
    58  // ### Multiple rules
    59  //
    60  // <!--Start PulumiCodeChooser -->
    61  // ```go
    62  // package main
    63  //
    64  // import (
    65  //
    66  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
    67  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    68  //
    69  // )
    70  //
    71  //	func main() {
    72  //		pulumi.Run(func(ctx *pulumi.Context) error {
    73  //			_, err := ecr.NewRegistryScanningConfiguration(ctx, "test", &ecr.RegistryScanningConfigurationArgs{
    74  //				ScanType: pulumi.String("ENHANCED"),
    75  //				Rules: ecr.RegistryScanningConfigurationRuleArray{
    76  //					&ecr.RegistryScanningConfigurationRuleArgs{
    77  //						ScanFrequency: pulumi.String("SCAN_ON_PUSH"),
    78  //						RepositoryFilters: ecr.RegistryScanningConfigurationRuleRepositoryFilterArray{
    79  //							&ecr.RegistryScanningConfigurationRuleRepositoryFilterArgs{
    80  //								Filter:     pulumi.String("*"),
    81  //								FilterType: pulumi.String("WILDCARD"),
    82  //							},
    83  //						},
    84  //					},
    85  //					&ecr.RegistryScanningConfigurationRuleArgs{
    86  //						ScanFrequency: pulumi.String("CONTINUOUS_SCAN"),
    87  //						RepositoryFilters: ecr.RegistryScanningConfigurationRuleRepositoryFilterArray{
    88  //							&ecr.RegistryScanningConfigurationRuleRepositoryFilterArgs{
    89  //								Filter:     pulumi.String("example"),
    90  //								FilterType: pulumi.String("WILDCARD"),
    91  //							},
    92  //						},
    93  //					},
    94  //				},
    95  //			})
    96  //			if err != nil {
    97  //				return err
    98  //			}
    99  //			return nil
   100  //		})
   101  //	}
   102  //
   103  // ```
   104  // <!--End PulumiCodeChooser -->
   105  //
   106  // ## Import
   107  //
   108  // Using `pulumi import`, import ECR Scanning Configurations using the `registry_id`. For example:
   109  //
   110  // ```sh
   111  // $ pulumi import aws:ecr/registryScanningConfiguration:RegistryScanningConfiguration example 012345678901
   112  // ```
   113  type RegistryScanningConfiguration struct {
   114  	pulumi.CustomResourceState
   115  
   116  	// The registry ID the scanning configuration applies to.
   117  	RegistryId pulumi.StringOutput `pulumi:"registryId"`
   118  	// One or multiple blocks specifying scanning rules to determine which repository filters are used and at what frequency scanning will occur. See below for schema.
   119  	Rules RegistryScanningConfigurationRuleArrayOutput `pulumi:"rules"`
   120  	// the scanning type to set for the registry. Can be either `ENHANCED` or `BASIC`.
   121  	ScanType pulumi.StringOutput `pulumi:"scanType"`
   122  }
   123  
   124  // NewRegistryScanningConfiguration registers a new resource with the given unique name, arguments, and options.
   125  func NewRegistryScanningConfiguration(ctx *pulumi.Context,
   126  	name string, args *RegistryScanningConfigurationArgs, opts ...pulumi.ResourceOption) (*RegistryScanningConfiguration, error) {
   127  	if args == nil {
   128  		return nil, errors.New("missing one or more required arguments")
   129  	}
   130  
   131  	if args.ScanType == nil {
   132  		return nil, errors.New("invalid value for required argument 'ScanType'")
   133  	}
   134  	opts = internal.PkgResourceDefaultOpts(opts)
   135  	var resource RegistryScanningConfiguration
   136  	err := ctx.RegisterResource("aws:ecr/registryScanningConfiguration:RegistryScanningConfiguration", name, args, &resource, opts...)
   137  	if err != nil {
   138  		return nil, err
   139  	}
   140  	return &resource, nil
   141  }
   142  
   143  // GetRegistryScanningConfiguration gets an existing RegistryScanningConfiguration resource's state with the given name, ID, and optional
   144  // state properties that are used to uniquely qualify the lookup (nil if not required).
   145  func GetRegistryScanningConfiguration(ctx *pulumi.Context,
   146  	name string, id pulumi.IDInput, state *RegistryScanningConfigurationState, opts ...pulumi.ResourceOption) (*RegistryScanningConfiguration, error) {
   147  	var resource RegistryScanningConfiguration
   148  	err := ctx.ReadResource("aws:ecr/registryScanningConfiguration:RegistryScanningConfiguration", name, id, state, &resource, opts...)
   149  	if err != nil {
   150  		return nil, err
   151  	}
   152  	return &resource, nil
   153  }
   154  
   155  // Input properties used for looking up and filtering RegistryScanningConfiguration resources.
   156  type registryScanningConfigurationState struct {
   157  	// The registry ID the scanning configuration applies to.
   158  	RegistryId *string `pulumi:"registryId"`
   159  	// One or multiple blocks specifying scanning rules to determine which repository filters are used and at what frequency scanning will occur. See below for schema.
   160  	Rules []RegistryScanningConfigurationRule `pulumi:"rules"`
   161  	// the scanning type to set for the registry. Can be either `ENHANCED` or `BASIC`.
   162  	ScanType *string `pulumi:"scanType"`
   163  }
   164  
   165  type RegistryScanningConfigurationState struct {
   166  	// The registry ID the scanning configuration applies to.
   167  	RegistryId pulumi.StringPtrInput
   168  	// One or multiple blocks specifying scanning rules to determine which repository filters are used and at what frequency scanning will occur. See below for schema.
   169  	Rules RegistryScanningConfigurationRuleArrayInput
   170  	// the scanning type to set for the registry. Can be either `ENHANCED` or `BASIC`.
   171  	ScanType pulumi.StringPtrInput
   172  }
   173  
   174  func (RegistryScanningConfigurationState) ElementType() reflect.Type {
   175  	return reflect.TypeOf((*registryScanningConfigurationState)(nil)).Elem()
   176  }
   177  
   178  type registryScanningConfigurationArgs struct {
   179  	// One or multiple blocks specifying scanning rules to determine which repository filters are used and at what frequency scanning will occur. See below for schema.
   180  	Rules []RegistryScanningConfigurationRule `pulumi:"rules"`
   181  	// the scanning type to set for the registry. Can be either `ENHANCED` or `BASIC`.
   182  	ScanType string `pulumi:"scanType"`
   183  }
   184  
   185  // The set of arguments for constructing a RegistryScanningConfiguration resource.
   186  type RegistryScanningConfigurationArgs struct {
   187  	// One or multiple blocks specifying scanning rules to determine which repository filters are used and at what frequency scanning will occur. See below for schema.
   188  	Rules RegistryScanningConfigurationRuleArrayInput
   189  	// the scanning type to set for the registry. Can be either `ENHANCED` or `BASIC`.
   190  	ScanType pulumi.StringInput
   191  }
   192  
   193  func (RegistryScanningConfigurationArgs) ElementType() reflect.Type {
   194  	return reflect.TypeOf((*registryScanningConfigurationArgs)(nil)).Elem()
   195  }
   196  
   197  type RegistryScanningConfigurationInput interface {
   198  	pulumi.Input
   199  
   200  	ToRegistryScanningConfigurationOutput() RegistryScanningConfigurationOutput
   201  	ToRegistryScanningConfigurationOutputWithContext(ctx context.Context) RegistryScanningConfigurationOutput
   202  }
   203  
   204  func (*RegistryScanningConfiguration) ElementType() reflect.Type {
   205  	return reflect.TypeOf((**RegistryScanningConfiguration)(nil)).Elem()
   206  }
   207  
   208  func (i *RegistryScanningConfiguration) ToRegistryScanningConfigurationOutput() RegistryScanningConfigurationOutput {
   209  	return i.ToRegistryScanningConfigurationOutputWithContext(context.Background())
   210  }
   211  
   212  func (i *RegistryScanningConfiguration) ToRegistryScanningConfigurationOutputWithContext(ctx context.Context) RegistryScanningConfigurationOutput {
   213  	return pulumi.ToOutputWithContext(ctx, i).(RegistryScanningConfigurationOutput)
   214  }
   215  
   216  // RegistryScanningConfigurationArrayInput is an input type that accepts RegistryScanningConfigurationArray and RegistryScanningConfigurationArrayOutput values.
   217  // You can construct a concrete instance of `RegistryScanningConfigurationArrayInput` via:
   218  //
   219  //	RegistryScanningConfigurationArray{ RegistryScanningConfigurationArgs{...} }
   220  type RegistryScanningConfigurationArrayInput interface {
   221  	pulumi.Input
   222  
   223  	ToRegistryScanningConfigurationArrayOutput() RegistryScanningConfigurationArrayOutput
   224  	ToRegistryScanningConfigurationArrayOutputWithContext(context.Context) RegistryScanningConfigurationArrayOutput
   225  }
   226  
   227  type RegistryScanningConfigurationArray []RegistryScanningConfigurationInput
   228  
   229  func (RegistryScanningConfigurationArray) ElementType() reflect.Type {
   230  	return reflect.TypeOf((*[]*RegistryScanningConfiguration)(nil)).Elem()
   231  }
   232  
   233  func (i RegistryScanningConfigurationArray) ToRegistryScanningConfigurationArrayOutput() RegistryScanningConfigurationArrayOutput {
   234  	return i.ToRegistryScanningConfigurationArrayOutputWithContext(context.Background())
   235  }
   236  
   237  func (i RegistryScanningConfigurationArray) ToRegistryScanningConfigurationArrayOutputWithContext(ctx context.Context) RegistryScanningConfigurationArrayOutput {
   238  	return pulumi.ToOutputWithContext(ctx, i).(RegistryScanningConfigurationArrayOutput)
   239  }
   240  
   241  // RegistryScanningConfigurationMapInput is an input type that accepts RegistryScanningConfigurationMap and RegistryScanningConfigurationMapOutput values.
   242  // You can construct a concrete instance of `RegistryScanningConfigurationMapInput` via:
   243  //
   244  //	RegistryScanningConfigurationMap{ "key": RegistryScanningConfigurationArgs{...} }
   245  type RegistryScanningConfigurationMapInput interface {
   246  	pulumi.Input
   247  
   248  	ToRegistryScanningConfigurationMapOutput() RegistryScanningConfigurationMapOutput
   249  	ToRegistryScanningConfigurationMapOutputWithContext(context.Context) RegistryScanningConfigurationMapOutput
   250  }
   251  
   252  type RegistryScanningConfigurationMap map[string]RegistryScanningConfigurationInput
   253  
   254  func (RegistryScanningConfigurationMap) ElementType() reflect.Type {
   255  	return reflect.TypeOf((*map[string]*RegistryScanningConfiguration)(nil)).Elem()
   256  }
   257  
   258  func (i RegistryScanningConfigurationMap) ToRegistryScanningConfigurationMapOutput() RegistryScanningConfigurationMapOutput {
   259  	return i.ToRegistryScanningConfigurationMapOutputWithContext(context.Background())
   260  }
   261  
   262  func (i RegistryScanningConfigurationMap) ToRegistryScanningConfigurationMapOutputWithContext(ctx context.Context) RegistryScanningConfigurationMapOutput {
   263  	return pulumi.ToOutputWithContext(ctx, i).(RegistryScanningConfigurationMapOutput)
   264  }
   265  
   266  type RegistryScanningConfigurationOutput struct{ *pulumi.OutputState }
   267  
   268  func (RegistryScanningConfigurationOutput) ElementType() reflect.Type {
   269  	return reflect.TypeOf((**RegistryScanningConfiguration)(nil)).Elem()
   270  }
   271  
   272  func (o RegistryScanningConfigurationOutput) ToRegistryScanningConfigurationOutput() RegistryScanningConfigurationOutput {
   273  	return o
   274  }
   275  
   276  func (o RegistryScanningConfigurationOutput) ToRegistryScanningConfigurationOutputWithContext(ctx context.Context) RegistryScanningConfigurationOutput {
   277  	return o
   278  }
   279  
   280  // The registry ID the scanning configuration applies to.
   281  func (o RegistryScanningConfigurationOutput) RegistryId() pulumi.StringOutput {
   282  	return o.ApplyT(func(v *RegistryScanningConfiguration) pulumi.StringOutput { return v.RegistryId }).(pulumi.StringOutput)
   283  }
   284  
   285  // One or multiple blocks specifying scanning rules to determine which repository filters are used and at what frequency scanning will occur. See below for schema.
   286  func (o RegistryScanningConfigurationOutput) Rules() RegistryScanningConfigurationRuleArrayOutput {
   287  	return o.ApplyT(func(v *RegistryScanningConfiguration) RegistryScanningConfigurationRuleArrayOutput { return v.Rules }).(RegistryScanningConfigurationRuleArrayOutput)
   288  }
   289  
   290  // the scanning type to set for the registry. Can be either `ENHANCED` or `BASIC`.
   291  func (o RegistryScanningConfigurationOutput) ScanType() pulumi.StringOutput {
   292  	return o.ApplyT(func(v *RegistryScanningConfiguration) pulumi.StringOutput { return v.ScanType }).(pulumi.StringOutput)
   293  }
   294  
   295  type RegistryScanningConfigurationArrayOutput struct{ *pulumi.OutputState }
   296  
   297  func (RegistryScanningConfigurationArrayOutput) ElementType() reflect.Type {
   298  	return reflect.TypeOf((*[]*RegistryScanningConfiguration)(nil)).Elem()
   299  }
   300  
   301  func (o RegistryScanningConfigurationArrayOutput) ToRegistryScanningConfigurationArrayOutput() RegistryScanningConfigurationArrayOutput {
   302  	return o
   303  }
   304  
   305  func (o RegistryScanningConfigurationArrayOutput) ToRegistryScanningConfigurationArrayOutputWithContext(ctx context.Context) RegistryScanningConfigurationArrayOutput {
   306  	return o
   307  }
   308  
   309  func (o RegistryScanningConfigurationArrayOutput) Index(i pulumi.IntInput) RegistryScanningConfigurationOutput {
   310  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *RegistryScanningConfiguration {
   311  		return vs[0].([]*RegistryScanningConfiguration)[vs[1].(int)]
   312  	}).(RegistryScanningConfigurationOutput)
   313  }
   314  
   315  type RegistryScanningConfigurationMapOutput struct{ *pulumi.OutputState }
   316  
   317  func (RegistryScanningConfigurationMapOutput) ElementType() reflect.Type {
   318  	return reflect.TypeOf((*map[string]*RegistryScanningConfiguration)(nil)).Elem()
   319  }
   320  
   321  func (o RegistryScanningConfigurationMapOutput) ToRegistryScanningConfigurationMapOutput() RegistryScanningConfigurationMapOutput {
   322  	return o
   323  }
   324  
   325  func (o RegistryScanningConfigurationMapOutput) ToRegistryScanningConfigurationMapOutputWithContext(ctx context.Context) RegistryScanningConfigurationMapOutput {
   326  	return o
   327  }
   328  
   329  func (o RegistryScanningConfigurationMapOutput) MapIndex(k pulumi.StringInput) RegistryScanningConfigurationOutput {
   330  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *RegistryScanningConfiguration {
   331  		return vs[0].(map[string]*RegistryScanningConfiguration)[vs[1].(string)]
   332  	}).(RegistryScanningConfigurationOutput)
   333  }
   334  
   335  func init() {
   336  	pulumi.RegisterInputType(reflect.TypeOf((*RegistryScanningConfigurationInput)(nil)).Elem(), &RegistryScanningConfiguration{})
   337  	pulumi.RegisterInputType(reflect.TypeOf((*RegistryScanningConfigurationArrayInput)(nil)).Elem(), RegistryScanningConfigurationArray{})
   338  	pulumi.RegisterInputType(reflect.TypeOf((*RegistryScanningConfigurationMapInput)(nil)).Elem(), RegistryScanningConfigurationMap{})
   339  	pulumi.RegisterOutputType(RegistryScanningConfigurationOutput{})
   340  	pulumi.RegisterOutputType(RegistryScanningConfigurationArrayOutput{})
   341  	pulumi.RegisterOutputType(RegistryScanningConfigurationMapOutput{})
   342  }