Alibaba Cloud

v3.15.0 published on Thursday, Jan 13, 2022 by Pulumi

getServerGroups

This data source provides the Alb Server Groups of the current Alibaba Cloud user.

NOTE: Available in v1.131.0+.

Example Usage

using Pulumi;
using AliCloud = Pulumi.AliCloud;

class MyStack : Stack
{
    public MyStack()
    {
        var ids = Output.Create(AliCloud.Alb.GetServerGroups.InvokeAsync());
        this.AlbServerGroupId1 = ids.Apply(ids => ids.Groups?[0]?.Id);
        var nameRegex = Output.Create(AliCloud.Alb.GetServerGroups.InvokeAsync(new AliCloud.Alb.GetServerGroupsArgs
        {
            NameRegex = "^my-ServerGroup",
        }));
        this.AlbServerGroupId2 = nameRegex.Apply(nameRegex => nameRegex.Groups?[0]?.Id);
    }

    [Output("albServerGroupId1")]
    public Output<string> AlbServerGroupId1 { get; set; }
    [Output("albServerGroupId2")]
    public Output<string> AlbServerGroupId2 { get; set; }
}
package main

import (
	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/alb"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		ids, err := alb.GetServerGroups(ctx, nil, nil)
		if err != nil {
			return err
		}
		ctx.Export("albServerGroupId1", ids.Groups[0].Id)
		opt0 := "^my-ServerGroup"
		nameRegex, err := alb.GetServerGroups(ctx, &alb.GetServerGroupsArgs{
			NameRegex: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("albServerGroupId2", nameRegex.Groups[0].Id)
		return nil
	})
}
import pulumi
import pulumi_alicloud as alicloud

ids = alicloud.alb.get_server_groups()
pulumi.export("albServerGroupId1", ids.groups[0].id)
name_regex = alicloud.alb.get_server_groups(name_regex="^my-ServerGroup")
pulumi.export("albServerGroupId2", name_regex.groups[0].id)
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";

const ids = alicloud.alb.getServerGroups({});
export const albServerGroupId1 = ids.then(ids => ids.groups?[0]?.id);
const nameRegex = alicloud.alb.getServerGroups({
    nameRegex: "^my-ServerGroup",
});
export const albServerGroupId2 = nameRegex.then(nameRegex => nameRegex.groups?[0]?.id);

Using getServerGroups

Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

function getServerGroups(args: GetServerGroupsArgs, opts?: InvokeOptions): Promise<GetServerGroupsResult>
function getServerGroupsOutput(args: GetServerGroupsOutputArgs, opts?: InvokeOptions): Output<GetServerGroupsResult>
def get_server_groups(enable_details: Optional[bool] = None,
                      ids: Optional[Sequence[str]] = None,
                      name_regex: Optional[str] = None,
                      output_file: Optional[str] = None,
                      resource_group_id: Optional[str] = None,
                      server_group_ids: Optional[Sequence[str]] = None,
                      server_group_name: Optional[str] = None,
                      status: Optional[str] = None,
                      tags: Optional[Mapping[str, Any]] = None,
                      vpc_id: Optional[str] = None,
                      opts: Optional[InvokeOptions] = None) -> GetServerGroupsResult
def get_server_groups_output(enable_details: Optional[pulumi.Input[bool]] = None,
                      ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                      name_regex: Optional[pulumi.Input[str]] = None,
                      output_file: Optional[pulumi.Input[str]] = None,
                      resource_group_id: Optional[pulumi.Input[str]] = None,
                      server_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                      server_group_name: Optional[pulumi.Input[str]] = None,
                      status: Optional[pulumi.Input[str]] = None,
                      tags: Optional[pulumi.Input[Mapping[str, Any]]] = None,
                      vpc_id: Optional[pulumi.Input[str]] = None,
                      opts: Optional[InvokeOptions] = None) -> Output[GetServerGroupsResult]
