waf

package
v3.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Domain

type Domain struct {
	pulumi.CustomResourceState

	// The type of the WAF cluster. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.
	ClusterType pulumi.StringPtrOutput `pulumi:"clusterType"`
	// The CNAME record assigned by the WAF instance to the specified domain.
	Cname pulumi.StringOutput `pulumi:"cname"`
	// The connection timeout for WAF exclusive clusters. Unit: seconds.
	ConnectionTime pulumi.IntPtrOutput `pulumi:"connectionTime"`
	// Field `domain` has been deprecated from version 1.94.0. Use `domainName` instead.
	//
	// Deprecated: Field 'domain' has been deprecated from version 1.94.0. Use 'domain_name' instead.
	Domain pulumi.StringOutput `pulumi:"domain"`
	// The domain that you want to add to WAF.
	DomainName pulumi.StringOutput `pulumi:"domainName"`
	// List of the HTTP 2.0 ports.
	Http2Ports pulumi.StringArrayOutput `pulumi:"http2Ports"`
	// List of the HTTP ports.
	HttpPorts pulumi.StringArrayOutput `pulumi:"httpPorts"`
	// Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server.
	// By default, port 80 is used to forward the requests to the origin server. Valid values: `On` and `Off`. Default to `Off`.
	HttpToUserIp pulumi.StringPtrOutput `pulumi:"httpToUserIp"`
	// List of the HTTPS ports.
	HttpsPorts pulumi.StringArrayOutput `pulumi:"httpsPorts"`
	// Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: "On" and `Off`. Default to `Off`.
	HttpsRedirect pulumi.StringPtrOutput `pulumi:"httpsRedirect"`
	// The ID of the WAF instance.
	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
	// Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and `Off`. Default to `Off`.
	IsAccessProduct pulumi.StringOutput `pulumi:"isAccessProduct"`
	// The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.
	LoadBalancing pulumi.StringPtrOutput `pulumi:"loadBalancing"`
	// The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field:
	// * key: The key of label
	// * value: The value of label
	LogHeaders DomainLogHeaderArrayOutput `pulumi:"logHeaders"`
	// The read timeout of a WAF exclusive cluster. Unit: seconds.
	ReadTime pulumi.IntPtrOutput `pulumi:"readTime"`
	// The ID of the resource group to which the queried domain belongs in Resource Management. By default, no value is specified, indicating that the domain belongs to the default resource group.
	ResourceGroupId pulumi.StringOutput `pulumi:"resourceGroupId"`
	// List of the IP address or domain of the origin server to which the specified domain points.
	SourceIps pulumi.StringArrayOutput `pulumi:"sourceIps"`
	// The timeout period for a WAF exclusive cluster write connection. Unit: seconds.
	WriteTime pulumi.IntPtrOutput `pulumi:"writeTime"`
}

Provides a WAF Domain resource to create domain in the Web Application Firewall.

