github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ecr/getLifecyclePolicyDocument.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 // Generates an ECR lifecycle policy document in JSON format. Can be used with resources such as the `ecr.LifecyclePolicy` resource. 15 // 16 // > For more information about building AWS ECR lifecycle policy documents, see the [AWS ECR Lifecycle Policy Document Guide](https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html). 17 // 18 // ## Example Usage 19 // 20 // <!--Start PulumiCodeChooser --> 21 // ```go 22 // package main 23 // 24 // import ( 25 // 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr" 27 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 28 // 29 // ) 30 // 31 // func main() { 32 // pulumi.Run(func(ctx *pulumi.Context) error { 33 // example, err := ecr.GetLifecyclePolicyDocument(ctx, &ecr.GetLifecyclePolicyDocumentArgs{ 34 // Rules: []ecr.GetLifecyclePolicyDocumentRule{ 35 // { 36 // Priority: 1, 37 // Description: pulumi.StringRef("This is a test."), 38 // Selection: { 39 // TagStatus: "tagged", 40 // TagPrefixLists: []string{ 41 // "prod", 42 // }, 43 // CountType: "imageCountMoreThan", 44 // CountNumber: 100, 45 // }, 46 // }, 47 // }, 48 // }, nil) 49 // if err != nil { 50 // return err 51 // } 52 // _, err = ecr.NewLifecyclePolicy(ctx, "example", &ecr.LifecyclePolicyArgs{ 53 // Repository: pulumi.Any(exampleAwsEcrRepository.Name), 54 // Policy: pulumi.String(example.Json), 55 // }) 56 // if err != nil { 57 // return err 58 // } 59 // return nil 60 // }) 61 // } 62 // 63 // ``` 64 // <!--End PulumiCodeChooser --> 65 func GetLifecyclePolicyDocument(ctx *pulumi.Context, args *GetLifecyclePolicyDocumentArgs, opts ...pulumi.InvokeOption) (*GetLifecyclePolicyDocumentResult, error) { 66 opts = internal.PkgInvokeDefaultOpts(opts) 67 var rv GetLifecyclePolicyDocumentResult 68 err := ctx.Invoke("aws:ecr/getLifecyclePolicyDocument:getLifecyclePolicyDocument", args, &rv, opts...) 69 if err != nil { 70 return nil, err 71 } 72 return &rv, nil 73 } 74 75 // A collection of arguments for invoking getLifecyclePolicyDocument. 76 type GetLifecyclePolicyDocumentArgs struct { 77 Rules []GetLifecyclePolicyDocumentRule `pulumi:"rules"` 78 } 79 80 // A collection of values returned by getLifecyclePolicyDocument. 81 type GetLifecyclePolicyDocumentResult struct { 82 // The provider-assigned unique ID for this managed resource. 83 Id string `pulumi:"id"` 84 // The above arguments serialized as a standard JSON policy document. 85 Json string `pulumi:"json"` 86 Rules []GetLifecyclePolicyDocumentRule `pulumi:"rules"` 87 } 88 89 func GetLifecyclePolicyDocumentOutput(ctx *pulumi.Context, args GetLifecyclePolicyDocumentOutputArgs, opts ...pulumi.InvokeOption) GetLifecyclePolicyDocumentResultOutput { 90 return pulumi.ToOutputWithContext(context.Background(), args). 91 ApplyT(func(v interface{}) (GetLifecyclePolicyDocumentResult, error) { 92 args := v.(GetLifecyclePolicyDocumentArgs) 93 r, err := GetLifecyclePolicyDocument(ctx, &args, opts...) 94 var s GetLifecyclePolicyDocumentResult 95 if r != nil { 96 s = *r 97 } 98 return s, err 99 }).(GetLifecyclePolicyDocumentResultOutput) 100 } 101 102 // A collection of arguments for invoking getLifecyclePolicyDocument. 103 type GetLifecyclePolicyDocumentOutputArgs struct { 104 Rules GetLifecyclePolicyDocumentRuleArrayInput `pulumi:"rules"` 105 } 106 107 func (GetLifecyclePolicyDocumentOutputArgs) ElementType() reflect.Type { 108 return reflect.TypeOf((*GetLifecyclePolicyDocumentArgs)(nil)).Elem() 109 } 110 111 // A collection of values returned by getLifecyclePolicyDocument. 112 type GetLifecyclePolicyDocumentResultOutput struct{ *pulumi.OutputState } 113 114 func (GetLifecyclePolicyDocumentResultOutput) ElementType() reflect.Type { 115 return reflect.TypeOf((*GetLifecyclePolicyDocumentResult)(nil)).Elem() 116 } 117 118 func (o GetLifecyclePolicyDocumentResultOutput) ToGetLifecyclePolicyDocumentResultOutput() GetLifecyclePolicyDocumentResultOutput { 119 return o 120 } 121 122 func (o GetLifecyclePolicyDocumentResultOutput) ToGetLifecyclePolicyDocumentResultOutputWithContext(ctx context.Context) GetLifecyclePolicyDocumentResultOutput { 123 return o 124 } 125 126 // The provider-assigned unique ID for this managed resource. 127 func (o GetLifecyclePolicyDocumentResultOutput) Id() pulumi.StringOutput { 128 return o.ApplyT(func(v GetLifecyclePolicyDocumentResult) string { return v.Id }).(pulumi.StringOutput) 129 } 130 131 // The above arguments serialized as a standard JSON policy document. 132 func (o GetLifecyclePolicyDocumentResultOutput) Json() pulumi.StringOutput { 133 return o.ApplyT(func(v GetLifecyclePolicyDocumentResult) string { return v.Json }).(pulumi.StringOutput) 134 } 135 136 func (o GetLifecyclePolicyDocumentResultOutput) Rules() GetLifecyclePolicyDocumentRuleArrayOutput { 137 return o.ApplyT(func(v GetLifecyclePolicyDocumentResult) []GetLifecyclePolicyDocumentRule { return v.Rules }).(GetLifecyclePolicyDocumentRuleArrayOutput) 138 } 139 140 func init() { 141 pulumi.RegisterOutputType(GetLifecyclePolicyDocumentResultOutput{}) 142 }