func GetServerGroups(ctx *Context, args *GetServerGroupsArgs, opts ...InvokeOption) (*GetServerGroupsResult, error)
func GetServerGroupsOutput(ctx *Context, args *GetServerGroupsOutputArgs, opts ...InvokeOption) GetServerGroupsResultOutput

> Note: This function is named GetServerGroups in the Go SDK.

public static class GetServerGroups 
{
    public static Task<GetServerGroupsResult> InvokeAsync(GetServerGroupsArgs args, InvokeOptions? opts = null)
    public static Output<GetServerGroupsResult> Invoke(GetServerGroupsInvokeArgs args, InvokeOptions? opts = null)
}

The following arguments are supported:

EnableDetails bool
Default to false. Set it to true can output more details about resource attributes.
Ids List<string>
A list of Server Group IDs.
NameRegex string
A regex string to filter results by Server Group name.
OutputFile string
ResourceGroupId string
The ID of the resource group.
ServerGroupIds List<string>
The server group ids.
ServerGroupName string
The name of the resource.
Status string
The status of the resource. Valid values: Provisioning, Available and Configuring.
Tags Dictionary<string, object>
VpcId string
The ID of the VPC that you want to access.
EnableDetails bool
Default to false. Set it to true can output more details about resource attributes.
Ids []string
A list of Server Group IDs.
NameRegex string
A regex string to filter results by Server Group name.
OutputFile string
ResourceGroupId string
The ID of the resource group.
ServerGroupIds []string
The server group ids.
ServerGroupName string
The name of the resource.
Status string
The status of the resource. Valid values: Provisioning, Available and Configuring.
Tags map[string]interface{}
VpcId string
The ID of the VPC that you want to access.
enableDetails boolean
Default to false. Set it to true can output more details about resource attributes.
ids string[]
A list of Server Group IDs.
nameRegex string
A regex string to filter results by Server Group name.
outputFile string
resourceGroupId string
The ID of the resource group.
serverGroupIds string[]
The server group ids.
serverGroupName string
The name of the resource.
status string
The status of the resource. Valid values: Provisioning, Available and Configuring.
tags {[key: string]: any}
vpcId string
The ID of the VPC that you want to access.
enable_details bool
Default to false. Set it to true can output more details about resource attributes.
ids Sequence[str]
A list of Server Group IDs.
name_regex str
A regex string to filter results by Server Group name.
output_file str
resource_group_id str
The ID of the resource group.
server_group_ids Sequence[str]
The server group ids.
server_group_name str
The name of the resource.
status str
The status of the resource. Valid values: Provisioning, Available and Configuring.
tags Mapping[str, Any]
vpc_id str
The ID of the VPC that you want to access.

getServerGroups Result

The following output properties are available:

Groups List<Pulumi.AliCloud.Alb.Outputs.GetServerGroupsGroup>
Id string
The provider-assigned unique ID for this managed resource.
Ids List<string>
Names List<string>
EnableDetails bool
NameRegex string
OutputFile string
ResourceGroupId string
ServerGroupIds List<string>
ServerGroupName string
Status string
Tags Dictionary<string, object>
VpcId string
Groups []GetServerGroupsGroup
Id string
The provider-assigned unique ID for this managed resource.
Ids []string
Names []string
EnableDetails bool
NameRegex string
OutputFile string
ResourceGroupId string
ServerGroupIds []string
ServerGroupName string
Status string
Tags map[string]interface{}
VpcId string
groups GetServerGroupsGroup[]
id string
The provider-assigned unique ID for this managed resource.
ids string[]
names string[]
enableDetails boolean
nameRegex string
outputFile string
resourceGroupId string
serverGroupIds string[]
serverGroupName string
status string
tags {[key: string]: any}
vpcId string
groups Sequence[GetServerGroupsGroup]
id str
The provider-assigned unique ID for this managed resource.
ids Sequence[str]
names Sequence[str]
enable_details bool
name_regex str
output_file str
resource_group_id str
server_group_ids Sequence[str]
server_group_name str
status str
tags Mapping[str, Any]
vpc_id str

