github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/rds/clusterSnapshot.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 rds 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 // Manages an RDS database cluster snapshot for Aurora clusters. For managing RDS database instance snapshots, see the `rds.Snapshot` resource. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // _, err := rds.NewClusterSnapshot(ctx, "example", &rds.ClusterSnapshotArgs{ 33 // DbClusterIdentifier: pulumi.Any(exampleAwsRdsCluster.Id), 34 // DbClusterSnapshotIdentifier: pulumi.String("resourcetestsnapshot1234"), 35 // }) 36 // if err != nil { 37 // return err 38 // } 39 // return nil 40 // }) 41 // } 42 // 43 // ``` 44 // <!--End PulumiCodeChooser --> 45 // 46 // ## Import 47 // 48 // Using `pulumi import`, import `aws_db_cluster_snapshot` using the cluster snapshot identifier. For example: 49 // 50 // ```sh 51 // $ pulumi import aws:rds/clusterSnapshot:ClusterSnapshot example my-cluster-snapshot 52 // ``` 53 type ClusterSnapshot struct { 54 pulumi.CustomResourceState 55 56 // Allocated storage size in gigabytes (GB). 57 AllocatedStorage pulumi.IntOutput `pulumi:"allocatedStorage"` 58 // List of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in. 59 AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"` 60 // The DB Cluster Identifier from which to take the snapshot. 61 DbClusterIdentifier pulumi.StringOutput `pulumi:"dbClusterIdentifier"` 62 // The Amazon Resource Name (ARN) for the DB Cluster Snapshot. 63 DbClusterSnapshotArn pulumi.StringOutput `pulumi:"dbClusterSnapshotArn"` 64 // The Identifier for the snapshot. 65 DbClusterSnapshotIdentifier pulumi.StringOutput `pulumi:"dbClusterSnapshotIdentifier"` 66 // Name of the database engine. 67 Engine pulumi.StringOutput `pulumi:"engine"` 68 // Version of the database engine for this DB cluster snapshot. 69 EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` 70 // If storageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot. 71 KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"` 72 // License model information for the restored DB cluster. 73 LicenseModel pulumi.StringOutput `pulumi:"licenseModel"` 74 // Port that the DB cluster was listening on at the time of the snapshot. 75 Port pulumi.IntOutput `pulumi:"port"` 76 SnapshotType pulumi.StringOutput `pulumi:"snapshotType"` 77 SourceDbClusterSnapshotArn pulumi.StringOutput `pulumi:"sourceDbClusterSnapshotArn"` 78 // The status of this DB Cluster Snapshot. 79 Status pulumi.StringOutput `pulumi:"status"` 80 // Whether the DB cluster snapshot is encrypted. 81 StorageEncrypted pulumi.BoolOutput `pulumi:"storageEncrypted"` 82 // A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 83 Tags pulumi.StringMapOutput `pulumi:"tags"` 84 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 85 // 86 // Deprecated: Please use `tags` instead. 87 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 88 // The VPC ID associated with the DB cluster snapshot. 89 VpcId pulumi.StringOutput `pulumi:"vpcId"` 90 } 91 92 // NewClusterSnapshot registers a new resource with the given unique name, arguments, and options. 93 func NewClusterSnapshot(ctx *pulumi.Context, 94 name string, args *ClusterSnapshotArgs, opts ...pulumi.ResourceOption) (*ClusterSnapshot, error) { 95 if args == nil { 96 return nil, errors.New("missing one or more required arguments") 97 } 98 99 if args.DbClusterIdentifier == nil { 100 return nil, errors.New("invalid value for required argument 'DbClusterIdentifier'") 101 } 102 if args.DbClusterSnapshotIdentifier == nil { 103 return nil, errors.New("invalid value for required argument 'DbClusterSnapshotIdentifier'") 104 } 105 opts = internal.PkgResourceDefaultOpts(opts) 106 var resource ClusterSnapshot 107 err := ctx.RegisterResource("aws:rds/clusterSnapshot:ClusterSnapshot", name, args, &resource, opts...) 108 if err != nil { 109 return nil, err 110 } 111 return &resource, nil 112 } 113 114 // GetClusterSnapshot gets an existing ClusterSnapshot resource's state with the given name, ID, and optional 115 // state properties that are used to uniquely qualify the lookup (nil if not required). 116 func GetClusterSnapshot(ctx *pulumi.Context, 117 name string, id pulumi.IDInput, state *ClusterSnapshotState, opts ...pulumi.ResourceOption) (*ClusterSnapshot, error) { 118 var resource ClusterSnapshot 119 err := ctx.ReadResource("aws:rds/clusterSnapshot:ClusterSnapshot", name, id, state, &resource, opts...) 120 if err != nil { 121 return nil, err 122 } 123 return &resource, nil 124 } 125 126 // Input properties used for looking up and filtering ClusterSnapshot resources. 127 type clusterSnapshotState struct { 128 // Allocated storage size in gigabytes (GB). 129 AllocatedStorage *int `pulumi:"allocatedStorage"` 130 // List of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in. 131 AvailabilityZones []string `pulumi:"availabilityZones"` 132 // The DB Cluster Identifier from which to take the snapshot. 133 DbClusterIdentifier *string `pulumi:"dbClusterIdentifier"` 134 // The Amazon Resource Name (ARN) for the DB Cluster Snapshot. 135 DbClusterSnapshotArn *string `pulumi:"dbClusterSnapshotArn"` 136 // The Identifier for the snapshot. 137 DbClusterSnapshotIdentifier *string `pulumi:"dbClusterSnapshotIdentifier"` 138 // Name of the database engine. 139 Engine *string `pulumi:"engine"` 140 // Version of the database engine for this DB cluster snapshot. 141 EngineVersion *string `pulumi:"engineVersion"` 142 // If storageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot. 143 KmsKeyId *string `pulumi:"kmsKeyId"` 144 // License model information for the restored DB cluster. 145 LicenseModel *string `pulumi:"licenseModel"` 146 // Port that the DB cluster was listening on at the time of the snapshot. 147 Port *int `pulumi:"port"` 148 SnapshotType *string `pulumi:"snapshotType"` 149 SourceDbClusterSnapshotArn *string `pulumi:"sourceDbClusterSnapshotArn"` 150 // The status of this DB Cluster Snapshot. 151 Status *string `pulumi:"status"` 152 // Whether the DB cluster snapshot is encrypted. 153 StorageEncrypted *bool `pulumi:"storageEncrypted"` 154 // A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 155 Tags map[string]string `pulumi:"tags"` 156 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 157 // 158 // Deprecated: Please use `tags` instead. 159 TagsAll map[string]string `pulumi:"tagsAll"` 160 // The VPC ID associated with the DB cluster snapshot. 161 VpcId *string `pulumi:"vpcId"` 162 } 163 164 type ClusterSnapshotState struct { 165 // Allocated storage size in gigabytes (GB). 166 AllocatedStorage pulumi.IntPtrInput 167 // List of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in. 168 AvailabilityZones pulumi.StringArrayInput 169 // The DB Cluster Identifier from which to take the snapshot. 170 DbClusterIdentifier pulumi.StringPtrInput 171 // The Amazon Resource Name (ARN) for the DB Cluster Snapshot. 172 DbClusterSnapshotArn pulumi.StringPtrInput 173 // The Identifier for the snapshot. 174 DbClusterSnapshotIdentifier pulumi.StringPtrInput 175 // Name of the database engine. 176 Engine pulumi.StringPtrInput 177 // Version of the database engine for this DB cluster snapshot. 178 EngineVersion pulumi.StringPtrInput 179 // If storageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot. 180 KmsKeyId pulumi.StringPtrInput 181 // License model information for the restored DB cluster. 182 LicenseModel pulumi.StringPtrInput 183 // Port that the DB cluster was listening on at the time of the snapshot. 184 Port pulumi.IntPtrInput 185 SnapshotType pulumi.StringPtrInput 186 SourceDbClusterSnapshotArn pulumi.StringPtrInput 187 // The status of this DB Cluster Snapshot. 188 Status pulumi.StringPtrInput 189 // Whether the DB cluster snapshot is encrypted. 190 StorageEncrypted pulumi.BoolPtrInput 191 // A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 192 Tags pulumi.StringMapInput 193 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 194 // 195 // Deprecated: Please use `tags` instead. 196 TagsAll pulumi.StringMapInput 197 // The VPC ID associated with the DB cluster snapshot. 198 VpcId pulumi.StringPtrInput 199 } 200 201 func (ClusterSnapshotState) ElementType() reflect.Type { 202 return reflect.TypeOf((*clusterSnapshotState)(nil)).Elem() 203 } 204 205 type clusterSnapshotArgs struct { 206 // The DB Cluster Identifier from which to take the snapshot. 207 DbClusterIdentifier string `pulumi:"dbClusterIdentifier"` 208 // The Identifier for the snapshot. 209 DbClusterSnapshotIdentifier string `pulumi:"dbClusterSnapshotIdentifier"` 210 // A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 211 Tags map[string]string `pulumi:"tags"` 212 } 213 214 // The set of arguments for constructing a ClusterSnapshot resource. 215 type ClusterSnapshotArgs struct { 216 // The DB Cluster Identifier from which to take the snapshot. 217 DbClusterIdentifier pulumi.StringInput 218 // The Identifier for the snapshot. 219 DbClusterSnapshotIdentifier pulumi.StringInput 220 // A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 221 Tags pulumi.StringMapInput 222 } 223 224 func (ClusterSnapshotArgs) ElementType() reflect.Type { 225 return reflect.TypeOf((*clusterSnapshotArgs)(nil)).Elem() 226 } 227 228 type ClusterSnapshotInput interface { 229 pulumi.Input 230 231 ToClusterSnapshotOutput() ClusterSnapshotOutput 232 ToClusterSnapshotOutputWithContext(ctx context.Context) ClusterSnapshotOutput 233 } 234 235 func (*ClusterSnapshot) ElementType() reflect.Type { 236 return reflect.TypeOf((**ClusterSnapshot)(nil)).Elem() 237 } 238 239 func (i *ClusterSnapshot) ToClusterSnapshotOutput() ClusterSnapshotOutput { 240 return i.ToClusterSnapshotOutputWithContext(context.Background()) 241 } 242 243 func (i *ClusterSnapshot) ToClusterSnapshotOutputWithContext(ctx context.Context) ClusterSnapshotOutput { 244 return pulumi.ToOutputWithContext(ctx, i).(ClusterSnapshotOutput) 245 } 246 247 // ClusterSnapshotArrayInput is an input type that accepts ClusterSnapshotArray and ClusterSnapshotArrayOutput values. 248 // You can construct a concrete instance of `ClusterSnapshotArrayInput` via: 249 // 250 // ClusterSnapshotArray{ ClusterSnapshotArgs{...} } 251 type ClusterSnapshotArrayInput interface { 252 pulumi.Input 253 254 ToClusterSnapshotArrayOutput() ClusterSnapshotArrayOutput 255 ToClusterSnapshotArrayOutputWithContext(context.Context) ClusterSnapshotArrayOutput 256 } 257 258 type ClusterSnapshotArray []ClusterSnapshotInput 259 260 func (ClusterSnapshotArray) ElementType() reflect.Type { 261 return reflect.TypeOf((*[]*ClusterSnapshot)(nil)).Elem() 262 } 263 264 func (i ClusterSnapshotArray) ToClusterSnapshotArrayOutput() ClusterSnapshotArrayOutput { 265 return i.ToClusterSnapshotArrayOutputWithContext(context.Background()) 266 } 267 268 func (i ClusterSnapshotArray) ToClusterSnapshotArrayOutputWithContext(ctx context.Context) ClusterSnapshotArrayOutput { 269 return pulumi.ToOutputWithContext(ctx, i).(ClusterSnapshotArrayOutput) 270 } 271 272 // ClusterSnapshotMapInput is an input type that accepts ClusterSnapshotMap and ClusterSnapshotMapOutput values. 273 // You can construct a concrete instance of `ClusterSnapshotMapInput` via: 274 // 275 // ClusterSnapshotMap{ "key": ClusterSnapshotArgs{...} } 276 type ClusterSnapshotMapInput interface { 277 pulumi.Input 278 279 ToClusterSnapshotMapOutput() ClusterSnapshotMapOutput 280 ToClusterSnapshotMapOutputWithContext(context.Context) ClusterSnapshotMapOutput 281 } 282 283 type ClusterSnapshotMap map[string]ClusterSnapshotInput 284 285 func (ClusterSnapshotMap) ElementType() reflect.Type { 286 return reflect.TypeOf((*map[string]*ClusterSnapshot)(nil)).Elem() 287 } 288 289 func (i ClusterSnapshotMap) ToClusterSnapshotMapOutput() ClusterSnapshotMapOutput { 290 return i.ToClusterSnapshotMapOutputWithContext(context.Background()) 291 } 292 293 func (i ClusterSnapshotMap) ToClusterSnapshotMapOutputWithContext(ctx context.Context) ClusterSnapshotMapOutput { 294 return pulumi.ToOutputWithContext(ctx, i).(ClusterSnapshotMapOutput) 295 } 296 297 type ClusterSnapshotOutput struct{ *pulumi.OutputState } 298 299 func (ClusterSnapshotOutput) ElementType() reflect.Type { 300 return reflect.TypeOf((**ClusterSnapshot)(nil)).Elem() 301 } 302 303 func (o ClusterSnapshotOutput) ToClusterSnapshotOutput() ClusterSnapshotOutput { 304 return o 305 } 306 307 func (o ClusterSnapshotOutput) ToClusterSnapshotOutputWithContext(ctx context.Context) ClusterSnapshotOutput { 308 return o 309 } 310 311 // Allocated storage size in gigabytes (GB). 312 func (o ClusterSnapshotOutput) AllocatedStorage() pulumi.IntOutput { 313 return o.ApplyT(func(v *ClusterSnapshot) pulumi.IntOutput { return v.AllocatedStorage }).(pulumi.IntOutput) 314 } 315 316 // List of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in. 317 func (o ClusterSnapshotOutput) AvailabilityZones() pulumi.StringArrayOutput { 318 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringArrayOutput { return v.AvailabilityZones }).(pulumi.StringArrayOutput) 319 } 320 321 // The DB Cluster Identifier from which to take the snapshot. 322 func (o ClusterSnapshotOutput) DbClusterIdentifier() pulumi.StringOutput { 323 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.DbClusterIdentifier }).(pulumi.StringOutput) 324 } 325 326 // The Amazon Resource Name (ARN) for the DB Cluster Snapshot. 327 func (o ClusterSnapshotOutput) DbClusterSnapshotArn() pulumi.StringOutput { 328 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.DbClusterSnapshotArn }).(pulumi.StringOutput) 329 } 330 331 // The Identifier for the snapshot. 332 func (o ClusterSnapshotOutput) DbClusterSnapshotIdentifier() pulumi.StringOutput { 333 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.DbClusterSnapshotIdentifier }).(pulumi.StringOutput) 334 } 335 336 // Name of the database engine. 337 func (o ClusterSnapshotOutput) Engine() pulumi.StringOutput { 338 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput) 339 } 340 341 // Version of the database engine for this DB cluster snapshot. 342 func (o ClusterSnapshotOutput) EngineVersion() pulumi.StringOutput { 343 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput) 344 } 345 346 // If storageEncrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot. 347 func (o ClusterSnapshotOutput) KmsKeyId() pulumi.StringOutput { 348 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput) 349 } 350 351 // License model information for the restored DB cluster. 352 func (o ClusterSnapshotOutput) LicenseModel() pulumi.StringOutput { 353 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.LicenseModel }).(pulumi.StringOutput) 354 } 355 356 // Port that the DB cluster was listening on at the time of the snapshot. 357 func (o ClusterSnapshotOutput) Port() pulumi.IntOutput { 358 return o.ApplyT(func(v *ClusterSnapshot) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput) 359 } 360 361 func (o ClusterSnapshotOutput) SnapshotType() pulumi.StringOutput { 362 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.SnapshotType }).(pulumi.StringOutput) 363 } 364 365 func (o ClusterSnapshotOutput) SourceDbClusterSnapshotArn() pulumi.StringOutput { 366 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.SourceDbClusterSnapshotArn }).(pulumi.StringOutput) 367 } 368 369 // The status of this DB Cluster Snapshot. 370 func (o ClusterSnapshotOutput) Status() pulumi.StringOutput { 371 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) 372 } 373 374 // Whether the DB cluster snapshot is encrypted. 375 func (o ClusterSnapshotOutput) StorageEncrypted() pulumi.BoolOutput { 376 return o.ApplyT(func(v *ClusterSnapshot) pulumi.BoolOutput { return v.StorageEncrypted }).(pulumi.BoolOutput) 377 } 378 379 // A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 380 func (o ClusterSnapshotOutput) Tags() pulumi.StringMapOutput { 381 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 382 } 383 384 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 385 // 386 // Deprecated: Please use `tags` instead. 387 func (o ClusterSnapshotOutput) TagsAll() pulumi.StringMapOutput { 388 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 389 } 390 391 // The VPC ID associated with the DB cluster snapshot. 392 func (o ClusterSnapshotOutput) VpcId() pulumi.StringOutput { 393 return o.ApplyT(func(v *ClusterSnapshot) pulumi.StringOutput { return v.VpcId }).(pulumi.StringOutput) 394 } 395 396 type ClusterSnapshotArrayOutput struct{ *pulumi.OutputState } 397 398 func (ClusterSnapshotArrayOutput) ElementType() reflect.Type { 399 return reflect.TypeOf((*[]*ClusterSnapshot)(nil)).Elem() 400 } 401 402 func (o ClusterSnapshotArrayOutput) ToClusterSnapshotArrayOutput() ClusterSnapshotArrayOutput { 403 return o 404 } 405 406 func (o ClusterSnapshotArrayOutput) ToClusterSnapshotArrayOutputWithContext(ctx context.Context) ClusterSnapshotArrayOutput { 407 return o 408 } 409 410 func (o ClusterSnapshotArrayOutput) Index(i pulumi.IntInput) ClusterSnapshotOutput { 411 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ClusterSnapshot { 412 return vs[0].([]*ClusterSnapshot)[vs[1].(int)] 413 }).(ClusterSnapshotOutput) 414 } 415 416 type ClusterSnapshotMapOutput struct{ *pulumi.OutputState } 417 418 func (ClusterSnapshotMapOutput) ElementType() reflect.Type { 419 return reflect.TypeOf((*map[string]*ClusterSnapshot)(nil)).Elem() 420 } 421 422 func (o ClusterSnapshotMapOutput) ToClusterSnapshotMapOutput() ClusterSnapshotMapOutput { 423 return o 424 } 425 426 func (o ClusterSnapshotMapOutput) ToClusterSnapshotMapOutputWithContext(ctx context.Context) ClusterSnapshotMapOutput { 427 return o 428 } 429 430 func (o ClusterSnapshotMapOutput) MapIndex(k pulumi.StringInput) ClusterSnapshotOutput { 431 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ClusterSnapshot { 432 return vs[0].(map[string]*ClusterSnapshot)[vs[1].(string)] 433 }).(ClusterSnapshotOutput) 434 } 435 436 func init() { 437 pulumi.RegisterInputType(reflect.TypeOf((*ClusterSnapshotInput)(nil)).Elem(), &ClusterSnapshot{}) 438 pulumi.RegisterInputType(reflect.TypeOf((*ClusterSnapshotArrayInput)(nil)).Elem(), ClusterSnapshotArray{}) 439 pulumi.RegisterInputType(reflect.TypeOf((*ClusterSnapshotMapInput)(nil)).Elem(), ClusterSnapshotMap{}) 440 pulumi.RegisterOutputType(ClusterSnapshotOutput{}) 441 pulumi.RegisterOutputType(ClusterSnapshotArrayOutput{}) 442 pulumi.RegisterOutputType(ClusterSnapshotMapOutput{}) 443 }