github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/autoscaling/getGroup.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 autoscaling
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Use this data source to get information on an existing autoscaling group.
    15  //
    16  // ## Example Usage
    17  //
    18  // <!--Start PulumiCodeChooser -->
    19  // ```go
    20  // package main
    21  //
    22  // import (
    23  //
    24  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
    25  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    26  //
    27  // )
    28  //
    29  //	func main() {
    30  //		pulumi.Run(func(ctx *pulumi.Context) error {
    31  //			_, err := autoscaling.LookupGroup(ctx, &autoscaling.LookupGroupArgs{
    32  //				Name: "foo",
    33  //			}, nil)
    34  //			if err != nil {
    35  //				return err
    36  //			}
    37  //			return nil
    38  //		})
    39  //	}
    40  //
    41  // ```
    42  // <!--End PulumiCodeChooser -->
    43  func LookupGroup(ctx *pulumi.Context, args *LookupGroupArgs, opts ...pulumi.InvokeOption) (*LookupGroupResult, error) {
    44  	opts = internal.PkgInvokeDefaultOpts(opts)
    45  	var rv LookupGroupResult
    46  	err := ctx.Invoke("aws:autoscaling/getGroup:getGroup", args, &rv, opts...)
    47  	if err != nil {
    48  		return nil, err
    49  	}
    50  	return &rv, nil
    51  }
    52  
    53  // A collection of arguments for invoking getGroup.
    54  type LookupGroupArgs struct {
    55  	// Specify the exact name of the desired autoscaling group.
    56  	Name string `pulumi:"name"`
    57  }
    58  
    59  // A collection of values returned by getGroup.
    60  type LookupGroupResult struct {
    61  	// ARN of the Auto Scaling group.
    62  	Arn string `pulumi:"arn"`
    63  	// One or more Availability Zones for the group.
    64  	AvailabilityZones []string `pulumi:"availabilityZones"`
    65  	DefaultCooldown   int      `pulumi:"defaultCooldown"`
    66  	// Desired size of the group.
    67  	DesiredCapacity int `pulumi:"desiredCapacity"`
    68  	// The unit of measurement for the value returned for `desiredCapacity`.
    69  	DesiredCapacityType string `pulumi:"desiredCapacityType"`
    70  	// List of metrics enabled for collection.
    71  	EnabledMetrics []string `pulumi:"enabledMetrics"`
    72  	// The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service.
    73  	HealthCheckGracePeriod int `pulumi:"healthCheckGracePeriod"`
    74  	// Service to use for the health checks. The valid values are EC2 and ELB.
    75  	HealthCheckType string `pulumi:"healthCheckType"`
    76  	// The provider-assigned unique ID for this managed resource.
    77  	Id string `pulumi:"id"`
    78  	// Instance maintenance policy for the group.
    79  	InstanceMaintenancePolicies []GetGroupInstanceMaintenancePolicy `pulumi:"instanceMaintenancePolicies"`
    80  	// The name of the associated launch configuration.
    81  	LaunchConfiguration string `pulumi:"launchConfiguration"`
    82  	// List of launch templates along with the overrides.
    83  	LaunchTemplates []GetGroupLaunchTemplate `pulumi:"launchTemplates"`
    84  	// One or more load balancers associated with the group.
    85  	LoadBalancers []string `pulumi:"loadBalancers"`
    86  	// Maximum amount of time, in seconds, that an instance can be in service.
    87  	MaxInstanceLifetime int `pulumi:"maxInstanceLifetime"`
    88  	// Maximum size of the group.
    89  	MaxSize int `pulumi:"maxSize"`
    90  	// Minimum number of instances to maintain in the warm pool.
    91  	MinSize int `pulumi:"minSize"`
    92  	// List of mixed instances policy objects for the group.
    93  	MixedInstancesPolicies []GetGroupMixedInstancesPolicy `pulumi:"mixedInstancesPolicies"`
    94  	// Name of the Auto Scaling Group.
    95  	Name                             string `pulumi:"name"`
    96  	NewInstancesProtectedFromScaleIn bool   `pulumi:"newInstancesProtectedFromScaleIn"`
    97  	// Name of the placement group into which to launch your instances, if any. For more information, see Placement Groups (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the Amazon Elastic Compute Cloud User Guide.
    98  	PlacementGroup string `pulumi:"placementGroup"`
    99  	// Predicted capacity of the group.
   100  	PredictedCapacity int `pulumi:"predictedCapacity"`
   101  	// ARN of the service-linked role that the Auto Scaling group uses to call other AWS services on your behalf.
   102  	ServiceLinkedRoleArn string `pulumi:"serviceLinkedRoleArn"`
   103  	// Current state of the group when DeleteAutoScalingGroup is in progress.
   104  	Status string `pulumi:"status"`
   105  	// List of processes suspended processes for the Auto Scaling Group.
   106  	SuspendedProcesses []string `pulumi:"suspendedProcesses"`
   107  	// List of tags for the group.
   108  	Tags []GetGroupTag `pulumi:"tags"`
   109  	// ARNs of the target groups for your load balancer.
   110  	TargetGroupArns []string `pulumi:"targetGroupArns"`
   111  	// The termination policies for the group.
   112  	TerminationPolicies []string `pulumi:"terminationPolicies"`
   113  	// Traffic sources.
   114  	TrafficSources []GetGroupTrafficSource `pulumi:"trafficSources"`
   115  	// VPC ID for the group.
   116  	VpcZoneIdentifier string `pulumi:"vpcZoneIdentifier"`
   117  	// Current size of the warm pool.
   118  	WarmPoolSize int `pulumi:"warmPoolSize"`
   119  	// List of warm pool configuration objects.
   120  	WarmPools []GetGroupWarmPool `pulumi:"warmPools"`
   121  }
   122  
   123  func LookupGroupOutput(ctx *pulumi.Context, args LookupGroupOutputArgs, opts ...pulumi.InvokeOption) LookupGroupResultOutput {
   124  	return pulumi.ToOutputWithContext(context.Background(), args).
   125  		ApplyT(func(v interface{}) (LookupGroupResult, error) {
   126  			args := v.(LookupGroupArgs)
   127  			r, err := LookupGroup(ctx, &args, opts...)
   128  			var s LookupGroupResult
   129  			if r != nil {
   130  				s = *r
   131  			}
   132  			return s, err
   133  		}).(LookupGroupResultOutput)
   134  }
   135  
   136  // A collection of arguments for invoking getGroup.
   137  type LookupGroupOutputArgs struct {
   138  	// Specify the exact name of the desired autoscaling group.
   139  	Name pulumi.StringInput `pulumi:"name"`
   140  }
   141  
   142  func (LookupGroupOutputArgs) ElementType() reflect.Type {
   143  	return reflect.TypeOf((*LookupGroupArgs)(nil)).Elem()
   144  }
   145  
   146  // A collection of values returned by getGroup.
   147  type LookupGroupResultOutput struct{ *pulumi.OutputState }
   148  
   149  func (LookupGroupResultOutput) ElementType() reflect.Type {
   150  	return reflect.TypeOf((*LookupGroupResult)(nil)).Elem()
   151  }
   152  
   153  func (o LookupGroupResultOutput) ToLookupGroupResultOutput() LookupGroupResultOutput {
   154  	return o
   155  }
   156  
   157  func (o LookupGroupResultOutput) ToLookupGroupResultOutputWithContext(ctx context.Context) LookupGroupResultOutput {
   158  	return o
   159  }
   160  
   161  // ARN of the Auto Scaling group.
   162  func (o LookupGroupResultOutput) Arn() pulumi.StringOutput {
   163  	return o.ApplyT(func(v LookupGroupResult) string { return v.Arn }).(pulumi.StringOutput)
   164  }
   165  
   166  // One or more Availability Zones for the group.
   167  func (o LookupGroupResultOutput) AvailabilityZones() pulumi.StringArrayOutput {
   168  	return o.ApplyT(func(v LookupGroupResult) []string { return v.AvailabilityZones }).(pulumi.StringArrayOutput)
   169  }
   170  
   171  func (o LookupGroupResultOutput) DefaultCooldown() pulumi.IntOutput {
   172  	return o.ApplyT(func(v LookupGroupResult) int { return v.DefaultCooldown }).(pulumi.IntOutput)
   173  }
   174  
   175  // Desired size of the group.
   176  func (o LookupGroupResultOutput) DesiredCapacity() pulumi.IntOutput {
   177  	return o.ApplyT(func(v LookupGroupResult) int { return v.DesiredCapacity }).(pulumi.IntOutput)
   178  }
   179  
   180  // The unit of measurement for the value returned for `desiredCapacity`.
   181  func (o LookupGroupResultOutput) DesiredCapacityType() pulumi.StringOutput {
   182  	return o.ApplyT(func(v LookupGroupResult) string { return v.DesiredCapacityType }).(pulumi.StringOutput)
   183  }
   184  
   185  // List of metrics enabled for collection.
   186  func (o LookupGroupResultOutput) EnabledMetrics() pulumi.StringArrayOutput {
   187  	return o.ApplyT(func(v LookupGroupResult) []string { return v.EnabledMetrics }).(pulumi.StringArrayOutput)
   188  }
   189  
   190  // The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service.
   191  func (o LookupGroupResultOutput) HealthCheckGracePeriod() pulumi.IntOutput {
   192  	return o.ApplyT(func(v LookupGroupResult) int { return v.HealthCheckGracePeriod }).(pulumi.IntOutput)
   193  }
   194  
   195  // Service to use for the health checks. The valid values are EC2 and ELB.
   196  func (o LookupGroupResultOutput) HealthCheckType() pulumi.StringOutput {
   197  	return o.ApplyT(func(v LookupGroupResult) string { return v.HealthCheckType }).(pulumi.StringOutput)
   198  }
   199  
   200  // The provider-assigned unique ID for this managed resource.
   201  func (o LookupGroupResultOutput) Id() pulumi.StringOutput {
   202  	return o.ApplyT(func(v LookupGroupResult) string { return v.Id }).(pulumi.StringOutput)
   203  }
   204  
   205  // Instance maintenance policy for the group.
   206  func (o LookupGroupResultOutput) InstanceMaintenancePolicies() GetGroupInstanceMaintenancePolicyArrayOutput {
   207  	return o.ApplyT(func(v LookupGroupResult) []GetGroupInstanceMaintenancePolicy { return v.InstanceMaintenancePolicies }).(GetGroupInstanceMaintenancePolicyArrayOutput)
   208  }
   209  
   210  // The name of the associated launch configuration.
   211  func (o LookupGroupResultOutput) LaunchConfiguration() pulumi.StringOutput {
   212  	return o.ApplyT(func(v LookupGroupResult) string { return v.LaunchConfiguration }).(pulumi.StringOutput)
   213  }
   214  
   215  // List of launch templates along with the overrides.
   216  func (o LookupGroupResultOutput) LaunchTemplates() GetGroupLaunchTemplateArrayOutput {
   217  	return o.ApplyT(func(v LookupGroupResult) []GetGroupLaunchTemplate { return v.LaunchTemplates }).(GetGroupLaunchTemplateArrayOutput)
   218  }
   219  
   220  // One or more load balancers associated with the group.
   221  func (o LookupGroupResultOutput) LoadBalancers() pulumi.StringArrayOutput {
   222  	return o.ApplyT(func(v LookupGroupResult) []string { return v.LoadBalancers }).(pulumi.StringArrayOutput)
   223  }
   224  
   225  // Maximum amount of time, in seconds, that an instance can be in service.
   226  func (o LookupGroupResultOutput) MaxInstanceLifetime() pulumi.IntOutput {
   227  	return o.ApplyT(func(v LookupGroupResult) int { return v.MaxInstanceLifetime }).(pulumi.IntOutput)
   228  }
   229  
   230  // Maximum size of the group.
   231  func (o LookupGroupResultOutput) MaxSize() pulumi.IntOutput {
   232  	return o.ApplyT(func(v LookupGroupResult) int { return v.MaxSize }).(pulumi.IntOutput)
   233  }
   234  
   235  // Minimum number of instances to maintain in the warm pool.
   236  func (o LookupGroupResultOutput) MinSize() pulumi.IntOutput {
   237  	return o.ApplyT(func(v LookupGroupResult) int { return v.MinSize }).(pulumi.IntOutput)
   238  }
   239  
   240  // List of mixed instances policy objects for the group.
   241  func (o LookupGroupResultOutput) MixedInstancesPolicies() GetGroupMixedInstancesPolicyArrayOutput {
   242  	return o.ApplyT(func(v LookupGroupResult) []GetGroupMixedInstancesPolicy { return v.MixedInstancesPolicies }).(GetGroupMixedInstancesPolicyArrayOutput)
   243  }
   244  
   245  // Name of the Auto Scaling Group.
   246  func (o LookupGroupResultOutput) Name() pulumi.StringOutput {
   247  	return o.ApplyT(func(v LookupGroupResult) string { return v.Name }).(pulumi.StringOutput)
   248  }
   249  
   250  func (o LookupGroupResultOutput) NewInstancesProtectedFromScaleIn() pulumi.BoolOutput {
   251  	return o.ApplyT(func(v LookupGroupResult) bool { return v.NewInstancesProtectedFromScaleIn }).(pulumi.BoolOutput)
   252  }
   253  
   254  // Name of the placement group into which to launch your instances, if any. For more information, see Placement Groups (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the Amazon Elastic Compute Cloud User Guide.
   255  func (o LookupGroupResultOutput) PlacementGroup() pulumi.StringOutput {
   256  	return o.ApplyT(func(v LookupGroupResult) string { return v.PlacementGroup }).(pulumi.StringOutput)
   257  }
   258  
   259  // Predicted capacity of the group.
   260  func (o LookupGroupResultOutput) PredictedCapacity() pulumi.IntOutput {
   261  	return o.ApplyT(func(v LookupGroupResult) int { return v.PredictedCapacity }).(pulumi.IntOutput)
   262  }
   263  
   264  // ARN of the service-linked role that the Auto Scaling group uses to call other AWS services on your behalf.
   265  func (o LookupGroupResultOutput) ServiceLinkedRoleArn() pulumi.StringOutput {
   266  	return o.ApplyT(func(v LookupGroupResult) string { return v.ServiceLinkedRoleArn }).(pulumi.StringOutput)
   267  }
   268  
   269  // Current state of the group when DeleteAutoScalingGroup is in progress.
   270  func (o LookupGroupResultOutput) Status() pulumi.StringOutput {
   271  	return o.ApplyT(func(v LookupGroupResult) string { return v.Status }).(pulumi.StringOutput)
   272  }
   273  
   274  // List of processes suspended processes for the Auto Scaling Group.
   275  func (o LookupGroupResultOutput) SuspendedProcesses() pulumi.StringArrayOutput {
   276  	return o.ApplyT(func(v LookupGroupResult) []string { return v.SuspendedProcesses }).(pulumi.StringArrayOutput)
   277  }
   278  
   279  // List of tags for the group.
   280  func (o LookupGroupResultOutput) Tags() GetGroupTagArrayOutput {
   281  	return o.ApplyT(func(v LookupGroupResult) []GetGroupTag { return v.Tags }).(GetGroupTagArrayOutput)
   282  }
   283  
   284  // ARNs of the target groups for your load balancer.
   285  func (o LookupGroupResultOutput) TargetGroupArns() pulumi.StringArrayOutput {
   286  	return o.ApplyT(func(v LookupGroupResult) []string { return v.TargetGroupArns }).(pulumi.StringArrayOutput)
   287  }
   288  
   289  // The termination policies for the group.
   290  func (o LookupGroupResultOutput) TerminationPolicies() pulumi.StringArrayOutput {
   291  	return o.ApplyT(func(v LookupGroupResult) []string { return v.TerminationPolicies }).(pulumi.StringArrayOutput)
   292  }
   293  
   294  // Traffic sources.
   295  func (o LookupGroupResultOutput) TrafficSources() GetGroupTrafficSourceArrayOutput {
   296  	return o.ApplyT(func(v LookupGroupResult) []GetGroupTrafficSource { return v.TrafficSources }).(GetGroupTrafficSourceArrayOutput)
   297  }
   298  
   299  // VPC ID for the group.
   300  func (o LookupGroupResultOutput) VpcZoneIdentifier() pulumi.StringOutput {
   301  	return o.ApplyT(func(v LookupGroupResult) string { return v.VpcZoneIdentifier }).(pulumi.StringOutput)
   302  }
   303  
   304  // Current size of the warm pool.
   305  func (o LookupGroupResultOutput) WarmPoolSize() pulumi.IntOutput {
   306  	return o.ApplyT(func(v LookupGroupResult) int { return v.WarmPoolSize }).(pulumi.IntOutput)
   307  }
   308  
   309  // List of warm pool configuration objects.
   310  func (o LookupGroupResultOutput) WarmPools() GetGroupWarmPoolArrayOutput {
   311  	return o.ApplyT(func(v LookupGroupResult) []GetGroupWarmPool { return v.WarmPools }).(GetGroupWarmPoolArrayOutput)
   312  }
   313  
   314  func init() {
   315  	pulumi.RegisterOutputType(LookupGroupResultOutput{})
   316  }