Supporting Types

GetServerGroupsGroup

HealthCheckConfigs List<Pulumi.AliCloud.Alb.Inputs.GetServerGroupsGroupHealthCheckConfig>
The configuration of health checks.
Id string
The ID of the Server Group.
Protocol string
The server protocol. Valid values: HTTP and HTTPS. Default value: HTTP.
Scheduler string
The scheduling algorithm. Valid values: Wrr, Wlc and Sch.
ServerGroupId string
The first ID of the res ource.
ServerGroupName string
The name of the resource.
Servers List<Pulumi.AliCloud.Alb.Inputs.GetServerGroupsGroupServer>
The backend server.
Status string
The status of the resource. Valid values: Provisioning, Available and Configuring.
StickySessionConfigs List<Pulumi.AliCloud.Alb.Inputs.GetServerGroupsGroupStickySessionConfig>
The configuration of the sticky session.
Tags Dictionary<string, object>
VpcId string
The ID of the VPC that you want to access.
HealthCheckConfigs []GetServerGroupsGroupHealthCheckConfig
The configuration of health checks.
Id string
The ID of the Server Group.
Protocol string
The server protocol. Valid values: HTTP and HTTPS. Default value: HTTP.
Scheduler string
The scheduling algorithm. Valid values: Wrr, Wlc and Sch.
ServerGroupId string
The first ID of the res ource.
ServerGroupName string
The name of the resource.
Servers []GetServerGroupsGroupServer
The backend server.
Status string
The status of the resource. Valid values: Provisioning, Available and Configuring.
StickySessionConfigs []GetServerGroupsGroupStickySessionConfig
The configuration of the sticky session.
Tags map[string]interface{}
VpcId string
The ID of the VPC that you want to access.
healthCheckConfigs GetServerGroupsGroupHealthCheckConfig[]
The configuration of health checks.
id string
The ID of the Server Group.
protocol string
The server protocol. Valid values: HTTP and HTTPS. Default value: HTTP.
scheduler string
The scheduling algorithm. Valid values: Wrr, Wlc and Sch.
serverGroupId string
The first ID of the res ource.
serverGroupName string
The name of the resource.
servers GetServerGroupsGroupServer[]
The backend server.
status string
The status of the resource. Valid values: Provisioning, Available and Configuring.
stickySessionConfigs GetServerGroupsGroupStickySessionConfig[]
The configuration of the sticky session.
tags {[key: string]: any}
vpcId string
The ID of the VPC that you want to access.
health_check_configs Sequence[GetServerGroupsGroupHealthCheckConfig]
The configuration of health checks.
id str
The ID of the Server Group.
protocol str
The server protocol. Valid values: HTTP and HTTPS. Default value: HTTP.
scheduler str
The scheduling algorithm. Valid values: Wrr, Wlc and Sch.
server_group_id str
The first ID of the res ource.
server_group_name str
The name of the resource.
servers Sequence[GetServerGroupsGroupServer]
The backend server.
status str
The status of the resource. Valid values: Provisioning, Available and Configuring.
sticky_session_configs Sequence[GetServerGroupsGroupStickySessionConfig]
The configuration of the sticky session.
tags Mapping[str, Any]
vpc_id str
The ID of the VPC that you want to access.

GetServerGroupsGroupHealthCheckConfig

