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 }