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  }