HealthCheckCodes List<string>
The status code for a successful health check. Multiple status codes can be specified as a list. Valid values: http_2xx, http_3xx, http_4xx, and http_5xx. Default value: http_2xx. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
HealthCheckConnectPort int
The port of the backend server that is used for health checks. Valid values: 0 to 65535. Default value: 0. A value of 0 indicates that a backend server port is used for health checks.
HealthCheckEnabled bool
Indicates whether health checks are enabled. Valid values: true, false. Default value: true.
HealthCheckHost string
The domain name that is used for health checks.
HealthCheckHttpVersion string
HTTP protocol version. Valid values: HTTP1.0 and HTTP1.1. Default value: HTTP1.1. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
HealthCheckInterval int
The time interval between two consecutive health checks. Unit: seconds. Valid values: 1 to 50. Default value: 2.
HealthCheckMethod string
Health check method. Valid values: GET and HEAD. Default: GET. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
HealthCheckPath string
The forwarding rule path of health checks. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
HealthCheckProtocol string
Health check protocol. Valid values: HTTP and TCP.
HealthCheckTimeout int
The timeout period of a health check response. If a backend Elastic Compute Service (ECS) instance does not send an expected response within the specified period of time, the ECS instance is considered unhealthy. Unit: seconds. Valid values: 1 to 300. Default value: 5. NOTE: If the value of the HealthCHeckTimeout parameter is smaller than that of the HealthCheckInterval parameter, the value of the HealthCHeckTimeout parameter is ignored and the value of the HealthCheckInterval parameter is regarded as the timeout period.
HealthyThreshold int
The number of health checks that an unhealthy backend server must pass consecutively before it is declared healthy. In this case, the health check state is changed from fail to success. Valid values: 2 to 10. Default value: 3.
UnhealthyThreshold int
The number of consecutive health checks that a healthy backend server must consecutively fail before it is declared unhealthy. In this case, the health check state is changed from success to fail. Valid values: 2 to 10. Default value: 3.
HealthCheckCodes []string
The status code for a successful health check. Multiple status codes can be specified as a list. Valid values: http_2xx, http_3xx, http_4xx, and http_5xx. Default value: http_2xx. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
HealthCheckConnectPort int
The port of the backend server that is used for health checks. Valid values: 0 to 65535. Default value: 0. A value of 0 indicates that a backend server port is used for health checks.
HealthCheckEnabled bool
Indicates whether health checks are enabled. Valid values: true, false. Default value: true.
HealthCheckHost string
The domain name that is used for health checks.
HealthCheckHttpVersion string
HTTP protocol version. Valid values: HTTP1.0 and HTTP1.1. Default value: HTTP1.1. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
HealthCheckInterval int
The time interval between two consecutive health checks. Unit: seconds. Valid values: 1 to 50. Default value: 2.
HealthCheckMethod string
Health check method. Valid values: GET and HEAD. Default: GET. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
HealthCheckPath string
The forwarding rule path of health checks. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
HealthCheckProtocol string
Health check protocol. Valid values: HTTP and TCP.
HealthCheckTimeout int
The timeout period of a health check response. If a backend Elastic Compute Service (ECS) instance does not send an expected response within the specified period of time, the ECS instance is considered unhealthy. Unit: seconds. Valid values: 1 to 300. Default value: 5. NOTE: If the value of the HealthCHeckTimeout parameter is smaller than that of the HealthCheckInterval parameter, the value of the HealthCHeckTimeout parameter is ignored and the value of the HealthCheckInterval parameter is regarded as the timeout period.
HealthyThreshold int
The number of health checks that an unhealthy backend server must pass consecutively before it is declared healthy. In this case, the health check state is changed from fail to success. Valid values: 2 to 10. Default value: 3.
UnhealthyThreshold int
The number of consecutive health checks that a healthy backend server must consecutively fail before it is declared unhealthy. In this case, the health check state is changed from success to fail. Valid values: 2 to 10. Default value: 3.
healthCheckCodes string[]
The status code for a successful health check. Multiple status codes can be specified as a list. Valid values: http_2xx, http_3xx, http_4xx, and http_5xx. Default value: http_2xx. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
healthCheckConnectPort number
The port of the backend server that is used for health checks. Valid values: 0 to 65535. Default value: 0. A value of 0 indicates that a backend server port is used for health checks.
healthCheckEnabled boolean
Indicates whether health checks are enabled. Valid values: true, false. Default value: true.
healthCheckHost string
The domain name that is used for health checks.
healthCheckHttpVersion string
HTTP protocol version. Valid values: HTTP1.0 and HTTP1.1. Default value: HTTP1.1. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
healthCheckInterval number
The time interval between two consecutive health checks. Unit: seconds. Valid values: 1 to 50. Default value: 2.
healthCheckMethod string
Health check method. Valid values: GET and HEAD. Default: GET. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
healthCheckPath string
The forwarding rule path of health checks. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
healthCheckProtocol string
Health check protocol. Valid values: HTTP and TCP.
healthCheckTimeout number
The timeout period of a health check response. If a backend Elastic Compute Service (ECS) instance does not send an expected response within the specified period of time, the ECS instance is considered unhealthy. Unit: seconds. Valid values: 1 to 300. Default value: 5. NOTE: If the value of the HealthCHeckTimeout parameter is smaller than that of the HealthCheckInterval parameter, the value of the HealthCHeckTimeout parameter is ignored and the value of the HealthCheckInterval parameter is regarded as the timeout period.
healthyThreshold number
The number of health checks that an unhealthy backend server must pass consecutively before it is declared healthy. In this case, the health check state is changed from fail to success. Valid values: 2 to 10. Default value: 3.
unhealthyThreshold number
The number of consecutive health checks that a healthy backend server must consecutively fail before it is declared unhealthy. In this case, the health check state is changed from success to fail. Valid values: 2 to 10. Default value: 3.
health_check_codes Sequence[str]
The status code for a successful health check. Multiple status codes can be specified as a list. Valid values: http_2xx, http_3xx, http_4xx, and http_5xx. Default value: http_2xx. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
health_check_connect_port int
The port of the backend server that is used for health checks. Valid values: 0 to 65535. Default value: 0. A value of 0 indicates that a backend server port is used for health checks.
health_check_enabled bool
Indicates whether health checks are enabled. Valid values: true, false. Default value: true.
health_check_host str
The domain name that is used for health checks.
health_check_http_version str
HTTP protocol version. Valid values: HTTP1.0 and HTTP1.1. Default value: HTTP1.1. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
health_check_interval int
The time interval between two consecutive health checks. Unit: seconds. Valid values: 1 to 50. Default value: 2.
health_check_method str
Health check method. Valid values: GET and HEAD. Default: GET. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
health_check_path str
The forwarding rule path of health checks. NOTE: This parameter exists if the HealthCheckProtocol parameter is set to HTTP.
health_check_protocol str
Health check protocol. Valid values: HTTP and TCP.
health_check_timeout int
The timeout period of a health check response. If a backend Elastic Compute Service (ECS) instance does not send an expected response within the specified period of time, the ECS instance is considered unhealthy. Unit: seconds. Valid values: 1 to 300. Default value: 5. NOTE: If the value of the HealthCHeckTimeout parameter is smaller than that of the HealthCheckInterval parameter, the value of the HealthCHeckTimeout parameter is ignored and the value of the HealthCheckInterval parameter is regarded as the timeout period.
healthy_threshold int
The number of health checks that an unhealthy backend server must pass consecutively before it is declared healthy. In this case, the health check state is changed from fail to success. Valid values: 2 to 10. Default value: 3.
unhealthy_threshold int
The number of consecutive health checks that a healthy backend server must consecutively fail before it is declared unhealthy. In this case, the health check state is changed from success to fail. Valid values: 2 to 10. Default value: 3.

