github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/neptune/globalCluster.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 neptune
     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 a Neptune Global Cluster. A global cluster consists of one primary region and up to five read-only secondary regions. You issue write operations directly to the primary cluster in the primary region and Amazon Neptune automatically replicates the data to the secondary regions using dedicated infrastructure.
    16  //
    17  // More information about Neptune Global Clusters can be found in the [Neptune User Guide](https://docs.aws.amazon.com/neptune/latest/userguide/neptune-global-database.html).
    18  //
    19  // ## Example Usage
    20  //
    21  // ### New Neptune Global Cluster
    22  //
    23  // <!--Start PulumiCodeChooser -->
    24  // ```go
    25  // package main
    26  //
    27  // import (
    28  //
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/neptune"
    30  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    31  //
    32  // )
    33  //
    34  //	func main() {
    35  //		pulumi.Run(func(ctx *pulumi.Context) error {
    36  //			example, err := neptune.NewGlobalCluster(ctx, "example", &neptune.GlobalClusterArgs{
    37  //				GlobalClusterIdentifier: pulumi.String("global-test"),
    38  //				Engine:                  pulumi.String("neptune"),
    39  //				EngineVersion:           pulumi.String("1.2.0.0"),
    40  //			})
    41  //			if err != nil {
    42  //				return err
    43  //			}
    44  //			primary, err := neptune.NewCluster(ctx, "primary", &neptune.ClusterArgs{
    45  //				Engine:                  example.Engine,
    46  //				EngineVersion:           example.EngineVersion,
    47  //				ClusterIdentifier:       pulumi.String("test-primary-cluster"),
    48  //				GlobalClusterIdentifier: example.ID(),
    49  //				NeptuneSubnetGroupName:  pulumi.String("default"),
    50  //			})
    51  //			if err != nil {
    52  //				return err
    53  //			}
    54  //			primaryClusterInstance, err := neptune.NewClusterInstance(ctx, "primary", &neptune.ClusterInstanceArgs{
    55  //				Engine:                 example.Engine,
    56  //				EngineVersion:          example.EngineVersion,
    57  //				Identifier:             pulumi.String("test-primary-cluster-instance"),
    58  //				ClusterIdentifier:      primary.ID(),
    59  //				InstanceClass:          pulumi.String("db.r5.large"),
    60  //				NeptuneSubnetGroupName: pulumi.String("default"),
    61  //			})
    62  //			if err != nil {
    63  //				return err
    64  //			}
    65  //			secondary, err := neptune.NewCluster(ctx, "secondary", &neptune.ClusterArgs{
    66  //				Engine:                  example.Engine,
    67  //				EngineVersion:           example.EngineVersion,
    68  //				ClusterIdentifier:       pulumi.String("test-secondary-cluster"),
    69  //				GlobalClusterIdentifier: example.ID(),
    70  //				NeptuneSubnetGroupName:  pulumi.String("default"),
    71  //			})
    72  //			if err != nil {
    73  //				return err
    74  //			}
    75  //			_, err = neptune.NewClusterInstance(ctx, "secondary", &neptune.ClusterInstanceArgs{
    76  //				Engine:                 example.Engine,
    77  //				EngineVersion:          example.EngineVersion,
    78  //				Identifier:             pulumi.String("test-secondary-cluster-instance"),
    79  //				ClusterIdentifier:      secondary.ID(),
    80  //				InstanceClass:          pulumi.String("db.r5.large"),
    81  //				NeptuneSubnetGroupName: pulumi.String("default"),
    82  //			}, pulumi.DependsOn([]pulumi.Resource{
    83  //				primaryClusterInstance,
    84  //			}))
    85  //			if err != nil {
    86  //				return err
    87  //			}
    88  //			return nil
    89  //		})
    90  //	}
    91  //
    92  // ```
    93  // <!--End PulumiCodeChooser -->
    94  //
    95  // ### New Global Cluster From Existing DB Cluster
    96  //
    97  // <!--Start PulumiCodeChooser -->
    98  // ```go
    99  // package main
   100  //
   101  // import (
   102  //
   103  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/neptune"
   104  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   105  //
   106  // )
   107  //
   108  //	func main() {
   109  //		pulumi.Run(func(ctx *pulumi.Context) error {
   110  //			example, err := neptune.NewCluster(ctx, "example", nil)
   111  //			if err != nil {
   112  //				return err
   113  //			}
   114  //			_, err = neptune.NewGlobalCluster(ctx, "example", &neptune.GlobalClusterArgs{
   115  //				GlobalClusterIdentifier:   pulumi.String("example"),
   116  //				SourceDbClusterIdentifier: example.Arn,
   117  //			})
   118  //			if err != nil {
   119  //				return err
   120  //			}
   121  //			return nil
   122  //		})
   123  //	}
   124  //
   125  // ```
   126  // <!--End PulumiCodeChooser -->
   127  //
   128  // ## Import
   129  //
   130  // Using `pulumi import`, import `aws_neptune_global_cluster` using the Global Cluster identifier. For example:
   131  //
   132  // ```sh
   133  // $ pulumi import aws:neptune/globalCluster:GlobalCluster example example
   134  // ```
   135  // Certain resource arguments, like `source_db_cluster_identifier`, do not have an API method for reading the information after creation. If the argument is set in the Pulumi program on an imported resource, Pulumi will always show a difference. To workaround this behavior, either omit the argument from the Pulumi program or use `ignore_changes` to hide the difference. For example:
   136  type GlobalCluster struct {
   137  	pulumi.CustomResourceState
   138  
   139  	// Global Cluster Amazon Resource Name (ARN)
   140  	Arn pulumi.StringOutput `pulumi:"arn"`
   141  	// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
   142  	DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"`
   143  	// Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Current Valid values: `neptune`. Conflicts with `sourceDbClusterIdentifier`.
   144  	Engine pulumi.StringOutput `pulumi:"engine"`
   145  	// Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will.
   146  	// * **NOTE:** Upgrading major versions is not supported.
   147  	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
   148  	// The global cluster identifier.
   149  	GlobalClusterIdentifier pulumi.StringOutput `pulumi:"globalClusterIdentifier"`
   150  	// Set of objects containing Global Cluster members.
   151  	GlobalClusterMembers GlobalClusterGlobalClusterMemberArrayOutput `pulumi:"globalClusterMembers"`
   152  	// AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.
   153  	GlobalClusterResourceId pulumi.StringOutput `pulumi:"globalClusterResourceId"`
   154  	// Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
   155  	SourceDbClusterIdentifier pulumi.StringOutput `pulumi:"sourceDbClusterIdentifier"`
   156  	Status                    pulumi.StringOutput `pulumi:"status"`
   157  	// Specifies whether the DB cluster is encrypted. The default is `false` unless `sourceDbClusterIdentifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
   158  	StorageEncrypted pulumi.BoolOutput `pulumi:"storageEncrypted"`
   159  }
   160  
   161  // NewGlobalCluster registers a new resource with the given unique name, arguments, and options.
   162  func NewGlobalCluster(ctx *pulumi.Context,
   163  	name string, args *GlobalClusterArgs, opts ...pulumi.ResourceOption) (*GlobalCluster, error) {
   164  	if args == nil {
   165  		return nil, errors.New("missing one or more required arguments")
   166  	}
   167  
   168  	if args.GlobalClusterIdentifier == nil {
   169  		return nil, errors.New("invalid value for required argument 'GlobalClusterIdentifier'")
   170  	}
   171  	opts = internal.PkgResourceDefaultOpts(opts)
   172  	var resource GlobalCluster
   173  	err := ctx.RegisterResource("aws:neptune/globalCluster:GlobalCluster", name, args, &resource, opts...)
   174  	if err != nil {
   175  		return nil, err
   176  	}
   177  	return &resource, nil
   178  }
   179  
   180  // GetGlobalCluster gets an existing GlobalCluster resource's state with the given name, ID, and optional
   181  // state properties that are used to uniquely qualify the lookup (nil if not required).
   182  func GetGlobalCluster(ctx *pulumi.Context,
   183  	name string, id pulumi.IDInput, state *GlobalClusterState, opts ...pulumi.ResourceOption) (*GlobalCluster, error) {
   184  	var resource GlobalCluster
   185  	err := ctx.ReadResource("aws:neptune/globalCluster:GlobalCluster", name, id, state, &resource, opts...)
   186  	if err != nil {
   187  		return nil, err
   188  	}
   189  	return &resource, nil
   190  }
   191  
   192  // Input properties used for looking up and filtering GlobalCluster resources.
   193  type globalClusterState struct {
   194  	// Global Cluster Amazon Resource Name (ARN)
   195  	Arn *string `pulumi:"arn"`
   196  	// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
   197  	DeletionProtection *bool `pulumi:"deletionProtection"`
   198  	// Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Current Valid values: `neptune`. Conflicts with `sourceDbClusterIdentifier`.
   199  	Engine *string `pulumi:"engine"`
   200  	// Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will.
   201  	// * **NOTE:** Upgrading major versions is not supported.
   202  	EngineVersion *string `pulumi:"engineVersion"`
   203  	// The global cluster identifier.
   204  	GlobalClusterIdentifier *string `pulumi:"globalClusterIdentifier"`
   205  	// Set of objects containing Global Cluster members.
   206  	GlobalClusterMembers []GlobalClusterGlobalClusterMember `pulumi:"globalClusterMembers"`
   207  	// AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.
   208  	GlobalClusterResourceId *string `pulumi:"globalClusterResourceId"`
   209  	// Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
   210  	SourceDbClusterIdentifier *string `pulumi:"sourceDbClusterIdentifier"`
   211  	Status                    *string `pulumi:"status"`
   212  	// Specifies whether the DB cluster is encrypted. The default is `false` unless `sourceDbClusterIdentifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
   213  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   214  }
   215  
   216  type GlobalClusterState struct {
   217  	// Global Cluster Amazon Resource Name (ARN)
   218  	Arn pulumi.StringPtrInput
   219  	// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
   220  	DeletionProtection pulumi.BoolPtrInput
   221  	// Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Current Valid values: `neptune`. Conflicts with `sourceDbClusterIdentifier`.
   222  	Engine pulumi.StringPtrInput
   223  	// Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will.
   224  	// * **NOTE:** Upgrading major versions is not supported.
   225  	EngineVersion pulumi.StringPtrInput
   226  	// The global cluster identifier.
   227  	GlobalClusterIdentifier pulumi.StringPtrInput
   228  	// Set of objects containing Global Cluster members.
   229  	GlobalClusterMembers GlobalClusterGlobalClusterMemberArrayInput
   230  	// AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.
   231  	GlobalClusterResourceId pulumi.StringPtrInput
   232  	// Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
   233  	SourceDbClusterIdentifier pulumi.StringPtrInput
   234  	Status                    pulumi.StringPtrInput
   235  	// Specifies whether the DB cluster is encrypted. The default is `false` unless `sourceDbClusterIdentifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
   236  	StorageEncrypted pulumi.BoolPtrInput
   237  }
   238  
   239  func (GlobalClusterState) ElementType() reflect.Type {
   240  	return reflect.TypeOf((*globalClusterState)(nil)).Elem()
   241  }
   242  
   243  type globalClusterArgs struct {
   244  	// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
   245  	DeletionProtection *bool `pulumi:"deletionProtection"`
   246  	// Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Current Valid values: `neptune`. Conflicts with `sourceDbClusterIdentifier`.
   247  	Engine *string `pulumi:"engine"`
   248  	// Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will.
   249  	// * **NOTE:** Upgrading major versions is not supported.
   250  	EngineVersion *string `pulumi:"engineVersion"`
   251  	// The global cluster identifier.
   252  	GlobalClusterIdentifier string `pulumi:"globalClusterIdentifier"`
   253  	// Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
   254  	SourceDbClusterIdentifier *string `pulumi:"sourceDbClusterIdentifier"`
   255  	// Specifies whether the DB cluster is encrypted. The default is `false` unless `sourceDbClusterIdentifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
   256  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   257  }
   258  
   259  // The set of arguments for constructing a GlobalCluster resource.
   260  type GlobalClusterArgs struct {
   261  	// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
   262  	DeletionProtection pulumi.BoolPtrInput
   263  	// Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Current Valid values: `neptune`. Conflicts with `sourceDbClusterIdentifier`.
   264  	Engine pulumi.StringPtrInput
   265  	// Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will.
   266  	// * **NOTE:** Upgrading major versions is not supported.
   267  	EngineVersion pulumi.StringPtrInput
   268  	// The global cluster identifier.
   269  	GlobalClusterIdentifier pulumi.StringInput
   270  	// Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
   271  	SourceDbClusterIdentifier pulumi.StringPtrInput
   272  	// Specifies whether the DB cluster is encrypted. The default is `false` unless `sourceDbClusterIdentifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
   273  	StorageEncrypted pulumi.BoolPtrInput
   274  }
   275  
   276  func (GlobalClusterArgs) ElementType() reflect.Type {
   277  	return reflect.TypeOf((*globalClusterArgs)(nil)).Elem()
   278  }
   279  
   280  type GlobalClusterInput interface {
   281  	pulumi.Input
   282  
   283  	ToGlobalClusterOutput() GlobalClusterOutput
   284  	ToGlobalClusterOutputWithContext(ctx context.Context) GlobalClusterOutput
   285  }
   286  
   287  func (*GlobalCluster) ElementType() reflect.Type {
   288  	return reflect.TypeOf((**GlobalCluster)(nil)).Elem()
   289  }
   290  
   291  func (i *GlobalCluster) ToGlobalClusterOutput() GlobalClusterOutput {
   292  	return i.ToGlobalClusterOutputWithContext(context.Background())
   293  }
   294  
   295  func (i *GlobalCluster) ToGlobalClusterOutputWithContext(ctx context.Context) GlobalClusterOutput {
   296  	return pulumi.ToOutputWithContext(ctx, i).(GlobalClusterOutput)
   297  }
   298  
   299  // GlobalClusterArrayInput is an input type that accepts GlobalClusterArray and GlobalClusterArrayOutput values.
   300  // You can construct a concrete instance of `GlobalClusterArrayInput` via:
   301  //
   302  //	GlobalClusterArray{ GlobalClusterArgs{...} }
   303  type GlobalClusterArrayInput interface {
   304  	pulumi.Input
   305  
   306  	ToGlobalClusterArrayOutput() GlobalClusterArrayOutput
   307  	ToGlobalClusterArrayOutputWithContext(context.Context) GlobalClusterArrayOutput
   308  }
   309  
   310  type GlobalClusterArray []GlobalClusterInput
   311  
   312  func (GlobalClusterArray) ElementType() reflect.Type {
   313  	return reflect.TypeOf((*[]*GlobalCluster)(nil)).Elem()
   314  }
   315  
   316  func (i GlobalClusterArray) ToGlobalClusterArrayOutput() GlobalClusterArrayOutput {
   317  	return i.ToGlobalClusterArrayOutputWithContext(context.Background())
   318  }
   319  
   320  func (i GlobalClusterArray) ToGlobalClusterArrayOutputWithContext(ctx context.Context) GlobalClusterArrayOutput {
   321  	return pulumi.ToOutputWithContext(ctx, i).(GlobalClusterArrayOutput)
   322  }
   323  
   324  // GlobalClusterMapInput is an input type that accepts GlobalClusterMap and GlobalClusterMapOutput values.
   325  // You can construct a concrete instance of `GlobalClusterMapInput` via:
   326  //
   327  //	GlobalClusterMap{ "key": GlobalClusterArgs{...} }
   328  type GlobalClusterMapInput interface {
   329  	pulumi.Input
   330  
   331  	ToGlobalClusterMapOutput() GlobalClusterMapOutput
   332  	ToGlobalClusterMapOutputWithContext(context.Context) GlobalClusterMapOutput
   333  }
   334  
   335  type GlobalClusterMap map[string]GlobalClusterInput
   336  
   337  func (GlobalClusterMap) ElementType() reflect.Type {
   338  	return reflect.TypeOf((*map[string]*GlobalCluster)(nil)).Elem()
   339  }
   340  
   341  func (i GlobalClusterMap) ToGlobalClusterMapOutput() GlobalClusterMapOutput {
   342  	return i.ToGlobalClusterMapOutputWithContext(context.Background())
   343  }
   344  
   345  func (i GlobalClusterMap) ToGlobalClusterMapOutputWithContext(ctx context.Context) GlobalClusterMapOutput {
   346  	return pulumi.ToOutputWithContext(ctx, i).(GlobalClusterMapOutput)
   347  }
   348  
   349  type GlobalClusterOutput struct{ *pulumi.OutputState }
   350  
   351  func (GlobalClusterOutput) ElementType() reflect.Type {
   352  	return reflect.TypeOf((**GlobalCluster)(nil)).Elem()
   353  }
   354  
   355  func (o GlobalClusterOutput) ToGlobalClusterOutput() GlobalClusterOutput {
   356  	return o
   357  }
   358  
   359  func (o GlobalClusterOutput) ToGlobalClusterOutputWithContext(ctx context.Context) GlobalClusterOutput {
   360  	return o
   361  }
   362  
   363  // Global Cluster Amazon Resource Name (ARN)
   364  func (o GlobalClusterOutput) Arn() pulumi.StringOutput {
   365  	return o.ApplyT(func(v *GlobalCluster) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   366  }
   367  
   368  // If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
   369  func (o GlobalClusterOutput) DeletionProtection() pulumi.BoolPtrOutput {
   370  	return o.ApplyT(func(v *GlobalCluster) pulumi.BoolPtrOutput { return v.DeletionProtection }).(pulumi.BoolPtrOutput)
   371  }
   372  
   373  // Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Current Valid values: `neptune`. Conflicts with `sourceDbClusterIdentifier`.
   374  func (o GlobalClusterOutput) Engine() pulumi.StringOutput {
   375  	return o.ApplyT(func(v *GlobalCluster) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput)
   376  }
   377  
   378  // Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will.
   379  // * **NOTE:** Upgrading major versions is not supported.
   380  func (o GlobalClusterOutput) EngineVersion() pulumi.StringOutput {
   381  	return o.ApplyT(func(v *GlobalCluster) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput)
   382  }
   383  
   384  // The global cluster identifier.
   385  func (o GlobalClusterOutput) GlobalClusterIdentifier() pulumi.StringOutput {
   386  	return o.ApplyT(func(v *GlobalCluster) pulumi.StringOutput { return v.GlobalClusterIdentifier }).(pulumi.StringOutput)
   387  }
   388  
   389  // Set of objects containing Global Cluster members.
   390  func (o GlobalClusterOutput) GlobalClusterMembers() GlobalClusterGlobalClusterMemberArrayOutput {
   391  	return o.ApplyT(func(v *GlobalCluster) GlobalClusterGlobalClusterMemberArrayOutput { return v.GlobalClusterMembers }).(GlobalClusterGlobalClusterMemberArrayOutput)
   392  }
   393  
   394  // AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed.
   395  func (o GlobalClusterOutput) GlobalClusterResourceId() pulumi.StringOutput {
   396  	return o.ApplyT(func(v *GlobalCluster) pulumi.StringOutput { return v.GlobalClusterResourceId }).(pulumi.StringOutput)
   397  }
   398  
   399  // Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
   400  func (o GlobalClusterOutput) SourceDbClusterIdentifier() pulumi.StringOutput {
   401  	return o.ApplyT(func(v *GlobalCluster) pulumi.StringOutput { return v.SourceDbClusterIdentifier }).(pulumi.StringOutput)
   402  }
   403  
   404  func (o GlobalClusterOutput) Status() pulumi.StringOutput {
   405  	return o.ApplyT(func(v *GlobalCluster) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
   406  }
   407  
   408  // Specifies whether the DB cluster is encrypted. The default is `false` unless `sourceDbClusterIdentifier` is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
   409  func (o GlobalClusterOutput) StorageEncrypted() pulumi.BoolOutput {
   410  	return o.ApplyT(func(v *GlobalCluster) pulumi.BoolOutput { return v.StorageEncrypted }).(pulumi.BoolOutput)
   411  }
   412  
   413  type GlobalClusterArrayOutput struct{ *pulumi.OutputState }
   414  
   415  func (GlobalClusterArrayOutput) ElementType() reflect.Type {
   416  	return reflect.TypeOf((*[]*GlobalCluster)(nil)).Elem()
   417  }
   418  
   419  func (o GlobalClusterArrayOutput) ToGlobalClusterArrayOutput() GlobalClusterArrayOutput {
   420  	return o
   421  }
   422  
   423  func (o GlobalClusterArrayOutput) ToGlobalClusterArrayOutputWithContext(ctx context.Context) GlobalClusterArrayOutput {
   424  	return o
   425  }
   426  
   427  func (o GlobalClusterArrayOutput) Index(i pulumi.IntInput) GlobalClusterOutput {
   428  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GlobalCluster {
   429  		return vs[0].([]*GlobalCluster)[vs[1].(int)]
   430  	}).(GlobalClusterOutput)
   431  }
   432  
   433  type GlobalClusterMapOutput struct{ *pulumi.OutputState }
   434  
   435  func (GlobalClusterMapOutput) ElementType() reflect.Type {
   436  	return reflect.TypeOf((*map[string]*GlobalCluster)(nil)).Elem()
   437  }
   438  
   439  func (o GlobalClusterMapOutput) ToGlobalClusterMapOutput() GlobalClusterMapOutput {
   440  	return o
   441  }
   442  
   443  func (o GlobalClusterMapOutput) ToGlobalClusterMapOutputWithContext(ctx context.Context) GlobalClusterMapOutput {
   444  	return o
   445  }
   446  
   447  func (o GlobalClusterMapOutput) MapIndex(k pulumi.StringInput) GlobalClusterOutput {
   448  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GlobalCluster {
   449  		return vs[0].(map[string]*GlobalCluster)[vs[1].(string)]
   450  	}).(GlobalClusterOutput)
   451  }
   452  
   453  func init() {
   454  	pulumi.RegisterInputType(reflect.TypeOf((*GlobalClusterInput)(nil)).Elem(), &GlobalCluster{})
   455  	pulumi.RegisterInputType(reflect.TypeOf((*GlobalClusterArrayInput)(nil)).Elem(), GlobalClusterArray{})
   456  	pulumi.RegisterInputType(reflect.TypeOf((*GlobalClusterMapInput)(nil)).Elem(), GlobalClusterMap{})
   457  	pulumi.RegisterOutputType(GlobalClusterOutput{})
   458  	pulumi.RegisterOutputType(GlobalClusterArrayOutput{})
   459  	pulumi.RegisterOutputType(GlobalClusterMapOutput{})
   460  }