github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ecr/replicationConfiguration.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 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 11 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 12 ) 13 14 // Provides an Elastic Container Registry Replication Configuration. 15 // 16 // ## Example Usage 17 // 18 // <!--Start PulumiCodeChooser --> 19 // ```go 20 // package main 21 // 22 // import ( 23 // 24 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // current, err := aws.GetCallerIdentity(ctx, nil, nil) 33 // if err != nil { 34 // return err 35 // } 36 // example, err := aws.GetRegions(ctx, nil, nil) 37 // if err != nil { 38 // return err 39 // } 40 // _, err = ecr.NewReplicationConfiguration(ctx, "example", &ecr.ReplicationConfigurationArgs{ 41 // ReplicationConfiguration: &ecr.ReplicationConfigurationReplicationConfigurationArgs{ 42 // Rules: ecr.ReplicationConfigurationReplicationConfigurationRuleArray{ 43 // &ecr.ReplicationConfigurationReplicationConfigurationRuleArgs{ 44 // Destinations: ecr.ReplicationConfigurationReplicationConfigurationRuleDestinationArray{ 45 // &ecr.ReplicationConfigurationReplicationConfigurationRuleDestinationArgs{ 46 // Region: pulumi.String(example.Names[0]), 47 // RegistryId: pulumi.String(current.AccountId), 48 // }, 49 // }, 50 // }, 51 // }, 52 // }, 53 // }) 54 // if err != nil { 55 // return err 56 // } 57 // return nil 58 // }) 59 // } 60 // 61 // ``` 62 // <!--End PulumiCodeChooser --> 63 // 64 // ## Multiple Region Usage 65 // 66 // <!--Start PulumiCodeChooser --> 67 // ```go 68 // package main 69 // 70 // import ( 71 // 72 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" 73 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr" 74 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 75 // 76 // ) 77 // 78 // func main() { 79 // pulumi.Run(func(ctx *pulumi.Context) error { 80 // current, err := aws.GetCallerIdentity(ctx, nil, nil) 81 // if err != nil { 82 // return err 83 // } 84 // example, err := aws.GetRegions(ctx, nil, nil) 85 // if err != nil { 86 // return err 87 // } 88 // _, err = ecr.NewReplicationConfiguration(ctx, "example", &ecr.ReplicationConfigurationArgs{ 89 // ReplicationConfiguration: &ecr.ReplicationConfigurationReplicationConfigurationArgs{ 90 // Rules: ecr.ReplicationConfigurationReplicationConfigurationRuleArray{ 91 // &ecr.ReplicationConfigurationReplicationConfigurationRuleArgs{ 92 // Destinations: ecr.ReplicationConfigurationReplicationConfigurationRuleDestinationArray{ 93 // &ecr.ReplicationConfigurationReplicationConfigurationRuleDestinationArgs{ 94 // Region: pulumi.String(example.Names[0]), 95 // RegistryId: pulumi.String(current.AccountId), 96 // }, 97 // &ecr.ReplicationConfigurationReplicationConfigurationRuleDestinationArgs{ 98 // Region: pulumi.String(example.Names[1]), 99 // RegistryId: pulumi.String(current.AccountId), 100 // }, 101 // }, 102 // }, 103 // }, 104 // }, 105 // }) 106 // if err != nil { 107 // return err 108 // } 109 // return nil 110 // }) 111 // } 112 // 113 // ``` 114 // <!--End PulumiCodeChooser --> 115 // 116 // ## Repository Filter Usage 117 // 118 // <!--Start PulumiCodeChooser --> 119 // ```go 120 // package main 121 // 122 // import ( 123 // 124 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" 125 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr" 126 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 127 // 128 // ) 129 // 130 // func main() { 131 // pulumi.Run(func(ctx *pulumi.Context) error { 132 // current, err := aws.GetCallerIdentity(ctx, nil, nil) 133 // if err != nil { 134 // return err 135 // } 136 // example, err := aws.GetRegions(ctx, nil, nil) 137 // if err != nil { 138 // return err 139 // } 140 // _, err = ecr.NewReplicationConfiguration(ctx, "example", &ecr.ReplicationConfigurationArgs{ 141 // ReplicationConfiguration: &ecr.ReplicationConfigurationReplicationConfigurationArgs{ 142 // Rules: ecr.ReplicationConfigurationReplicationConfigurationRuleArray{ 143 // &ecr.ReplicationConfigurationReplicationConfigurationRuleArgs{ 144 // Destinations: ecr.ReplicationConfigurationReplicationConfigurationRuleDestinationArray{ 145 // &ecr.ReplicationConfigurationReplicationConfigurationRuleDestinationArgs{ 146 // Region: pulumi.String(example.Names[0]), 147 // RegistryId: pulumi.String(current.AccountId), 148 // }, 149 // }, 150 // RepositoryFilters: ecr.ReplicationConfigurationReplicationConfigurationRuleRepositoryFilterArray{ 151 // &ecr.ReplicationConfigurationReplicationConfigurationRuleRepositoryFilterArgs{ 152 // Filter: pulumi.String("prod-microservice"), 153 // FilterType: pulumi.String("PREFIX_MATCH"), 154 // }, 155 // }, 156 // }, 157 // }, 158 // }, 159 // }) 160 // if err != nil { 161 // return err 162 // } 163 // return nil 164 // }) 165 // } 166 // 167 // ``` 168 // <!--End PulumiCodeChooser --> 169 // 170 // ## Import 171 // 172 // Using `pulumi import`, import ECR Replication Configuration using the `registry_id`. For example: 173 // 174 // ```sh 175 // $ pulumi import aws:ecr/replicationConfiguration:ReplicationConfiguration service 012345678912 176 // ``` 177 type ReplicationConfiguration struct { 178 pulumi.CustomResourceState 179 180 // The account ID of the destination registry to replicate to. 181 RegistryId pulumi.StringOutput `pulumi:"registryId"` 182 // Replication configuration for a registry. See Replication Configuration. 183 ReplicationConfiguration ReplicationConfigurationReplicationConfigurationPtrOutput `pulumi:"replicationConfiguration"` 184 } 185 186 // NewReplicationConfiguration registers a new resource with the given unique name, arguments, and options. 187 func NewReplicationConfiguration(ctx *pulumi.Context, 188 name string, args *ReplicationConfigurationArgs, opts ...pulumi.ResourceOption) (*ReplicationConfiguration, error) { 189 if args == nil { 190 args = &ReplicationConfigurationArgs{} 191 } 192 193 opts = internal.PkgResourceDefaultOpts(opts) 194 var resource ReplicationConfiguration 195 err := ctx.RegisterResource("aws:ecr/replicationConfiguration:ReplicationConfiguration", name, args, &resource, opts...) 196 if err != nil { 197 return nil, err 198 } 199 return &resource, nil 200 } 201 202 // GetReplicationConfiguration gets an existing ReplicationConfiguration resource's state with the given name, ID, and optional 203 // state properties that are used to uniquely qualify the lookup (nil if not required). 204 func GetReplicationConfiguration(ctx *pulumi.Context, 205 name string, id pulumi.IDInput, state *ReplicationConfigurationState, opts ...pulumi.ResourceOption) (*ReplicationConfiguration, error) { 206 var resource ReplicationConfiguration 207 err := ctx.ReadResource("aws:ecr/replicationConfiguration:ReplicationConfiguration", name, id, state, &resource, opts...) 208 if err != nil { 209 return nil, err 210 } 211 return &resource, nil 212 } 213 214 // Input properties used for looking up and filtering ReplicationConfiguration resources. 215 type replicationConfigurationState struct { 216 // The account ID of the destination registry to replicate to. 217 RegistryId *string `pulumi:"registryId"` 218 // Replication configuration for a registry. See Replication Configuration. 219 ReplicationConfiguration *ReplicationConfigurationReplicationConfiguration `pulumi:"replicationConfiguration"` 220 } 221 222 type ReplicationConfigurationState struct { 223 // The account ID of the destination registry to replicate to. 224 RegistryId pulumi.StringPtrInput 225 // Replication configuration for a registry. See Replication Configuration. 226 ReplicationConfiguration ReplicationConfigurationReplicationConfigurationPtrInput 227 } 228 229 func (ReplicationConfigurationState) ElementType() reflect.Type { 230 return reflect.TypeOf((*replicationConfigurationState)(nil)).Elem() 231 } 232 233 type replicationConfigurationArgs struct { 234 // Replication configuration for a registry. See Replication Configuration. 235 ReplicationConfiguration *ReplicationConfigurationReplicationConfiguration `pulumi:"replicationConfiguration"` 236 } 237 238 // The set of arguments for constructing a ReplicationConfiguration resource. 239 type ReplicationConfigurationArgs struct { 240 // Replication configuration for a registry. See Replication Configuration. 241 ReplicationConfiguration ReplicationConfigurationReplicationConfigurationPtrInput 242 } 243 244 func (ReplicationConfigurationArgs) ElementType() reflect.Type { 245 return reflect.TypeOf((*replicationConfigurationArgs)(nil)).Elem() 246 } 247 248 type ReplicationConfigurationInput interface { 249 pulumi.Input 250 251 ToReplicationConfigurationOutput() ReplicationConfigurationOutput 252 ToReplicationConfigurationOutputWithContext(ctx context.Context) ReplicationConfigurationOutput 253 } 254 255 func (*ReplicationConfiguration) ElementType() reflect.Type { 256 return reflect.TypeOf((**ReplicationConfiguration)(nil)).Elem() 257 } 258 259 func (i *ReplicationConfiguration) ToReplicationConfigurationOutput() ReplicationConfigurationOutput { 260 return i.ToReplicationConfigurationOutputWithContext(context.Background()) 261 } 262 263 func (i *ReplicationConfiguration) ToReplicationConfigurationOutputWithContext(ctx context.Context) ReplicationConfigurationOutput { 264 return pulumi.ToOutputWithContext(ctx, i).(ReplicationConfigurationOutput) 265 } 266 267 // ReplicationConfigurationArrayInput is an input type that accepts ReplicationConfigurationArray and ReplicationConfigurationArrayOutput values. 268 // You can construct a concrete instance of `ReplicationConfigurationArrayInput` via: 269 // 270 // ReplicationConfigurationArray{ ReplicationConfigurationArgs{...} } 271 type ReplicationConfigurationArrayInput interface { 272 pulumi.Input 273 274 ToReplicationConfigurationArrayOutput() ReplicationConfigurationArrayOutput 275 ToReplicationConfigurationArrayOutputWithContext(context.Context) ReplicationConfigurationArrayOutput 276 } 277 278 type ReplicationConfigurationArray []ReplicationConfigurationInput 279 280 func (ReplicationConfigurationArray) ElementType() reflect.Type { 281 return reflect.TypeOf((*[]*ReplicationConfiguration)(nil)).Elem() 282 } 283 284 func (i ReplicationConfigurationArray) ToReplicationConfigurationArrayOutput() ReplicationConfigurationArrayOutput { 285 return i.ToReplicationConfigurationArrayOutputWithContext(context.Background()) 286 } 287 288 func (i ReplicationConfigurationArray) ToReplicationConfigurationArrayOutputWithContext(ctx context.Context) ReplicationConfigurationArrayOutput { 289 return pulumi.ToOutputWithContext(ctx, i).(ReplicationConfigurationArrayOutput) 290 } 291 292 // ReplicationConfigurationMapInput is an input type that accepts ReplicationConfigurationMap and ReplicationConfigurationMapOutput values. 293 // You can construct a concrete instance of `ReplicationConfigurationMapInput` via: 294 // 295 // ReplicationConfigurationMap{ "key": ReplicationConfigurationArgs{...} } 296 type ReplicationConfigurationMapInput interface { 297 pulumi.Input 298 299 ToReplicationConfigurationMapOutput() ReplicationConfigurationMapOutput 300 ToReplicationConfigurationMapOutputWithContext(context.Context) ReplicationConfigurationMapOutput 301 } 302 303 type ReplicationConfigurationMap map[string]ReplicationConfigurationInput 304 305 func (ReplicationConfigurationMap) ElementType() reflect.Type { 306 return reflect.TypeOf((*map[string]*ReplicationConfiguration)(nil)).Elem() 307 } 308 309 func (i ReplicationConfigurationMap) ToReplicationConfigurationMapOutput() ReplicationConfigurationMapOutput { 310 return i.ToReplicationConfigurationMapOutputWithContext(context.Background()) 311 } 312 313 func (i ReplicationConfigurationMap) ToReplicationConfigurationMapOutputWithContext(ctx context.Context) ReplicationConfigurationMapOutput { 314 return pulumi.ToOutputWithContext(ctx, i).(ReplicationConfigurationMapOutput) 315 } 316 317 type ReplicationConfigurationOutput struct{ *pulumi.OutputState } 318 319 func (ReplicationConfigurationOutput) ElementType() reflect.Type { 320 return reflect.TypeOf((**ReplicationConfiguration)(nil)).Elem() 321 } 322 323 func (o ReplicationConfigurationOutput) ToReplicationConfigurationOutput() ReplicationConfigurationOutput { 324 return o 325 } 326 327 func (o ReplicationConfigurationOutput) ToReplicationConfigurationOutputWithContext(ctx context.Context) ReplicationConfigurationOutput { 328 return o 329 } 330 331 // The account ID of the destination registry to replicate to. 332 func (o ReplicationConfigurationOutput) RegistryId() pulumi.StringOutput { 333 return o.ApplyT(func(v *ReplicationConfiguration) pulumi.StringOutput { return v.RegistryId }).(pulumi.StringOutput) 334 } 335 336 // Replication configuration for a registry. See Replication Configuration. 337 func (o ReplicationConfigurationOutput) ReplicationConfiguration() ReplicationConfigurationReplicationConfigurationPtrOutput { 338 return o.ApplyT(func(v *ReplicationConfiguration) ReplicationConfigurationReplicationConfigurationPtrOutput { 339 return v.ReplicationConfiguration 340 }).(ReplicationConfigurationReplicationConfigurationPtrOutput) 341 } 342 343 type ReplicationConfigurationArrayOutput struct{ *pulumi.OutputState } 344 345 func (ReplicationConfigurationArrayOutput) ElementType() reflect.Type { 346 return reflect.TypeOf((*[]*ReplicationConfiguration)(nil)).Elem() 347 } 348 349 func (o ReplicationConfigurationArrayOutput) ToReplicationConfigurationArrayOutput() ReplicationConfigurationArrayOutput { 350 return o 351 } 352 353 func (o ReplicationConfigurationArrayOutput) ToReplicationConfigurationArrayOutputWithContext(ctx context.Context) ReplicationConfigurationArrayOutput { 354 return o 355 } 356 357 func (o ReplicationConfigurationArrayOutput) Index(i pulumi.IntInput) ReplicationConfigurationOutput { 358 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ReplicationConfiguration { 359 return vs[0].([]*ReplicationConfiguration)[vs[1].(int)] 360 }).(ReplicationConfigurationOutput) 361 } 362 363 type ReplicationConfigurationMapOutput struct{ *pulumi.OutputState } 364 365 func (ReplicationConfigurationMapOutput) ElementType() reflect.Type { 366 return reflect.TypeOf((*map[string]*ReplicationConfiguration)(nil)).Elem() 367 } 368 369 func (o ReplicationConfigurationMapOutput) ToReplicationConfigurationMapOutput() ReplicationConfigurationMapOutput { 370 return o 371 } 372 373 func (o ReplicationConfigurationMapOutput) ToReplicationConfigurationMapOutputWithContext(ctx context.Context) ReplicationConfigurationMapOutput { 374 return o 375 } 376 377 func (o ReplicationConfigurationMapOutput) MapIndex(k pulumi.StringInput) ReplicationConfigurationOutput { 378 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ReplicationConfiguration { 379 return vs[0].(map[string]*ReplicationConfiguration)[vs[1].(string)] 380 }).(ReplicationConfigurationOutput) 381 } 382 383 func init() { 384 pulumi.RegisterInputType(reflect.TypeOf((*ReplicationConfigurationInput)(nil)).Elem(), &ReplicationConfiguration{}) 385 pulumi.RegisterInputType(reflect.TypeOf((*ReplicationConfigurationArrayInput)(nil)).Elem(), ReplicationConfigurationArray{}) 386 pulumi.RegisterInputType(reflect.TypeOf((*ReplicationConfigurationMapInput)(nil)).Elem(), ReplicationConfigurationMap{}) 387 pulumi.RegisterOutputType(ReplicationConfigurationOutput{}) 388 pulumi.RegisterOutputType(ReplicationConfigurationArrayOutput{}) 389 pulumi.RegisterOutputType(ReplicationConfigurationMapOutput{}) 390 }