GetServerGroupsGroupServer

Description string
The description of the server.
Port int
The port that is used by the server. Valid values: 1 to 65535.
ServerId string
The ID of the ECS instance, ENI instance or ECI instance.
ServerIp string
The IP address of the ENI instance when it is in the inclusive ENI mode.
ServerType string
The type of the server. The type of the server. Valid values: Ecs, Eni and Eci.
Status string
The status of the resource. Valid values: Provisioning, Available and Configuring.
Weight int
The weight of the server. Valid values: 0 to 100. Default value: 100. If the value is set to 0, no requests are forwarded to the server.
Description string
The description of the server.
Port int
The port that is used by the server. Valid values: 1 to 65535.
ServerId string
The ID of the ECS instance, ENI instance or ECI instance.
ServerIp string
The IP address of the ENI instance when it is in the inclusive ENI mode.
ServerType string
The type of the server. The type of the server. Valid values: Ecs, Eni and Eci.
Status string
The status of the resource. Valid values: Provisioning, Available and Configuring.
Weight int
The weight of the server. Valid values: 0 to 100. Default value: 100. If the value is set to 0, no requests are forwarded to the server.
description string
The description of the server.
port number
The port that is used by the server. Valid values: 1 to 65535.
serverId string
The ID of the ECS instance, ENI instance or ECI instance.
serverIp string
The IP address of the ENI instance when it is in the inclusive ENI mode.
serverType string
The type of the server. The type of the server. Valid values: Ecs, Eni and Eci.
status string
The status of the resource. Valid values: Provisioning, Available and Configuring.
weight number
The weight of the server. Valid values: 0 to 100. Default value: 100. If the value is set to 0, no requests are forwarded to the server.
description str
The description of the server.
port int
The port that is used by the server. Valid values: 1 to 65535.
server_id str
The ID of the ECS instance, ENI instance or ECI instance.
server_ip str
The IP address of the ENI instance when it is in the inclusive ENI mode.
server_type str
The type of the server. The type of the server. Valid values: Ecs, Eni and Eci.
status str
The status of the resource. Valid values: Provisioning, Available and Configuring.
weight int
The weight of the server. Valid values: 0 to 100. Default value: 100. If the value is set to 0, no requests are forwarded to the server.

