github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/opensearch/serverlessLifecyclePolicy.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 opensearch 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 // Resource for managing an AWS OpenSearch Serverless Lifecycle Policy. See AWS documentation for [lifecycle policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-lifecycle.html). 16 // 17 // ## Example Usage 18 // 19 // ### Basic Usage 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "encoding/json" 28 // 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch" 30 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 31 // 32 // ) 33 // 34 // func main() { 35 // pulumi.Run(func(ctx *pulumi.Context) error { 36 // tmpJSON0, err := json.Marshal(map[string]interface{}{ 37 // "Rules": []interface{}{ 38 // map[string]interface{}{ 39 // "ResourceType": "index", 40 // "Resource": []string{ 41 // "index/autoparts-inventory/*", 42 // }, 43 // "MinIndexRetention": "81d", 44 // }, 45 // map[string]interface{}{ 46 // "ResourceType": "index", 47 // "Resource": []string{ 48 // "index/sales/orders*", 49 // }, 50 // "NoMinIndexRetention": true, 51 // }, 52 // }, 53 // }) 54 // if err != nil { 55 // return err 56 // } 57 // json0 := string(tmpJSON0) 58 // _, err = opensearch.NewServerlessLifecyclePolicy(ctx, "example", &opensearch.ServerlessLifecyclePolicyArgs{ 59 // Name: pulumi.String("example"), 60 // Type: pulumi.String("retention"), 61 // Policy: pulumi.String(json0), 62 // }) 63 // if err != nil { 64 // return err 65 // } 66 // return nil 67 // }) 68 // } 69 // 70 // ``` 71 // <!--End PulumiCodeChooser --> 72 // 73 // ## Import 74 // 75 // Using `pulumi import`, import OpenSearch Serverless Lifecycle Policy using the `name` and `type` arguments separated by a slash (`/`). For example: 76 // 77 // ```sh 78 // $ pulumi import aws:opensearch/serverlessLifecyclePolicy:ServerlessLifecyclePolicy example example/retention 79 // ``` 80 type ServerlessLifecyclePolicy struct { 81 pulumi.CustomResourceState 82 83 // Description of the policy. 84 Description pulumi.StringPtrOutput `pulumi:"description"` 85 // Name of the policy. 86 Name pulumi.StringOutput `pulumi:"name"` 87 // JSON policy document to use as the content for the new policy. 88 Policy pulumi.StringOutput `pulumi:"policy"` 89 // Version of the policy. 90 PolicyVersion pulumi.StringOutput `pulumi:"policyVersion"` 91 // Type of lifecycle policy. Must be `retention`. 92 // 93 // The following arguments are optional: 94 Type pulumi.StringOutput `pulumi:"type"` 95 } 96 97 // NewServerlessLifecyclePolicy registers a new resource with the given unique name, arguments, and options. 98 func NewServerlessLifecyclePolicy(ctx *pulumi.Context, 99 name string, args *ServerlessLifecyclePolicyArgs, opts ...pulumi.ResourceOption) (*ServerlessLifecyclePolicy, error) { 100 if args == nil { 101 return nil, errors.New("missing one or more required arguments") 102 } 103 104 if args.Policy == nil { 105 return nil, errors.New("invalid value for required argument 'Policy'") 106 } 107 if args.Type == nil { 108 return nil, errors.New("invalid value for required argument 'Type'") 109 } 110 opts = internal.PkgResourceDefaultOpts(opts) 111 var resource ServerlessLifecyclePolicy 112 err := ctx.RegisterResource("aws:opensearch/serverlessLifecyclePolicy:ServerlessLifecyclePolicy", name, args, &resource, opts...) 113 if err != nil { 114 return nil, err 115 } 116 return &resource, nil 117 } 118 119 // GetServerlessLifecyclePolicy gets an existing ServerlessLifecyclePolicy resource's state with the given name, ID, and optional 120 // state properties that are used to uniquely qualify the lookup (nil if not required). 121 func GetServerlessLifecyclePolicy(ctx *pulumi.Context, 122 name string, id pulumi.IDInput, state *ServerlessLifecyclePolicyState, opts ...pulumi.ResourceOption) (*ServerlessLifecyclePolicy, error) { 123 var resource ServerlessLifecyclePolicy 124 err := ctx.ReadResource("aws:opensearch/serverlessLifecyclePolicy:ServerlessLifecyclePolicy", name, id, state, &resource, opts...) 125 if err != nil { 126 return nil, err 127 } 128 return &resource, nil 129 } 130 131 // Input properties used for looking up and filtering ServerlessLifecyclePolicy resources. 132 type serverlessLifecyclePolicyState struct { 133 // Description of the policy. 134 Description *string `pulumi:"description"` 135 // Name of the policy. 136 Name *string `pulumi:"name"` 137 // JSON policy document to use as the content for the new policy. 138 Policy *string `pulumi:"policy"` 139 // Version of the policy. 140 PolicyVersion *string `pulumi:"policyVersion"` 141 // Type of lifecycle policy. Must be `retention`. 142 // 143 // The following arguments are optional: 144 Type *string `pulumi:"type"` 145 } 146 147 type ServerlessLifecyclePolicyState struct { 148 // Description of the policy. 149 Description pulumi.StringPtrInput 150 // Name of the policy. 151 Name pulumi.StringPtrInput 152 // JSON policy document to use as the content for the new policy. 153 Policy pulumi.StringPtrInput 154 // Version of the policy. 155 PolicyVersion pulumi.StringPtrInput 156 // Type of lifecycle policy. Must be `retention`. 157 // 158 // The following arguments are optional: 159 Type pulumi.StringPtrInput 160 } 161 162 func (ServerlessLifecyclePolicyState) ElementType() reflect.Type { 163 return reflect.TypeOf((*serverlessLifecyclePolicyState)(nil)).Elem() 164 } 165 166 type serverlessLifecyclePolicyArgs struct { 167 // Description of the policy. 168 Description *string `pulumi:"description"` 169 // Name of the policy. 170 Name *string `pulumi:"name"` 171 // JSON policy document to use as the content for the new policy. 172 Policy string `pulumi:"policy"` 173 // Type of lifecycle policy. Must be `retention`. 174 // 175 // The following arguments are optional: 176 Type string `pulumi:"type"` 177 } 178 179 // The set of arguments for constructing a ServerlessLifecyclePolicy resource. 180 type ServerlessLifecyclePolicyArgs struct { 181 // Description of the policy. 182 Description pulumi.StringPtrInput 183 // Name of the policy. 184 Name pulumi.StringPtrInput 185 // JSON policy document to use as the content for the new policy. 186 Policy pulumi.StringInput 187 // Type of lifecycle policy. Must be `retention`. 188 // 189 // The following arguments are optional: 190 Type pulumi.StringInput 191 } 192 193 func (ServerlessLifecyclePolicyArgs) ElementType() reflect.Type { 194 return reflect.TypeOf((*serverlessLifecyclePolicyArgs)(nil)).Elem() 195 } 196 197 type ServerlessLifecyclePolicyInput interface { 198 pulumi.Input 199 200 ToServerlessLifecyclePolicyOutput() ServerlessLifecyclePolicyOutput 201 ToServerlessLifecyclePolicyOutputWithContext(ctx context.Context) ServerlessLifecyclePolicyOutput 202 } 203 204 func (*ServerlessLifecyclePolicy) ElementType() reflect.Type { 205 return reflect.TypeOf((**ServerlessLifecyclePolicy)(nil)).Elem() 206 } 207 208 func (i *ServerlessLifecyclePolicy) ToServerlessLifecyclePolicyOutput() ServerlessLifecyclePolicyOutput { 209 return i.ToServerlessLifecyclePolicyOutputWithContext(context.Background()) 210 } 211 212 func (i *ServerlessLifecyclePolicy) ToServerlessLifecyclePolicyOutputWithContext(ctx context.Context) ServerlessLifecyclePolicyOutput { 213 return pulumi.ToOutputWithContext(ctx, i).(ServerlessLifecyclePolicyOutput) 214 } 215 216 // ServerlessLifecyclePolicyArrayInput is an input type that accepts ServerlessLifecyclePolicyArray and ServerlessLifecyclePolicyArrayOutput values. 217 // You can construct a concrete instance of `ServerlessLifecyclePolicyArrayInput` via: 218 // 219 // ServerlessLifecyclePolicyArray{ ServerlessLifecyclePolicyArgs{...} } 220 type ServerlessLifecyclePolicyArrayInput interface { 221 pulumi.Input 222 223 ToServerlessLifecyclePolicyArrayOutput() ServerlessLifecyclePolicyArrayOutput 224 ToServerlessLifecyclePolicyArrayOutputWithContext(context.Context) ServerlessLifecyclePolicyArrayOutput 225 } 226 227 type ServerlessLifecyclePolicyArray []ServerlessLifecyclePolicyInput 228 229 func (ServerlessLifecyclePolicyArray) ElementType() reflect.Type { 230 return reflect.TypeOf((*[]*ServerlessLifecyclePolicy)(nil)).Elem() 231 } 232 233 func (i ServerlessLifecyclePolicyArray) ToServerlessLifecyclePolicyArrayOutput() ServerlessLifecyclePolicyArrayOutput { 234 return i.ToServerlessLifecyclePolicyArrayOutputWithContext(context.Background()) 235 } 236 237 func (i ServerlessLifecyclePolicyArray) ToServerlessLifecyclePolicyArrayOutputWithContext(ctx context.Context) ServerlessLifecyclePolicyArrayOutput { 238 return pulumi.ToOutputWithContext(ctx, i).(ServerlessLifecyclePolicyArrayOutput) 239 } 240 241 // ServerlessLifecyclePolicyMapInput is an input type that accepts ServerlessLifecyclePolicyMap and ServerlessLifecyclePolicyMapOutput values. 242 // You can construct a concrete instance of `ServerlessLifecyclePolicyMapInput` via: 243 // 244 // ServerlessLifecyclePolicyMap{ "key": ServerlessLifecyclePolicyArgs{...} } 245 type ServerlessLifecyclePolicyMapInput interface { 246 pulumi.Input 247 248 ToServerlessLifecyclePolicyMapOutput() ServerlessLifecyclePolicyMapOutput 249 ToServerlessLifecyclePolicyMapOutputWithContext(context.Context) ServerlessLifecyclePolicyMapOutput 250 } 251 252 type ServerlessLifecyclePolicyMap map[string]ServerlessLifecyclePolicyInput 253 254 func (ServerlessLifecyclePolicyMap) ElementType() reflect.Type { 255 return reflect.TypeOf((*map[string]*ServerlessLifecyclePolicy)(nil)).Elem() 256 } 257 258 func (i ServerlessLifecyclePolicyMap) ToServerlessLifecyclePolicyMapOutput() ServerlessLifecyclePolicyMapOutput { 259 return i.ToServerlessLifecyclePolicyMapOutputWithContext(context.Background()) 260 } 261 262 func (i ServerlessLifecyclePolicyMap) ToServerlessLifecyclePolicyMapOutputWithContext(ctx context.Context) ServerlessLifecyclePolicyMapOutput { 263 return pulumi.ToOutputWithContext(ctx, i).(ServerlessLifecyclePolicyMapOutput) 264 } 265 266 type ServerlessLifecyclePolicyOutput struct{ *pulumi.OutputState } 267 268 func (ServerlessLifecyclePolicyOutput) ElementType() reflect.Type { 269 return reflect.TypeOf((**ServerlessLifecyclePolicy)(nil)).Elem() 270 } 271 272 func (o ServerlessLifecyclePolicyOutput) ToServerlessLifecyclePolicyOutput() ServerlessLifecyclePolicyOutput { 273 return o 274 } 275 276 func (o ServerlessLifecyclePolicyOutput) ToServerlessLifecyclePolicyOutputWithContext(ctx context.Context) ServerlessLifecyclePolicyOutput { 277 return o 278 } 279 280 // Description of the policy. 281 func (o ServerlessLifecyclePolicyOutput) Description() pulumi.StringPtrOutput { 282 return o.ApplyT(func(v *ServerlessLifecyclePolicy) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 283 } 284 285 // Name of the policy. 286 func (o ServerlessLifecyclePolicyOutput) Name() pulumi.StringOutput { 287 return o.ApplyT(func(v *ServerlessLifecyclePolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 288 } 289 290 // JSON policy document to use as the content for the new policy. 291 func (o ServerlessLifecyclePolicyOutput) Policy() pulumi.StringOutput { 292 return o.ApplyT(func(v *ServerlessLifecyclePolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) 293 } 294 295 // Version of the policy. 296 func (o ServerlessLifecyclePolicyOutput) PolicyVersion() pulumi.StringOutput { 297 return o.ApplyT(func(v *ServerlessLifecyclePolicy) pulumi.StringOutput { return v.PolicyVersion }).(pulumi.StringOutput) 298 } 299 300 // Type of lifecycle policy. Must be `retention`. 301 // 302 // The following arguments are optional: 303 func (o ServerlessLifecyclePolicyOutput) Type() pulumi.StringOutput { 304 return o.ApplyT(func(v *ServerlessLifecyclePolicy) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) 305 } 306 307 type ServerlessLifecyclePolicyArrayOutput struct{ *pulumi.OutputState } 308 309 func (ServerlessLifecyclePolicyArrayOutput) ElementType() reflect.Type { 310 return reflect.TypeOf((*[]*ServerlessLifecyclePolicy)(nil)).Elem() 311 } 312 313 func (o ServerlessLifecyclePolicyArrayOutput) ToServerlessLifecyclePolicyArrayOutput() ServerlessLifecyclePolicyArrayOutput { 314 return o 315 } 316 317 func (o ServerlessLifecyclePolicyArrayOutput) ToServerlessLifecyclePolicyArrayOutputWithContext(ctx context.Context) ServerlessLifecyclePolicyArrayOutput { 318 return o 319 } 320 321 func (o ServerlessLifecyclePolicyArrayOutput) Index(i pulumi.IntInput) ServerlessLifecyclePolicyOutput { 322 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ServerlessLifecyclePolicy { 323 return vs[0].([]*ServerlessLifecyclePolicy)[vs[1].(int)] 324 }).(ServerlessLifecyclePolicyOutput) 325 } 326 327 type ServerlessLifecyclePolicyMapOutput struct{ *pulumi.OutputState } 328 329 func (ServerlessLifecyclePolicyMapOutput) ElementType() reflect.Type { 330 return reflect.TypeOf((*map[string]*ServerlessLifecyclePolicy)(nil)).Elem() 331 } 332 333 func (o ServerlessLifecyclePolicyMapOutput) ToServerlessLifecyclePolicyMapOutput() ServerlessLifecyclePolicyMapOutput { 334 return o 335 } 336 337 func (o ServerlessLifecyclePolicyMapOutput) ToServerlessLifecyclePolicyMapOutputWithContext(ctx context.Context) ServerlessLifecyclePolicyMapOutput { 338 return o 339 } 340 341 func (o ServerlessLifecyclePolicyMapOutput) MapIndex(k pulumi.StringInput) ServerlessLifecyclePolicyOutput { 342 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ServerlessLifecyclePolicy { 343 return vs[0].(map[string]*ServerlessLifecyclePolicy)[vs[1].(string)] 344 }).(ServerlessLifecyclePolicyOutput) 345 } 346 347 func init() { 348 pulumi.RegisterInputType(reflect.TypeOf((*ServerlessLifecyclePolicyInput)(nil)).Elem(), &ServerlessLifecyclePolicy{}) 349 pulumi.RegisterInputType(reflect.TypeOf((*ServerlessLifecyclePolicyArrayInput)(nil)).Elem(), ServerlessLifecyclePolicyArray{}) 350 pulumi.RegisterInputType(reflect.TypeOf((*ServerlessLifecyclePolicyMapInput)(nil)).Elem(), ServerlessLifecyclePolicyMap{}) 351 pulumi.RegisterOutputType(ServerlessLifecyclePolicyOutput{}) 352 pulumi.RegisterOutputType(ServerlessLifecyclePolicyArrayOutput{}) 353 pulumi.RegisterOutputType(ServerlessLifecyclePolicyMapOutput{}) 354 }