github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/dax/cluster.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 dax 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 // Provides a DAX Cluster 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/dax" 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 := dax.NewCluster(ctx, "bar", &dax.ClusterArgs{ 33 // ClusterName: pulumi.String("cluster-example"), 34 // IamRoleArn: pulumi.Any(example.Arn), 35 // NodeType: pulumi.String("dax.r4.large"), 36 // ReplicationFactor: pulumi.Int(1), 37 // }) 38 // if err != nil { 39 // return err 40 // } 41 // return nil 42 // }) 43 // } 44 // 45 // ``` 46 // <!--End PulumiCodeChooser --> 47 // 48 // ## Import 49 // 50 // Using `pulumi import`, import DAX Clusters using the `cluster_name`. For example: 51 // 52 // ```sh 53 // $ pulumi import aws:dax/cluster:Cluster my_cluster my_cluster 54 // ``` 55 type Cluster struct { 56 pulumi.CustomResourceState 57 58 // The ARN of the DAX cluster 59 Arn pulumi.StringOutput `pulumi:"arn"` 60 // List of Availability Zones in which the 61 // nodes will be created 62 AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"` 63 // The DNS name of the DAX cluster without the port appended 64 ClusterAddress pulumi.StringOutput `pulumi:"clusterAddress"` 65 // The type of encryption the 66 // cluster's endpoint should support. Valid values are: `NONE` and `TLS`. 67 // Default value is `NONE`. 68 ClusterEndpointEncryptionType pulumi.StringPtrOutput `pulumi:"clusterEndpointEncryptionType"` 69 // Group identifier. DAX converts this name to 70 // lowercase 71 ClusterName pulumi.StringOutput `pulumi:"clusterName"` 72 // The configuration endpoint for this DAX cluster, 73 // consisting of a DNS name and a port number 74 ConfigurationEndpoint pulumi.StringOutput `pulumi:"configurationEndpoint"` 75 // Description for the cluster 76 Description pulumi.StringPtrOutput `pulumi:"description"` 77 // A valid Amazon Resource Name (ARN) that identifies 78 // an IAM role. At runtime, DAX will assume this role and use the role's 79 // permissions to access DynamoDB on your behalf 80 IamRoleArn pulumi.StringOutput `pulumi:"iamRoleArn"` 81 // Specifies the weekly time range for when 82 // maintenance on the cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` 83 // (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: 84 // `sun:05:00-sun:09:00` 85 MaintenanceWindow pulumi.StringOutput `pulumi:"maintenanceWindow"` 86 // The compute and memory capacity of the nodes. See 87 // [Nodes](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.concepts.cluster.html#DAX.concepts.nodes) for supported node types 88 NodeType pulumi.StringOutput `pulumi:"nodeType"` 89 // List of node objects including `id`, `address`, `port` and 90 // `availabilityZone`. Referenceable e.g., as 91 // `${aws_dax_cluster.test.nodes.0.address}` 92 Nodes ClusterNodeArrayOutput `pulumi:"nodes"` 93 // An Amazon Resource Name (ARN) of an 94 // SNS topic to send DAX notifications to. Example: 95 // `arn:aws:sns:us-east-1:012345678999:my_sns_topic` 96 NotificationTopicArn pulumi.StringPtrOutput `pulumi:"notificationTopicArn"` 97 // Name of the parameter group to associate 98 // with this DAX cluster 99 ParameterGroupName pulumi.StringOutput `pulumi:"parameterGroupName"` 100 // The port used by the configuration endpoint 101 Port pulumi.IntOutput `pulumi:"port"` 102 // The number of nodes in the DAX cluster. A 103 // replication factor of 1 will create a single-node cluster, without any read 104 // replicas 105 ReplicationFactor pulumi.IntOutput `pulumi:"replicationFactor"` 106 // One or more VPC security groups associated 107 // with the cluster 108 SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"` 109 // Encrypt at rest options 110 ServerSideEncryption ClusterServerSideEncryptionPtrOutput `pulumi:"serverSideEncryption"` 111 // Name of the subnet group to be used for the 112 // cluster 113 SubnetGroupName pulumi.StringOutput `pulumi:"subnetGroupName"` 114 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 115 Tags pulumi.StringMapOutput `pulumi:"tags"` 116 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 117 // 118 // Deprecated: Please use `tags` instead. 119 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 120 } 121 122 // NewCluster registers a new resource with the given unique name, arguments, and options. 123 func NewCluster(ctx *pulumi.Context, 124 name string, args *ClusterArgs, opts ...pulumi.ResourceOption) (*Cluster, error) { 125 if args == nil { 126 return nil, errors.New("missing one or more required arguments") 127 } 128 129 if args.ClusterName == nil { 130 return nil, errors.New("invalid value for required argument 'ClusterName'") 131 } 132 if args.IamRoleArn == nil { 133 return nil, errors.New("invalid value for required argument 'IamRoleArn'") 134 } 135 if args.NodeType == nil { 136 return nil, errors.New("invalid value for required argument 'NodeType'") 137 } 138 if args.ReplicationFactor == nil { 139 return nil, errors.New("invalid value for required argument 'ReplicationFactor'") 140 } 141 opts = internal.PkgResourceDefaultOpts(opts) 142 var resource Cluster 143 err := ctx.RegisterResource("aws:dax/cluster:Cluster", name, args, &resource, opts...) 144 if err != nil { 145 return nil, err 146 } 147 return &resource, nil 148 } 149 150 // GetCluster gets an existing Cluster resource's state with the given name, ID, and optional 151 // state properties that are used to uniquely qualify the lookup (nil if not required). 152 func GetCluster(ctx *pulumi.Context, 153 name string, id pulumi.IDInput, state *ClusterState, opts ...pulumi.ResourceOption) (*Cluster, error) { 154 var resource Cluster 155 err := ctx.ReadResource("aws:dax/cluster:Cluster", name, id, state, &resource, opts...) 156 if err != nil { 157 return nil, err 158 } 159 return &resource, nil 160 } 161 162 // Input properties used for looking up and filtering Cluster resources. 163 type clusterState struct { 164 // The ARN of the DAX cluster 165 Arn *string `pulumi:"arn"` 166 // List of Availability Zones in which the 167 // nodes will be created 168 AvailabilityZones []string `pulumi:"availabilityZones"` 169 // The DNS name of the DAX cluster without the port appended 170 ClusterAddress *string `pulumi:"clusterAddress"` 171 // The type of encryption the 172 // cluster's endpoint should support. Valid values are: `NONE` and `TLS`. 173 // Default value is `NONE`. 174 ClusterEndpointEncryptionType *string `pulumi:"clusterEndpointEncryptionType"` 175 // Group identifier. DAX converts this name to 176 // lowercase 177 ClusterName *string `pulumi:"clusterName"` 178 // The configuration endpoint for this DAX cluster, 179 // consisting of a DNS name and a port number 180 ConfigurationEndpoint *string `pulumi:"configurationEndpoint"` 181 // Description for the cluster 182 Description *string `pulumi:"description"` 183 // A valid Amazon Resource Name (ARN) that identifies 184 // an IAM role. At runtime, DAX will assume this role and use the role's 185 // permissions to access DynamoDB on your behalf 186 IamRoleArn *string `pulumi:"iamRoleArn"` 187 // Specifies the weekly time range for when 188 // maintenance on the cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` 189 // (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: 190 // `sun:05:00-sun:09:00` 191 MaintenanceWindow *string `pulumi:"maintenanceWindow"` 192 // The compute and memory capacity of the nodes. See 193 // [Nodes](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.concepts.cluster.html#DAX.concepts.nodes) for supported node types 194 NodeType *string `pulumi:"nodeType"` 195 // List of node objects including `id`, `address`, `port` and 196 // `availabilityZone`. Referenceable e.g., as 197 // `${aws_dax_cluster.test.nodes.0.address}` 198 Nodes []ClusterNode `pulumi:"nodes"` 199 // An Amazon Resource Name (ARN) of an 200 // SNS topic to send DAX notifications to. Example: 201 // `arn:aws:sns:us-east-1:012345678999:my_sns_topic` 202 NotificationTopicArn *string `pulumi:"notificationTopicArn"` 203 // Name of the parameter group to associate 204 // with this DAX cluster 205 ParameterGroupName *string `pulumi:"parameterGroupName"` 206 // The port used by the configuration endpoint 207 Port *int `pulumi:"port"` 208 // The number of nodes in the DAX cluster. A 209 // replication factor of 1 will create a single-node cluster, without any read 210 // replicas 211 ReplicationFactor *int `pulumi:"replicationFactor"` 212 // One or more VPC security groups associated 213 // with the cluster 214 SecurityGroupIds []string `pulumi:"securityGroupIds"` 215 // Encrypt at rest options 216 ServerSideEncryption *ClusterServerSideEncryption `pulumi:"serverSideEncryption"` 217 // Name of the subnet group to be used for the 218 // cluster 219 SubnetGroupName *string `pulumi:"subnetGroupName"` 220 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 221 Tags map[string]string `pulumi:"tags"` 222 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 223 // 224 // Deprecated: Please use `tags` instead. 225 TagsAll map[string]string `pulumi:"tagsAll"` 226 } 227 228 type ClusterState struct { 229 // The ARN of the DAX cluster 230 Arn pulumi.StringPtrInput 231 // List of Availability Zones in which the 232 // nodes will be created 233 AvailabilityZones pulumi.StringArrayInput 234 // The DNS name of the DAX cluster without the port appended 235 ClusterAddress pulumi.StringPtrInput 236 // The type of encryption the 237 // cluster's endpoint should support. Valid values are: `NONE` and `TLS`. 238 // Default value is `NONE`. 239 ClusterEndpointEncryptionType pulumi.StringPtrInput 240 // Group identifier. DAX converts this name to 241 // lowercase 242 ClusterName pulumi.StringPtrInput 243 // The configuration endpoint for this DAX cluster, 244 // consisting of a DNS name and a port number 245 ConfigurationEndpoint pulumi.StringPtrInput 246 // Description for the cluster 247 Description pulumi.StringPtrInput 248 // A valid Amazon Resource Name (ARN) that identifies 249 // an IAM role. At runtime, DAX will assume this role and use the role's 250 // permissions to access DynamoDB on your behalf 251 IamRoleArn pulumi.StringPtrInput 252 // Specifies the weekly time range for when 253 // maintenance on the cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` 254 // (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: 255 // `sun:05:00-sun:09:00` 256 MaintenanceWindow pulumi.StringPtrInput 257 // The compute and memory capacity of the nodes. See 258 // [Nodes](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.concepts.cluster.html#DAX.concepts.nodes) for supported node types 259 NodeType pulumi.StringPtrInput 260 // List of node objects including `id`, `address`, `port` and 261 // `availabilityZone`. Referenceable e.g., as 262 // `${aws_dax_cluster.test.nodes.0.address}` 263 Nodes ClusterNodeArrayInput 264 // An Amazon Resource Name (ARN) of an 265 // SNS topic to send DAX notifications to. Example: 266 // `arn:aws:sns:us-east-1:012345678999:my_sns_topic` 267 NotificationTopicArn pulumi.StringPtrInput 268 // Name of the parameter group to associate 269 // with this DAX cluster 270 ParameterGroupName pulumi.StringPtrInput 271 // The port used by the configuration endpoint 272 Port pulumi.IntPtrInput 273 // The number of nodes in the DAX cluster. A 274 // replication factor of 1 will create a single-node cluster, without any read 275 // replicas 276 ReplicationFactor pulumi.IntPtrInput 277 // One or more VPC security groups associated 278 // with the cluster 279 SecurityGroupIds pulumi.StringArrayInput 280 // Encrypt at rest options 281 ServerSideEncryption ClusterServerSideEncryptionPtrInput 282 // Name of the subnet group to be used for the 283 // cluster 284 SubnetGroupName pulumi.StringPtrInput 285 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 286 Tags pulumi.StringMapInput 287 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 288 // 289 // Deprecated: Please use `tags` instead. 290 TagsAll pulumi.StringMapInput 291 } 292 293 func (ClusterState) ElementType() reflect.Type { 294 return reflect.TypeOf((*clusterState)(nil)).Elem() 295 } 296 297 type clusterArgs struct { 298 // List of Availability Zones in which the 299 // nodes will be created 300 AvailabilityZones []string `pulumi:"availabilityZones"` 301 // The type of encryption the 302 // cluster's endpoint should support. Valid values are: `NONE` and `TLS`. 303 // Default value is `NONE`. 304 ClusterEndpointEncryptionType *string `pulumi:"clusterEndpointEncryptionType"` 305 // Group identifier. DAX converts this name to 306 // lowercase 307 ClusterName string `pulumi:"clusterName"` 308 // Description for the cluster 309 Description *string `pulumi:"description"` 310 // A valid Amazon Resource Name (ARN) that identifies 311 // an IAM role. At runtime, DAX will assume this role and use the role's 312 // permissions to access DynamoDB on your behalf 313 IamRoleArn string `pulumi:"iamRoleArn"` 314 // Specifies the weekly time range for when 315 // maintenance on the cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` 316 // (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: 317 // `sun:05:00-sun:09:00` 318 MaintenanceWindow *string `pulumi:"maintenanceWindow"` 319 // The compute and memory capacity of the nodes. See 320 // [Nodes](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.concepts.cluster.html#DAX.concepts.nodes) for supported node types 321 NodeType string `pulumi:"nodeType"` 322 // An Amazon Resource Name (ARN) of an 323 // SNS topic to send DAX notifications to. Example: 324 // `arn:aws:sns:us-east-1:012345678999:my_sns_topic` 325 NotificationTopicArn *string `pulumi:"notificationTopicArn"` 326 // Name of the parameter group to associate 327 // with this DAX cluster 328 ParameterGroupName *string `pulumi:"parameterGroupName"` 329 // The number of nodes in the DAX cluster. A 330 // replication factor of 1 will create a single-node cluster, without any read 331 // replicas 332 ReplicationFactor int `pulumi:"replicationFactor"` 333 // One or more VPC security groups associated 334 // with the cluster 335 SecurityGroupIds []string `pulumi:"securityGroupIds"` 336 // Encrypt at rest options 337 ServerSideEncryption *ClusterServerSideEncryption `pulumi:"serverSideEncryption"` 338 // Name of the subnet group to be used for the 339 // cluster 340 SubnetGroupName *string `pulumi:"subnetGroupName"` 341 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 342 Tags map[string]string `pulumi:"tags"` 343 } 344 345 // The set of arguments for constructing a Cluster resource. 346 type ClusterArgs struct { 347 // List of Availability Zones in which the 348 // nodes will be created 349 AvailabilityZones pulumi.StringArrayInput 350 // The type of encryption the 351 // cluster's endpoint should support. Valid values are: `NONE` and `TLS`. 352 // Default value is `NONE`. 353 ClusterEndpointEncryptionType pulumi.StringPtrInput 354 // Group identifier. DAX converts this name to 355 // lowercase 356 ClusterName pulumi.StringInput 357 // Description for the cluster 358 Description pulumi.StringPtrInput 359 // A valid Amazon Resource Name (ARN) that identifies 360 // an IAM role. At runtime, DAX will assume this role and use the role's 361 // permissions to access DynamoDB on your behalf 362 IamRoleArn pulumi.StringInput 363 // Specifies the weekly time range for when 364 // maintenance on the cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` 365 // (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: 366 // `sun:05:00-sun:09:00` 367 MaintenanceWindow pulumi.StringPtrInput 368 // The compute and memory capacity of the nodes. See 369 // [Nodes](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.concepts.cluster.html#DAX.concepts.nodes) for supported node types 370 NodeType pulumi.StringInput 371 // An Amazon Resource Name (ARN) of an 372 // SNS topic to send DAX notifications to. Example: 373 // `arn:aws:sns:us-east-1:012345678999:my_sns_topic` 374 NotificationTopicArn pulumi.StringPtrInput 375 // Name of the parameter group to associate 376 // with this DAX cluster 377 ParameterGroupName pulumi.StringPtrInput 378 // The number of nodes in the DAX cluster. A 379 // replication factor of 1 will create a single-node cluster, without any read 380 // replicas 381 ReplicationFactor pulumi.IntInput 382 // One or more VPC security groups associated 383 // with the cluster 384 SecurityGroupIds pulumi.StringArrayInput 385 // Encrypt at rest options 386 ServerSideEncryption ClusterServerSideEncryptionPtrInput 387 // Name of the subnet group to be used for the 388 // cluster 389 SubnetGroupName pulumi.StringPtrInput 390 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 391 Tags pulumi.StringMapInput 392 } 393 394 func (ClusterArgs) ElementType() reflect.Type { 395 return reflect.TypeOf((*clusterArgs)(nil)).Elem() 396 } 397 398 type ClusterInput interface { 399 pulumi.Input 400 401 ToClusterOutput() ClusterOutput 402 ToClusterOutputWithContext(ctx context.Context) ClusterOutput 403 } 404 405 func (*Cluster) ElementType() reflect.Type { 406 return reflect.TypeOf((**Cluster)(nil)).Elem() 407 } 408 409 func (i *Cluster) ToClusterOutput() ClusterOutput { 410 return i.ToClusterOutputWithContext(context.Background()) 411 } 412 413 func (i *Cluster) ToClusterOutputWithContext(ctx context.Context) ClusterOutput { 414 return pulumi.ToOutputWithContext(ctx, i).(ClusterOutput) 415 } 416 417 // ClusterArrayInput is an input type that accepts ClusterArray and ClusterArrayOutput values. 418 // You can construct a concrete instance of `ClusterArrayInput` via: 419 // 420 // ClusterArray{ ClusterArgs{...} } 421 type ClusterArrayInput interface { 422 pulumi.Input 423 424 ToClusterArrayOutput() ClusterArrayOutput 425 ToClusterArrayOutputWithContext(context.Context) ClusterArrayOutput 426 } 427 428 type ClusterArray []ClusterInput 429 430 func (ClusterArray) ElementType() reflect.Type { 431 return reflect.TypeOf((*[]*Cluster)(nil)).Elem() 432 } 433 434 func (i ClusterArray) ToClusterArrayOutput() ClusterArrayOutput { 435 return i.ToClusterArrayOutputWithContext(context.Background()) 436 } 437 438 func (i ClusterArray) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput { 439 return pulumi.ToOutputWithContext(ctx, i).(ClusterArrayOutput) 440 } 441 442 // ClusterMapInput is an input type that accepts ClusterMap and ClusterMapOutput values. 443 // You can construct a concrete instance of `ClusterMapInput` via: 444 // 445 // ClusterMap{ "key": ClusterArgs{...} } 446 type ClusterMapInput interface { 447 pulumi.Input 448 449 ToClusterMapOutput() ClusterMapOutput 450 ToClusterMapOutputWithContext(context.Context) ClusterMapOutput 451 } 452 453 type ClusterMap map[string]ClusterInput 454 455 func (ClusterMap) ElementType() reflect.Type { 456 return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem() 457 } 458 459 func (i ClusterMap) ToClusterMapOutput() ClusterMapOutput { 460 return i.ToClusterMapOutputWithContext(context.Background()) 461 } 462 463 func (i ClusterMap) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput { 464 return pulumi.ToOutputWithContext(ctx, i).(ClusterMapOutput) 465 } 466 467 type ClusterOutput struct{ *pulumi.OutputState } 468 469 func (ClusterOutput) ElementType() reflect.Type { 470 return reflect.TypeOf((**Cluster)(nil)).Elem() 471 } 472 473 func (o ClusterOutput) ToClusterOutput() ClusterOutput { 474 return o 475 } 476 477 func (o ClusterOutput) ToClusterOutputWithContext(ctx context.Context) ClusterOutput { 478 return o 479 } 480 481 // The ARN of the DAX cluster 482 func (o ClusterOutput) Arn() pulumi.StringOutput { 483 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 484 } 485 486 // List of Availability Zones in which the 487 // nodes will be created 488 func (o ClusterOutput) AvailabilityZones() pulumi.StringArrayOutput { 489 return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.AvailabilityZones }).(pulumi.StringArrayOutput) 490 } 491 492 // The DNS name of the DAX cluster without the port appended 493 func (o ClusterOutput) ClusterAddress() pulumi.StringOutput { 494 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterAddress }).(pulumi.StringOutput) 495 } 496 497 // The type of encryption the 498 // cluster's endpoint should support. Valid values are: `NONE` and `TLS`. 499 // Default value is `NONE`. 500 func (o ClusterOutput) ClusterEndpointEncryptionType() pulumi.StringPtrOutput { 501 return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.ClusterEndpointEncryptionType }).(pulumi.StringPtrOutput) 502 } 503 504 // Group identifier. DAX converts this name to 505 // lowercase 506 func (o ClusterOutput) ClusterName() pulumi.StringOutput { 507 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterName }).(pulumi.StringOutput) 508 } 509 510 // The configuration endpoint for this DAX cluster, 511 // consisting of a DNS name and a port number 512 func (o ClusterOutput) ConfigurationEndpoint() pulumi.StringOutput { 513 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ConfigurationEndpoint }).(pulumi.StringOutput) 514 } 515 516 // Description for the cluster 517 func (o ClusterOutput) Description() pulumi.StringPtrOutput { 518 return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 519 } 520 521 // A valid Amazon Resource Name (ARN) that identifies 522 // an IAM role. At runtime, DAX will assume this role and use the role's 523 // permissions to access DynamoDB on your behalf 524 func (o ClusterOutput) IamRoleArn() pulumi.StringOutput { 525 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.IamRoleArn }).(pulumi.StringOutput) 526 } 527 528 // Specifies the weekly time range for when 529 // maintenance on the cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` 530 // (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: 531 // `sun:05:00-sun:09:00` 532 func (o ClusterOutput) MaintenanceWindow() pulumi.StringOutput { 533 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.MaintenanceWindow }).(pulumi.StringOutput) 534 } 535 536 // The compute and memory capacity of the nodes. See 537 // [Nodes](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.concepts.cluster.html#DAX.concepts.nodes) for supported node types 538 func (o ClusterOutput) NodeType() pulumi.StringOutput { 539 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.NodeType }).(pulumi.StringOutput) 540 } 541 542 // List of node objects including `id`, `address`, `port` and 543 // `availabilityZone`. Referenceable e.g., as 544 // `${aws_dax_cluster.test.nodes.0.address}` 545 func (o ClusterOutput) Nodes() ClusterNodeArrayOutput { 546 return o.ApplyT(func(v *Cluster) ClusterNodeArrayOutput { return v.Nodes }).(ClusterNodeArrayOutput) 547 } 548 549 // An Amazon Resource Name (ARN) of an 550 // SNS topic to send DAX notifications to. Example: 551 // `arn:aws:sns:us-east-1:012345678999:my_sns_topic` 552 func (o ClusterOutput) NotificationTopicArn() pulumi.StringPtrOutput { 553 return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.NotificationTopicArn }).(pulumi.StringPtrOutput) 554 } 555 556 // Name of the parameter group to associate 557 // with this DAX cluster 558 func (o ClusterOutput) ParameterGroupName() pulumi.StringOutput { 559 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ParameterGroupName }).(pulumi.StringOutput) 560 } 561 562 // The port used by the configuration endpoint 563 func (o ClusterOutput) Port() pulumi.IntOutput { 564 return o.ApplyT(func(v *Cluster) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput) 565 } 566 567 // The number of nodes in the DAX cluster. A 568 // replication factor of 1 will create a single-node cluster, without any read 569 // replicas 570 func (o ClusterOutput) ReplicationFactor() pulumi.IntOutput { 571 return o.ApplyT(func(v *Cluster) pulumi.IntOutput { return v.ReplicationFactor }).(pulumi.IntOutput) 572 } 573 574 // One or more VPC security groups associated 575 // with the cluster 576 func (o ClusterOutput) SecurityGroupIds() pulumi.StringArrayOutput { 577 return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) 578 } 579 580 // Encrypt at rest options 581 func (o ClusterOutput) ServerSideEncryption() ClusterServerSideEncryptionPtrOutput { 582 return o.ApplyT(func(v *Cluster) ClusterServerSideEncryptionPtrOutput { return v.ServerSideEncryption }).(ClusterServerSideEncryptionPtrOutput) 583 } 584 585 // Name of the subnet group to be used for the 586 // cluster 587 func (o ClusterOutput) SubnetGroupName() pulumi.StringOutput { 588 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.SubnetGroupName }).(pulumi.StringOutput) 589 } 590 591 // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 592 func (o ClusterOutput) Tags() pulumi.StringMapOutput { 593 return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 594 } 595 596 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 597 // 598 // Deprecated: Please use `tags` instead. 599 func (o ClusterOutput) TagsAll() pulumi.StringMapOutput { 600 return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 601 } 602 603 type ClusterArrayOutput struct{ *pulumi.OutputState } 604 605 func (ClusterArrayOutput) ElementType() reflect.Type { 606 return reflect.TypeOf((*[]*Cluster)(nil)).Elem() 607 } 608 609 func (o ClusterArrayOutput) ToClusterArrayOutput() ClusterArrayOutput { 610 return o 611 } 612 613 func (o ClusterArrayOutput) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput { 614 return o 615 } 616 617 func (o ClusterArrayOutput) Index(i pulumi.IntInput) ClusterOutput { 618 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Cluster { 619 return vs[0].([]*Cluster)[vs[1].(int)] 620 }).(ClusterOutput) 621 } 622 623 type ClusterMapOutput struct{ *pulumi.OutputState } 624 625 func (ClusterMapOutput) ElementType() reflect.Type { 626 return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem() 627 } 628 629 func (o ClusterMapOutput) ToClusterMapOutput() ClusterMapOutput { 630 return o 631 } 632 633 func (o ClusterMapOutput) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput { 634 return o 635 } 636 637 func (o ClusterMapOutput) MapIndex(k pulumi.StringInput) ClusterOutput { 638 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Cluster { 639 return vs[0].(map[string]*Cluster)[vs[1].(string)] 640 }).(ClusterOutput) 641 } 642 643 func init() { 644 pulumi.RegisterInputType(reflect.TypeOf((*ClusterInput)(nil)).Elem(), &Cluster{}) 645 pulumi.RegisterInputType(reflect.TypeOf((*ClusterArrayInput)(nil)).Elem(), ClusterArray{}) 646 pulumi.RegisterInputType(reflect.TypeOf((*ClusterMapInput)(nil)).Elem(), ClusterMap{}) 647 pulumi.RegisterOutputType(ClusterOutput{}) 648 pulumi.RegisterOutputType(ClusterArrayOutput{}) 649 pulumi.RegisterOutputType(ClusterMapOutput{}) 650 }