GetServerGroupsGroupStickySessionConfig

Cookie string
the cookie that is configured on the server. NOTE: This parameter exists if the StickySession parameter is set to On and the StickySessionType parameter is set to server.
CookieTimeout int
The timeout period of a cookie. The timeout period of a cookie. Unit: seconds. Valid values: 1 to 86400. Default value: 1000.
StickySessionEnabled bool
Indicates whether sticky session is enabled. Values: true and false. Default value: false. NOTE: This parameter exists if the StickySession parameter is set to On.
StickySessionType string
The method that is used to handle a cookie. Values: Server and Insert.
Cookie string
the cookie that is configured on the server. NOTE: This parameter exists if the StickySession parameter is set to On and the StickySessionType parameter is set to server.
CookieTimeout int
The timeout period of a cookie. The timeout period of a cookie. Unit: seconds. Valid values: 1 to 86400. Default value: 1000.
StickySessionEnabled bool
Indicates whether sticky session is enabled. Values: true and false. Default value: false. NOTE: This parameter exists if the StickySession parameter is set to On.
StickySessionType string
The method that is used to handle a cookie. Values: Server and Insert.
cookie string
the cookie that is configured on the server. NOTE: This parameter exists if the StickySession parameter is set to On and the StickySessionType parameter is set to server.
cookieTimeout number
The timeout period of a cookie. The timeout period of a cookie. Unit: seconds. Valid values: 1 to 86400. Default value: 1000.
stickySessionEnabled boolean
Indicates whether sticky session is enabled. Values: true and false. Default value: false. NOTE: This parameter exists if the StickySession parameter is set to On.
stickySessionType string
The method that is used to handle a cookie. Values: Server and Insert.
cookie str
the cookie that is configured on the server. NOTE: This parameter exists if the StickySession parameter is set to On and the StickySessionType parameter is set to server.
cookie_timeout int
The timeout period of a cookie. The timeout period of a cookie. Unit: seconds. Valid values: 1 to 86400. Default value: 1000.
sticky_session_enabled bool
Indicates whether sticky session is enabled. Values: true and false. Default value: false. NOTE: This parameter exists if the StickySession parameter is set to On.
sticky_session_type str
The method that is used to handle a cookie. Values: Server and Insert.

Package Details

Repository
https://github.com/pulumi/pulumi-alicloud
License
Apache-2.0
Notes
This Pulumi package is based on the alicloud Terraform Provider.