For information about WAF and how to use it, see [What is Alibaba Cloud WAF](https://www.alibabacloud.com/help/doc-detail/28517.htm).

> **NOTE:** Available in 1.82.0+ .

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := waf.NewDomain(ctx, "domain", &waf.DomainArgs{
			ClusterType: pulumi.String("PhysicalCluster"),
			Domain:      pulumi.String("www.aliyun.com"),
			Http2Ports: pulumi.StringArray{
				pulumi.String("443"),
			},
			HttpPorts: pulumi.StringArray{
				pulumi.String("80"),
			},
			HttpToUserIp: pulumi.String("Off"),
			HttpsPorts: pulumi.StringArray{
				pulumi.String("443"),
			},
			HttpsRedirect:   pulumi.String("Off"),
			InstanceId:      pulumi.String("waf-123455"),
			IsAccessProduct: pulumi.String("On"),
			LoadBalancing:   pulumi.String("IpHash"),
			LogHeaders: waf.DomainLogHeaderArray{
				&waf.DomainLogHeaderArgs{
					Key:   pulumi.String("foo"),
					Value: pulumi.String("http"),
				},
			},
			SourceIps: pulumi.StringArray{
				pulumi.String("1.1.1.1"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

WAF domain can be imported using the id, e.g.

```sh

$ pulumi import alicloud:waf/domain:Domain domain waf-132435:www.domain.com

```

func GetDomain

func GetDomain(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DomainState, opts ...pulumi.ResourceOption) (*Domain, error)

GetDomain gets an existing Domain resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDomain

func NewDomain(ctx *pulumi.Context,
	name string, args *DomainArgs, opts ...pulumi.ResourceOption) (*Domain, error)

NewDomain registers a new resource with the given unique name, arguments, and options.

func (*Domain) ElementType

func (*Domain) ElementType() reflect.Type

func (*Domain) ToDomainOutput

func (i *Domain) ToDomainOutput() DomainOutput

func (*Domain) ToDomainOutputWithContext

func (i *Domain) ToDomainOutputWithContext(ctx context.Context) DomainOutput

func (*Domain) ToDomainPtrOutput

func (i *Domain) ToDomainPtrOutput() DomainPtrOutput

func (*Domain) ToDomainPtrOutputWithContext

func (i *Domain) ToDomainPtrOutputWithContext(ctx context.Context) DomainPtrOutput

type DomainArgs

type DomainArgs struct {
	// The type of the WAF cluster. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.
	ClusterType pulumi.StringPtrInput
	// The connection timeout for WAF exclusive clusters. Unit: seconds.
	ConnectionTime pulumi.IntPtrInput
	// Field `domain` has been deprecated from version 1.94.0. Use `domainName` instead.
	//
	// Deprecated: Field 'domain' has been deprecated from version 1.94.0. Use 'domain_name' instead.
	Domain pulumi.StringPtrInput
	// The domain that you want to add to WAF.
	DomainName pulumi.StringPtrInput
	// List of the HTTP 2.0 ports.
	Http2Ports pulumi.StringArrayInput
	// List of the HTTP ports.
	HttpPorts pulumi.StringArrayInput
	// Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server.
	// By default, port 80 is used to forward the requests to the origin server. Valid values: `On` and `Off`. Default to `Off`.
	HttpToUserIp pulumi.StringPtrInput
	// List of the HTTPS ports.
	HttpsPorts pulumi.StringArrayInput
	// Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: "On" and `Off`. Default to `Off`.
	HttpsRedirect pulumi.StringPtrInput
	// The ID of the WAF instance.
	InstanceId pulumi.StringInput
	// Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and `Off`. Default to `Off`.
	IsAccessProduct pulumi.StringInput
	// The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.
	LoadBalancing pulumi.StringPtrInput
	// The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field:
	// * key: The key of label
	// * value: The value of label
	LogHeaders DomainLogHeaderArrayInput
	// The read timeout of a WAF exclusive cluster. Unit: seconds.
	ReadTime pulumi.IntPtrInput
	// The ID of the resource group to which the queried domain belongs in Resource Management. By default, no value is specified, indicating that the domain belongs to the default resource group.
	ResourceGroupId pulumi.StringPtrInput
	// List of the IP address or domain of the origin server to which the specified domain points.
	SourceIps pulumi.StringArrayInput
	// The timeout period for a WAF exclusive cluster write connection. Unit: seconds.
	WriteTime pulumi.IntPtrInput
}

The set of arguments for constructing a Domain resource.

func (DomainArgs) ElementType

func (DomainArgs) ElementType() reflect.Type

type DomainArray

type DomainArray []DomainInput

func (DomainArray) ElementType

func (DomainArray) ElementType() reflect.Type

func (DomainArray) ToDomainArrayOutput

func (i DomainArray) ToDomainArrayOutput() DomainArrayOutput

func (DomainArray) ToDomainArrayOutputWithContext

func (i DomainArray) ToDomainArrayOutputWithContext(ctx context.Context) DomainArrayOutput

type DomainArrayInput

type DomainArrayInput interface {
	pulumi.Input

	ToDomainArrayOutput() DomainArrayOutput
	ToDomainArrayOutputWithContext(context.Context) DomainArrayOutput
}

DomainArrayInput is an input type that accepts DomainArray and DomainArrayOutput values. You can construct a concrete instance of `DomainArrayInput` via:

DomainArray{ DomainArgs{...} }

type DomainArrayOutput

type DomainArrayOutput struct{ *pulumi.OutputState }

func (DomainArrayOutput) ElementType

func (DomainArrayOutput) ElementType() reflect.Type

func (DomainArrayOutput) Index

func (DomainArrayOutput) ToDomainArrayOutput

func (o DomainArrayOutput) ToDomainArrayOutput() DomainArrayOutput

func (DomainArrayOutput) ToDomainArrayOutputWithContext

func (o DomainArrayOutput) ToDomainArrayOutputWithContext(ctx context.Context) DomainArrayOutput

type DomainInput

type DomainInput interface {
	pulumi.Input

	ToDomainOutput() DomainOutput
	ToDomainOutputWithContext(ctx context.Context) DomainOutput
}

type DomainLogHeader

type DomainLogHeader struct {
	Key   *string `pulumi:"key"`
	Value *string `pulumi:"value"`
}

type DomainLogHeaderArgs

type DomainLogHeaderArgs struct {
	Key   pulumi.StringPtrInput `pulumi:"key"`
	Value pulumi.StringPtrInput `pulumi:"value"`
}

func (DomainLogHeaderArgs) ElementType

func (DomainLogHeaderArgs) ElementType() reflect.Type

func (DomainLogHeaderArgs) ToDomainLogHeaderOutput

func (i DomainLogHeaderArgs) ToDomainLogHeaderOutput() DomainLogHeaderOutput

func (DomainLogHeaderArgs) ToDomainLogHeaderOutputWithContext

func (i DomainLogHeaderArgs) ToDomainLogHeaderOutputWithContext(ctx context.Context) DomainLogHeaderOutput

type DomainLogHeaderArray

type DomainLogHeaderArray []DomainLogHeaderInput

func (DomainLogHeaderArray) ElementType

func (DomainLogHeaderArray) ElementType() reflect.Type

func (DomainLogHeaderArray) ToDomainLogHeaderArrayOutput

func (i DomainLogHeaderArray) ToDomainLogHeaderArrayOutput() DomainLogHeaderArrayOutput

func (DomainLogHeaderArray) ToDomainLogHeaderArrayOutputWithContext

func (i DomainLogHeaderArray) ToDomainLogHeaderArrayOutputWithContext(ctx context.Context) DomainLogHeaderArrayOutput

type DomainLogHeaderArrayInput

type DomainLogHeaderArrayInput interface {
	pulumi.Input

	ToDomainLogHeaderArrayOutput() DomainLogHeaderArrayOutput
	ToDomainLogHeaderArrayOutputWithContext(context.Context) DomainLogHeaderArrayOutput
}

DomainLogHeaderArrayInput is an input type that accepts DomainLogHeaderArray and DomainLogHeaderArrayOutput values. You can construct a concrete instance of `DomainLogHeaderArrayInput` via:

DomainLogHeaderArray{ DomainLogHeaderArgs{...} }

type DomainLogHeaderArrayOutput

type DomainLogHeaderArrayOutput struct{ *pulumi.OutputState }

func (DomainLogHeaderArrayOutput) ElementType

func (DomainLogHeaderArrayOutput) ElementType() reflect.Type

func (DomainLogHeaderArrayOutput) Index

func (DomainLogHeaderArrayOutput) ToDomainLogHeaderArrayOutput

func (o DomainLogHeaderArrayOutput) ToDomainLogHeaderArrayOutput() DomainLogHeaderArrayOutput

func (DomainLogHeaderArrayOutput) ToDomainLogHeaderArrayOutputWithContext

func (o DomainLogHeaderArrayOutput) ToDomainLogHeaderArrayOutputWithContext(ctx context.Context) DomainLogHeaderArrayOutput

type DomainLogHeaderInput

type DomainLogHeaderInput interface {
	pulumi.Input

	ToDomainLogHeaderOutput() DomainLogHeaderOutput
	ToDomainLogHeaderOutputWithContext(context.Context) DomainLogHeaderOutput
}

DomainLogHeaderInput is an input type that accepts DomainLogHeaderArgs and DomainLogHeaderOutput values. You can construct a concrete instance of `DomainLogHeaderInput` via:

DomainLogHeaderArgs{...}

type DomainLogHeaderOutput

type DomainLogHeaderOutput struct{ *pulumi.OutputState }

func (DomainLogHeaderOutput) ElementType

func (DomainLogHeaderOutput) ElementType() reflect.Type

func (DomainLogHeaderOutput) Key

func (DomainLogHeaderOutput) ToDomainLogHeaderOutput

func (o DomainLogHeaderOutput) ToDomainLogHeaderOutput() DomainLogHeaderOutput

func (DomainLogHeaderOutput) ToDomainLogHeaderOutputWithContext

func (o DomainLogHeaderOutput) ToDomainLogHeaderOutputWithContext(ctx context.Context) DomainLogHeaderOutput

func (DomainLogHeaderOutput) Value

type DomainMap

type DomainMap map[string]DomainInput

func (DomainMap) ElementType

func (DomainMap) ElementType() reflect.Type

func (DomainMap) ToDomainMapOutput

func (i DomainMap) ToDomainMapOutput() DomainMapOutput

func (DomainMap) ToDomainMapOutputWithContext

func (i DomainMap) ToDomainMapOutputWithContext(ctx context.Context) DomainMapOutput

type DomainMapInput

type DomainMapInput interface {
	pulumi.Input

	ToDomainMapOutput() DomainMapOutput
	ToDomainMapOutputWithContext(context.Context) DomainMapOutput
}

DomainMapInput is an input type that accepts DomainMap and DomainMapOutput values. You can construct a concrete instance of `DomainMapInput` via:

DomainMap{ "key": DomainArgs{...} }

type DomainMapOutput

type DomainMapOutput struct{ *pulumi.OutputState }

func (DomainMapOutput) ElementType

func (DomainMapOutput) ElementType() reflect.Type

func (DomainMapOutput) MapIndex

func (DomainMapOutput) ToDomainMapOutput

func (o DomainMapOutput) ToDomainMapOutput() DomainMapOutput

func (DomainMapOutput) ToDomainMapOutputWithContext

func (o DomainMapOutput) ToDomainMapOutputWithContext(ctx context.Context) DomainMapOutput

type DomainOutput

type DomainOutput struct {
	*pulumi.OutputState
}

func (DomainOutput) ElementType

func (DomainOutput) ElementType() reflect.Type

func (DomainOutput) ToDomainOutput

func (o DomainOutput) ToDomainOutput() DomainOutput

func (DomainOutput) ToDomainOutputWithContext

func (o DomainOutput) ToDomainOutputWithContext(ctx context.Context) DomainOutput

func (DomainOutput) ToDomainPtrOutput

func (o DomainOutput) ToDomainPtrOutput() DomainPtrOutput

func (DomainOutput) ToDomainPtrOutputWithContext

func (o DomainOutput) ToDomainPtrOutputWithContext(ctx context.Context) DomainPtrOutput

type DomainPtrInput

type DomainPtrInput interface {
	pulumi.Input

	ToDomainPtrOutput() DomainPtrOutput
	ToDomainPtrOutputWithContext(ctx context.Context) DomainPtrOutput
}

type DomainPtrOutput

type DomainPtrOutput struct {
	*pulumi.OutputState
}

func (DomainPtrOutput) ElementType

func (DomainPtrOutput) ElementType() reflect.Type

func (DomainPtrOutput) ToDomainPtrOutput

func (o DomainPtrOutput) ToDomainPtrOutput() DomainPtrOutput

func (DomainPtrOutput) ToDomainPtrOutputWithContext

func (o DomainPtrOutput) ToDomainPtrOutputWithContext(ctx context.Context) DomainPtrOutput

type DomainState

type DomainState struct {
	// The type of the WAF cluster. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.
	ClusterType pulumi.StringPtrInput
	// The CNAME record assigned by the WAF instance to the specified domain.
	Cname pulumi.StringPtrInput
	// The connection timeout for WAF exclusive clusters. Unit: seconds.
	ConnectionTime pulumi.IntPtrInput
	// Field `domain` has been deprecated from version 1.94.0. Use `domainName` instead.
	//
	// Deprecated: Field 'domain' has been deprecated from version 1.94.0. Use 'domain_name' instead.
	Domain pulumi.StringPtrInput
	// The domain that you want to add to WAF.
	DomainName pulumi.StringPtrInput
	// List of the HTTP 2.0 ports.
	Http2Ports pulumi.StringArrayInput
	// List of the HTTP ports.
	HttpPorts pulumi.StringArrayInput
	// Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server.
	// By default, port 80 is used to forward the requests to the origin server. Valid values: `On` and `Off`. Default to `Off`.
	HttpToUserIp pulumi.StringPtrInput
	// List of the HTTPS ports.
	HttpsPorts pulumi.StringArrayInput
	// Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: "On" and `Off`. Default to `Off`.
	HttpsRedirect pulumi.StringPtrInput
	// The ID of the WAF instance.
	InstanceId pulumi.StringPtrInput
	// Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and `Off`. Default to `Off`.
	IsAccessProduct pulumi.StringPtrInput
	// The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.
	LoadBalancing pulumi.StringPtrInput
	// The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field:
	// * key: The key of label
	// * value: The value of label
	LogHeaders DomainLogHeaderArrayInput
	// The read timeout of a WAF exclusive cluster. Unit: seconds.
	ReadTime pulumi.IntPtrInput
	// The ID of the resource group to which the queried domain belongs in Resource Management. By default, no value is specified, indicating that the domain belongs to the default resource group.
	ResourceGroupId pulumi.StringPtrInput
	// List of the IP address or domain of the origin server to which the specified domain points.
	SourceIps pulumi.StringArrayInput
	// The timeout period for a WAF exclusive cluster write connection. Unit: seconds.
	WriteTime pulumi.IntPtrInput
}

func (DomainState) ElementType

func (DomainState) ElementType() reflect.Type

type GetDomainsArgs

type GetDomainsArgs struct {
	// Default to false and only output `id`, `domainName`. Set it to true can output more details.
	EnableDetails *bool `pulumi:"enableDetails"`
	// A list of WAF domain names. Each item is domain name.
	Ids []string `pulumi:"ids"`
	// The Id of waf instance to which waf domain belongs.
	InstanceId string `pulumi:"instanceId"`
	// A regex string to filter results by domain name.
	NameRegex  *string `pulumi:"nameRegex"`
	OutputFile *string `pulumi:"outputFile"`
	// The ID of the resource group to which the queried domain belongs in Resource Management.
	ResourceGroupId *string `pulumi:"resourceGroupId"`
}

A collection of arguments for invoking getDomains.

type GetDomainsDomain

type GetDomainsDomain struct {
	// The type of the WAF cluster.
	ClusterType string `pulumi:"clusterType"`
	// The CNAME record assigned by the WAF instance to the specified domain.
	Cname string `pulumi:"cname"`
	// The connection timeout for WAF exclusive clusters. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.
	ConnectionTime int `pulumi:"connectionTime"`
	// Field `domain` has been deprecated from version 1.94.0. Use `domainName` instead.
	Domain string `pulumi:"domain"`
	// Name of the domain.
	DomainName string `pulumi:"domainName"`
	// List of the HTTP 2.0 ports.
	Http2Ports []string `pulumi:"http2Ports"`
	// List of the HTTP ports.
	HttpPorts []string `pulumi:"httpPorts"`
	// Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server.
	HttpToUserIp string `pulumi:"httpToUserIp"`
	// List of the HTTPS ports.
	HttpsPorts []string `pulumi:"httpsPorts"`
	// Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: `On` and `Off`. Default to `Off`.
	HttpsRedirect string `pulumi:"httpsRedirect"`
	// The ID of domain self ID, value as `domainName`.
	Id string `pulumi:"id"`
	// Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and "Off". Default to `Off`.
	IsAccessProduct string `pulumi:"isAccessProduct"`
	// The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.
	LoadBalancing string `pulumi:"loadBalancing"`
	// The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field:
	// * `key`: The key of label.
	// * `value`: The value of label.
	LogHeaders []GetDomainsDomainLogHeader `pulumi:"logHeaders"`
	// The read timeout of a WAF exclusive cluster. Unit: seconds.
	ReadTime int `pulumi:"readTime"`
	// The ID of the resource group to which the queried domain belongs in Resource Management.
	ResourceGroupId string `pulumi:"resourceGroupId"`
	// List of the IP address or domain of the origin server to which the specified domain points.
	SourceIps []string `pulumi:"sourceIps"`
	// The system data identifier that is used to control optimistic locking.
	Version int `pulumi:"version"`
	// The timeout period for a WAF exclusive cluster write connection. Unit: seconds.
	WriteTime int `pulumi:"writeTime"`
}

type GetDomainsDomainArgs

type GetDomainsDomainArgs struct {
	// The type of the WAF cluster.
	ClusterType pulumi.StringInput `pulumi:"clusterType"`
	// The CNAME record assigned by the WAF instance to the specified domain.
	Cname pulumi.StringInput `pulumi:"cname"`
	// The connection timeout for WAF exclusive clusters. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.
	ConnectionTime pulumi.IntInput `pulumi:"connectionTime"`
	// Field `domain` has been deprecated from version 1.94.0. Use `domainName` instead.
	Domain pulumi.StringInput `pulumi:"domain"`
	// Name of the domain.
	DomainName pulumi.StringInput `pulumi:"domainName"`
	// List of the HTTP 2.0 ports.
	Http2Ports pulumi.StringArrayInput `pulumi:"http2Ports"`
	// List of the HTTP ports.
	HttpPorts pulumi.StringArrayInput `pulumi:"httpPorts"`
	// Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server.
	HttpToUserIp pulumi.StringInput `pulumi:"httpToUserIp"`
	// List of the HTTPS ports.
	HttpsPorts pulumi.StringArrayInput `pulumi:"httpsPorts"`
	// Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: `On` and `Off`. Default to `Off`.
	HttpsRedirect pulumi.StringInput `pulumi:"httpsRedirect"`
	// The ID of domain self ID, value as `domainName`.
	Id pulumi.StringInput `pulumi:"id"`
	// Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and "Off". Default to `Off`.
	IsAccessProduct pulumi.StringInput `pulumi:"isAccessProduct"`
	// The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.
	LoadBalancing pulumi.StringInput `pulumi:"loadBalancing"`
	// The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field:
	// * `key`: The key of label.
	// * `value`: The value of label.
	LogHeaders GetDomainsDomainLogHeaderArrayInput `pulumi:"logHeaders"`
	// The read timeout of a WAF exclusive cluster. Unit: seconds.
	ReadTime pulumi.IntInput `pulumi:"readTime"`
	// The ID of the resource group to which the queried domain belongs in Resource Management.
	ResourceGroupId pulumi.StringInput `pulumi:"resourceGroupId"`
	// List of the IP address or domain of the origin server to which the specified domain points.
	SourceIps pulumi.StringArrayInput `pulumi:"sourceIps"`
	// The system data identifier that is used to control optimistic locking.
	Version pulumi.IntInput `pulumi:"version"`
	// The timeout period for a WAF exclusive cluster write connection. Unit: seconds.
	WriteTime pulumi.IntInput `pulumi:"writeTime"`
}

func (GetDomainsDomainArgs) ElementType

func (GetDomainsDomainArgs) ElementType() reflect.Type

func (GetDomainsDomainArgs) ToGetDomainsDomainOutput

func (i GetDomainsDomainArgs) ToGetDomainsDomainOutput() GetDomainsDomainOutput

func (GetDomainsDomainArgs) ToGetDomainsDomainOutputWithContext

func (i GetDomainsDomainArgs) ToGetDomainsDomainOutputWithContext(ctx context.Context) GetDomainsDomainOutput

type GetDomainsDomainArray

type GetDomainsDomainArray []GetDomainsDomainInput

func (GetDomainsDomainArray) ElementType

func (GetDomainsDomainArray) ElementType() reflect.Type

func (GetDomainsDomainArray) ToGetDomainsDomainArrayOutput

func (i GetDomainsDomainArray) ToGetDomainsDomainArrayOutput() GetDomainsDomainArrayOutput

func (GetDomainsDomainArray) ToGetDomainsDomainArrayOutputWithContext

func (i GetDomainsDomainArray) ToGetDomainsDomainArrayOutputWithContext(ctx context.Context) GetDomainsDomainArrayOutput

type GetDomainsDomainArrayInput

type GetDomainsDomainArrayInput interface {
	pulumi.Input

	ToGetDomainsDomainArrayOutput() GetDomainsDomainArrayOutput
	ToGetDomainsDomainArrayOutputWithContext(context.Context) GetDomainsDomainArrayOutput
}

GetDomainsDomainArrayInput is an input type that accepts GetDomainsDomainArray and GetDomainsDomainArrayOutput values. You can construct a concrete instance of `GetDomainsDomainArrayInput` via:

GetDomainsDomainArray{ GetDomainsDomainArgs{...} }

type GetDomainsDomainArrayOutput

type GetDomainsDomainArrayOutput struct{ *pulumi.OutputState }

func (GetDomainsDomainArrayOutput) ElementType

func (GetDomainsDomainArrayOutput) Index

func (GetDomainsDomainArrayOutput) ToGetDomainsDomainArrayOutput

func (o GetDomainsDomainArrayOutput) ToGetDomainsDomainArrayOutput() GetDomainsDomainArrayOutput

func (GetDomainsDomainArrayOutput) ToGetDomainsDomainArrayOutputWithContext

func (o GetDomainsDomainArrayOutput) ToGetDomainsDomainArrayOutputWithContext(ctx context.Context) GetDomainsDomainArrayOutput

type GetDomainsDomainInput

type GetDomainsDomainInput interface {
	pulumi.Input

	ToGetDomainsDomainOutput() GetDomainsDomainOutput
	ToGetDomainsDomainOutputWithContext(context.Context) GetDomainsDomainOutput
}

GetDomainsDomainInput is an input type that accepts GetDomainsDomainArgs and GetDomainsDomainOutput values. You can construct a concrete instance of `GetDomainsDomainInput` via:

GetDomainsDomainArgs{...}

type GetDomainsDomainLogHeader

type GetDomainsDomainLogHeader struct {
	Key   string `pulumi:"key"`
	Value string `pulumi:"value"`
}

type GetDomainsDomainLogHeaderArgs

type GetDomainsDomainLogHeaderArgs struct {
	Key   pulumi.StringInput `pulumi:"key"`
	Value pulumi.StringInput `pulumi:"value"`
}

func (GetDomainsDomainLogHeaderArgs) ElementType

func (GetDomainsDomainLogHeaderArgs) ToGetDomainsDomainLogHeaderOutput

func (i GetDomainsDomainLogHeaderArgs) ToGetDomainsDomainLogHeaderOutput() GetDomainsDomainLogHeaderOutput

func (GetDomainsDomainLogHeaderArgs) ToGetDomainsDomainLogHeaderOutputWithContext

func (i GetDomainsDomainLogHeaderArgs) ToGetDomainsDomainLogHeaderOutputWithContext(ctx context.Context) GetDomainsDomainLogHeaderOutput

type GetDomainsDomainLogHeaderArray

type GetDomainsDomainLogHeaderArray []GetDomainsDomainLogHeaderInput

func (GetDomainsDomainLogHeaderArray) ElementType

func (GetDomainsDomainLogHeaderArray) ToGetDomainsDomainLogHeaderArrayOutput

func (i GetDomainsDomainLogHeaderArray) ToGetDomainsDomainLogHeaderArrayOutput() GetDomainsDomainLogHeaderArrayOutput

func (GetDomainsDomainLogHeaderArray) ToGetDomainsDomainLogHeaderArrayOutputWithContext

func (i GetDomainsDomainLogHeaderArray) ToGetDomainsDomainLogHeaderArrayOutputWithContext(ctx context.Context) GetDomainsDomainLogHeaderArrayOutput

type GetDomainsDomainLogHeaderArrayInput

type GetDomainsDomainLogHeaderArrayInput interface {
	pulumi.Input

	ToGetDomainsDomainLogHeaderArrayOutput() GetDomainsDomainLogHeaderArrayOutput
	ToGetDomainsDomainLogHeaderArrayOutputWithContext(context.Context) GetDomainsDomainLogHeaderArrayOutput
}

GetDomainsDomainLogHeaderArrayInput is an input type that accepts GetDomainsDomainLogHeaderArray and GetDomainsDomainLogHeaderArrayOutput values. You can construct a concrete instance of `GetDomainsDomainLogHeaderArrayInput` via:

GetDomainsDomainLogHeaderArray{ GetDomainsDomainLogHeaderArgs{...} }

type GetDomainsDomainLogHeaderArrayOutput

type GetDomainsDomainLogHeaderArrayOutput struct{ *pulumi.OutputState }

func (GetDomainsDomainLogHeaderArrayOutput) ElementType

func (GetDomainsDomainLogHeaderArrayOutput) Index

func (GetDomainsDomainLogHeaderArrayOutput) ToGetDomainsDomainLogHeaderArrayOutput

func (o GetDomainsDomainLogHeaderArrayOutput) ToGetDomainsDomainLogHeaderArrayOutput() GetDomainsDomainLogHeaderArrayOutput

func (GetDomainsDomainLogHeaderArrayOutput) ToGetDomainsDomainLogHeaderArrayOutputWithContext

func (o GetDomainsDomainLogHeaderArrayOutput) ToGetDomainsDomainLogHeaderArrayOutputWithContext(ctx context.Context) GetDomainsDomainLogHeaderArrayOutput

type GetDomainsDomainLogHeaderInput

type GetDomainsDomainLogHeaderInput interface {
	pulumi.Input

	ToGetDomainsDomainLogHeaderOutput() GetDomainsDomainLogHeaderOutput
	ToGetDomainsDomainLogHeaderOutputWithContext(context.Context) GetDomainsDomainLogHeaderOutput
}

GetDomainsDomainLogHeaderInput is an input type that accepts GetDomainsDomainLogHeaderArgs and GetDomainsDomainLogHeaderOutput values. You can construct a concrete instance of `GetDomainsDomainLogHeaderInput` via:

GetDomainsDomainLogHeaderArgs{...}

type GetDomainsDomainLogHeaderOutput

type GetDomainsDomainLogHeaderOutput struct{ *pulumi.OutputState }

func (GetDomainsDomainLogHeaderOutput) ElementType

func (GetDomainsDomainLogHeaderOutput) Key

func (GetDomainsDomainLogHeaderOutput) ToGetDomainsDomainLogHeaderOutput

func (o GetDomainsDomainLogHeaderOutput) ToGetDomainsDomainLogHeaderOutput() GetDomainsDomainLogHeaderOutput

func (GetDomainsDomainLogHeaderOutput) ToGetDomainsDomainLogHeaderOutputWithContext

func (o GetDomainsDomainLogHeaderOutput) ToGetDomainsDomainLogHeaderOutputWithContext(ctx context.Context) GetDomainsDomainLogHeaderOutput

func (GetDomainsDomainLogHeaderOutput) Value

type GetDomainsDomainOutput

type GetDomainsDomainOutput struct{ *pulumi.OutputState }

func (GetDomainsDomainOutput) ClusterType

func (o GetDomainsDomainOutput) ClusterType() pulumi.StringOutput

The type of the WAF cluster.

func (GetDomainsDomainOutput) Cname

The CNAME record assigned by the WAF instance to the specified domain.

func (GetDomainsDomainOutput) ConnectionTime

func (o GetDomainsDomainOutput) ConnectionTime() pulumi.IntOutput

The connection timeout for WAF exclusive clusters. Valid values: `PhysicalCluster` and `VirtualCluster`. Default to `PhysicalCluster`.

func (GetDomainsDomainOutput) Domain

Field `domain` has been deprecated from version 1.94.0. Use `domainName` instead.

func (GetDomainsDomainOutput) DomainName

Name of the domain.

func (GetDomainsDomainOutput) ElementType

func (GetDomainsDomainOutput) ElementType() reflect.Type

func (GetDomainsDomainOutput) Http2Ports

List of the HTTP 2.0 ports.

func (GetDomainsDomainOutput) HttpPorts

List of the HTTP ports.

func (GetDomainsDomainOutput) HttpToUserIp

func (o GetDomainsDomainOutput) HttpToUserIp() pulumi.StringOutput

Specifies whether to enable the HTTP back-to-origin feature. After this feature is enabled, the WAF instance can use HTTP to forward HTTPS requests to the origin server.

func (GetDomainsDomainOutput) HttpsPorts

List of the HTTPS ports.

func (GetDomainsDomainOutput) HttpsRedirect

func (o GetDomainsDomainOutput) HttpsRedirect() pulumi.StringOutput

Specifies whether to redirect HTTP requests as HTTPS requests. Valid values: `On` and `Off`. Default to `Off`.

func (GetDomainsDomainOutput) Id

The ID of domain self ID, value as `domainName`.

func (GetDomainsDomainOutput) IsAccessProduct

func (o GetDomainsDomainOutput) IsAccessProduct() pulumi.StringOutput

Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: `On` and "Off". Default to `Off`.

func (GetDomainsDomainOutput) LoadBalancing

func (o GetDomainsDomainOutput) LoadBalancing() pulumi.StringOutput

The load balancing algorithm that is used to forward requests to the origin. Valid values: `IpHash` and `RoundRobin`. Default to `IpHash`.

func (GetDomainsDomainOutput) LogHeaders

The key-value pair that is used to mark the traffic that flows through WAF to the domain. Each item contains two field: * `key`: The key of label. * `value`: The value of label.

func (GetDomainsDomainOutput) ReadTime

The read timeout of a WAF exclusive cluster. Unit: seconds.

func (GetDomainsDomainOutput) ResourceGroupId

func (o GetDomainsDomainOutput) ResourceGroupId() pulumi.StringOutput

The ID of the resource group to which the queried domain belongs in Resource Management.

func (GetDomainsDomainOutput) SourceIps

List of the IP address or domain of the origin server to which the specified domain points.

func (GetDomainsDomainOutput) ToGetDomainsDomainOutput

func (o GetDomainsDomainOutput) ToGetDomainsDomainOutput() GetDomainsDomainOutput

func (GetDomainsDomainOutput) ToGetDomainsDomainOutputWithContext

func (o GetDomainsDomainOutput) ToGetDomainsDomainOutputWithContext(ctx context.Context) GetDomainsDomainOutput

func (GetDomainsDomainOutput) Version

The system data identifier that is used to control optimistic locking.

func (GetDomainsDomainOutput) WriteTime

func (o GetDomainsDomainOutput) WriteTime() pulumi.IntOutput

The timeout period for a WAF exclusive cluster write connection. Unit: seconds.

type GetDomainsResult

type GetDomainsResult struct {
	// A list of Domains. Each element contains the following attributes:
	Domains       []GetDomainsDomain `pulumi:"domains"`
	EnableDetails *bool              `pulumi:"enableDetails"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// A list of WAF domain self ID, value as `domainName`.
	Ids        []string `pulumi:"ids"`
	InstanceId string   `pulumi:"instanceId"`
	NameRegex  *string  `pulumi:"nameRegex"`
	// A list of WAF domain names.
	Names      []string `pulumi:"names"`
	OutputFile *string  `pulumi:"outputFile"`
	// The ID of the resource group to which the queried domain belongs in Resource Management.
	ResourceGroupId *string `pulumi:"resourceGroupId"`
}

A collection of values returned by getDomains.

func GetDomains

func GetDomains(ctx *pulumi.Context, args *GetDomainsArgs, opts ...pulumi.InvokeOption) (*GetDomainsResult, error)

Provides a WAF datasource to retrieve domains.

For information about WAF and how to use it, see [What is Alibaba Cloud WAF](https://www.alibabacloud.com/help/doc-detail/28517.htm).

> **NOTE:** Available in 1.86.0+ .

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := waf.GetDomains(ctx, &waf.GetDomainsArgs{
			InstanceId: "waf-cf-xxxxx",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetInstancesArgs

type GetInstancesArgs struct {
	// A list of WAF instance IDs.
	Ids []string `pulumi:"ids"`
	// The source of the WAF instance.
	InstanceSource *string `pulumi:"instanceSource"`
	OutputFile     *string `pulumi:"outputFile"`
	// The ID of resource group to which WAF instance belongs.
	ResourceGroupId *string `pulumi:"resourceGroupId"`
	// The status of WAF instance to filter results. Optional value: `0`: The instance has expired, `1` : The instance has not expired and is working properly.
	Status *int `pulumi:"status"`
}

A collection of arguments for invoking getInstances.

type GetInstancesInstance

type GetInstancesInstance struct {
	// The timestamp (in seconds) indicating when the WAF instance expires.
	EndDate int `pulumi:"endDate"`
	// The ID of the WAF instance.
	Id string `pulumi:"id"`
	// Indicates whether the WAF instance has overdue payments.
	InDebt int `pulumi:"inDebt"`
	// The ID of WAF the instance.
	InstanceId string `pulumi:"instanceId"`
	// The number of days before the trial period of the WAF instance expires.
	RemainDay int `pulumi:"remainDay"`
	// The status of WAF instance to filter results. Optional value: `0`: The instance has expired, `1` : The instance has not expired and is working properly.
	Status           int    `pulumi:"status"`
	SubscriptionType string `pulumi:"subscriptionType"`
	// Indicates whether this is a trial instance.
	Trial int `pulumi:"trial"`
}

type GetInstancesInstanceArgs

type GetInstancesInstanceArgs struct {
	// The timestamp (in seconds) indicating when the WAF instance expires.
	EndDate pulumi.IntInput `pulumi:"endDate"`
	// The ID of the WAF instance.
	Id pulumi.StringInput `pulumi:"id"`
	// Indicates whether the WAF instance has overdue payments.
	InDebt pulumi.IntInput `pulumi:"inDebt"`
	// The ID of WAF the instance.
	InstanceId pulumi.StringInput `pulumi:"instanceId"`
	// The number of days before the trial period of the WAF instance expires.
	RemainDay pulumi.IntInput `pulumi:"remainDay"`
	// The status of WAF instance to filter results. Optional value: `0`: The instance has expired, `1` : The instance has not expired and is working properly.
	Status           pulumi.IntInput    `pulumi:"status"`
	SubscriptionType pulumi.StringInput `pulumi:"subscriptionType"`
	// Indicates whether this is a trial instance.
	Trial pulumi.IntInput `pulumi:"trial"`
}

func (GetInstancesInstanceArgs) ElementType

func (GetInstancesInstanceArgs) ElementType() reflect.Type

func (GetInstancesInstanceArgs) ToGetInstancesInstanceOutput

func (i GetInstancesInstanceArgs) ToGetInstancesInstanceOutput() GetInstancesInstanceOutput

func (GetInstancesInstanceArgs) ToGetInstancesInstanceOutputWithContext

func (i GetInstancesInstanceArgs) ToGetInstancesInstanceOutputWithContext(ctx context.Context) GetInstancesInstanceOutput

type GetInstancesInstanceArray

type GetInstancesInstanceArray []GetInstancesInstanceInput

func (GetInstancesInstanceArray) ElementType

func (GetInstancesInstanceArray) ElementType() reflect.Type

func (GetInstancesInstanceArray) ToGetInstancesInstanceArrayOutput

func (i GetInstancesInstanceArray) ToGetInstancesInstanceArrayOutput() GetInstancesInstanceArrayOutput

func (GetInstancesInstanceArray) ToGetInstancesInstanceArrayOutputWithContext

func (i GetInstancesInstanceArray) ToGetInstancesInstanceArrayOutputWithContext(ctx context.Context) GetInstancesInstanceArrayOutput

type GetInstancesInstanceArrayInput

type GetInstancesInstanceArrayInput interface {
	pulumi.Input

	ToGetInstancesInstanceArrayOutput() GetInstancesInstanceArrayOutput
	ToGetInstancesInstanceArrayOutputWithContext(context.Context) GetInstancesInstanceArrayOutput
}

GetInstancesInstanceArrayInput is an input type that accepts GetInstancesInstanceArray and GetInstancesInstanceArrayOutput values. You can construct a concrete instance of `GetInstancesInstanceArrayInput` via:

GetInstancesInstanceArray{ GetInstancesInstanceArgs{...} }

type GetInstancesInstanceArrayOutput

type GetInstancesInstanceArrayOutput struct{ *pulumi.OutputState }

func (GetInstancesInstanceArrayOutput) ElementType

func (GetInstancesInstanceArrayOutput) Index

func (GetInstancesInstanceArrayOutput) ToGetInstancesInstanceArrayOutput

func (o GetInstancesInstanceArrayOutput) ToGetInstancesInstanceArrayOutput() GetInstancesInstanceArrayOutput

func (GetInstancesInstanceArrayOutput) ToGetInstancesInstanceArrayOutputWithContext

func (o GetInstancesInstanceArrayOutput) ToGetInstancesInstanceArrayOutputWithContext(ctx context.Context) GetInstancesInstanceArrayOutput

type GetInstancesInstanceInput

type GetInstancesInstanceInput interface {
	pulumi.Input

	ToGetInstancesInstanceOutput() GetInstancesInstanceOutput
	ToGetInstancesInstanceOutputWithContext(context.Context) GetInstancesInstanceOutput
}

GetInstancesInstanceInput is an input type that accepts GetInstancesInstanceArgs and GetInstancesInstanceOutput values. You can construct a concrete instance of `GetInstancesInstanceInput` via:

GetInstancesInstanceArgs{...}

type GetInstancesInstanceOutput

type GetInstancesInstanceOutput struct{ *pulumi.OutputState }

func (GetInstancesInstanceOutput) ElementType

func (GetInstancesInstanceOutput) ElementType() reflect.Type

func (GetInstancesInstanceOutput) EndDate

The timestamp (in seconds) indicating when the WAF instance expires.

func (GetInstancesInstanceOutput) Id

The ID of the WAF instance.

func (GetInstancesInstanceOutput) InDebt

Indicates whether the WAF instance has overdue payments.

func (GetInstancesInstanceOutput) InstanceId

The ID of WAF the instance.

func (GetInstancesInstanceOutput) RemainDay

The number of days before the trial period of the WAF instance expires.

func (GetInstancesInstanceOutput) Status

The status of WAF instance to filter results. Optional value: `0`: The instance has expired, `1` : The instance has not expired and is working properly.

func (GetInstancesInstanceOutput) SubscriptionType

func (o GetInstancesInstanceOutput) SubscriptionType() pulumi.StringOutput

func (GetInstancesInstanceOutput) ToGetInstancesInstanceOutput

func (o GetInstancesInstanceOutput) ToGetInstancesInstanceOutput() GetInstancesInstanceOutput

func (GetInstancesInstanceOutput) ToGetInstancesInstanceOutputWithContext

func (o GetInstancesInstanceOutput) ToGetInstancesInstanceOutputWithContext(ctx context.Context) GetInstancesInstanceOutput

func (GetInstancesInstanceOutput) Trial

Indicates whether this is a trial instance.

type GetInstancesResult

type GetInstancesResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Optional) A list of WAF instance IDs.
	Ids            []string `pulumi:"ids"`
	InstanceSource *string  `pulumi:"instanceSource"`
	// A list of WAF instances. Each element contains the following attributes:
	Instances       []GetInstancesInstance `pulumi:"instances"`
	OutputFile      *string                `pulumi:"outputFile"`
	ResourceGroupId *string                `pulumi:"resourceGroupId"`
	// Indicates whether the WAF instance has expired.
	Status *int `pulumi:"status"`
}

A collection of values returned by getInstances.

func GetInstances

func GetInstances(ctx *pulumi.Context, args *GetInstancesArgs, opts ...pulumi.InvokeOption) (*GetInstancesResult, error)

Provides a WAF datasource to retrieve instances.

For information about WAF and how to use it, see [What is Alibaba Cloud WAF](https://www.alibabacloud.com/help/doc-detail/28517.htm).

> **NOTE:** Available in 1.90.0+ .

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := 1
		opt1 := "rg-acfmwvv********"
		opt2 := "waf-cloud"
		_default, err := waf.GetInstances(ctx, &waf.GetInstancesArgs{
			Ids: []string{
				"waf-cn-09k********",
			},
			Status:          &opt0,
			ResourceGroupId: &opt1,
			InstanceSource:  &opt2,
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("theFirstWafInstanceId", _default.Instances[0].Id)
		return nil
	})
}

```

type Instance

type Instance struct {
	pulumi.CustomResourceState

	// Specify whether big screen is supported. Valid values: ["0", "1"]. "0" for false and "1" for true.
	BigScreen pulumi.StringOutput `pulumi:"bigScreen"`
	// Specify the number of exclusive WAF IP addresses.
	ExclusiveIpPackage pulumi.StringOutput `pulumi:"exclusiveIpPackage"`
	// The extra bandwidth. Unit: Mbit/s.
	ExtBandwidth pulumi.StringOutput `pulumi:"extBandwidth"`
	// The number of extra domains.
	ExtDomainPackage pulumi.StringOutput `pulumi:"extDomainPackage"`
	// Log storage size. Unit: T. Valid values: [3, 5, 10, 20, 50].
	LogStorage pulumi.StringOutput `pulumi:"logStorage"`
	// Log storage period. Unit: day. Valid values: [180, 360].
	LogTime pulumi.StringOutput `pulumi:"logTime"`
	// Type of configuration change. Valid value: Upgrade.
	ModifyType pulumi.StringPtrOutput `pulumi:"modifyType"`
	// Subscription plan:
	// * China site customers can purchase the following versions of China Mainland region, valid values: ["version3", "version4", "version5"].
	// * China site customers can purchase the following versions of International region, valid values: ["versionProAsia", "versionBusinessAsia", "versionEnterpriseAsia"]
	// * International site customers can purchase the following versions of China Mainland region: ["versionProChina", "versionBusinessChina", "versionEnterpriseChina"]
	// * International site customers can purchase the following versions of International region: ["versionPro", "versionBusiness", "versionEnterprise"].
	PackageCode pulumi.StringOutput `pulumi:"packageCode"`
	// Service time of Web Application Firewall.
	Period pulumi.IntPtrOutput `pulumi:"period"`
	// Specify whether professional service is supported. Valid values: ["true", "false"]
	PrefessionalService pulumi.StringOutput `pulumi:"prefessionalService"`
	// Renewal period of WAF service. Unit: month
	RenewPeriod pulumi.IntPtrOutput `pulumi:"renewPeriod"`
	// Renewal status of WAF service. Valid values:
	// * AutoRenewal: The service time of WAF is renewed automatically.
	// * ManualRenewal (default): The service time of WAF is renewed manually.Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: "On" and "Off". Default to "Off".
	RenewalStatus pulumi.StringPtrOutput `pulumi:"renewalStatus"`
	// The resource group ID.
	ResourceGroupId pulumi.StringPtrOutput `pulumi:"resourceGroupId"`
	// The status of the instance.
	Status pulumi.IntOutput `pulumi:"status"`
	// Subscription of WAF service. Valid values: ["Subscription", "PayAsYouGo"].
	SubscriptionType pulumi.StringOutput `pulumi:"subscriptionType"`
	// Specify whether Log service is supported. Valid values: ["true", "false"]
	WafLog pulumi.StringOutput `pulumi:"wafLog"`
}

Provides a WAF Instance resource to create instance in the Web Application Firewall.

For information about WAF and how to use it, see [What is Alibaba Cloud WAF](https://www.alibabacloud.com/help/doc-detail/28517.htm).

> **NOTE:** Available in 1.83.0+ .

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := waf.NewInstance(ctx, "_default", &waf.InstanceArgs{
			BigScreen:           pulumi.String("0"),
			ExclusiveIpPackage:  pulumi.String("1"),
			ExtBandwidth:        pulumi.String("50"),
			ExtDomainPackage:    pulumi.String("1"),
			LogStorage:          pulumi.String("3"),
			LogTime:             pulumi.String("180"),
			PackageCode:         pulumi.String("version_3"),
			Period:              pulumi.Int(1),
			PrefessionalService: pulumi.String("false"),
			ResourceGroupId:     pulumi.String("rs-abc12345"),
			SubscriptionType:    pulumi.String("Subscription"),
			WafLog:              pulumi.String("false"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

WAF instance can be imported using the id, e.g.

```sh

$ pulumi import alicloud:waf/instance:Instance default waf-cn-132435

```

func GetInstance

func GetInstance(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InstanceState, opts ...pulumi.ResourceOption) (*Instance, error)

GetInstance gets an existing Instance resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewInstance

func NewInstance(ctx *pulumi.Context,
	name string, args *InstanceArgs, opts ...pulumi.ResourceOption) (*Instance, error)

NewInstance registers a new resource with the given unique name, arguments, and options.

func (*Instance) ElementType

func (*Instance) ElementType() reflect.Type

func (*Instance) ToInstanceOutput

func (i *Instance) ToInstanceOutput() InstanceOutput

func (*Instance) ToInstanceOutputWithContext

func (i *Instance) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput

func (*Instance) ToInstancePtrOutput

func (i *Instance) ToInstancePtrOutput() InstancePtrOutput

func (*Instance) ToInstancePtrOutputWithContext

func (i *Instance) ToInstancePtrOutputWithContext(ctx context.Context) InstancePtrOutput

type InstanceArgs

type InstanceArgs struct {
	// Specify whether big screen is supported. Valid values: ["0", "1"]. "0" for false and "1" for true.
	BigScreen pulumi.StringInput
	// Specify the number of exclusive WAF IP addresses.
	ExclusiveIpPackage pulumi.StringInput
	// The extra bandwidth. Unit: Mbit/s.
	ExtBandwidth pulumi.StringInput
	// The number of extra domains.
	ExtDomainPackage pulumi.StringInput
	// Log storage size. Unit: T. Valid values: [3, 5, 10, 20, 50].
	LogStorage pulumi.StringInput
	// Log storage period. Unit: day. Valid values: [180, 360].
	LogTime pulumi.StringInput
	// Type of configuration change. Valid value: Upgrade.
	ModifyType pulumi.StringPtrInput
	// Subscription plan:
	// * China site customers can purchase the following versions of China Mainland region, valid values: ["version3", "version4", "version5"].
	// * China site customers can purchase the following versions of International region, valid values: ["versionProAsia", "versionBusinessAsia", "versionEnterpriseAsia"]
	// * International site customers can purchase the following versions of China Mainland region: ["versionProChina", "versionBusinessChina", "versionEnterpriseChina"]
	// * International site customers can purchase the following versions of International region: ["versionPro", "versionBusiness", "versionEnterprise"].
	PackageCode pulumi.StringInput
	// Service time of Web Application Firewall.
	Period pulumi.IntPtrInput
	// Specify whether professional service is supported. Valid values: ["true", "false"]
	PrefessionalService pulumi.StringInput
	// Renewal period of WAF service. Unit: month
	RenewPeriod pulumi.IntPtrInput
	// Renewal status of WAF service. Valid values:
	// * AutoRenewal: The service time of WAF is renewed automatically.
	// * ManualRenewal (default): The service time of WAF is renewed manually.Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: "On" and "Off". Default to "Off".
	RenewalStatus pulumi.StringPtrInput
	// The resource group ID.
	ResourceGroupId pulumi.StringPtrInput
	// Subscription of WAF service. Valid values: ["Subscription", "PayAsYouGo"].
	SubscriptionType pulumi.StringInput
	// Specify whether Log service is supported. Valid values: ["true", "false"]
	WafLog pulumi.StringInput
}

The set of arguments for constructing a Instance resource.

func (InstanceArgs) ElementType

func (InstanceArgs) ElementType() reflect.Type

type InstanceArray

type InstanceArray []InstanceInput

func (InstanceArray) ElementType

func (InstanceArray) ElementType() reflect.Type

func (InstanceArray) ToInstanceArrayOutput

func (i InstanceArray) ToInstanceArrayOutput() InstanceArrayOutput

func (InstanceArray) ToInstanceArrayOutputWithContext

func (i InstanceArray) ToInstanceArrayOutputWithContext(ctx context.Context) InstanceArrayOutput

type InstanceArrayInput

type InstanceArrayInput interface {
	pulumi.Input

	ToInstanceArrayOutput() InstanceArrayOutput
	ToInstanceArrayOutputWithContext(context.Context) InstanceArrayOutput
}

InstanceArrayInput is an input type that accepts InstanceArray and InstanceArrayOutput values. You can construct a concrete instance of `InstanceArrayInput` via:

InstanceArray{ InstanceArgs{...} }

type InstanceArrayOutput

type InstanceArrayOutput struct{ *pulumi.OutputState }

func (InstanceArrayOutput) ElementType

func (InstanceArrayOutput) ElementType() reflect.Type

func (InstanceArrayOutput) Index

func (InstanceArrayOutput) ToInstanceArrayOutput

func (o InstanceArrayOutput) ToInstanceArrayOutput() InstanceArrayOutput

func (InstanceArrayOutput) ToInstanceArrayOutputWithContext

func (o InstanceArrayOutput) ToInstanceArrayOutputWithContext(ctx context.Context) InstanceArrayOutput

type InstanceInput

type InstanceInput interface {
	pulumi.Input

	ToInstanceOutput() InstanceOutput
	ToInstanceOutputWithContext(ctx context.Context) InstanceOutput
}

type InstanceMap

type InstanceMap map[string]InstanceInput

func (InstanceMap) ElementType

func (InstanceMap) ElementType() reflect.Type

func (InstanceMap) ToInstanceMapOutput

func (i InstanceMap) ToInstanceMapOutput() InstanceMapOutput

func (InstanceMap) ToInstanceMapOutputWithContext

func (i InstanceMap) ToInstanceMapOutputWithContext(ctx context.Context) InstanceMapOutput

type InstanceMapInput

type InstanceMapInput interface {
	pulumi.Input

	ToInstanceMapOutput() InstanceMapOutput
	ToInstanceMapOutputWithContext(context.Context) InstanceMapOutput
}

InstanceMapInput is an input type that accepts InstanceMap and InstanceMapOutput values. You can construct a concrete instance of `InstanceMapInput` via:

InstanceMap{ "key": InstanceArgs{...} }

type InstanceMapOutput

type InstanceMapOutput struct{ *pulumi.OutputState }

func (InstanceMapOutput) ElementType

func (InstanceMapOutput) ElementType() reflect.Type

func (InstanceMapOutput) MapIndex

func (InstanceMapOutput) ToInstanceMapOutput

func (o InstanceMapOutput) ToInstanceMapOutput() InstanceMapOutput

func (InstanceMapOutput) ToInstanceMapOutputWithContext

func (o InstanceMapOutput) ToInstanceMapOutputWithContext(ctx context.Context) InstanceMapOutput

type InstanceOutput

type InstanceOutput struct {
	*pulumi.OutputState
}

func (InstanceOutput) ElementType

func (InstanceOutput) ElementType() reflect.Type

func (InstanceOutput) ToInstanceOutput

func (o InstanceOutput) ToInstanceOutput() InstanceOutput

func (InstanceOutput) ToInstanceOutputWithContext

func (o InstanceOutput) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput

func (InstanceOutput) ToInstancePtrOutput

func (o InstanceOutput) ToInstancePtrOutput() InstancePtrOutput

func (InstanceOutput) ToInstancePtrOutputWithContext

func (o InstanceOutput) ToInstancePtrOutputWithContext(ctx context.Context) InstancePtrOutput

type InstancePtrInput

type InstancePtrInput interface {
	pulumi.Input

	ToInstancePtrOutput() InstancePtrOutput
	ToInstancePtrOutputWithContext(ctx context.Context) InstancePtrOutput
}

type InstancePtrOutput

type InstancePtrOutput struct {
	*pulumi.OutputState
}

func (InstancePtrOutput) ElementType

func (InstancePtrOutput) ElementType() reflect.Type

func (InstancePtrOutput) ToInstancePtrOutput

func (o InstancePtrOutput) ToInstancePtrOutput() InstancePtrOutput

func (InstancePtrOutput) ToInstancePtrOutputWithContext

func (o InstancePtrOutput) ToInstancePtrOutputWithContext(ctx context.Context) InstancePtrOutput

type InstanceState

type InstanceState struct {
	// Specify whether big screen is supported. Valid values: ["0", "1"]. "0" for false and "1" for true.
	BigScreen pulumi.StringPtrInput
	// Specify the number of exclusive WAF IP addresses.
	ExclusiveIpPackage pulumi.StringPtrInput
	// The extra bandwidth. Unit: Mbit/s.
	ExtBandwidth pulumi.StringPtrInput
	// The number of extra domains.
	ExtDomainPackage pulumi.StringPtrInput
	// Log storage size. Unit: T. Valid values: [3, 5, 10, 20, 50].
	LogStorage pulumi.StringPtrInput
	// Log storage period. Unit: day. Valid values: [180, 360].
	LogTime pulumi.StringPtrInput
	// Type of configuration change. Valid value: Upgrade.
	ModifyType pulumi.StringPtrInput
	// Subscription plan:
	// * China site customers can purchase the following versions of China Mainland region, valid values: ["version3", "version4", "version5"].
	// * China site customers can purchase the following versions of International region, valid values: ["versionProAsia", "versionBusinessAsia", "versionEnterpriseAsia"]
	// * International site customers can purchase the following versions of China Mainland region: ["versionProChina", "versionBusinessChina", "versionEnterpriseChina"]
	// * International site customers can purchase the following versions of International region: ["versionPro", "versionBusiness", "versionEnterprise"].
	PackageCode pulumi.StringPtrInput
	// Service time of Web Application Firewall.
	Period pulumi.IntPtrInput
	// Specify whether professional service is supported. Valid values: ["true", "false"]
	PrefessionalService pulumi.StringPtrInput
	// Renewal period of WAF service. Unit: month
	RenewPeriod pulumi.IntPtrInput
	// Renewal status of WAF service. Valid values:
	// * AutoRenewal: The service time of WAF is renewed automatically.
	// * ManualRenewal (default): The service time of WAF is renewed manually.Specifies whether to configure a Layer-7 proxy, such as Anti-DDoS Pro or CDN, to filter the inbound traffic before it is forwarded to WAF. Valid values: "On" and "Off". Default to "Off".
	RenewalStatus pulumi.StringPtrInput
	// The resource group ID.
	ResourceGroupId pulumi.StringPtrInput
	// The status of the instance.
	Status pulumi.IntPtrInput
	// Subscription of WAF service. Valid values: ["Subscription", "PayAsYouGo"].
	SubscriptionType pulumi.StringPtrInput
	// Specify whether Log service is supported. Valid values: ["true", "false"]
	WafLog pulumi.StringPtrInput
}

func (InstanceState) ElementType

func (InstanceState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL