github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/appmesh/virtualNode.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 appmesh
     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 an AWS App Mesh virtual node resource.
    16  //
    17  // ## Breaking Changes
    18  //
    19  // Because of backward incompatible API changes (read [here](https://github.com/awslabs/aws-app-mesh-examples/issues/92)), `appmesh.VirtualNode` resource definitions created with provider versions earlier than v2.3.0 will need to be modified:
    20  //
    21  // * Rename the `serviceName` attribute of the `dns` object to `hostname`.
    22  //
    23  // * Replace the `backends` attribute of the `spec` object with one or more `backend` configuration blocks,
    24  // setting `virtualServiceName` to the name of the service.
    25  //
    26  // The state associated with existing resources will automatically be migrated.
    27  //
    28  // ## Example Usage
    29  //
    30  // ### Basic
    31  //
    32  // <!--Start PulumiCodeChooser -->
    33  // ```go
    34  // package main
    35  //
    36  // import (
    37  //
    38  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/appmesh"
    39  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    40  //
    41  // )
    42  //
    43  //	func main() {
    44  //		pulumi.Run(func(ctx *pulumi.Context) error {
    45  //			_, err := appmesh.NewVirtualNode(ctx, "serviceb1", &appmesh.VirtualNodeArgs{
    46  //				Name:     pulumi.String("serviceBv1"),
    47  //				MeshName: pulumi.Any(simple.Id),
    48  //				Spec: &appmesh.VirtualNodeSpecArgs{
    49  //					Backends: appmesh.VirtualNodeSpecBackendArray{
    50  //						&appmesh.VirtualNodeSpecBackendArgs{
    51  //							VirtualService: &appmesh.VirtualNodeSpecBackendVirtualServiceArgs{
    52  //								VirtualServiceName: pulumi.String("servicea.simpleapp.local"),
    53  //							},
    54  //						},
    55  //					},
    56  //					Listeners: appmesh.VirtualNodeSpecListenerArray{
    57  //						&appmesh.VirtualNodeSpecListenerArgs{
    58  //							PortMapping: &appmesh.VirtualNodeSpecListenerPortMappingArgs{
    59  //								Port:     pulumi.Int(8080),
    60  //								Protocol: pulumi.String("http"),
    61  //							},
    62  //						},
    63  //					},
    64  //					ServiceDiscovery: &appmesh.VirtualNodeSpecServiceDiscoveryArgs{
    65  //						Dns: &appmesh.VirtualNodeSpecServiceDiscoveryDnsArgs{
    66  //							Hostname: pulumi.String("serviceb.simpleapp.local"),
    67  //						},
    68  //					},
    69  //				},
    70  //			})
    71  //			if err != nil {
    72  //				return err
    73  //			}
    74  //			return nil
    75  //		})
    76  //	}
    77  //
    78  // ```
    79  // <!--End PulumiCodeChooser -->
    80  //
    81  // ### AWS Cloud Map Service Discovery
    82  //
    83  // <!--Start PulumiCodeChooser -->
    84  // ```go
    85  // package main
    86  //
    87  // import (
    88  //
    89  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/appmesh"
    90  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicediscovery"
    91  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    92  //
    93  // )
    94  //
    95  //	func main() {
    96  //		pulumi.Run(func(ctx *pulumi.Context) error {
    97  //			example, err := servicediscovery.NewHttpNamespace(ctx, "example", &servicediscovery.HttpNamespaceArgs{
    98  //				Name: pulumi.String("example-ns"),
    99  //			})
   100  //			if err != nil {
   101  //				return err
   102  //			}
   103  //			_, err = appmesh.NewVirtualNode(ctx, "serviceb1", &appmesh.VirtualNodeArgs{
   104  //				Name:     pulumi.String("serviceBv1"),
   105  //				MeshName: pulumi.Any(simple.Id),
   106  //				Spec: &appmesh.VirtualNodeSpecArgs{
   107  //					Backends: appmesh.VirtualNodeSpecBackendArray{
   108  //						&appmesh.VirtualNodeSpecBackendArgs{
   109  //							VirtualService: &appmesh.VirtualNodeSpecBackendVirtualServiceArgs{
   110  //								VirtualServiceName: pulumi.String("servicea.simpleapp.local"),
   111  //							},
   112  //						},
   113  //					},
   114  //					Listeners: appmesh.VirtualNodeSpecListenerArray{
   115  //						&appmesh.VirtualNodeSpecListenerArgs{
   116  //							PortMapping: &appmesh.VirtualNodeSpecListenerPortMappingArgs{
   117  //								Port:     pulumi.Int(8080),
   118  //								Protocol: pulumi.String("http"),
   119  //							},
   120  //						},
   121  //					},
   122  //					ServiceDiscovery: &appmesh.VirtualNodeSpecServiceDiscoveryArgs{
   123  //						AwsCloudMap: &appmesh.VirtualNodeSpecServiceDiscoveryAwsCloudMapArgs{
   124  //							Attributes: pulumi.StringMap{
   125  //								"stack": pulumi.String("blue"),
   126  //							},
   127  //							ServiceName:   pulumi.String("serviceb1"),
   128  //							NamespaceName: example.Name,
   129  //						},
   130  //					},
   131  //				},
   132  //			})
   133  //			if err != nil {
   134  //				return err
   135  //			}
   136  //			return nil
   137  //		})
   138  //	}
   139  //
   140  // ```
   141  // <!--End PulumiCodeChooser -->
   142  //
   143  // ### Listener Health Check
   144  //
   145  // <!--Start PulumiCodeChooser -->
   146  // ```go
   147  // package main
   148  //
   149  // import (
   150  //
   151  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/appmesh"
   152  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   153  //
   154  // )
   155  //
   156  //	func main() {
   157  //		pulumi.Run(func(ctx *pulumi.Context) error {
   158  //			_, err := appmesh.NewVirtualNode(ctx, "serviceb1", &appmesh.VirtualNodeArgs{
   159  //				Name:     pulumi.String("serviceBv1"),
   160  //				MeshName: pulumi.Any(simple.Id),
   161  //				Spec: &appmesh.VirtualNodeSpecArgs{
   162  //					Backends: appmesh.VirtualNodeSpecBackendArray{
   163  //						&appmesh.VirtualNodeSpecBackendArgs{
   164  //							VirtualService: &appmesh.VirtualNodeSpecBackendVirtualServiceArgs{
   165  //								VirtualServiceName: pulumi.String("servicea.simpleapp.local"),
   166  //							},
   167  //						},
   168  //					},
   169  //					Listeners: appmesh.VirtualNodeSpecListenerArray{
   170  //						&appmesh.VirtualNodeSpecListenerArgs{
   171  //							PortMapping: &appmesh.VirtualNodeSpecListenerPortMappingArgs{
   172  //								Port:     pulumi.Int(8080),
   173  //								Protocol: pulumi.String("http"),
   174  //							},
   175  //							HealthCheck: &appmesh.VirtualNodeSpecListenerHealthCheckArgs{
   176  //								Protocol:           pulumi.String("http"),
   177  //								Path:               pulumi.String("/ping"),
   178  //								HealthyThreshold:   pulumi.Int(2),
   179  //								UnhealthyThreshold: pulumi.Int(2),
   180  //								TimeoutMillis:      pulumi.Int(2000),
   181  //								IntervalMillis:     pulumi.Int(5000),
   182  //							},
   183  //						},
   184  //					},
   185  //					ServiceDiscovery: &appmesh.VirtualNodeSpecServiceDiscoveryArgs{
   186  //						Dns: &appmesh.VirtualNodeSpecServiceDiscoveryDnsArgs{
   187  //							Hostname: pulumi.String("serviceb.simpleapp.local"),
   188  //						},
   189  //					},
   190  //				},
   191  //			})
   192  //			if err != nil {
   193  //				return err
   194  //			}
   195  //			return nil
   196  //		})
   197  //	}
   198  //
   199  // ```
   200  // <!--End PulumiCodeChooser -->
   201  //
   202  // ### Logging
   203  //
   204  // <!--Start PulumiCodeChooser -->
   205  // ```go
   206  // package main
   207  //
   208  // import (
   209  //
   210  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/appmesh"
   211  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   212  //
   213  // )
   214  //
   215  //	func main() {
   216  //		pulumi.Run(func(ctx *pulumi.Context) error {
   217  //			_, err := appmesh.NewVirtualNode(ctx, "serviceb1", &appmesh.VirtualNodeArgs{
   218  //				Name:     pulumi.String("serviceBv1"),
   219  //				MeshName: pulumi.Any(simple.Id),
   220  //				Spec: &appmesh.VirtualNodeSpecArgs{
   221  //					Backends: appmesh.VirtualNodeSpecBackendArray{
   222  //						&appmesh.VirtualNodeSpecBackendArgs{
   223  //							VirtualService: &appmesh.VirtualNodeSpecBackendVirtualServiceArgs{
   224  //								VirtualServiceName: pulumi.String("servicea.simpleapp.local"),
   225  //							},
   226  //						},
   227  //					},
   228  //					Listeners: appmesh.VirtualNodeSpecListenerArray{
   229  //						&appmesh.VirtualNodeSpecListenerArgs{
   230  //							PortMapping: &appmesh.VirtualNodeSpecListenerPortMappingArgs{
   231  //								Port:     pulumi.Int(8080),
   232  //								Protocol: pulumi.String("http"),
   233  //							},
   234  //						},
   235  //					},
   236  //					ServiceDiscovery: &appmesh.VirtualNodeSpecServiceDiscoveryArgs{
   237  //						Dns: &appmesh.VirtualNodeSpecServiceDiscoveryDnsArgs{
   238  //							Hostname: pulumi.String("serviceb.simpleapp.local"),
   239  //						},
   240  //					},
   241  //					Logging: &appmesh.VirtualNodeSpecLoggingArgs{
   242  //						AccessLog: &appmesh.VirtualNodeSpecLoggingAccessLogArgs{
   243  //							File: &appmesh.VirtualNodeSpecLoggingAccessLogFileArgs{
   244  //								Path: pulumi.String("/dev/stdout"),
   245  //							},
   246  //						},
   247  //					},
   248  //				},
   249  //			})
   250  //			if err != nil {
   251  //				return err
   252  //			}
   253  //			return nil
   254  //		})
   255  //	}
   256  //
   257  // ```
   258  // <!--End PulumiCodeChooser -->
   259  //
   260  // ## Import
   261  //
   262  // Using `pulumi import`, import App Mesh virtual nodes using `mesh_name` together with the virtual node's `name`. For example:
   263  //
   264  // ```sh
   265  // $ pulumi import aws:appmesh/virtualNode:VirtualNode serviceb1 simpleapp/serviceBv1
   266  // ```
   267  type VirtualNode struct {
   268  	pulumi.CustomResourceState
   269  
   270  	// ARN of the virtual node.
   271  	Arn pulumi.StringOutput `pulumi:"arn"`
   272  	// Creation date of the virtual node.
   273  	CreatedDate pulumi.StringOutput `pulumi:"createdDate"`
   274  	// Last update date of the virtual node.
   275  	LastUpdatedDate pulumi.StringOutput `pulumi:"lastUpdatedDate"`
   276  	// Name of the service mesh in which to create the virtual node. Must be between 1 and 255 characters in length.
   277  	MeshName pulumi.StringOutput `pulumi:"meshName"`
   278  	// AWS account ID of the service mesh's owner. Defaults to the account ID the AWS provider is currently connected to.
   279  	MeshOwner pulumi.StringOutput `pulumi:"meshOwner"`
   280  	// Name to use for the virtual node. Must be between 1 and 255 characters in length.
   281  	Name pulumi.StringOutput `pulumi:"name"`
   282  	// Resource owner's AWS account ID.
   283  	ResourceOwner pulumi.StringOutput `pulumi:"resourceOwner"`
   284  	// Virtual node specification to apply.
   285  	Spec VirtualNodeSpecOutput `pulumi:"spec"`
   286  	// 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.
   287  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   288  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   289  	//
   290  	// Deprecated: Please use `tags` instead.
   291  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   292  }
   293  
   294  // NewVirtualNode registers a new resource with the given unique name, arguments, and options.
   295  func NewVirtualNode(ctx *pulumi.Context,
   296  	name string, args *VirtualNodeArgs, opts ...pulumi.ResourceOption) (*VirtualNode, error) {
   297  	if args == nil {
   298  		return nil, errors.New("missing one or more required arguments")
   299  	}
   300  
   301  	if args.MeshName == nil {
   302  		return nil, errors.New("invalid value for required argument 'MeshName'")
   303  	}
   304  	if args.Spec == nil {
   305  		return nil, errors.New("invalid value for required argument 'Spec'")
   306  	}
   307  	opts = internal.PkgResourceDefaultOpts(opts)
   308  	var resource VirtualNode
   309  	err := ctx.RegisterResource("aws:appmesh/virtualNode:VirtualNode", name, args, &resource, opts...)
   310  	if err != nil {
   311  		return nil, err
   312  	}
   313  	return &resource, nil
   314  }
   315  
   316  // GetVirtualNode gets an existing VirtualNode resource's state with the given name, ID, and optional
   317  // state properties that are used to uniquely qualify the lookup (nil if not required).
   318  func GetVirtualNode(ctx *pulumi.Context,
   319  	name string, id pulumi.IDInput, state *VirtualNodeState, opts ...pulumi.ResourceOption) (*VirtualNode, error) {
   320  	var resource VirtualNode
   321  	err := ctx.ReadResource("aws:appmesh/virtualNode:VirtualNode", name, id, state, &resource, opts...)
   322  	if err != nil {
   323  		return nil, err
   324  	}
   325  	return &resource, nil
   326  }
   327  
   328  // Input properties used for looking up and filtering VirtualNode resources.
   329  type virtualNodeState struct {
   330  	// ARN of the virtual node.
   331  	Arn *string `pulumi:"arn"`
   332  	// Creation date of the virtual node.
   333  	CreatedDate *string `pulumi:"createdDate"`
   334  	// Last update date of the virtual node.
   335  	LastUpdatedDate *string `pulumi:"lastUpdatedDate"`
   336  	// Name of the service mesh in which to create the virtual node. Must be between 1 and 255 characters in length.
   337  	MeshName *string `pulumi:"meshName"`
   338  	// AWS account ID of the service mesh's owner. Defaults to the account ID the AWS provider is currently connected to.
   339  	MeshOwner *string `pulumi:"meshOwner"`
   340  	// Name to use for the virtual node. Must be between 1 and 255 characters in length.
   341  	Name *string `pulumi:"name"`
   342  	// Resource owner's AWS account ID.
   343  	ResourceOwner *string `pulumi:"resourceOwner"`
   344  	// Virtual node specification to apply.
   345  	Spec *VirtualNodeSpec `pulumi:"spec"`
   346  	// 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.
   347  	Tags map[string]string `pulumi:"tags"`
   348  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   349  	//
   350  	// Deprecated: Please use `tags` instead.
   351  	TagsAll map[string]string `pulumi:"tagsAll"`
   352  }
   353  
   354  type VirtualNodeState struct {
   355  	// ARN of the virtual node.
   356  	Arn pulumi.StringPtrInput
   357  	// Creation date of the virtual node.
   358  	CreatedDate pulumi.StringPtrInput
   359  	// Last update date of the virtual node.
   360  	LastUpdatedDate pulumi.StringPtrInput
   361  	// Name of the service mesh in which to create the virtual node. Must be between 1 and 255 characters in length.
   362  	MeshName pulumi.StringPtrInput
   363  	// AWS account ID of the service mesh's owner. Defaults to the account ID the AWS provider is currently connected to.
   364  	MeshOwner pulumi.StringPtrInput
   365  	// Name to use for the virtual node. Must be between 1 and 255 characters in length.
   366  	Name pulumi.StringPtrInput
   367  	// Resource owner's AWS account ID.
   368  	ResourceOwner pulumi.StringPtrInput
   369  	// Virtual node specification to apply.
   370  	Spec VirtualNodeSpecPtrInput
   371  	// 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.
   372  	Tags pulumi.StringMapInput
   373  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   374  	//
   375  	// Deprecated: Please use `tags` instead.
   376  	TagsAll pulumi.StringMapInput
   377  }
   378  
   379  func (VirtualNodeState) ElementType() reflect.Type {
   380  	return reflect.TypeOf((*virtualNodeState)(nil)).Elem()
   381  }
   382  
   383  type virtualNodeArgs struct {
   384  	// Name of the service mesh in which to create the virtual node. Must be between 1 and 255 characters in length.
   385  	MeshName string `pulumi:"meshName"`
   386  	// AWS account ID of the service mesh's owner. Defaults to the account ID the AWS provider is currently connected to.
   387  	MeshOwner *string `pulumi:"meshOwner"`
   388  	// Name to use for the virtual node. Must be between 1 and 255 characters in length.
   389  	Name *string `pulumi:"name"`
   390  	// Virtual node specification to apply.
   391  	Spec VirtualNodeSpec `pulumi:"spec"`
   392  	// 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.
   393  	Tags map[string]string `pulumi:"tags"`
   394  }
   395  
   396  // The set of arguments for constructing a VirtualNode resource.
   397  type VirtualNodeArgs struct {
   398  	// Name of the service mesh in which to create the virtual node. Must be between 1 and 255 characters in length.
   399  	MeshName pulumi.StringInput
   400  	// AWS account ID of the service mesh's owner. Defaults to the account ID the AWS provider is currently connected to.
   401  	MeshOwner pulumi.StringPtrInput
   402  	// Name to use for the virtual node. Must be between 1 and 255 characters in length.
   403  	Name pulumi.StringPtrInput
   404  	// Virtual node specification to apply.
   405  	Spec VirtualNodeSpecInput
   406  	// 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.
   407  	Tags pulumi.StringMapInput
   408  }
   409  
   410  func (VirtualNodeArgs) ElementType() reflect.Type {
   411  	return reflect.TypeOf((*virtualNodeArgs)(nil)).Elem()
   412  }
   413  
   414  type VirtualNodeInput interface {
   415  	pulumi.Input
   416  
   417  	ToVirtualNodeOutput() VirtualNodeOutput
   418  	ToVirtualNodeOutputWithContext(ctx context.Context) VirtualNodeOutput
   419  }
   420  
   421  func (*VirtualNode) ElementType() reflect.Type {
   422  	return reflect.TypeOf((**VirtualNode)(nil)).Elem()
   423  }
   424  
   425  func (i *VirtualNode) ToVirtualNodeOutput() VirtualNodeOutput {
   426  	return i.ToVirtualNodeOutputWithContext(context.Background())
   427  }
   428  
   429  func (i *VirtualNode) ToVirtualNodeOutputWithContext(ctx context.Context) VirtualNodeOutput {
   430  	return pulumi.ToOutputWithContext(ctx, i).(VirtualNodeOutput)
   431  }
   432  
   433  // VirtualNodeArrayInput is an input type that accepts VirtualNodeArray and VirtualNodeArrayOutput values.
   434  // You can construct a concrete instance of `VirtualNodeArrayInput` via:
   435  //
   436  //	VirtualNodeArray{ VirtualNodeArgs{...} }
   437  type VirtualNodeArrayInput interface {
   438  	pulumi.Input
   439  
   440  	ToVirtualNodeArrayOutput() VirtualNodeArrayOutput
   441  	ToVirtualNodeArrayOutputWithContext(context.Context) VirtualNodeArrayOutput
   442  }
   443  
   444  type VirtualNodeArray []VirtualNodeInput
   445  
   446  func (VirtualNodeArray) ElementType() reflect.Type {
   447  	return reflect.TypeOf((*[]*VirtualNode)(nil)).Elem()
   448  }
   449  
   450  func (i VirtualNodeArray) ToVirtualNodeArrayOutput() VirtualNodeArrayOutput {
   451  	return i.ToVirtualNodeArrayOutputWithContext(context.Background())
   452  }
   453  
   454  func (i VirtualNodeArray) ToVirtualNodeArrayOutputWithContext(ctx context.Context) VirtualNodeArrayOutput {
   455  	return pulumi.ToOutputWithContext(ctx, i).(VirtualNodeArrayOutput)
   456  }
   457  
   458  // VirtualNodeMapInput is an input type that accepts VirtualNodeMap and VirtualNodeMapOutput values.
   459  // You can construct a concrete instance of `VirtualNodeMapInput` via:
   460  //
   461  //	VirtualNodeMap{ "key": VirtualNodeArgs{...} }
   462  type VirtualNodeMapInput interface {
   463  	pulumi.Input
   464  
   465  	ToVirtualNodeMapOutput() VirtualNodeMapOutput
   466  	ToVirtualNodeMapOutputWithContext(context.Context) VirtualNodeMapOutput
   467  }
   468  
   469  type VirtualNodeMap map[string]VirtualNodeInput
   470  
   471  func (VirtualNodeMap) ElementType() reflect.Type {
   472  	return reflect.TypeOf((*map[string]*VirtualNode)(nil)).Elem()
   473  }
   474  
   475  func (i VirtualNodeMap) ToVirtualNodeMapOutput() VirtualNodeMapOutput {
   476  	return i.ToVirtualNodeMapOutputWithContext(context.Background())
   477  }
   478  
   479  func (i VirtualNodeMap) ToVirtualNodeMapOutputWithContext(ctx context.Context) VirtualNodeMapOutput {
   480  	return pulumi.ToOutputWithContext(ctx, i).(VirtualNodeMapOutput)
   481  }
   482  
   483  type VirtualNodeOutput struct{ *pulumi.OutputState }
   484  
   485  func (VirtualNodeOutput) ElementType() reflect.Type {
   486  	return reflect.TypeOf((**VirtualNode)(nil)).Elem()
   487  }
   488  
   489  func (o VirtualNodeOutput) ToVirtualNodeOutput() VirtualNodeOutput {
   490  	return o
   491  }
   492  
   493  func (o VirtualNodeOutput) ToVirtualNodeOutputWithContext(ctx context.Context) VirtualNodeOutput {
   494  	return o
   495  }
   496  
   497  // ARN of the virtual node.
   498  func (o VirtualNodeOutput) Arn() pulumi.StringOutput {
   499  	return o.ApplyT(func(v *VirtualNode) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   500  }
   501  
   502  // Creation date of the virtual node.
   503  func (o VirtualNodeOutput) CreatedDate() pulumi.StringOutput {
   504  	return o.ApplyT(func(v *VirtualNode) pulumi.StringOutput { return v.CreatedDate }).(pulumi.StringOutput)
   505  }
   506  
   507  // Last update date of the virtual node.
   508  func (o VirtualNodeOutput) LastUpdatedDate() pulumi.StringOutput {
   509  	return o.ApplyT(func(v *VirtualNode) pulumi.StringOutput { return v.LastUpdatedDate }).(pulumi.StringOutput)
   510  }
   511  
   512  // Name of the service mesh in which to create the virtual node. Must be between 1 and 255 characters in length.
   513  func (o VirtualNodeOutput) MeshName() pulumi.StringOutput {
   514  	return o.ApplyT(func(v *VirtualNode) pulumi.StringOutput { return v.MeshName }).(pulumi.StringOutput)
   515  }
   516  
   517  // AWS account ID of the service mesh's owner. Defaults to the account ID the AWS provider is currently connected to.
   518  func (o VirtualNodeOutput) MeshOwner() pulumi.StringOutput {
   519  	return o.ApplyT(func(v *VirtualNode) pulumi.StringOutput { return v.MeshOwner }).(pulumi.StringOutput)
   520  }
   521  
   522  // Name to use for the virtual node. Must be between 1 and 255 characters in length.
   523  func (o VirtualNodeOutput) Name() pulumi.StringOutput {
   524  	return o.ApplyT(func(v *VirtualNode) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   525  }
   526  
   527  // Resource owner's AWS account ID.
   528  func (o VirtualNodeOutput) ResourceOwner() pulumi.StringOutput {
   529  	return o.ApplyT(func(v *VirtualNode) pulumi.StringOutput { return v.ResourceOwner }).(pulumi.StringOutput)
   530  }
   531  
   532  // Virtual node specification to apply.
   533  func (o VirtualNodeOutput) Spec() VirtualNodeSpecOutput {
   534  	return o.ApplyT(func(v *VirtualNode) VirtualNodeSpecOutput { return v.Spec }).(VirtualNodeSpecOutput)
   535  }
   536  
   537  // 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.
   538  func (o VirtualNodeOutput) Tags() pulumi.StringMapOutput {
   539  	return o.ApplyT(func(v *VirtualNode) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   540  }
   541  
   542  // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   543  //
   544  // Deprecated: Please use `tags` instead.
   545  func (o VirtualNodeOutput) TagsAll() pulumi.StringMapOutput {
   546  	return o.ApplyT(func(v *VirtualNode) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   547  }
   548  
   549  type VirtualNodeArrayOutput struct{ *pulumi.OutputState }
   550  
   551  func (VirtualNodeArrayOutput) ElementType() reflect.Type {
   552  	return reflect.TypeOf((*[]*VirtualNode)(nil)).Elem()
   553  }
   554  
   555  func (o VirtualNodeArrayOutput) ToVirtualNodeArrayOutput() VirtualNodeArrayOutput {
   556  	return o
   557  }
   558  
   559  func (o VirtualNodeArrayOutput) ToVirtualNodeArrayOutputWithContext(ctx context.Context) VirtualNodeArrayOutput {
   560  	return o
   561  }
   562  
   563  func (o VirtualNodeArrayOutput) Index(i pulumi.IntInput) VirtualNodeOutput {
   564  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VirtualNode {
   565  		return vs[0].([]*VirtualNode)[vs[1].(int)]
   566  	}).(VirtualNodeOutput)
   567  }
   568  
   569  type VirtualNodeMapOutput struct{ *pulumi.OutputState }
   570  
   571  func (VirtualNodeMapOutput) ElementType() reflect.Type {
   572  	return reflect.TypeOf((*map[string]*VirtualNode)(nil)).Elem()
   573  }
   574  
   575  func (o VirtualNodeMapOutput) ToVirtualNodeMapOutput() VirtualNodeMapOutput {
   576  	return o
   577  }
   578  
   579  func (o VirtualNodeMapOutput) ToVirtualNodeMapOutputWithContext(ctx context.Context) VirtualNodeMapOutput {
   580  	return o
   581  }
   582  
   583  func (o VirtualNodeMapOutput) MapIndex(k pulumi.StringInput) VirtualNodeOutput {
   584  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VirtualNode {
   585  		return vs[0].(map[string]*VirtualNode)[vs[1].(string)]
   586  	}).(VirtualNodeOutput)
   587  }
   588  
   589  func init() {
   590  	pulumi.RegisterInputType(reflect.TypeOf((*VirtualNodeInput)(nil)).Elem(), &VirtualNode{})
   591  	pulumi.RegisterInputType(reflect.TypeOf((*VirtualNodeArrayInput)(nil)).Elem(), VirtualNodeArray{})
   592  	pulumi.RegisterInputType(reflect.TypeOf((*VirtualNodeMapInput)(nil)).Elem(), VirtualNodeMap{})
   593  	pulumi.RegisterOutputType(VirtualNodeOutput{})
   594  	pulumi.RegisterOutputType(VirtualNodeArrayOutput{})
   595  	pulumi.RegisterOutputType(VirtualNodeMapOutput{})
   596  }