waf

package
v0.0.8 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PkgVersion added in v0.0.2

func PkgVersion() (semver.Version, error)

PkgVersion uses reflection to determine the version of the current package. If a version cannot be determined, v1 will be assumed. The second return value is always nil.

Types

type Certificate

type Certificate struct {
	pulumi.CustomResourceState

	// Specifies the certificate content. Changing this creates a new
	// certificate.
	Certificate pulumi.StringOutput `pulumi:"certificate"`
	// Specifies the enterprise project ID of WAF certificate.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrOutput `pulumi:"enterpriseProjectId"`
	// Indicates the time when the certificate expires.
	Expiration pulumi.StringOutput `pulumi:"expiration"`
	// Specifies the certificate name. The maximum length is 256 characters. Only digits,
	// letters, underscores(`_`), and hyphens(`-`) are allowed.
	Name pulumi.StringOutput `pulumi:"name"`
	// Specifies the private key. Changing this creates a new certificate.
	PrivateKey pulumi.StringOutput `pulumi:"privateKey"`
	// The region in which to create the WAF certificate resource. If omitted, the
	// provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringOutput `pulumi:"region"`
}

Manages a WAF certificate resource within HuaweiCloud.

> **NOTE:** All WAF resources depend on WAF instances, and the WAF instances need to be purchased before they can be used. The certificate resource can be used in Cloud Mode, Dedicated Mode and ELB Mode.

## Example Usage

```go package main

import (

"fmt"

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		_, err := Waf.NewCertificate(ctx, "certificate1", &Waf.CertificateArgs{
			EnterpriseProjectId: pulumi.Any(enterpriseProjectId),
			Certificate: pulumi.String(fmt.Sprintf(`-----BEGIN CERTIFICATE-----

MIIFmQl5dh2QUAeo39TIKtadgAgh4zHx09kSgayS9Wph9LEqq7MA+2042L3J9aOa DAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUR+SosWwALt6PkP0J9iOIxA6RW8gVsLwq ... +HhDvD/VeOHytX3RAs2GeTOtxyAV5XpKY5r+PkyUqPJj04t3d0Fopi0gNtLpMF= -----END CERTIFICATE----- `)),

PrivateKey: pulumi.String(fmt.Sprintf(`-----BEGIN PRIVATE KEY-----

MIIJwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAM ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu ... he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC 1qoJFlcDyqSMo5iHq3HLjs -----END PRIVATE KEY----- `)),

		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

There are two ways to import WAF certificate state. * Using the `id`, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/certificate:Certificate test <id>

```

  • Using `id` and `enterprise_project_id`, separated by a slash, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/certificate:Certificate test <id>/<enterprise_project_id>

```

Note that the imported state is not identical to your resource definition, due to security reason. The missing attributes include `certificate`, and `private_key`. You can ignore changes as below. resource "huaweicloud_waf_certificate" "certificate_2" {

...

lifecycle {

ignore_changes = [

certificate, private_key

]

} }

func GetCertificate

func GetCertificate(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *CertificateState, opts ...pulumi.ResourceOption) (*Certificate, error)

GetCertificate gets an existing Certificate 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 NewCertificate

func NewCertificate(ctx *pulumi.Context,
	name string, args *CertificateArgs, opts ...pulumi.ResourceOption) (*Certificate, error)

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

func (*Certificate) ElementType

func (*Certificate) ElementType() reflect.Type

func (*Certificate) ToCertificateOutput

func (i *Certificate) ToCertificateOutput() CertificateOutput

func (*Certificate) ToCertificateOutputWithContext

func (i *Certificate) ToCertificateOutputWithContext(ctx context.Context) CertificateOutput

type CertificateArgs

type CertificateArgs struct {
	// Specifies the certificate content. Changing this creates a new
	// certificate.
	Certificate pulumi.StringInput
	// Specifies the enterprise project ID of WAF certificate.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Specifies the certificate name. The maximum length is 256 characters. Only digits,
	// letters, underscores(`_`), and hyphens(`-`) are allowed.
	Name pulumi.StringPtrInput
	// Specifies the private key. Changing this creates a new certificate.
	PrivateKey pulumi.StringInput
	// The region in which to create the WAF certificate resource. If omitted, the
	// provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a Certificate resource.

func (CertificateArgs) ElementType

func (CertificateArgs) ElementType() reflect.Type

type CertificateArray

type CertificateArray []CertificateInput

func (CertificateArray) ElementType

func (CertificateArray) ElementType() reflect.Type

func (CertificateArray) ToCertificateArrayOutput

func (i CertificateArray) ToCertificateArrayOutput() CertificateArrayOutput

func (CertificateArray) ToCertificateArrayOutputWithContext

func (i CertificateArray) ToCertificateArrayOutputWithContext(ctx context.Context) CertificateArrayOutput

type CertificateArrayInput

type CertificateArrayInput interface {
	pulumi.Input

	ToCertificateArrayOutput() CertificateArrayOutput
	ToCertificateArrayOutputWithContext(context.Context) CertificateArrayOutput
}

CertificateArrayInput is an input type that accepts CertificateArray and CertificateArrayOutput values. You can construct a concrete instance of `CertificateArrayInput` via:

CertificateArray{ CertificateArgs{...} }

type CertificateArrayOutput

type CertificateArrayOutput struct{ *pulumi.OutputState }

func (CertificateArrayOutput) ElementType

func (CertificateArrayOutput) ElementType() reflect.Type

func (CertificateArrayOutput) Index

func (CertificateArrayOutput) ToCertificateArrayOutput

func (o CertificateArrayOutput) ToCertificateArrayOutput() CertificateArrayOutput

func (CertificateArrayOutput) ToCertificateArrayOutputWithContext

func (o CertificateArrayOutput) ToCertificateArrayOutputWithContext(ctx context.Context) CertificateArrayOutput

type CertificateInput

type CertificateInput interface {
	pulumi.Input

	ToCertificateOutput() CertificateOutput
	ToCertificateOutputWithContext(ctx context.Context) CertificateOutput
}

type CertificateMap

type CertificateMap map[string]CertificateInput

func (CertificateMap) ElementType

func (CertificateMap) ElementType() reflect.Type

func (CertificateMap) ToCertificateMapOutput

func (i CertificateMap) ToCertificateMapOutput() CertificateMapOutput

func (CertificateMap) ToCertificateMapOutputWithContext

func (i CertificateMap) ToCertificateMapOutputWithContext(ctx context.Context) CertificateMapOutput

type CertificateMapInput

type CertificateMapInput interface {
	pulumi.Input

	ToCertificateMapOutput() CertificateMapOutput
	ToCertificateMapOutputWithContext(context.Context) CertificateMapOutput
}

CertificateMapInput is an input type that accepts CertificateMap and CertificateMapOutput values. You can construct a concrete instance of `CertificateMapInput` via:

CertificateMap{ "key": CertificateArgs{...} }

type CertificateMapOutput

type CertificateMapOutput struct{ *pulumi.OutputState }

func (CertificateMapOutput) ElementType

func (CertificateMapOutput) ElementType() reflect.Type

func (CertificateMapOutput) MapIndex

func (CertificateMapOutput) ToCertificateMapOutput

func (o CertificateMapOutput) ToCertificateMapOutput() CertificateMapOutput

func (CertificateMapOutput) ToCertificateMapOutputWithContext

func (o CertificateMapOutput) ToCertificateMapOutputWithContext(ctx context.Context) CertificateMapOutput

type CertificateOutput

type CertificateOutput struct{ *pulumi.OutputState }

func (CertificateOutput) Certificate

func (o CertificateOutput) Certificate() pulumi.StringOutput

Specifies the certificate content. Changing this creates a new certificate.

func (CertificateOutput) ElementType

func (CertificateOutput) ElementType() reflect.Type

func (CertificateOutput) EnterpriseProjectId added in v0.0.8

func (o CertificateOutput) EnterpriseProjectId() pulumi.StringPtrOutput

Specifies the enterprise project ID of WAF certificate. Changing this parameter will create a new resource.

func (CertificateOutput) Expiration

func (o CertificateOutput) Expiration() pulumi.StringOutput

Indicates the time when the certificate expires.

func (CertificateOutput) Name

Specifies the certificate name. The maximum length is 256 characters. Only digits, letters, underscores(`_`), and hyphens(`-`) are allowed.

func (CertificateOutput) PrivateKey

func (o CertificateOutput) PrivateKey() pulumi.StringOutput

Specifies the private key. Changing this creates a new certificate.

func (CertificateOutput) Region

The region in which to create the WAF certificate resource. If omitted, the provider-level region will be used. Changing this setting will push a new certificate.

func (CertificateOutput) ToCertificateOutput

func (o CertificateOutput) ToCertificateOutput() CertificateOutput

func (CertificateOutput) ToCertificateOutputWithContext

func (o CertificateOutput) ToCertificateOutputWithContext(ctx context.Context) CertificateOutput

type CertificateState

type CertificateState struct {
	// Specifies the certificate content. Changing this creates a new
	// certificate.
	Certificate pulumi.StringPtrInput
	// Specifies the enterprise project ID of WAF certificate.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Indicates the time when the certificate expires.
	Expiration pulumi.StringPtrInput
	// Specifies the certificate name. The maximum length is 256 characters. Only digits,
	// letters, underscores(`_`), and hyphens(`-`) are allowed.
	Name pulumi.StringPtrInput
	// Specifies the private key. Changing this creates a new certificate.
	PrivateKey pulumi.StringPtrInput
	// The region in which to create the WAF certificate resource. If omitted, the
	// provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringPtrInput
}

func (CertificateState) ElementType

func (CertificateState) ElementType() reflect.Type

type DedicatedDomain

type DedicatedDomain struct {
	pulumi.CustomResourceState

	// Whether a domain name is connected to WAF. Valid values are:
	AccessStatus pulumi.IntOutput `pulumi:"accessStatus"`
	// The alarm page of domain. Valid values are:
	AlarmPage pulumi.StringMapOutput `pulumi:"alarmPage"`
	// Specifies the certificate ID. This parameter is mandatory when `clientProtocol`
	// is set to HTTPS.
	CertificateId pulumi.StringPtrOutput `pulumi:"certificateId"`
	// The name of the certificate used by the domain name.
	CertificateName pulumi.StringOutput `pulumi:"certificateName"`
	// Specifies the cipher suite of domain. The options include `cipher1`, `cipher2`,
	// `cipher3`, `cipher4`, `cipherDefault`.
	Cipher pulumi.StringOutput `pulumi:"cipher"`
	// The compliance certifications of the domain, values are:
	ComplianceCertification pulumi.BoolMapOutput `pulumi:"complianceCertification"`
	// Specifies the protected domain name or IP address (port allowed). For example,
	// `www.example.com` or `*.example.com` or `www.example.com:89`. Changing this creates a new domain.
	Domain pulumi.StringOutput `pulumi:"domain"`
	// Specifies the enterprise project ID of WAF dedicated domain.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrOutput `pulumi:"enterpriseProjectId"`
	// Specifies whether to retain the policy when deleting a domain name.
	// Defaults to `true`.
	KeepPolicy pulumi.BoolPtrOutput `pulumi:"keepPolicy"`
	// Specifies the status of the PCI 3DS compliance certification check. The options
	// include `true` and `false`. This parameter must be used together with tls and cipher.
	Pci3ds pulumi.BoolOutput `pulumi:"pci3ds"`
	// Specifies the status of the PCI DSS compliance certification check. The options
	// include `true` and `false`. This parameter must be used together with tls and cipher.
	PciDss pulumi.BoolOutput `pulumi:"pciDss"`
	// Specifies the policy ID associated with the domain. If not specified, a new policy
	// will be created automatically.
	PolicyId pulumi.StringOutput `pulumi:"policyId"`
	// The protection status of domain, `0`: suspended, `1`: enabled.
	// Default value is `1`.
	ProtectStatus pulumi.IntOutput `pulumi:"protectStatus"`
	// The protocol type of the client. The options are `HTTP` and `HTTPS`.
	Protocol pulumi.StringOutput `pulumi:"protocol"`
	// Specifies whether a proxy is configured. Default value is `false`.
	Proxy pulumi.BoolPtrOutput `pulumi:"proxy"`
	// The region in which to create the dedicated mode domain resource. If omitted,
	// the provider-level region will be used. Changing this setting will push a new domain.
	Region pulumi.StringOutput `pulumi:"region"`
	// The server configuration list of the domain. A maximum of 80 can be configured.
	// The object structure is documented below.
	Servers DedicatedDomainServerArrayOutput `pulumi:"servers"`
	// Specifies the minimum required TLS version. The options include `TLS v1.0`, `TLS v1.1`,
	// `TLS v1.2`.
	Tls pulumi.StringOutput `pulumi:"tls"`
	// The traffic identifier of domain. Valid values are:
	TrafficIdentifier pulumi.StringMapOutput `pulumi:"trafficIdentifier"`
}

Manages a dedicated mode domain resource within HuaweiCloud.

> **NOTE:** All WAF resources depend on WAF instances, and the WAF instances need to be purchased before they can be used. The dedicated mode domain name resource can be used in Dedicated Mode and ELB Mode.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		certificatedId := cfg.RequireObject("certificatedId")
		vpcId := cfg.RequireObject("vpcId")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		_, err := Waf.NewDedicatedDomain(ctx, "domain1", &Waf.DedicatedDomainArgs{
			Domain:              pulumi.String("www.example.com"),
			CertificateId:       pulumi.Any(certificatedId),
			EnterpriseProjectId: pulumi.Any(enterpriseProjectId),
			Servers: waf.DedicatedDomainServerArray{
				&waf.DedicatedDomainServerArgs{
					ClientProtocol: pulumi.String("HTTPS"),
					ServerProtocol: pulumi.String("HTTP"),
					Address:        pulumi.String("192.168.1.100"),
					Port:           pulumi.Int(8080),
					Type:           pulumi.String("ipv4"),
					VpcId:          pulumi.Any(vpcId),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

There are two ways to import WAF dedicated domain state. * Using the `id`, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/dedicatedDomain:DedicatedDomain test <id>

```

  • Using `id` and `enterprise_project_id`, separated by a slash, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/dedicatedDomain:DedicatedDomain test <id>/<enterprise_project_id>

```

func GetDedicatedDomain

func GetDedicatedDomain(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DedicatedDomainState, opts ...pulumi.ResourceOption) (*DedicatedDomain, error)

GetDedicatedDomain gets an existing DedicatedDomain 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 NewDedicatedDomain

func NewDedicatedDomain(ctx *pulumi.Context,
	name string, args *DedicatedDomainArgs, opts ...pulumi.ResourceOption) (*DedicatedDomain, error)

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

func (*DedicatedDomain) ElementType

func (*DedicatedDomain) ElementType() reflect.Type

func (*DedicatedDomain) ToDedicatedDomainOutput

func (i *DedicatedDomain) ToDedicatedDomainOutput() DedicatedDomainOutput

func (*DedicatedDomain) ToDedicatedDomainOutputWithContext

func (i *DedicatedDomain) ToDedicatedDomainOutputWithContext(ctx context.Context) DedicatedDomainOutput

type DedicatedDomainArgs

type DedicatedDomainArgs struct {
	// Specifies the certificate ID. This parameter is mandatory when `clientProtocol`
	// is set to HTTPS.
	CertificateId pulumi.StringPtrInput
	// Specifies the cipher suite of domain. The options include `cipher1`, `cipher2`,
	// `cipher3`, `cipher4`, `cipherDefault`.
	Cipher pulumi.StringPtrInput
	// Specifies the protected domain name or IP address (port allowed). For example,
	// `www.example.com` or `*.example.com` or `www.example.com:89`. Changing this creates a new domain.
	Domain pulumi.StringInput
	// Specifies the enterprise project ID of WAF dedicated domain.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Specifies whether to retain the policy when deleting a domain name.
	// Defaults to `true`.
	KeepPolicy pulumi.BoolPtrInput
	// Specifies the status of the PCI 3DS compliance certification check. The options
	// include `true` and `false`. This parameter must be used together with tls and cipher.
	Pci3ds pulumi.BoolPtrInput
	// Specifies the status of the PCI DSS compliance certification check. The options
	// include `true` and `false`. This parameter must be used together with tls and cipher.
	PciDss pulumi.BoolPtrInput
	// Specifies the policy ID associated with the domain. If not specified, a new policy
	// will be created automatically.
	PolicyId pulumi.StringPtrInput
	// The protection status of domain, `0`: suspended, `1`: enabled.
	// Default value is `1`.
	ProtectStatus pulumi.IntPtrInput
	// Specifies whether a proxy is configured. Default value is `false`.
	Proxy pulumi.BoolPtrInput
	// The region in which to create the dedicated mode domain resource. If omitted,
	// the provider-level region will be used. Changing this setting will push a new domain.
	Region pulumi.StringPtrInput
	// The server configuration list of the domain. A maximum of 80 can be configured.
	// The object structure is documented below.
	Servers DedicatedDomainServerArrayInput
	// Specifies the minimum required TLS version. The options include `TLS v1.0`, `TLS v1.1`,
	// `TLS v1.2`.
	Tls pulumi.StringPtrInput
}

The set of arguments for constructing a DedicatedDomain resource.

func (DedicatedDomainArgs) ElementType

func (DedicatedDomainArgs) ElementType() reflect.Type

type DedicatedDomainArray

type DedicatedDomainArray []DedicatedDomainInput

func (DedicatedDomainArray) ElementType

func (DedicatedDomainArray) ElementType() reflect.Type

func (DedicatedDomainArray) ToDedicatedDomainArrayOutput

func (i DedicatedDomainArray) ToDedicatedDomainArrayOutput() DedicatedDomainArrayOutput

func (DedicatedDomainArray) ToDedicatedDomainArrayOutputWithContext

func (i DedicatedDomainArray) ToDedicatedDomainArrayOutputWithContext(ctx context.Context) DedicatedDomainArrayOutput

type DedicatedDomainArrayInput

type DedicatedDomainArrayInput interface {
	pulumi.Input

	ToDedicatedDomainArrayOutput() DedicatedDomainArrayOutput
	ToDedicatedDomainArrayOutputWithContext(context.Context) DedicatedDomainArrayOutput
}

DedicatedDomainArrayInput is an input type that accepts DedicatedDomainArray and DedicatedDomainArrayOutput values. You can construct a concrete instance of `DedicatedDomainArrayInput` via:

DedicatedDomainArray{ DedicatedDomainArgs{...} }

type DedicatedDomainArrayOutput

type DedicatedDomainArrayOutput struct{ *pulumi.OutputState }

func (DedicatedDomainArrayOutput) ElementType

func (DedicatedDomainArrayOutput) ElementType() reflect.Type

func (DedicatedDomainArrayOutput) Index

func (DedicatedDomainArrayOutput) ToDedicatedDomainArrayOutput

func (o DedicatedDomainArrayOutput) ToDedicatedDomainArrayOutput() DedicatedDomainArrayOutput

func (DedicatedDomainArrayOutput) ToDedicatedDomainArrayOutputWithContext

func (o DedicatedDomainArrayOutput) ToDedicatedDomainArrayOutputWithContext(ctx context.Context) DedicatedDomainArrayOutput

type DedicatedDomainInput

type DedicatedDomainInput interface {
	pulumi.Input

	ToDedicatedDomainOutput() DedicatedDomainOutput
	ToDedicatedDomainOutputWithContext(ctx context.Context) DedicatedDomainOutput
}

type DedicatedDomainMap

type DedicatedDomainMap map[string]DedicatedDomainInput

func (DedicatedDomainMap) ElementType

func (DedicatedDomainMap) ElementType() reflect.Type

func (DedicatedDomainMap) ToDedicatedDomainMapOutput

func (i DedicatedDomainMap) ToDedicatedDomainMapOutput() DedicatedDomainMapOutput

func (DedicatedDomainMap) ToDedicatedDomainMapOutputWithContext

func (i DedicatedDomainMap) ToDedicatedDomainMapOutputWithContext(ctx context.Context) DedicatedDomainMapOutput

type DedicatedDomainMapInput

type DedicatedDomainMapInput interface {
	pulumi.Input

	ToDedicatedDomainMapOutput() DedicatedDomainMapOutput
	ToDedicatedDomainMapOutputWithContext(context.Context) DedicatedDomainMapOutput
}

DedicatedDomainMapInput is an input type that accepts DedicatedDomainMap and DedicatedDomainMapOutput values. You can construct a concrete instance of `DedicatedDomainMapInput` via:

DedicatedDomainMap{ "key": DedicatedDomainArgs{...} }

type DedicatedDomainMapOutput

type DedicatedDomainMapOutput struct{ *pulumi.OutputState }

func (DedicatedDomainMapOutput) ElementType

func (DedicatedDomainMapOutput) ElementType() reflect.Type

func (DedicatedDomainMapOutput) MapIndex

func (DedicatedDomainMapOutput) ToDedicatedDomainMapOutput

func (o DedicatedDomainMapOutput) ToDedicatedDomainMapOutput() DedicatedDomainMapOutput

func (DedicatedDomainMapOutput) ToDedicatedDomainMapOutputWithContext

func (o DedicatedDomainMapOutput) ToDedicatedDomainMapOutputWithContext(ctx context.Context) DedicatedDomainMapOutput

type DedicatedDomainOutput

type DedicatedDomainOutput struct{ *pulumi.OutputState }

func (DedicatedDomainOutput) AccessStatus

func (o DedicatedDomainOutput) AccessStatus() pulumi.IntOutput

Whether a domain name is connected to WAF. Valid values are:

func (DedicatedDomainOutput) AlarmPage

The alarm page of domain. Valid values are:

func (DedicatedDomainOutput) CertificateId

func (o DedicatedDomainOutput) CertificateId() pulumi.StringPtrOutput

Specifies the certificate ID. This parameter is mandatory when `clientProtocol` is set to HTTPS.

func (DedicatedDomainOutput) CertificateName

func (o DedicatedDomainOutput) CertificateName() pulumi.StringOutput

The name of the certificate used by the domain name.

func (DedicatedDomainOutput) Cipher

Specifies the cipher suite of domain. The options include `cipher1`, `cipher2`, `cipher3`, `cipher4`, `cipherDefault`.

func (DedicatedDomainOutput) ComplianceCertification

func (o DedicatedDomainOutput) ComplianceCertification() pulumi.BoolMapOutput

The compliance certifications of the domain, values are:

func (DedicatedDomainOutput) Domain

Specifies the protected domain name or IP address (port allowed). For example, `www.example.com` or `*.example.com` or `www.example.com:89`. Changing this creates a new domain.

func (DedicatedDomainOutput) ElementType

func (DedicatedDomainOutput) ElementType() reflect.Type

func (DedicatedDomainOutput) EnterpriseProjectId added in v0.0.8

func (o DedicatedDomainOutput) EnterpriseProjectId() pulumi.StringPtrOutput

Specifies the enterprise project ID of WAF dedicated domain. Changing this parameter will create a new resource.

func (DedicatedDomainOutput) KeepPolicy

Specifies whether to retain the policy when deleting a domain name. Defaults to `true`.

func (DedicatedDomainOutput) Pci3ds added in v0.0.8

Specifies the status of the PCI 3DS compliance certification check. The options include `true` and `false`. This parameter must be used together with tls and cipher.

func (DedicatedDomainOutput) PciDss added in v0.0.8

Specifies the status of the PCI DSS compliance certification check. The options include `true` and `false`. This parameter must be used together with tls and cipher.

func (DedicatedDomainOutput) PolicyId

Specifies the policy ID associated with the domain. If not specified, a new policy will be created automatically.

func (DedicatedDomainOutput) ProtectStatus

func (o DedicatedDomainOutput) ProtectStatus() pulumi.IntOutput

The protection status of domain, `0`: suspended, `1`: enabled. Default value is `1`.

func (DedicatedDomainOutput) Protocol

The protocol type of the client. The options are `HTTP` and `HTTPS`.

func (DedicatedDomainOutput) Proxy

Specifies whether a proxy is configured. Default value is `false`.

func (DedicatedDomainOutput) Region

The region in which to create the dedicated mode domain resource. If omitted, the provider-level region will be used. Changing this setting will push a new domain.

func (DedicatedDomainOutput) Servers

The server configuration list of the domain. A maximum of 80 can be configured. The object structure is documented below.

func (DedicatedDomainOutput) Tls

Specifies the minimum required TLS version. The options include `TLS v1.0`, `TLS v1.1`, `TLS v1.2`.

func (DedicatedDomainOutput) ToDedicatedDomainOutput

func (o DedicatedDomainOutput) ToDedicatedDomainOutput() DedicatedDomainOutput

func (DedicatedDomainOutput) ToDedicatedDomainOutputWithContext

func (o DedicatedDomainOutput) ToDedicatedDomainOutputWithContext(ctx context.Context) DedicatedDomainOutput

func (DedicatedDomainOutput) TrafficIdentifier

func (o DedicatedDomainOutput) TrafficIdentifier() pulumi.StringMapOutput

The traffic identifier of domain. Valid values are:

type DedicatedDomainServer

type DedicatedDomainServer struct {
	// IP address or domain name of the web server that the client accesses. For
	// example, `192.168.1.1` or `www.example.com`. Changing this creates a new service.
	Address string `pulumi:"address"`
	// Protocol type of the client. The options include `HTTP` and `HTTPS`.
	// Changing this creates a new service.
	ClientProtocol string `pulumi:"clientProtocol"`
	// Port number used by the web server. The value ranges from 0 to 65535. Changing this
	// creates a new service.
	Port int `pulumi:"port"`
	// Protocol used by WAF to forward client requests to the server. The
	// options include `HTTP` and `HTTPS`. Changing this creates a new service.
	ServerProtocol string `pulumi:"serverProtocol"`
	// Server network type, IPv4 or IPv6. Valid values are: `ipv4` and `ipv6`. Changing
	// this creates a new service.
	Type string `pulumi:"type"`
	// The id of the vpc used by the server. Changing this creates a service.
	VpcId string `pulumi:"vpcId"`
}

type DedicatedDomainServerArgs

type DedicatedDomainServerArgs struct {
	// IP address or domain name of the web server that the client accesses. For
	// example, `192.168.1.1` or `www.example.com`. Changing this creates a new service.
	Address pulumi.StringInput `pulumi:"address"`
	// Protocol type of the client. The options include `HTTP` and `HTTPS`.
	// Changing this creates a new service.
	ClientProtocol pulumi.StringInput `pulumi:"clientProtocol"`
	// Port number used by the web server. The value ranges from 0 to 65535. Changing this
	// creates a new service.
	Port pulumi.IntInput `pulumi:"port"`
	// Protocol used by WAF to forward client requests to the server. The
	// options include `HTTP` and `HTTPS`. Changing this creates a new service.
	ServerProtocol pulumi.StringInput `pulumi:"serverProtocol"`
	// Server network type, IPv4 or IPv6. Valid values are: `ipv4` and `ipv6`. Changing
	// this creates a new service.
	Type pulumi.StringInput `pulumi:"type"`
	// The id of the vpc used by the server. Changing this creates a service.
	VpcId pulumi.StringInput `pulumi:"vpcId"`
}

func (DedicatedDomainServerArgs) ElementType

func (DedicatedDomainServerArgs) ElementType() reflect.Type

func (DedicatedDomainServerArgs) ToDedicatedDomainServerOutput

func (i DedicatedDomainServerArgs) ToDedicatedDomainServerOutput() DedicatedDomainServerOutput

func (DedicatedDomainServerArgs) ToDedicatedDomainServerOutputWithContext

func (i DedicatedDomainServerArgs) ToDedicatedDomainServerOutputWithContext(ctx context.Context) DedicatedDomainServerOutput

type DedicatedDomainServerArray

type DedicatedDomainServerArray []DedicatedDomainServerInput

func (DedicatedDomainServerArray) ElementType

func (DedicatedDomainServerArray) ElementType() reflect.Type

func (DedicatedDomainServerArray) ToDedicatedDomainServerArrayOutput

func (i DedicatedDomainServerArray) ToDedicatedDomainServerArrayOutput() DedicatedDomainServerArrayOutput

func (DedicatedDomainServerArray) ToDedicatedDomainServerArrayOutputWithContext

func (i DedicatedDomainServerArray) ToDedicatedDomainServerArrayOutputWithContext(ctx context.Context) DedicatedDomainServerArrayOutput

type DedicatedDomainServerArrayInput

type DedicatedDomainServerArrayInput interface {
	pulumi.Input

	ToDedicatedDomainServerArrayOutput() DedicatedDomainServerArrayOutput
	ToDedicatedDomainServerArrayOutputWithContext(context.Context) DedicatedDomainServerArrayOutput
}

DedicatedDomainServerArrayInput is an input type that accepts DedicatedDomainServerArray and DedicatedDomainServerArrayOutput values. You can construct a concrete instance of `DedicatedDomainServerArrayInput` via:

DedicatedDomainServerArray{ DedicatedDomainServerArgs{...} }

type DedicatedDomainServerArrayOutput

type DedicatedDomainServerArrayOutput struct{ *pulumi.OutputState }

func (DedicatedDomainServerArrayOutput) ElementType

func (DedicatedDomainServerArrayOutput) Index

func (DedicatedDomainServerArrayOutput) ToDedicatedDomainServerArrayOutput

func (o DedicatedDomainServerArrayOutput) ToDedicatedDomainServerArrayOutput() DedicatedDomainServerArrayOutput

func (DedicatedDomainServerArrayOutput) ToDedicatedDomainServerArrayOutputWithContext

func (o DedicatedDomainServerArrayOutput) ToDedicatedDomainServerArrayOutputWithContext(ctx context.Context) DedicatedDomainServerArrayOutput

type DedicatedDomainServerInput

type DedicatedDomainServerInput interface {
	pulumi.Input

	ToDedicatedDomainServerOutput() DedicatedDomainServerOutput
	ToDedicatedDomainServerOutputWithContext(context.Context) DedicatedDomainServerOutput
}

DedicatedDomainServerInput is an input type that accepts DedicatedDomainServerArgs and DedicatedDomainServerOutput values. You can construct a concrete instance of `DedicatedDomainServerInput` via:

DedicatedDomainServerArgs{...}

type DedicatedDomainServerOutput

type DedicatedDomainServerOutput struct{ *pulumi.OutputState }

func (DedicatedDomainServerOutput) Address

IP address or domain name of the web server that the client accesses. For example, `192.168.1.1` or `www.example.com`. Changing this creates a new service.

func (DedicatedDomainServerOutput) ClientProtocol

func (o DedicatedDomainServerOutput) ClientProtocol() pulumi.StringOutput

Protocol type of the client. The options include `HTTP` and `HTTPS`. Changing this creates a new service.

func (DedicatedDomainServerOutput) ElementType

func (DedicatedDomainServerOutput) Port

Port number used by the web server. The value ranges from 0 to 65535. Changing this creates a new service.

func (DedicatedDomainServerOutput) ServerProtocol

func (o DedicatedDomainServerOutput) ServerProtocol() pulumi.StringOutput

Protocol used by WAF to forward client requests to the server. The options include `HTTP` and `HTTPS`. Changing this creates a new service.

func (DedicatedDomainServerOutput) ToDedicatedDomainServerOutput

func (o DedicatedDomainServerOutput) ToDedicatedDomainServerOutput() DedicatedDomainServerOutput

func (DedicatedDomainServerOutput) ToDedicatedDomainServerOutputWithContext

func (o DedicatedDomainServerOutput) ToDedicatedDomainServerOutputWithContext(ctx context.Context) DedicatedDomainServerOutput

func (DedicatedDomainServerOutput) Type

Server network type, IPv4 or IPv6. Valid values are: `ipv4` and `ipv6`. Changing this creates a new service.

func (DedicatedDomainServerOutput) VpcId

The id of the vpc used by the server. Changing this creates a service.

type DedicatedDomainState

type DedicatedDomainState struct {
	// Whether a domain name is connected to WAF. Valid values are:
	AccessStatus pulumi.IntPtrInput
	// The alarm page of domain. Valid values are:
	AlarmPage pulumi.StringMapInput
	// Specifies the certificate ID. This parameter is mandatory when `clientProtocol`
	// is set to HTTPS.
	CertificateId pulumi.StringPtrInput
	// The name of the certificate used by the domain name.
	CertificateName pulumi.StringPtrInput
	// Specifies the cipher suite of domain. The options include `cipher1`, `cipher2`,
	// `cipher3`, `cipher4`, `cipherDefault`.
	Cipher pulumi.StringPtrInput
	// The compliance certifications of the domain, values are:
	ComplianceCertification pulumi.BoolMapInput
	// Specifies the protected domain name or IP address (port allowed). For example,
	// `www.example.com` or `*.example.com` or `www.example.com:89`. Changing this creates a new domain.
	Domain pulumi.StringPtrInput
	// Specifies the enterprise project ID of WAF dedicated domain.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Specifies whether to retain the policy when deleting a domain name.
	// Defaults to `true`.
	KeepPolicy pulumi.BoolPtrInput
	// Specifies the status of the PCI 3DS compliance certification check. The options
	// include `true` and `false`. This parameter must be used together with tls and cipher.
	Pci3ds pulumi.BoolPtrInput
	// Specifies the status of the PCI DSS compliance certification check. The options
	// include `true` and `false`. This parameter must be used together with tls and cipher.
	PciDss pulumi.BoolPtrInput
	// Specifies the policy ID associated with the domain. If not specified, a new policy
	// will be created automatically.
	PolicyId pulumi.StringPtrInput
	// The protection status of domain, `0`: suspended, `1`: enabled.
	// Default value is `1`.
	ProtectStatus pulumi.IntPtrInput
	// The protocol type of the client. The options are `HTTP` and `HTTPS`.
	Protocol pulumi.StringPtrInput
	// Specifies whether a proxy is configured. Default value is `false`.
	Proxy pulumi.BoolPtrInput
	// The region in which to create the dedicated mode domain resource. If omitted,
	// the provider-level region will be used. Changing this setting will push a new domain.
	Region pulumi.StringPtrInput
	// The server configuration list of the domain. A maximum of 80 can be configured.
	// The object structure is documented below.
	Servers DedicatedDomainServerArrayInput
	// Specifies the minimum required TLS version. The options include `TLS v1.0`, `TLS v1.1`,
	// `TLS v1.2`.
	Tls pulumi.StringPtrInput
	// The traffic identifier of domain. Valid values are:
	TrafficIdentifier pulumi.StringMapInput
}

func (DedicatedDomainState) ElementType

func (DedicatedDomainState) ElementType() reflect.Type

type DedicatedInstance

type DedicatedInstance struct {
	pulumi.CustomResourceState

	// The access status of the instance. `0`: inaccessible, `1`: accessible.
	AccessStatus pulumi.IntOutput `pulumi:"accessStatus"`
	// The available zone names for the dedicated instances. It can be
	// obtained through this data source `getAvailabilityZones`. Changing this will create a new instance.
	AvailableZone pulumi.StringOutput `pulumi:"availableZone"`
	// The ECS cpu architecture of instance, Default value is `x86`.
	// Changing this will create a new instance.
	CpuArchitecture pulumi.StringPtrOutput `pulumi:"cpuArchitecture"`
	// The flavor of the ECS used by the WAF instance. Flavors can be obtained
	// through this data source `Ecs.getFlavors`. Changing this will create a new instance.
	EcsFlavor pulumi.StringOutput `pulumi:"ecsFlavor"`
	// The enterprise project ID of WAF dedicated instance. Changing this
	// will migrate the WAF instance to a new enterprise project.
	EnterpriseProjectId pulumi.StringPtrOutput `pulumi:"enterpriseProjectId"`
	// The instance group ID used by the WAF dedicated instance in ELB mode.
	// Changing this will create a new instance.
	GroupId pulumi.StringPtrOutput `pulumi:"groupId"`
	// The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the
	// name unique.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to create the WAF dedicated instance. If omitted, the
	// provider-level region will be used. Changing this setting will create a new instance.
	Region pulumi.StringOutput `pulumi:"region"`
	// schema: Internal; Specifies whether this is resource tenant.
	ResTenant pulumi.BoolPtrOutput `pulumi:"resTenant"`
	// The running status of the instance. Values are:
	RunStatus pulumi.IntOutput `pulumi:"runStatus"`
	// The security group of the instance. This is an array of security group
	// ids. Changing this will create a new instance.
	SecurityGroups pulumi.StringArrayOutput `pulumi:"securityGroups"`
	// The id of the instance server.
	ServerId pulumi.StringOutput `pulumi:"serverId"`
	// The ip of the instance service.
	ServiceIp pulumi.StringOutput `pulumi:"serviceIp"`
	// The specification code of instance. Different specifications have
	// different throughput. Changing this will create a new instance. Values are:
	// + `waf.instance.professional` - The professional edition, throughput: 100 Mbit/s; QPS: 2,000 (Reference only).
	// + `waf.instance.enterprise` - The enterprise edition, throughput: 500 Mbit/s; QPS: 10,000 (Reference only).
	SpecificationCode pulumi.StringOutput `pulumi:"specificationCode"`
	// The subnet id of WAF dedicated instance VPC. Changing this will create a
	// new instance.
	SubnetId pulumi.StringOutput `pulumi:"subnetId"`
	// The instance is to support upgrades. `0`: Cannot be upgraded, `1`: Can be upgraded.
	Upgradable pulumi.IntOutput `pulumi:"upgradable"`
	// The VPC id of WAF dedicated instance. Changing this will create a new
	// instance.
	VpcId pulumi.StringOutput `pulumi:"vpcId"`
}

Manages a WAF dedicated instance resource within HuaweiCloud.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		azName := cfg.RequireObject("azName")
		ecsFlavorId := cfg.RequireObject("ecsFlavorId")
		vpcId := cfg.RequireObject("vpcId")
		subnetId := cfg.RequireObject("subnetId")
		securityGroupId := cfg.RequireObject("securityGroupId")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		_, err := Waf.NewDedicatedInstance(ctx, "instance1", &Waf.DedicatedInstanceArgs{
			AvailableZone:       pulumi.Any(azName),
			SpecificationCode:   pulumi.String("waf.instance.professional"),
			EcsFlavor:           pulumi.Any(ecsFlavorId),
			VpcId:               pulumi.Any(vpcId),
			SubnetId:            pulumi.Any(subnetId),
			EnterpriseProjectId: pulumi.Any(enterpriseProjectId),
			SecurityGroups: pulumi.StringArray{
				pulumi.Any(securityGroupId),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

There are two ways to import WAF dedicated instance state. * Using the `id`, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/dedicatedInstance:DedicatedInstance test <id>

```

  • Using `id` and `enterprise_project_id`, separated by a slash, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/dedicatedInstance:DedicatedInstance test <id>/<enterprise_project_id>

```

func GetDedicatedInstance

func GetDedicatedInstance(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DedicatedInstanceState, opts ...pulumi.ResourceOption) (*DedicatedInstance, error)

GetDedicatedInstance gets an existing DedicatedInstance 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 NewDedicatedInstance

func NewDedicatedInstance(ctx *pulumi.Context,
	name string, args *DedicatedInstanceArgs, opts ...pulumi.ResourceOption) (*DedicatedInstance, error)

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

func (*DedicatedInstance) ElementType

func (*DedicatedInstance) ElementType() reflect.Type

func (*DedicatedInstance) ToDedicatedInstanceOutput

func (i *DedicatedInstance) ToDedicatedInstanceOutput() DedicatedInstanceOutput

func (*DedicatedInstance) ToDedicatedInstanceOutputWithContext

func (i *DedicatedInstance) ToDedicatedInstanceOutputWithContext(ctx context.Context) DedicatedInstanceOutput

type DedicatedInstanceArgs

type DedicatedInstanceArgs struct {
	// The available zone names for the dedicated instances. It can be
	// obtained through this data source `getAvailabilityZones`. Changing this will create a new instance.
	AvailableZone pulumi.StringInput
	// The ECS cpu architecture of instance, Default value is `x86`.
	// Changing this will create a new instance.
	CpuArchitecture pulumi.StringPtrInput
	// The flavor of the ECS used by the WAF instance. Flavors can be obtained
	// through this data source `Ecs.getFlavors`. Changing this will create a new instance.
	EcsFlavor pulumi.StringInput
	// The enterprise project ID of WAF dedicated instance. Changing this
	// will migrate the WAF instance to a new enterprise project.
	EnterpriseProjectId pulumi.StringPtrInput
	// The instance group ID used by the WAF dedicated instance in ELB mode.
	// Changing this will create a new instance.
	GroupId pulumi.StringPtrInput
	// The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the
	// name unique.
	Name pulumi.StringPtrInput
	// The region in which to create the WAF dedicated instance. If omitted, the
	// provider-level region will be used. Changing this setting will create a new instance.
	Region pulumi.StringPtrInput
	// schema: Internal; Specifies whether this is resource tenant.
	ResTenant pulumi.BoolPtrInput
	// The security group of the instance. This is an array of security group
	// ids. Changing this will create a new instance.
	SecurityGroups pulumi.StringArrayInput
	// The specification code of instance. Different specifications have
	// different throughput. Changing this will create a new instance. Values are:
	// + `waf.instance.professional` - The professional edition, throughput: 100 Mbit/s; QPS: 2,000 (Reference only).
	// + `waf.instance.enterprise` - The enterprise edition, throughput: 500 Mbit/s; QPS: 10,000 (Reference only).
	SpecificationCode pulumi.StringInput
	// The subnet id of WAF dedicated instance VPC. Changing this will create a
	// new instance.
	SubnetId pulumi.StringInput
	// The VPC id of WAF dedicated instance. Changing this will create a new
	// instance.
	VpcId pulumi.StringInput
}

The set of arguments for constructing a DedicatedInstance resource.

func (DedicatedInstanceArgs) ElementType

func (DedicatedInstanceArgs) ElementType() reflect.Type

type DedicatedInstanceArray

type DedicatedInstanceArray []DedicatedInstanceInput

func (DedicatedInstanceArray) ElementType

func (DedicatedInstanceArray) ElementType() reflect.Type

func (DedicatedInstanceArray) ToDedicatedInstanceArrayOutput

func (i DedicatedInstanceArray) ToDedicatedInstanceArrayOutput() DedicatedInstanceArrayOutput

func (DedicatedInstanceArray) ToDedicatedInstanceArrayOutputWithContext

func (i DedicatedInstanceArray) ToDedicatedInstanceArrayOutputWithContext(ctx context.Context) DedicatedInstanceArrayOutput

type DedicatedInstanceArrayInput

type DedicatedInstanceArrayInput interface {
	pulumi.Input

	ToDedicatedInstanceArrayOutput() DedicatedInstanceArrayOutput
	ToDedicatedInstanceArrayOutputWithContext(context.Context) DedicatedInstanceArrayOutput
}

DedicatedInstanceArrayInput is an input type that accepts DedicatedInstanceArray and DedicatedInstanceArrayOutput values. You can construct a concrete instance of `DedicatedInstanceArrayInput` via:

DedicatedInstanceArray{ DedicatedInstanceArgs{...} }

type DedicatedInstanceArrayOutput

type DedicatedInstanceArrayOutput struct{ *pulumi.OutputState }

func (DedicatedInstanceArrayOutput) ElementType

func (DedicatedInstanceArrayOutput) Index

func (DedicatedInstanceArrayOutput) ToDedicatedInstanceArrayOutput

func (o DedicatedInstanceArrayOutput) ToDedicatedInstanceArrayOutput() DedicatedInstanceArrayOutput

func (DedicatedInstanceArrayOutput) ToDedicatedInstanceArrayOutputWithContext

func (o DedicatedInstanceArrayOutput) ToDedicatedInstanceArrayOutputWithContext(ctx context.Context) DedicatedInstanceArrayOutput

type DedicatedInstanceInput

type DedicatedInstanceInput interface {
	pulumi.Input

	ToDedicatedInstanceOutput() DedicatedInstanceOutput
	ToDedicatedInstanceOutputWithContext(ctx context.Context) DedicatedInstanceOutput
}

type DedicatedInstanceMap

type DedicatedInstanceMap map[string]DedicatedInstanceInput

func (DedicatedInstanceMap) ElementType

func (DedicatedInstanceMap) ElementType() reflect.Type

func (DedicatedInstanceMap) ToDedicatedInstanceMapOutput

func (i DedicatedInstanceMap) ToDedicatedInstanceMapOutput() DedicatedInstanceMapOutput

func (DedicatedInstanceMap) ToDedicatedInstanceMapOutputWithContext

func (i DedicatedInstanceMap) ToDedicatedInstanceMapOutputWithContext(ctx context.Context) DedicatedInstanceMapOutput

type DedicatedInstanceMapInput

type DedicatedInstanceMapInput interface {
	pulumi.Input

	ToDedicatedInstanceMapOutput() DedicatedInstanceMapOutput
	ToDedicatedInstanceMapOutputWithContext(context.Context) DedicatedInstanceMapOutput
}

DedicatedInstanceMapInput is an input type that accepts DedicatedInstanceMap and DedicatedInstanceMapOutput values. You can construct a concrete instance of `DedicatedInstanceMapInput` via:

DedicatedInstanceMap{ "key": DedicatedInstanceArgs{...} }

type DedicatedInstanceMapOutput

type DedicatedInstanceMapOutput struct{ *pulumi.OutputState }

func (DedicatedInstanceMapOutput) ElementType

func (DedicatedInstanceMapOutput) ElementType() reflect.Type

func (DedicatedInstanceMapOutput) MapIndex

func (DedicatedInstanceMapOutput) ToDedicatedInstanceMapOutput

func (o DedicatedInstanceMapOutput) ToDedicatedInstanceMapOutput() DedicatedInstanceMapOutput

func (DedicatedInstanceMapOutput) ToDedicatedInstanceMapOutputWithContext

func (o DedicatedInstanceMapOutput) ToDedicatedInstanceMapOutputWithContext(ctx context.Context) DedicatedInstanceMapOutput

type DedicatedInstanceOutput

type DedicatedInstanceOutput struct{ *pulumi.OutputState }

func (DedicatedInstanceOutput) AccessStatus

func (o DedicatedInstanceOutput) AccessStatus() pulumi.IntOutput

The access status of the instance. `0`: inaccessible, `1`: accessible.

func (DedicatedInstanceOutput) AvailableZone

func (o DedicatedInstanceOutput) AvailableZone() pulumi.StringOutput

The available zone names for the dedicated instances. It can be obtained through this data source `getAvailabilityZones`. Changing this will create a new instance.

func (DedicatedInstanceOutput) CpuArchitecture

func (o DedicatedInstanceOutput) CpuArchitecture() pulumi.StringPtrOutput

The ECS cpu architecture of instance, Default value is `x86`. Changing this will create a new instance.

func (DedicatedInstanceOutput) EcsFlavor

The flavor of the ECS used by the WAF instance. Flavors can be obtained through this data source `Ecs.getFlavors`. Changing this will create a new instance.

func (DedicatedInstanceOutput) ElementType

func (DedicatedInstanceOutput) ElementType() reflect.Type

func (DedicatedInstanceOutput) EnterpriseProjectId added in v0.0.8

func (o DedicatedInstanceOutput) EnterpriseProjectId() pulumi.StringPtrOutput

The enterprise project ID of WAF dedicated instance. Changing this will migrate the WAF instance to a new enterprise project.

func (DedicatedInstanceOutput) GroupId

The instance group ID used by the WAF dedicated instance in ELB mode. Changing this will create a new instance.

func (DedicatedInstanceOutput) Name

The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the name unique.

func (DedicatedInstanceOutput) Region

The region in which to create the WAF dedicated instance. If omitted, the provider-level region will be used. Changing this setting will create a new instance.

func (DedicatedInstanceOutput) ResTenant added in v0.0.8

schema: Internal; Specifies whether this is resource tenant.

func (DedicatedInstanceOutput) RunStatus

The running status of the instance. Values are:

func (DedicatedInstanceOutput) SecurityGroups

The security group of the instance. This is an array of security group ids. Changing this will create a new instance.

func (DedicatedInstanceOutput) ServerId

The id of the instance server.

func (DedicatedInstanceOutput) ServiceIp

The ip of the instance service.

func (DedicatedInstanceOutput) SpecificationCode

func (o DedicatedInstanceOutput) SpecificationCode() pulumi.StringOutput

The specification code of instance. Different specifications have different throughput. Changing this will create a new instance. Values are: + `waf.instance.professional` - The professional edition, throughput: 100 Mbit/s; QPS: 2,000 (Reference only). + `waf.instance.enterprise` - The enterprise edition, throughput: 500 Mbit/s; QPS: 10,000 (Reference only).

func (DedicatedInstanceOutput) SubnetId

The subnet id of WAF dedicated instance VPC. Changing this will create a new instance.

func (DedicatedInstanceOutput) ToDedicatedInstanceOutput

func (o DedicatedInstanceOutput) ToDedicatedInstanceOutput() DedicatedInstanceOutput

func (DedicatedInstanceOutput) ToDedicatedInstanceOutputWithContext

func (o DedicatedInstanceOutput) ToDedicatedInstanceOutputWithContext(ctx context.Context) DedicatedInstanceOutput

func (DedicatedInstanceOutput) Upgradable

func (o DedicatedInstanceOutput) Upgradable() pulumi.IntOutput

The instance is to support upgrades. `0`: Cannot be upgraded, `1`: Can be upgraded.

func (DedicatedInstanceOutput) VpcId

The VPC id of WAF dedicated instance. Changing this will create a new instance.

type DedicatedInstanceState

type DedicatedInstanceState struct {
	// The access status of the instance. `0`: inaccessible, `1`: accessible.
	AccessStatus pulumi.IntPtrInput
	// The available zone names for the dedicated instances. It can be
	// obtained through this data source `getAvailabilityZones`. Changing this will create a new instance.
	AvailableZone pulumi.StringPtrInput
	// The ECS cpu architecture of instance, Default value is `x86`.
	// Changing this will create a new instance.
	CpuArchitecture pulumi.StringPtrInput
	// The flavor of the ECS used by the WAF instance. Flavors can be obtained
	// through this data source `Ecs.getFlavors`. Changing this will create a new instance.
	EcsFlavor pulumi.StringPtrInput
	// The enterprise project ID of WAF dedicated instance. Changing this
	// will migrate the WAF instance to a new enterprise project.
	EnterpriseProjectId pulumi.StringPtrInput
	// The instance group ID used by the WAF dedicated instance in ELB mode.
	// Changing this will create a new instance.
	GroupId pulumi.StringPtrInput
	// The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the
	// name unique.
	Name pulumi.StringPtrInput
	// The region in which to create the WAF dedicated instance. If omitted, the
	// provider-level region will be used. Changing this setting will create a new instance.
	Region pulumi.StringPtrInput
	// schema: Internal; Specifies whether this is resource tenant.
	ResTenant pulumi.BoolPtrInput
	// The running status of the instance. Values are:
	RunStatus pulumi.IntPtrInput
	// The security group of the instance. This is an array of security group
	// ids. Changing this will create a new instance.
	SecurityGroups pulumi.StringArrayInput
	// The id of the instance server.
	ServerId pulumi.StringPtrInput
	// The ip of the instance service.
	ServiceIp pulumi.StringPtrInput
	// The specification code of instance. Different specifications have
	// different throughput. Changing this will create a new instance. Values are:
	// + `waf.instance.professional` - The professional edition, throughput: 100 Mbit/s; QPS: 2,000 (Reference only).
	// + `waf.instance.enterprise` - The enterprise edition, throughput: 500 Mbit/s; QPS: 10,000 (Reference only).
	SpecificationCode pulumi.StringPtrInput
	// The subnet id of WAF dedicated instance VPC. Changing this will create a
	// new instance.
	SubnetId pulumi.StringPtrInput
	// The instance is to support upgrades. `0`: Cannot be upgraded, `1`: Can be upgraded.
	Upgradable pulumi.IntPtrInput
	// The VPC id of WAF dedicated instance. Changing this will create a new
	// instance.
	VpcId pulumi.StringPtrInput
}

func (DedicatedInstanceState) ElementType

func (DedicatedInstanceState) ElementType() reflect.Type

type Domain

type Domain struct {
	pulumi.CustomResourceState

	// Whether a domain name is connected to WAF. 0: The domain name is not connected to WAF, 1: The domain
	// name is connected to WAF.
	AccessStatus pulumi.IntOutput `pulumi:"accessStatus"`
	// Specifies the certificate ID. This parameter is mandatory when `clientProtocol`
	// is set to HTTPS.
	CertificateId pulumi.StringPtrOutput `pulumi:"certificateId"`
	// Specifies the certificate name. This parameter is mandatory
	// when `clientProtocol` is set to HTTPS.
	CertificateName pulumi.StringPtrOutput `pulumi:"certificateName"`
	// Specifies the charging mode of the domain. Valid values are *prePaid*
	// and *postPaid*, defaults to *prePaid*. Changing this creates a new instance.
	ChargingMode pulumi.StringPtrOutput `pulumi:"chargingMode"`
	// Specifies the domain name to be protected. For example, `www.example.com` or
	// `*.example.com`. Changing this creates a new domain.
	Domain pulumi.StringOutput `pulumi:"domain"`
	// Specifies the enterprise project ID of WAF domain.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrOutput `pulumi:"enterpriseProjectId"`
	// Specifies whether to retain the policy when deleting a domain name.
	// Defaults to true.
	KeepPolicy pulumi.BoolPtrOutput `pulumi:"keepPolicy"`
	// Specifies the policy ID associated with the domain. If not specified, a new
	// policy will be created automatically. Changing this create a new domain.
	PolicyId pulumi.StringOutput `pulumi:"policyId"`
	// The WAF mode. -1: bypassed, 0: disabled, 1: enabled.
	ProtectStatus pulumi.IntOutput `pulumi:"protectStatus"`
	// The protocol type of the client. The options are HTTP, HTTPS, and HTTP&HTTPS.
	Protocol pulumi.StringOutput `pulumi:"protocol"`
	// Specifies whether a proxy is configured.
	Proxy pulumi.BoolPtrOutput `pulumi:"proxy"`
	// The region in which to create the WAF domain resource. If omitted, the
	// provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringOutput `pulumi:"region"`
	// Specifies an array of origin web servers. The object structure is documented below.
	Servers DomainServerArrayOutput `pulumi:"servers"`
}

Manages a WAF domain resource within HuaweiCloud.

> **NOTE:** All WAF resources depend on WAF instances, and the WAF instances need to be purchased before they can be used. The domain name resource can be used in Cloud Mode.

## Example Usage

```go package main

import (

"fmt"

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		certificate1, err := Waf.NewCertificate(ctx, "certificate1", &Waf.CertificateArgs{
			EnterpriseProjectId: pulumi.Any(enterpriseProjectId),
			Certificate: pulumi.String(fmt.Sprintf(`-----BEGIN CERTIFICATE-----

MIIFmQl5dh2QUAeo39TIKtadgAgh4zHx09kSgayS9Wph9LEqq7MA+2042L3J9aOa DAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUR+SosWwALt6PkP0J9iOIxA6RW8gVsLwq ... +HhDvD/VeOHytX3RAs2GeTOtxyAV5XpKY5r+PkyUqPJj04t3d0Fopi0gNtLpMF= -----END CERTIFICATE----- `)),

PrivateKey: pulumi.String(fmt.Sprintf(`-----BEGIN PRIVATE KEY-----

MIIJwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAM ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu ... he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC 1qoJFlcDyqSMo5iHq3HLjs -----END PRIVATE KEY----- `)),

		})
		if err != nil {
			return err
		}
		_, err = Waf.NewDomain(ctx, "domain1", &Waf.DomainArgs{
			Domain:              pulumi.String("www.example.com"),
			CertificateId:       certificate1.ID(),
			CertificateName:     certificate1.Name,
			Proxy:               pulumi.Bool(true),
			EnterpriseProjectId: pulumi.Any(enterpriseProjectId),
			Servers: waf.DomainServerArray{
				&waf.DomainServerArgs{
					ClientProtocol: pulumi.String("HTTPS"),
					ServerProtocol: pulumi.String("HTTP"),
					Address:        pulumi.String("119.8.0.13"),
					Port:           pulumi.Int(8080),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

There are two ways to import WAF domain state. * Using the `id`, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/domain:Domain test <id>

```

  • Using `id` and `enterprise_project_id`, separated by a slash, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/domain:Domain test <id>/<enterprise_project_id>

```

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

type DomainArgs

type DomainArgs struct {
	// Specifies the certificate ID. This parameter is mandatory when `clientProtocol`
	// is set to HTTPS.
	CertificateId pulumi.StringPtrInput
	// Specifies the certificate name. This parameter is mandatory
	// when `clientProtocol` is set to HTTPS.
	CertificateName pulumi.StringPtrInput
	// Specifies the charging mode of the domain. Valid values are *prePaid*
	// and *postPaid*, defaults to *prePaid*. Changing this creates a new instance.
	ChargingMode pulumi.StringPtrInput
	// Specifies the domain name to be protected. For example, `www.example.com` or
	// `*.example.com`. Changing this creates a new domain.
	Domain pulumi.StringInput
	// Specifies the enterprise project ID of WAF domain.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Specifies whether to retain the policy when deleting a domain name.
	// Defaults to true.
	KeepPolicy pulumi.BoolPtrInput
	// Specifies the policy ID associated with the domain. If not specified, a new
	// policy will be created automatically. Changing this create a new domain.
	PolicyId pulumi.StringPtrInput
	// Specifies whether a proxy is configured.
	Proxy pulumi.BoolPtrInput
	// The region in which to create the WAF domain resource. If omitted, the
	// provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringPtrInput
	// Specifies an array of origin web servers. The object structure is documented below.
	Servers DomainServerArrayInput
}

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 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) AccessStatus

func (o DomainOutput) AccessStatus() pulumi.IntOutput

Whether a domain name is connected to WAF. 0: The domain name is not connected to WAF, 1: The domain name is connected to WAF.

func (DomainOutput) CertificateId

func (o DomainOutput) CertificateId() pulumi.StringPtrOutput

Specifies the certificate ID. This parameter is mandatory when `clientProtocol` is set to HTTPS.

func (DomainOutput) CertificateName

func (o DomainOutput) CertificateName() pulumi.StringPtrOutput

Specifies the certificate name. This parameter is mandatory when `clientProtocol` is set to HTTPS.

func (DomainOutput) ChargingMode added in v0.0.8

func (o DomainOutput) ChargingMode() pulumi.StringPtrOutput

Specifies the charging mode of the domain. Valid values are *prePaid* and *postPaid*, defaults to *prePaid*. Changing this creates a new instance.

func (DomainOutput) Domain

func (o DomainOutput) Domain() pulumi.StringOutput

Specifies the domain name to be protected. For example, `www.example.com` or `*.example.com`. Changing this creates a new domain.

func (DomainOutput) ElementType

func (DomainOutput) ElementType() reflect.Type

func (DomainOutput) EnterpriseProjectId added in v0.0.8

func (o DomainOutput) EnterpriseProjectId() pulumi.StringPtrOutput

Specifies the enterprise project ID of WAF domain. Changing this parameter will create a new resource.

func (DomainOutput) KeepPolicy

func (o DomainOutput) KeepPolicy() pulumi.BoolPtrOutput

Specifies whether to retain the policy when deleting a domain name. Defaults to true.

func (DomainOutput) PolicyId

func (o DomainOutput) PolicyId() pulumi.StringOutput

Specifies the policy ID associated with the domain. If not specified, a new policy will be created automatically. Changing this create a new domain.

func (DomainOutput) ProtectStatus

func (o DomainOutput) ProtectStatus() pulumi.IntOutput

The WAF mode. -1: bypassed, 0: disabled, 1: enabled.

func (DomainOutput) Protocol

func (o DomainOutput) Protocol() pulumi.StringOutput

The protocol type of the client. The options are HTTP, HTTPS, and HTTP&HTTPS.

func (DomainOutput) Proxy

func (o DomainOutput) Proxy() pulumi.BoolPtrOutput

Specifies whether a proxy is configured.

func (DomainOutput) Region

func (o DomainOutput) Region() pulumi.StringOutput

The region in which to create the WAF domain resource. If omitted, the provider-level region will be used. Changing this setting will push a new certificate.

func (DomainOutput) Servers

Specifies an array of origin web servers. The object structure is documented below.

func (DomainOutput) ToDomainOutput

func (o DomainOutput) ToDomainOutput() DomainOutput

func (DomainOutput) ToDomainOutputWithContext

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

type DomainServer

type DomainServer struct {
	// IP address or domain name of the web server that the client accesses. For example,
	// `192.168.1.1` or `www.a.com`.
	Address string `pulumi:"address"`
	// Protocol type of the client. The options include `HTTP` and `HTTPS`.
	ClientProtocol string `pulumi:"clientProtocol"`
	// Port number used by the web server. The value ranges from 0 to 65535, for example, 8080.
	Port int `pulumi:"port"`
	// Protocol used by WAF to forward client requests to the server. The options
	// include `HTTP` and `HTTPS`.
	ServerProtocol string `pulumi:"serverProtocol"`
}

type DomainServerArgs

type DomainServerArgs struct {
	// IP address or domain name of the web server that the client accesses. For example,
	// `192.168.1.1` or `www.a.com`.
	Address pulumi.StringInput `pulumi:"address"`
	// Protocol type of the client. The options include `HTTP` and `HTTPS`.
	ClientProtocol pulumi.StringInput `pulumi:"clientProtocol"`
	// Port number used by the web server. The value ranges from 0 to 65535, for example, 8080.
	Port pulumi.IntInput `pulumi:"port"`
	// Protocol used by WAF to forward client requests to the server. The options
	// include `HTTP` and `HTTPS`.
	ServerProtocol pulumi.StringInput `pulumi:"serverProtocol"`
}

func (DomainServerArgs) ElementType

func (DomainServerArgs) ElementType() reflect.Type

func (DomainServerArgs) ToDomainServerOutput

func (i DomainServerArgs) ToDomainServerOutput() DomainServerOutput

func (DomainServerArgs) ToDomainServerOutputWithContext

func (i DomainServerArgs) ToDomainServerOutputWithContext(ctx context.Context) DomainServerOutput

type DomainServerArray

type DomainServerArray []DomainServerInput

func (DomainServerArray) ElementType

func (DomainServerArray) ElementType() reflect.Type

func (DomainServerArray) ToDomainServerArrayOutput

func (i DomainServerArray) ToDomainServerArrayOutput() DomainServerArrayOutput

func (DomainServerArray) ToDomainServerArrayOutputWithContext

func (i DomainServerArray) ToDomainServerArrayOutputWithContext(ctx context.Context) DomainServerArrayOutput

type DomainServerArrayInput

type DomainServerArrayInput interface {
	pulumi.Input

	ToDomainServerArrayOutput() DomainServerArrayOutput
	ToDomainServerArrayOutputWithContext(context.Context) DomainServerArrayOutput
}

DomainServerArrayInput is an input type that accepts DomainServerArray and DomainServerArrayOutput values. You can construct a concrete instance of `DomainServerArrayInput` via:

DomainServerArray{ DomainServerArgs{...} }

type DomainServerArrayOutput

type DomainServerArrayOutput struct{ *pulumi.OutputState }

func (DomainServerArrayOutput) ElementType

func (DomainServerArrayOutput) ElementType() reflect.Type

func (DomainServerArrayOutput) Index

func (DomainServerArrayOutput) ToDomainServerArrayOutput

func (o DomainServerArrayOutput) ToDomainServerArrayOutput() DomainServerArrayOutput

func (DomainServerArrayOutput) ToDomainServerArrayOutputWithContext

func (o DomainServerArrayOutput) ToDomainServerArrayOutputWithContext(ctx context.Context) DomainServerArrayOutput

type DomainServerInput

type DomainServerInput interface {
	pulumi.Input

	ToDomainServerOutput() DomainServerOutput
	ToDomainServerOutputWithContext(context.Context) DomainServerOutput
}

DomainServerInput is an input type that accepts DomainServerArgs and DomainServerOutput values. You can construct a concrete instance of `DomainServerInput` via:

DomainServerArgs{...}

type DomainServerOutput

type DomainServerOutput struct{ *pulumi.OutputState }

func (DomainServerOutput) Address

IP address or domain name of the web server that the client accesses. For example, `192.168.1.1` or `www.a.com`.

func (DomainServerOutput) ClientProtocol

func (o DomainServerOutput) ClientProtocol() pulumi.StringOutput

Protocol type of the client. The options include `HTTP` and `HTTPS`.

func (DomainServerOutput) ElementType

func (DomainServerOutput) ElementType() reflect.Type

func (DomainServerOutput) Port

Port number used by the web server. The value ranges from 0 to 65535, for example, 8080.

func (DomainServerOutput) ServerProtocol

func (o DomainServerOutput) ServerProtocol() pulumi.StringOutput

Protocol used by WAF to forward client requests to the server. The options include `HTTP` and `HTTPS`.

func (DomainServerOutput) ToDomainServerOutput

func (o DomainServerOutput) ToDomainServerOutput() DomainServerOutput

func (DomainServerOutput) ToDomainServerOutputWithContext

func (o DomainServerOutput) ToDomainServerOutputWithContext(ctx context.Context) DomainServerOutput

type DomainState

type DomainState struct {
	// Whether a domain name is connected to WAF. 0: The domain name is not connected to WAF, 1: The domain
	// name is connected to WAF.
	AccessStatus pulumi.IntPtrInput
	// Specifies the certificate ID. This parameter is mandatory when `clientProtocol`
	// is set to HTTPS.
	CertificateId pulumi.StringPtrInput
	// Specifies the certificate name. This parameter is mandatory
	// when `clientProtocol` is set to HTTPS.
	CertificateName pulumi.StringPtrInput
	// Specifies the charging mode of the domain. Valid values are *prePaid*
	// and *postPaid*, defaults to *prePaid*. Changing this creates a new instance.
	ChargingMode pulumi.StringPtrInput
	// Specifies the domain name to be protected. For example, `www.example.com` or
	// `*.example.com`. Changing this creates a new domain.
	Domain pulumi.StringPtrInput
	// Specifies the enterprise project ID of WAF domain.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Specifies whether to retain the policy when deleting a domain name.
	// Defaults to true.
	KeepPolicy pulumi.BoolPtrInput
	// Specifies the policy ID associated with the domain. If not specified, a new
	// policy will be created automatically. Changing this create a new domain.
	PolicyId pulumi.StringPtrInput
	// The WAF mode. -1: bypassed, 0: disabled, 1: enabled.
	ProtectStatus pulumi.IntPtrInput
	// The protocol type of the client. The options are HTTP, HTTPS, and HTTP&HTTPS.
	Protocol pulumi.StringPtrInput
	// Specifies whether a proxy is configured.
	Proxy pulumi.BoolPtrInput
	// The region in which to create the WAF domain resource. If omitted, the
	// provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringPtrInput
	// Specifies an array of origin web servers. The object structure is documented below.
	Servers DomainServerArrayInput
}

func (DomainState) ElementType

func (DomainState) ElementType() reflect.Type

type GetDedicatedInstancesArgs

type GetDedicatedInstancesArgs struct {
	// The enterprise project ID of WAF dedicated instance.
	EnterpriseProjectId *string `pulumi:"enterpriseProjectId"`
	// The id of WAF dedicated instance.
	Id *string `pulumi:"id"`
	// The name of WAF dedicated instance.
	Name *string `pulumi:"name"`
	// The region in which to query the WAF dedicated instance.
	// If omitted, the provider-level region will be used.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getDedicatedInstances.

type GetDedicatedInstancesInstance

type GetDedicatedInstancesInstance struct {
	// The access status of the instance. `0`: inaccessible, `1`: accessible.
	AccessStatus int `pulumi:"accessStatus"`
	// The available zone names for the WAF dedicated instances.
	AvailableZone string `pulumi:"availableZone"`
	// The ECS cpu architecture of WAF dedicated instance.
	CpuArchitecture string `pulumi:"cpuArchitecture"`
	// The flavor of the ECS used by the WAF instance.
	EcsFlavor string `pulumi:"ecsFlavor"`
	// The instance group ID used by the WAF dedicated instance in ELB mode.
	GroupId string `pulumi:"groupId"`
	// The id of WAF dedicated instance.
	Id string `pulumi:"id"`
	// The name of WAF dedicated instance.
	Name string `pulumi:"name"`
	// The running status of the instance. Values are:
	RunStatus int `pulumi:"runStatus"`
	// The security group of the instance. This is an array of security group ids.
	SecurityGroups []string `pulumi:"securityGroups"`
	// The service of the instance.
	ServerId string `pulumi:"serverId"`
	// The service ip of the instance.
	ServiceIp string `pulumi:"serviceIp"`
	// The subnet id of WAF dedicated instance VPC.
	SubnetId string `pulumi:"subnetId"`
	// The instance is to support upgrades. `0`: Cannot be upgraded, `1`: Can be upgraded.
	Upgradable int `pulumi:"upgradable"`
	// The VPC id of WAF dedicated instance.
	VpcId string `pulumi:"vpcId"`
}

type GetDedicatedInstancesInstanceArgs

type GetDedicatedInstancesInstanceArgs struct {
	// The access status of the instance. `0`: inaccessible, `1`: accessible.
	AccessStatus pulumi.IntInput `pulumi:"accessStatus"`
	// The available zone names for the WAF dedicated instances.
	AvailableZone pulumi.StringInput `pulumi:"availableZone"`
	// The ECS cpu architecture of WAF dedicated instance.
	CpuArchitecture pulumi.StringInput `pulumi:"cpuArchitecture"`
	// The flavor of the ECS used by the WAF instance.
	EcsFlavor pulumi.StringInput `pulumi:"ecsFlavor"`
	// The instance group ID used by the WAF dedicated instance in ELB mode.
	GroupId pulumi.StringInput `pulumi:"groupId"`
	// The id of WAF dedicated instance.
	Id pulumi.StringInput `pulumi:"id"`
	// The name of WAF dedicated instance.
	Name pulumi.StringInput `pulumi:"name"`
	// The running status of the instance. Values are:
	RunStatus pulumi.IntInput `pulumi:"runStatus"`
	// The security group of the instance. This is an array of security group ids.
	SecurityGroups pulumi.StringArrayInput `pulumi:"securityGroups"`
	// The service of the instance.
	ServerId pulumi.StringInput `pulumi:"serverId"`
	// The service ip of the instance.
	ServiceIp pulumi.StringInput `pulumi:"serviceIp"`
	// The subnet id of WAF dedicated instance VPC.
	SubnetId pulumi.StringInput `pulumi:"subnetId"`
	// The instance is to support upgrades. `0`: Cannot be upgraded, `1`: Can be upgraded.
	Upgradable pulumi.IntInput `pulumi:"upgradable"`
	// The VPC id of WAF dedicated instance.
	VpcId pulumi.StringInput `pulumi:"vpcId"`
}

func (GetDedicatedInstancesInstanceArgs) ElementType

func (GetDedicatedInstancesInstanceArgs) ToGetDedicatedInstancesInstanceOutput

func (i GetDedicatedInstancesInstanceArgs) ToGetDedicatedInstancesInstanceOutput() GetDedicatedInstancesInstanceOutput

func (GetDedicatedInstancesInstanceArgs) ToGetDedicatedInstancesInstanceOutputWithContext

func (i GetDedicatedInstancesInstanceArgs) ToGetDedicatedInstancesInstanceOutputWithContext(ctx context.Context) GetDedicatedInstancesInstanceOutput

type GetDedicatedInstancesInstanceArray

type GetDedicatedInstancesInstanceArray []GetDedicatedInstancesInstanceInput

func (GetDedicatedInstancesInstanceArray) ElementType

func (GetDedicatedInstancesInstanceArray) ToGetDedicatedInstancesInstanceArrayOutput

func (i GetDedicatedInstancesInstanceArray) ToGetDedicatedInstancesInstanceArrayOutput() GetDedicatedInstancesInstanceArrayOutput

func (GetDedicatedInstancesInstanceArray) ToGetDedicatedInstancesInstanceArrayOutputWithContext

func (i GetDedicatedInstancesInstanceArray) ToGetDedicatedInstancesInstanceArrayOutputWithContext(ctx context.Context) GetDedicatedInstancesInstanceArrayOutput

type GetDedicatedInstancesInstanceArrayInput

type GetDedicatedInstancesInstanceArrayInput interface {
	pulumi.Input

	ToGetDedicatedInstancesInstanceArrayOutput() GetDedicatedInstancesInstanceArrayOutput
	ToGetDedicatedInstancesInstanceArrayOutputWithContext(context.Context) GetDedicatedInstancesInstanceArrayOutput
}

GetDedicatedInstancesInstanceArrayInput is an input type that accepts GetDedicatedInstancesInstanceArray and GetDedicatedInstancesInstanceArrayOutput values. You can construct a concrete instance of `GetDedicatedInstancesInstanceArrayInput` via:

GetDedicatedInstancesInstanceArray{ GetDedicatedInstancesInstanceArgs{...} }

type GetDedicatedInstancesInstanceArrayOutput

type GetDedicatedInstancesInstanceArrayOutput struct{ *pulumi.OutputState }

func (GetDedicatedInstancesInstanceArrayOutput) ElementType

func (GetDedicatedInstancesInstanceArrayOutput) Index

func (GetDedicatedInstancesInstanceArrayOutput) ToGetDedicatedInstancesInstanceArrayOutput

func (o GetDedicatedInstancesInstanceArrayOutput) ToGetDedicatedInstancesInstanceArrayOutput() GetDedicatedInstancesInstanceArrayOutput

func (GetDedicatedInstancesInstanceArrayOutput) ToGetDedicatedInstancesInstanceArrayOutputWithContext

func (o GetDedicatedInstancesInstanceArrayOutput) ToGetDedicatedInstancesInstanceArrayOutputWithContext(ctx context.Context) GetDedicatedInstancesInstanceArrayOutput

type GetDedicatedInstancesInstanceInput

type GetDedicatedInstancesInstanceInput interface {
	pulumi.Input

	ToGetDedicatedInstancesInstanceOutput() GetDedicatedInstancesInstanceOutput
	ToGetDedicatedInstancesInstanceOutputWithContext(context.Context) GetDedicatedInstancesInstanceOutput
}

GetDedicatedInstancesInstanceInput is an input type that accepts GetDedicatedInstancesInstanceArgs and GetDedicatedInstancesInstanceOutput values. You can construct a concrete instance of `GetDedicatedInstancesInstanceInput` via:

GetDedicatedInstancesInstanceArgs{...}

type GetDedicatedInstancesInstanceOutput

type GetDedicatedInstancesInstanceOutput struct{ *pulumi.OutputState }

func (GetDedicatedInstancesInstanceOutput) AccessStatus

The access status of the instance. `0`: inaccessible, `1`: accessible.

func (GetDedicatedInstancesInstanceOutput) AvailableZone

The available zone names for the WAF dedicated instances.

func (GetDedicatedInstancesInstanceOutput) CpuArchitecture

The ECS cpu architecture of WAF dedicated instance.

func (GetDedicatedInstancesInstanceOutput) EcsFlavor added in v0.0.8

The flavor of the ECS used by the WAF instance.

func (GetDedicatedInstancesInstanceOutput) ElementType

func (GetDedicatedInstancesInstanceOutput) GroupId

The instance group ID used by the WAF dedicated instance in ELB mode.

func (GetDedicatedInstancesInstanceOutput) Id

The id of WAF dedicated instance.

func (GetDedicatedInstancesInstanceOutput) Name

The name of WAF dedicated instance.

func (GetDedicatedInstancesInstanceOutput) RunStatus

The running status of the instance. Values are:

func (GetDedicatedInstancesInstanceOutput) SecurityGroups

The security group of the instance. This is an array of security group ids.

func (GetDedicatedInstancesInstanceOutput) ServerId

The service of the instance.

func (GetDedicatedInstancesInstanceOutput) ServiceIp

The service ip of the instance.

func (GetDedicatedInstancesInstanceOutput) SubnetId

The subnet id of WAF dedicated instance VPC.

func (GetDedicatedInstancesInstanceOutput) ToGetDedicatedInstancesInstanceOutput

func (o GetDedicatedInstancesInstanceOutput) ToGetDedicatedInstancesInstanceOutput() GetDedicatedInstancesInstanceOutput

func (GetDedicatedInstancesInstanceOutput) ToGetDedicatedInstancesInstanceOutputWithContext

func (o GetDedicatedInstancesInstanceOutput) ToGetDedicatedInstancesInstanceOutputWithContext(ctx context.Context) GetDedicatedInstancesInstanceOutput

func (GetDedicatedInstancesInstanceOutput) Upgradable

The instance is to support upgrades. `0`: Cannot be upgraded, `1`: Can be upgraded.

func (GetDedicatedInstancesInstanceOutput) VpcId

The VPC id of WAF dedicated instance.

type GetDedicatedInstancesOutputArgs

type GetDedicatedInstancesOutputArgs struct {
	// The enterprise project ID of WAF dedicated instance.
	EnterpriseProjectId pulumi.StringPtrInput `pulumi:"enterpriseProjectId"`
	// The id of WAF dedicated instance.
	Id pulumi.StringPtrInput `pulumi:"id"`
	// The name of WAF dedicated instance.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The region in which to query the WAF dedicated instance.
	// If omitted, the provider-level region will be used.
	Region pulumi.StringPtrInput `pulumi:"region"`
}

A collection of arguments for invoking getDedicatedInstances.

func (GetDedicatedInstancesOutputArgs) ElementType

type GetDedicatedInstancesResult

type GetDedicatedInstancesResult struct {
	EnterpriseProjectId *string `pulumi:"enterpriseProjectId"`
	// The ID of WAF dedicated instance.
	Id string `pulumi:"id"`
	// An array of available WAF dedicated instances.
	Instances []GetDedicatedInstancesInstance `pulumi:"instances"`
	// The name of WAF dedicated instance.
	Name   *string `pulumi:"name"`
	Region string  `pulumi:"region"`
}

A collection of values returned by getDedicatedInstances.

func GetDedicatedInstances

func GetDedicatedInstances(ctx *pulumi.Context, args *GetDedicatedInstancesArgs, opts ...pulumi.InvokeOption) (*GetDedicatedInstancesResult, error)

Use this data source to get a list of WAF dedicated instances.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		instanceName := cfg.RequireObject("instanceName")
		_, err := Waf.GetDedicatedInstances(ctx, &waf.GetDedicatedInstancesArgs{
			Name: pulumi.StringRef(instanceName),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetDedicatedInstancesResultOutput

type GetDedicatedInstancesResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getDedicatedInstances.

func (GetDedicatedInstancesResultOutput) ElementType

func (GetDedicatedInstancesResultOutput) EnterpriseProjectId added in v0.0.8

func (GetDedicatedInstancesResultOutput) Id

The ID of WAF dedicated instance.

func (GetDedicatedInstancesResultOutput) Instances

An array of available WAF dedicated instances.

func (GetDedicatedInstancesResultOutput) Name

The name of WAF dedicated instance.

func (GetDedicatedInstancesResultOutput) Region

func (GetDedicatedInstancesResultOutput) ToGetDedicatedInstancesResultOutput

func (o GetDedicatedInstancesResultOutput) ToGetDedicatedInstancesResultOutput() GetDedicatedInstancesResultOutput

func (GetDedicatedInstancesResultOutput) ToGetDedicatedInstancesResultOutputWithContext

func (o GetDedicatedInstancesResultOutput) ToGetDedicatedInstancesResultOutputWithContext(ctx context.Context) GetDedicatedInstancesResultOutput

type GetInstanceGroupsArgs

type GetInstanceGroupsArgs struct {
	// The name of WAF instance group used for matching.
	// The value is not case-sensitive and supports fuzzy matching.
	Name *string `pulumi:"name"`
	// The region in which to obtain the WAF instance groups.
	// If omitted, the provider-level region will be used.
	Region *string `pulumi:"region"`
	// The id of the VPC that the WAF dedicated instances belongs to.
	VpcId *string `pulumi:"vpcId"`
}

A collection of arguments for invoking getInstanceGroups.

type GetInstanceGroupsGroup

type GetInstanceGroupsGroup struct {
	// The body limit of the forwarding policy.
	BodyLimit int `pulumi:"bodyLimit"`
	// The time for connection timeout in the forwarding policy.
	ConnectionTimeout  int                                       `pulumi:"connectionTimeout"`
	DedicatedInstances []GetInstanceGroupsGroupDedicatedInstance `pulumi:"dedicatedInstances"`
	// Description of the instance group.
	Description string                             `pulumi:"description"`
	DomainNames []GetInstanceGroupsGroupDomainName `pulumi:"domainNames"`
	// The header limit of the forwarding policy.
	HeaderLimit int `pulumi:"headerLimit"`
	// The IDs of the ELB instances that has been bound to the instance group.
	LoadBalancers []string `pulumi:"loadBalancers"`
	// The name of WAF instance group used for matching.
	// The value is not case-sensitive and supports fuzzy matching.
	Name string `pulumi:"name"`
	// The time for reading timeout in the forwarding policy.
	ReadTimeout int `pulumi:"readTimeout"`
	// The region in which to obtain the WAF instance groups.
	// If omitted, the provider-level region will be used.
	Region string `pulumi:"region"`
	// The id of the VPC that the WAF dedicated instances belongs to.
	VpcId string `pulumi:"vpcId"`
	// The time for writing timeout in the forwarding policy.
	WriteTimeout int `pulumi:"writeTimeout"`
}

type GetInstanceGroupsGroupArgs

type GetInstanceGroupsGroupArgs struct {
	// The body limit of the forwarding policy.
	BodyLimit pulumi.IntInput `pulumi:"bodyLimit"`
	// The time for connection timeout in the forwarding policy.
	ConnectionTimeout  pulumi.IntInput                                   `pulumi:"connectionTimeout"`
	DedicatedInstances GetInstanceGroupsGroupDedicatedInstanceArrayInput `pulumi:"dedicatedInstances"`
	// Description of the instance group.
	Description pulumi.StringInput                         `pulumi:"description"`
	DomainNames GetInstanceGroupsGroupDomainNameArrayInput `pulumi:"domainNames"`
	// The header limit of the forwarding policy.
	HeaderLimit pulumi.IntInput `pulumi:"headerLimit"`
	// The IDs of the ELB instances that has been bound to the instance group.
	LoadBalancers pulumi.StringArrayInput `pulumi:"loadBalancers"`
	// The name of WAF instance group used for matching.
	// The value is not case-sensitive and supports fuzzy matching.
	Name pulumi.StringInput `pulumi:"name"`
	// The time for reading timeout in the forwarding policy.
	ReadTimeout pulumi.IntInput `pulumi:"readTimeout"`
	// The region in which to obtain the WAF instance groups.
	// If omitted, the provider-level region will be used.
	Region pulumi.StringInput `pulumi:"region"`
	// The id of the VPC that the WAF dedicated instances belongs to.
	VpcId pulumi.StringInput `pulumi:"vpcId"`
	// The time for writing timeout in the forwarding policy.
	WriteTimeout pulumi.IntInput `pulumi:"writeTimeout"`
}

func (GetInstanceGroupsGroupArgs) ElementType

func (GetInstanceGroupsGroupArgs) ElementType() reflect.Type

func (GetInstanceGroupsGroupArgs) ToGetInstanceGroupsGroupOutput

func (i GetInstanceGroupsGroupArgs) ToGetInstanceGroupsGroupOutput() GetInstanceGroupsGroupOutput

func (GetInstanceGroupsGroupArgs) ToGetInstanceGroupsGroupOutputWithContext

func (i GetInstanceGroupsGroupArgs) ToGetInstanceGroupsGroupOutputWithContext(ctx context.Context) GetInstanceGroupsGroupOutput

type GetInstanceGroupsGroupArray

type GetInstanceGroupsGroupArray []GetInstanceGroupsGroupInput

func (GetInstanceGroupsGroupArray) ElementType

func (GetInstanceGroupsGroupArray) ToGetInstanceGroupsGroupArrayOutput

func (i GetInstanceGroupsGroupArray) ToGetInstanceGroupsGroupArrayOutput() GetInstanceGroupsGroupArrayOutput

func (GetInstanceGroupsGroupArray) ToGetInstanceGroupsGroupArrayOutputWithContext

func (i GetInstanceGroupsGroupArray) ToGetInstanceGroupsGroupArrayOutputWithContext(ctx context.Context) GetInstanceGroupsGroupArrayOutput

type GetInstanceGroupsGroupArrayInput

type GetInstanceGroupsGroupArrayInput interface {
	pulumi.Input

	ToGetInstanceGroupsGroupArrayOutput() GetInstanceGroupsGroupArrayOutput
	ToGetInstanceGroupsGroupArrayOutputWithContext(context.Context) GetInstanceGroupsGroupArrayOutput
}

GetInstanceGroupsGroupArrayInput is an input type that accepts GetInstanceGroupsGroupArray and GetInstanceGroupsGroupArrayOutput values. You can construct a concrete instance of `GetInstanceGroupsGroupArrayInput` via:

GetInstanceGroupsGroupArray{ GetInstanceGroupsGroupArgs{...} }

type GetInstanceGroupsGroupArrayOutput

type GetInstanceGroupsGroupArrayOutput struct{ *pulumi.OutputState }

func (GetInstanceGroupsGroupArrayOutput) ElementType

func (GetInstanceGroupsGroupArrayOutput) Index

func (GetInstanceGroupsGroupArrayOutput) ToGetInstanceGroupsGroupArrayOutput

func (o GetInstanceGroupsGroupArrayOutput) ToGetInstanceGroupsGroupArrayOutput() GetInstanceGroupsGroupArrayOutput

func (GetInstanceGroupsGroupArrayOutput) ToGetInstanceGroupsGroupArrayOutputWithContext

func (o GetInstanceGroupsGroupArrayOutput) ToGetInstanceGroupsGroupArrayOutputWithContext(ctx context.Context) GetInstanceGroupsGroupArrayOutput

type GetInstanceGroupsGroupDedicatedInstance

type GetInstanceGroupsGroupDedicatedInstance struct {
	Id string `pulumi:"id"`
	// The name of WAF instance group used for matching.
	// The value is not case-sensitive and supports fuzzy matching.
	Name string `pulumi:"name"`
}

type GetInstanceGroupsGroupDedicatedInstanceArgs

type GetInstanceGroupsGroupDedicatedInstanceArgs struct {
	Id pulumi.StringInput `pulumi:"id"`
	// The name of WAF instance group used for matching.
	// The value is not case-sensitive and supports fuzzy matching.
	Name pulumi.StringInput `pulumi:"name"`
}

func (GetInstanceGroupsGroupDedicatedInstanceArgs) ElementType

func (GetInstanceGroupsGroupDedicatedInstanceArgs) ToGetInstanceGroupsGroupDedicatedInstanceOutput

func (i GetInstanceGroupsGroupDedicatedInstanceArgs) ToGetInstanceGroupsGroupDedicatedInstanceOutput() GetInstanceGroupsGroupDedicatedInstanceOutput

func (GetInstanceGroupsGroupDedicatedInstanceArgs) ToGetInstanceGroupsGroupDedicatedInstanceOutputWithContext

func (i GetInstanceGroupsGroupDedicatedInstanceArgs) ToGetInstanceGroupsGroupDedicatedInstanceOutputWithContext(ctx context.Context) GetInstanceGroupsGroupDedicatedInstanceOutput

type GetInstanceGroupsGroupDedicatedInstanceArray

type GetInstanceGroupsGroupDedicatedInstanceArray []GetInstanceGroupsGroupDedicatedInstanceInput

func (GetInstanceGroupsGroupDedicatedInstanceArray) ElementType

func (GetInstanceGroupsGroupDedicatedInstanceArray) ToGetInstanceGroupsGroupDedicatedInstanceArrayOutput

func (i GetInstanceGroupsGroupDedicatedInstanceArray) ToGetInstanceGroupsGroupDedicatedInstanceArrayOutput() GetInstanceGroupsGroupDedicatedInstanceArrayOutput

func (GetInstanceGroupsGroupDedicatedInstanceArray) ToGetInstanceGroupsGroupDedicatedInstanceArrayOutputWithContext

func (i GetInstanceGroupsGroupDedicatedInstanceArray) ToGetInstanceGroupsGroupDedicatedInstanceArrayOutputWithContext(ctx context.Context) GetInstanceGroupsGroupDedicatedInstanceArrayOutput

type GetInstanceGroupsGroupDedicatedInstanceArrayInput

type GetInstanceGroupsGroupDedicatedInstanceArrayInput interface {
	pulumi.Input

	ToGetInstanceGroupsGroupDedicatedInstanceArrayOutput() GetInstanceGroupsGroupDedicatedInstanceArrayOutput
	ToGetInstanceGroupsGroupDedicatedInstanceArrayOutputWithContext(context.Context) GetInstanceGroupsGroupDedicatedInstanceArrayOutput
}

GetInstanceGroupsGroupDedicatedInstanceArrayInput is an input type that accepts GetInstanceGroupsGroupDedicatedInstanceArray and GetInstanceGroupsGroupDedicatedInstanceArrayOutput values. You can construct a concrete instance of `GetInstanceGroupsGroupDedicatedInstanceArrayInput` via:

GetInstanceGroupsGroupDedicatedInstanceArray{ GetInstanceGroupsGroupDedicatedInstanceArgs{...} }

type GetInstanceGroupsGroupDedicatedInstanceArrayOutput

type GetInstanceGroupsGroupDedicatedInstanceArrayOutput struct{ *pulumi.OutputState }

func (GetInstanceGroupsGroupDedicatedInstanceArrayOutput) ElementType

func (GetInstanceGroupsGroupDedicatedInstanceArrayOutput) Index

func (GetInstanceGroupsGroupDedicatedInstanceArrayOutput) ToGetInstanceGroupsGroupDedicatedInstanceArrayOutput

func (o GetInstanceGroupsGroupDedicatedInstanceArrayOutput) ToGetInstanceGroupsGroupDedicatedInstanceArrayOutput() GetInstanceGroupsGroupDedicatedInstanceArrayOutput

func (GetInstanceGroupsGroupDedicatedInstanceArrayOutput) ToGetInstanceGroupsGroupDedicatedInstanceArrayOutputWithContext

func (o GetInstanceGroupsGroupDedicatedInstanceArrayOutput) ToGetInstanceGroupsGroupDedicatedInstanceArrayOutputWithContext(ctx context.Context) GetInstanceGroupsGroupDedicatedInstanceArrayOutput

type GetInstanceGroupsGroupDedicatedInstanceInput

type GetInstanceGroupsGroupDedicatedInstanceInput interface {
	pulumi.Input

	ToGetInstanceGroupsGroupDedicatedInstanceOutput() GetInstanceGroupsGroupDedicatedInstanceOutput
	ToGetInstanceGroupsGroupDedicatedInstanceOutputWithContext(context.Context) GetInstanceGroupsGroupDedicatedInstanceOutput
}

GetInstanceGroupsGroupDedicatedInstanceInput is an input type that accepts GetInstanceGroupsGroupDedicatedInstanceArgs and GetInstanceGroupsGroupDedicatedInstanceOutput values. You can construct a concrete instance of `GetInstanceGroupsGroupDedicatedInstanceInput` via:

GetInstanceGroupsGroupDedicatedInstanceArgs{...}

type GetInstanceGroupsGroupDedicatedInstanceOutput

type GetInstanceGroupsGroupDedicatedInstanceOutput struct{ *pulumi.OutputState }

func (GetInstanceGroupsGroupDedicatedInstanceOutput) ElementType

func (GetInstanceGroupsGroupDedicatedInstanceOutput) Id

func (GetInstanceGroupsGroupDedicatedInstanceOutput) Name

The name of WAF instance group used for matching. The value is not case-sensitive and supports fuzzy matching.

func (GetInstanceGroupsGroupDedicatedInstanceOutput) ToGetInstanceGroupsGroupDedicatedInstanceOutput

func (o GetInstanceGroupsGroupDedicatedInstanceOutput) ToGetInstanceGroupsGroupDedicatedInstanceOutput() GetInstanceGroupsGroupDedicatedInstanceOutput

func (GetInstanceGroupsGroupDedicatedInstanceOutput) ToGetInstanceGroupsGroupDedicatedInstanceOutputWithContext

func (o GetInstanceGroupsGroupDedicatedInstanceOutput) ToGetInstanceGroupsGroupDedicatedInstanceOutputWithContext(ctx context.Context) GetInstanceGroupsGroupDedicatedInstanceOutput

type GetInstanceGroupsGroupDomainName

type GetInstanceGroupsGroupDomainName struct {
	Id string `pulumi:"id"`
	// The name of WAF instance group used for matching.
	// The value is not case-sensitive and supports fuzzy matching.
	Name string `pulumi:"name"`
}

type GetInstanceGroupsGroupDomainNameArgs

type GetInstanceGroupsGroupDomainNameArgs struct {
	Id pulumi.StringInput `pulumi:"id"`
	// The name of WAF instance group used for matching.
	// The value is not case-sensitive and supports fuzzy matching.
	Name pulumi.StringInput `pulumi:"name"`
}

func (GetInstanceGroupsGroupDomainNameArgs) ElementType

func (GetInstanceGroupsGroupDomainNameArgs) ToGetInstanceGroupsGroupDomainNameOutput

func (i GetInstanceGroupsGroupDomainNameArgs) ToGetInstanceGroupsGroupDomainNameOutput() GetInstanceGroupsGroupDomainNameOutput

func (GetInstanceGroupsGroupDomainNameArgs) ToGetInstanceGroupsGroupDomainNameOutputWithContext

func (i GetInstanceGroupsGroupDomainNameArgs) ToGetInstanceGroupsGroupDomainNameOutputWithContext(ctx context.Context) GetInstanceGroupsGroupDomainNameOutput

type GetInstanceGroupsGroupDomainNameArray

type GetInstanceGroupsGroupDomainNameArray []GetInstanceGroupsGroupDomainNameInput

func (GetInstanceGroupsGroupDomainNameArray) ElementType

func (GetInstanceGroupsGroupDomainNameArray) ToGetInstanceGroupsGroupDomainNameArrayOutput

func (i GetInstanceGroupsGroupDomainNameArray) ToGetInstanceGroupsGroupDomainNameArrayOutput() GetInstanceGroupsGroupDomainNameArrayOutput

func (GetInstanceGroupsGroupDomainNameArray) ToGetInstanceGroupsGroupDomainNameArrayOutputWithContext

func (i GetInstanceGroupsGroupDomainNameArray) ToGetInstanceGroupsGroupDomainNameArrayOutputWithContext(ctx context.Context) GetInstanceGroupsGroupDomainNameArrayOutput

type GetInstanceGroupsGroupDomainNameArrayInput

type GetInstanceGroupsGroupDomainNameArrayInput interface {
	pulumi.Input

	ToGetInstanceGroupsGroupDomainNameArrayOutput() GetInstanceGroupsGroupDomainNameArrayOutput
	ToGetInstanceGroupsGroupDomainNameArrayOutputWithContext(context.Context) GetInstanceGroupsGroupDomainNameArrayOutput
}

GetInstanceGroupsGroupDomainNameArrayInput is an input type that accepts GetInstanceGroupsGroupDomainNameArray and GetInstanceGroupsGroupDomainNameArrayOutput values. You can construct a concrete instance of `GetInstanceGroupsGroupDomainNameArrayInput` via:

GetInstanceGroupsGroupDomainNameArray{ GetInstanceGroupsGroupDomainNameArgs{...} }

type GetInstanceGroupsGroupDomainNameArrayOutput

type GetInstanceGroupsGroupDomainNameArrayOutput struct{ *pulumi.OutputState }

func (GetInstanceGroupsGroupDomainNameArrayOutput) ElementType

func (GetInstanceGroupsGroupDomainNameArrayOutput) Index

func (GetInstanceGroupsGroupDomainNameArrayOutput) ToGetInstanceGroupsGroupDomainNameArrayOutput

func (o GetInstanceGroupsGroupDomainNameArrayOutput) ToGetInstanceGroupsGroupDomainNameArrayOutput() GetInstanceGroupsGroupDomainNameArrayOutput

func (GetInstanceGroupsGroupDomainNameArrayOutput) ToGetInstanceGroupsGroupDomainNameArrayOutputWithContext

func (o GetInstanceGroupsGroupDomainNameArrayOutput) ToGetInstanceGroupsGroupDomainNameArrayOutputWithContext(ctx context.Context) GetInstanceGroupsGroupDomainNameArrayOutput

type GetInstanceGroupsGroupDomainNameInput

type GetInstanceGroupsGroupDomainNameInput interface {
	pulumi.Input

	ToGetInstanceGroupsGroupDomainNameOutput() GetInstanceGroupsGroupDomainNameOutput
	ToGetInstanceGroupsGroupDomainNameOutputWithContext(context.Context) GetInstanceGroupsGroupDomainNameOutput
}

GetInstanceGroupsGroupDomainNameInput is an input type that accepts GetInstanceGroupsGroupDomainNameArgs and GetInstanceGroupsGroupDomainNameOutput values. You can construct a concrete instance of `GetInstanceGroupsGroupDomainNameInput` via:

GetInstanceGroupsGroupDomainNameArgs{...}

type GetInstanceGroupsGroupDomainNameOutput

type GetInstanceGroupsGroupDomainNameOutput struct{ *pulumi.OutputState }

func (GetInstanceGroupsGroupDomainNameOutput) ElementType

func (GetInstanceGroupsGroupDomainNameOutput) Id

func (GetInstanceGroupsGroupDomainNameOutput) Name

The name of WAF instance group used for matching. The value is not case-sensitive and supports fuzzy matching.

func (GetInstanceGroupsGroupDomainNameOutput) ToGetInstanceGroupsGroupDomainNameOutput

func (o GetInstanceGroupsGroupDomainNameOutput) ToGetInstanceGroupsGroupDomainNameOutput() GetInstanceGroupsGroupDomainNameOutput

func (GetInstanceGroupsGroupDomainNameOutput) ToGetInstanceGroupsGroupDomainNameOutputWithContext

func (o GetInstanceGroupsGroupDomainNameOutput) ToGetInstanceGroupsGroupDomainNameOutputWithContext(ctx context.Context) GetInstanceGroupsGroupDomainNameOutput

type GetInstanceGroupsGroupInput

type GetInstanceGroupsGroupInput interface {
	pulumi.Input

	ToGetInstanceGroupsGroupOutput() GetInstanceGroupsGroupOutput
	ToGetInstanceGroupsGroupOutputWithContext(context.Context) GetInstanceGroupsGroupOutput
}

GetInstanceGroupsGroupInput is an input type that accepts GetInstanceGroupsGroupArgs and GetInstanceGroupsGroupOutput values. You can construct a concrete instance of `GetInstanceGroupsGroupInput` via:

GetInstanceGroupsGroupArgs{...}

type GetInstanceGroupsGroupOutput

type GetInstanceGroupsGroupOutput struct{ *pulumi.OutputState }

func (GetInstanceGroupsGroupOutput) BodyLimit

The body limit of the forwarding policy.

func (GetInstanceGroupsGroupOutput) ConnectionTimeout

func (o GetInstanceGroupsGroupOutput) ConnectionTimeout() pulumi.IntOutput

The time for connection timeout in the forwarding policy.

func (GetInstanceGroupsGroupOutput) DedicatedInstances

func (GetInstanceGroupsGroupOutput) Description

Description of the instance group.

func (GetInstanceGroupsGroupOutput) DomainNames

func (GetInstanceGroupsGroupOutput) ElementType

func (GetInstanceGroupsGroupOutput) HeaderLimit

The header limit of the forwarding policy.

func (GetInstanceGroupsGroupOutput) LoadBalancers

The IDs of the ELB instances that has been bound to the instance group.

func (GetInstanceGroupsGroupOutput) Name

The name of WAF instance group used for matching. The value is not case-sensitive and supports fuzzy matching.

func (GetInstanceGroupsGroupOutput) ReadTimeout

The time for reading timeout in the forwarding policy.

func (GetInstanceGroupsGroupOutput) Region

The region in which to obtain the WAF instance groups. If omitted, the provider-level region will be used.

func (GetInstanceGroupsGroupOutput) ToGetInstanceGroupsGroupOutput

func (o GetInstanceGroupsGroupOutput) ToGetInstanceGroupsGroupOutput() GetInstanceGroupsGroupOutput

func (GetInstanceGroupsGroupOutput) ToGetInstanceGroupsGroupOutputWithContext

func (o GetInstanceGroupsGroupOutput) ToGetInstanceGroupsGroupOutputWithContext(ctx context.Context) GetInstanceGroupsGroupOutput

func (GetInstanceGroupsGroupOutput) VpcId

The id of the VPC that the WAF dedicated instances belongs to.

func (GetInstanceGroupsGroupOutput) WriteTimeout

The time for writing timeout in the forwarding policy.

type GetInstanceGroupsOutputArgs

type GetInstanceGroupsOutputArgs struct {
	// The name of WAF instance group used for matching.
	// The value is not case-sensitive and supports fuzzy matching.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The region in which to obtain the WAF instance groups.
	// If omitted, the provider-level region will be used.
	Region pulumi.StringPtrInput `pulumi:"region"`
	// The id of the VPC that the WAF dedicated instances belongs to.
	VpcId pulumi.StringPtrInput `pulumi:"vpcId"`
}

A collection of arguments for invoking getInstanceGroups.

func (GetInstanceGroupsOutputArgs) ElementType

type GetInstanceGroupsResult

type GetInstanceGroupsResult struct {
	// A list of WAF instance groups.
	Groups []GetInstanceGroupsGroup `pulumi:"groups"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The instance group name.
	Name *string `pulumi:"name"`
	// The region in which to create the instance group.
	Region string `pulumi:"region"`
	// The id of the VPC that the WAF dedicated instances belongs to.
	VpcId *string `pulumi:"vpcId"`
}

A collection of values returned by getInstanceGroups.

func GetInstanceGroups

func GetInstanceGroups(ctx *pulumi.Context, args *GetInstanceGroupsArgs, opts ...pulumi.InvokeOption) (*GetInstanceGroupsResult, error)

Use this data source to get a list of WAF instance groups.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := Waf.GetInstanceGroups(ctx, &waf.GetInstanceGroupsArgs{
			Name: pulumi.StringRef("example_name"),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetInstanceGroupsResultOutput

type GetInstanceGroupsResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getInstanceGroups.

func (GetInstanceGroupsResultOutput) ElementType

func (GetInstanceGroupsResultOutput) Groups

A list of WAF instance groups.

func (GetInstanceGroupsResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetInstanceGroupsResultOutput) Name

The instance group name.

func (GetInstanceGroupsResultOutput) Region

The region in which to create the instance group.

func (GetInstanceGroupsResultOutput) ToGetInstanceGroupsResultOutput

func (o GetInstanceGroupsResultOutput) ToGetInstanceGroupsResultOutput() GetInstanceGroupsResultOutput

func (GetInstanceGroupsResultOutput) ToGetInstanceGroupsResultOutputWithContext

func (o GetInstanceGroupsResultOutput) ToGetInstanceGroupsResultOutputWithContext(ctx context.Context) GetInstanceGroupsResultOutput

func (GetInstanceGroupsResultOutput) VpcId

The id of the VPC that the WAF dedicated instances belongs to.

type GetPoliciesArgs

type GetPoliciesArgs struct {
	// Specifies the enterprise project ID of WAF policies.
	EnterpriseProjectId *string `pulumi:"enterpriseProjectId"`
	// Policy name used for matching. The value is case sensitive and supports fuzzy matching.
	Name *string `pulumi:"name"`
	// The region in which to obtain the WAF policies. If omitted, the provider-level region
	// will be used.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getPolicies.

type GetPoliciesOutputArgs

type GetPoliciesOutputArgs struct {
	// Specifies the enterprise project ID of WAF policies.
	EnterpriseProjectId pulumi.StringPtrInput `pulumi:"enterpriseProjectId"`
	// Policy name used for matching. The value is case sensitive and supports fuzzy matching.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The region in which to obtain the WAF policies. If omitted, the provider-level region
	// will be used.
	Region pulumi.StringPtrInput `pulumi:"region"`
}

A collection of arguments for invoking getPolicies.

func (GetPoliciesOutputArgs) ElementType

func (GetPoliciesOutputArgs) ElementType() reflect.Type

type GetPoliciesPolicy

type GetPoliciesPolicy struct {
	// The detection mode in Precise Protection.
	// + `true`: full detection. Full detection finishes all threat detections before blocking requests that meet Precise
	//   Protection specified conditions.
	// + `false`: instant detection. Instant detection immediately ends threat detection after blocking a request that
	//   meets Precise Protection specified conditions.
	FullDetection bool `pulumi:"fullDetection"`
	// The WAF Policy ID.
	Id string `pulumi:"id"`
	// Specifies the protection level. Valid values are:
	// + `1`: low
	// + `2`: medium
	// + `3`: high
	Level int `pulumi:"level"`
	// Policy name used for matching. The value is case sensitive and supports fuzzy matching.
	Name string `pulumi:"name"`
	// The protection switches. The options object structure is documented below.
	Options []GetPoliciesPolicyOption `pulumi:"options"`
	// Specifies the protective action after a rule is matched. Valid values are:
	// + `block`: WAF blocks and logs detected attacks.
	// + `log`: WAF logs detected attacks only.
	ProtectionMode string `pulumi:"protectionMode"`
}

type GetPoliciesPolicyArgs

type GetPoliciesPolicyArgs struct {
	// The detection mode in Precise Protection.
	// + `true`: full detection. Full detection finishes all threat detections before blocking requests that meet Precise
	//   Protection specified conditions.
	// + `false`: instant detection. Instant detection immediately ends threat detection after blocking a request that
	//   meets Precise Protection specified conditions.
	FullDetection pulumi.BoolInput `pulumi:"fullDetection"`
	// The WAF Policy ID.
	Id pulumi.StringInput `pulumi:"id"`
	// Specifies the protection level. Valid values are:
	// + `1`: low
	// + `2`: medium
	// + `3`: high
	Level pulumi.IntInput `pulumi:"level"`
	// Policy name used for matching. The value is case sensitive and supports fuzzy matching.
	Name pulumi.StringInput `pulumi:"name"`
	// The protection switches. The options object structure is documented below.
	Options GetPoliciesPolicyOptionArrayInput `pulumi:"options"`
	// Specifies the protective action after a rule is matched. Valid values are:
	// + `block`: WAF blocks and logs detected attacks.
	// + `log`: WAF logs detected attacks only.
	ProtectionMode pulumi.StringInput `pulumi:"protectionMode"`
}

func (GetPoliciesPolicyArgs) ElementType

func (GetPoliciesPolicyArgs) ElementType() reflect.Type

func (GetPoliciesPolicyArgs) ToGetPoliciesPolicyOutput

func (i GetPoliciesPolicyArgs) ToGetPoliciesPolicyOutput() GetPoliciesPolicyOutput

func (GetPoliciesPolicyArgs) ToGetPoliciesPolicyOutputWithContext

func (i GetPoliciesPolicyArgs) ToGetPoliciesPolicyOutputWithContext(ctx context.Context) GetPoliciesPolicyOutput

type GetPoliciesPolicyArray

type GetPoliciesPolicyArray []GetPoliciesPolicyInput

func (GetPoliciesPolicyArray) ElementType

func (GetPoliciesPolicyArray) ElementType() reflect.Type

func (GetPoliciesPolicyArray) ToGetPoliciesPolicyArrayOutput

func (i GetPoliciesPolicyArray) ToGetPoliciesPolicyArrayOutput() GetPoliciesPolicyArrayOutput

func (GetPoliciesPolicyArray) ToGetPoliciesPolicyArrayOutputWithContext

func (i GetPoliciesPolicyArray) ToGetPoliciesPolicyArrayOutputWithContext(ctx context.Context) GetPoliciesPolicyArrayOutput

type GetPoliciesPolicyArrayInput

type GetPoliciesPolicyArrayInput interface {
	pulumi.Input

	ToGetPoliciesPolicyArrayOutput() GetPoliciesPolicyArrayOutput
	ToGetPoliciesPolicyArrayOutputWithContext(context.Context) GetPoliciesPolicyArrayOutput
}

GetPoliciesPolicyArrayInput is an input type that accepts GetPoliciesPolicyArray and GetPoliciesPolicyArrayOutput values. You can construct a concrete instance of `GetPoliciesPolicyArrayInput` via:

GetPoliciesPolicyArray{ GetPoliciesPolicyArgs{...} }

type GetPoliciesPolicyArrayOutput

type GetPoliciesPolicyArrayOutput struct{ *pulumi.OutputState }

func (GetPoliciesPolicyArrayOutput) ElementType

func (GetPoliciesPolicyArrayOutput) Index

func (GetPoliciesPolicyArrayOutput) ToGetPoliciesPolicyArrayOutput

func (o GetPoliciesPolicyArrayOutput) ToGetPoliciesPolicyArrayOutput() GetPoliciesPolicyArrayOutput

func (GetPoliciesPolicyArrayOutput) ToGetPoliciesPolicyArrayOutputWithContext

func (o GetPoliciesPolicyArrayOutput) ToGetPoliciesPolicyArrayOutputWithContext(ctx context.Context) GetPoliciesPolicyArrayOutput

type GetPoliciesPolicyInput

type GetPoliciesPolicyInput interface {
	pulumi.Input

	ToGetPoliciesPolicyOutput() GetPoliciesPolicyOutput
	ToGetPoliciesPolicyOutputWithContext(context.Context) GetPoliciesPolicyOutput
}

GetPoliciesPolicyInput is an input type that accepts GetPoliciesPolicyArgs and GetPoliciesPolicyOutput values. You can construct a concrete instance of `GetPoliciesPolicyInput` via:

GetPoliciesPolicyArgs{...}

type GetPoliciesPolicyOption

type GetPoliciesPolicyOption struct {
	// Indicates whether Basic Web Protection is enabled.
	BasicWebProtection bool `pulumi:"basicWebProtection"`
	// Indicates whether Blacklist and Whitelist is enabled.
	Blacklist bool `pulumi:"blacklist"`
	// Indicates whether CC Attack Protection is enabled.
	CcAttackProtection bool `pulumi:"ccAttackProtection"`
	// Indicates whether the master crawler detection switch in Basic Web Protection is enabled.
	Crawler bool `pulumi:"crawler"`
	// Indicates whether the Search Engine switch in Basic Web Protection is enabled.
	CrawlerEngine bool `pulumi:"crawlerEngine"`
	// Indicates whether detection of other crawlers in Basic Web Protection is enabled.
	CrawlerOther bool `pulumi:"crawlerOther"`
	// Indicates whether the Scanner switch in Basic Web Protection is enabled.
	CrawlerScanner bool `pulumi:"crawlerScanner"`
	// Indicates whether the Script Tool switch in Basic Web Protection is enabled.
	CrawlerScript bool `pulumi:"crawlerScript"`
	// Indicates whether Data Masking is enabled.
	DataMasking bool `pulumi:"dataMasking"`
	// Indicates whether False Alarm Masking is enabled.
	FalseAlarmMasking bool `pulumi:"falseAlarmMasking"`
	// Indicates whether General Check in Basic Web Protection is enabled.
	GeneralCheck bool `pulumi:"generalCheck"`
	// Indicates whether Precise Protection is enabled.
	PreciseProtection bool `pulumi:"preciseProtection"`
	// Indicates whether Web Tamper Protection is enabled.
	WebTamperProtection bool `pulumi:"webTamperProtection"`
	// Indicates whether webshell detection in Basic Web Protection is enabled.
	Webshell bool `pulumi:"webshell"`
}

type GetPoliciesPolicyOptionArgs

type GetPoliciesPolicyOptionArgs struct {
	// Indicates whether Basic Web Protection is enabled.
	BasicWebProtection pulumi.BoolInput `pulumi:"basicWebProtection"`
	// Indicates whether Blacklist and Whitelist is enabled.
	Blacklist pulumi.BoolInput `pulumi:"blacklist"`
	// Indicates whether CC Attack Protection is enabled.
	CcAttackProtection pulumi.BoolInput `pulumi:"ccAttackProtection"`
	// Indicates whether the master crawler detection switch in Basic Web Protection is enabled.
	Crawler pulumi.BoolInput `pulumi:"crawler"`
	// Indicates whether the Search Engine switch in Basic Web Protection is enabled.
	CrawlerEngine pulumi.BoolInput `pulumi:"crawlerEngine"`
	// Indicates whether detection of other crawlers in Basic Web Protection is enabled.
	CrawlerOther pulumi.BoolInput `pulumi:"crawlerOther"`
	// Indicates whether the Scanner switch in Basic Web Protection is enabled.
	CrawlerScanner pulumi.BoolInput `pulumi:"crawlerScanner"`
	// Indicates whether the Script Tool switch in Basic Web Protection is enabled.
	CrawlerScript pulumi.BoolInput `pulumi:"crawlerScript"`
	// Indicates whether Data Masking is enabled.
	DataMasking pulumi.BoolInput `pulumi:"dataMasking"`
	// Indicates whether False Alarm Masking is enabled.
	FalseAlarmMasking pulumi.BoolInput `pulumi:"falseAlarmMasking"`
	// Indicates whether General Check in Basic Web Protection is enabled.
	GeneralCheck pulumi.BoolInput `pulumi:"generalCheck"`
	// Indicates whether Precise Protection is enabled.
	PreciseProtection pulumi.BoolInput `pulumi:"preciseProtection"`
	// Indicates whether Web Tamper Protection is enabled.
	WebTamperProtection pulumi.BoolInput `pulumi:"webTamperProtection"`
	// Indicates whether webshell detection in Basic Web Protection is enabled.
	Webshell pulumi.BoolInput `pulumi:"webshell"`
}

func (GetPoliciesPolicyOptionArgs) ElementType

func (GetPoliciesPolicyOptionArgs) ToGetPoliciesPolicyOptionOutput

func (i GetPoliciesPolicyOptionArgs) ToGetPoliciesPolicyOptionOutput() GetPoliciesPolicyOptionOutput

func (GetPoliciesPolicyOptionArgs) ToGetPoliciesPolicyOptionOutputWithContext

func (i GetPoliciesPolicyOptionArgs) ToGetPoliciesPolicyOptionOutputWithContext(ctx context.Context) GetPoliciesPolicyOptionOutput

type GetPoliciesPolicyOptionArray

type GetPoliciesPolicyOptionArray []GetPoliciesPolicyOptionInput

func (GetPoliciesPolicyOptionArray) ElementType

func (GetPoliciesPolicyOptionArray) ToGetPoliciesPolicyOptionArrayOutput

func (i GetPoliciesPolicyOptionArray) ToGetPoliciesPolicyOptionArrayOutput() GetPoliciesPolicyOptionArrayOutput

func (GetPoliciesPolicyOptionArray) ToGetPoliciesPolicyOptionArrayOutputWithContext

func (i GetPoliciesPolicyOptionArray) ToGetPoliciesPolicyOptionArrayOutputWithContext(ctx context.Context) GetPoliciesPolicyOptionArrayOutput

type GetPoliciesPolicyOptionArrayInput

type GetPoliciesPolicyOptionArrayInput interface {
	pulumi.Input

	ToGetPoliciesPolicyOptionArrayOutput() GetPoliciesPolicyOptionArrayOutput
	ToGetPoliciesPolicyOptionArrayOutputWithContext(context.Context) GetPoliciesPolicyOptionArrayOutput
}

GetPoliciesPolicyOptionArrayInput is an input type that accepts GetPoliciesPolicyOptionArray and GetPoliciesPolicyOptionArrayOutput values. You can construct a concrete instance of `GetPoliciesPolicyOptionArrayInput` via:

GetPoliciesPolicyOptionArray{ GetPoliciesPolicyOptionArgs{...} }

type GetPoliciesPolicyOptionArrayOutput

type GetPoliciesPolicyOptionArrayOutput struct{ *pulumi.OutputState }

func (GetPoliciesPolicyOptionArrayOutput) ElementType

func (GetPoliciesPolicyOptionArrayOutput) Index

func (GetPoliciesPolicyOptionArrayOutput) ToGetPoliciesPolicyOptionArrayOutput

func (o GetPoliciesPolicyOptionArrayOutput) ToGetPoliciesPolicyOptionArrayOutput() GetPoliciesPolicyOptionArrayOutput

func (GetPoliciesPolicyOptionArrayOutput) ToGetPoliciesPolicyOptionArrayOutputWithContext

func (o GetPoliciesPolicyOptionArrayOutput) ToGetPoliciesPolicyOptionArrayOutputWithContext(ctx context.Context) GetPoliciesPolicyOptionArrayOutput

type GetPoliciesPolicyOptionInput

type GetPoliciesPolicyOptionInput interface {
	pulumi.Input

	ToGetPoliciesPolicyOptionOutput() GetPoliciesPolicyOptionOutput
	ToGetPoliciesPolicyOptionOutputWithContext(context.Context) GetPoliciesPolicyOptionOutput
}

GetPoliciesPolicyOptionInput is an input type that accepts GetPoliciesPolicyOptionArgs and GetPoliciesPolicyOptionOutput values. You can construct a concrete instance of `GetPoliciesPolicyOptionInput` via:

GetPoliciesPolicyOptionArgs{...}

type GetPoliciesPolicyOptionOutput

type GetPoliciesPolicyOptionOutput struct{ *pulumi.OutputState }

func (GetPoliciesPolicyOptionOutput) BasicWebProtection

func (o GetPoliciesPolicyOptionOutput) BasicWebProtection() pulumi.BoolOutput

Indicates whether Basic Web Protection is enabled.

func (GetPoliciesPolicyOptionOutput) Blacklist

Indicates whether Blacklist and Whitelist is enabled.

func (GetPoliciesPolicyOptionOutput) CcAttackProtection

func (o GetPoliciesPolicyOptionOutput) CcAttackProtection() pulumi.BoolOutput

Indicates whether CC Attack Protection is enabled.

func (GetPoliciesPolicyOptionOutput) Crawler

Indicates whether the master crawler detection switch in Basic Web Protection is enabled.

func (GetPoliciesPolicyOptionOutput) CrawlerEngine

Indicates whether the Search Engine switch in Basic Web Protection is enabled.

func (GetPoliciesPolicyOptionOutput) CrawlerOther

Indicates whether detection of other crawlers in Basic Web Protection is enabled.

func (GetPoliciesPolicyOptionOutput) CrawlerScanner

func (o GetPoliciesPolicyOptionOutput) CrawlerScanner() pulumi.BoolOutput

Indicates whether the Scanner switch in Basic Web Protection is enabled.

func (GetPoliciesPolicyOptionOutput) CrawlerScript

Indicates whether the Script Tool switch in Basic Web Protection is enabled.

func (GetPoliciesPolicyOptionOutput) DataMasking

Indicates whether Data Masking is enabled.

func (GetPoliciesPolicyOptionOutput) ElementType

func (GetPoliciesPolicyOptionOutput) FalseAlarmMasking

func (o GetPoliciesPolicyOptionOutput) FalseAlarmMasking() pulumi.BoolOutput

Indicates whether False Alarm Masking is enabled.

func (GetPoliciesPolicyOptionOutput) GeneralCheck

Indicates whether General Check in Basic Web Protection is enabled.

func (GetPoliciesPolicyOptionOutput) PreciseProtection

func (o GetPoliciesPolicyOptionOutput) PreciseProtection() pulumi.BoolOutput

Indicates whether Precise Protection is enabled.

func (GetPoliciesPolicyOptionOutput) ToGetPoliciesPolicyOptionOutput

func (o GetPoliciesPolicyOptionOutput) ToGetPoliciesPolicyOptionOutput() GetPoliciesPolicyOptionOutput

func (GetPoliciesPolicyOptionOutput) ToGetPoliciesPolicyOptionOutputWithContext

func (o GetPoliciesPolicyOptionOutput) ToGetPoliciesPolicyOptionOutputWithContext(ctx context.Context) GetPoliciesPolicyOptionOutput

func (GetPoliciesPolicyOptionOutput) WebTamperProtection

func (o GetPoliciesPolicyOptionOutput) WebTamperProtection() pulumi.BoolOutput

Indicates whether Web Tamper Protection is enabled.

func (GetPoliciesPolicyOptionOutput) Webshell

Indicates whether webshell detection in Basic Web Protection is enabled.

type GetPoliciesPolicyOutput

type GetPoliciesPolicyOutput struct{ *pulumi.OutputState }

func (GetPoliciesPolicyOutput) ElementType

func (GetPoliciesPolicyOutput) ElementType() reflect.Type

func (GetPoliciesPolicyOutput) FullDetection

func (o GetPoliciesPolicyOutput) FullDetection() pulumi.BoolOutput

The detection mode in Precise Protection.

  • `true`: full detection. Full detection finishes all threat detections before blocking requests that meet Precise Protection specified conditions.
  • `false`: instant detection. Instant detection immediately ends threat detection after blocking a request that meets Precise Protection specified conditions.

func (GetPoliciesPolicyOutput) Id

The WAF Policy ID.

func (GetPoliciesPolicyOutput) Level

Specifies the protection level. Valid values are: + `1`: low + `2`: medium + `3`: high

func (GetPoliciesPolicyOutput) Name

Policy name used for matching. The value is case sensitive and supports fuzzy matching.

func (GetPoliciesPolicyOutput) Options

The protection switches. The options object structure is documented below.

func (GetPoliciesPolicyOutput) ProtectionMode

func (o GetPoliciesPolicyOutput) ProtectionMode() pulumi.StringOutput

Specifies the protective action after a rule is matched. Valid values are: + `block`: WAF blocks and logs detected attacks. + `log`: WAF logs detected attacks only.

func (GetPoliciesPolicyOutput) ToGetPoliciesPolicyOutput

func (o GetPoliciesPolicyOutput) ToGetPoliciesPolicyOutput() GetPoliciesPolicyOutput

func (GetPoliciesPolicyOutput) ToGetPoliciesPolicyOutputWithContext

func (o GetPoliciesPolicyOutput) ToGetPoliciesPolicyOutputWithContext(ctx context.Context) GetPoliciesPolicyOutput

type GetPoliciesResult

type GetPoliciesResult struct {
	EnterpriseProjectId *string `pulumi:"enterpriseProjectId"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The WAF policy name.
	Name *string `pulumi:"name"`
	// A list of WAF policies.
	Policies []GetPoliciesPolicy `pulumi:"policies"`
	Region   string              `pulumi:"region"`
}

A collection of values returned by getPolicies.

func GetPolicies

func GetPolicies(ctx *pulumi.Context, args *GetPoliciesArgs, opts ...pulumi.InvokeOption) (*GetPoliciesResult, error)

Use this data source to get a list of WAF policies.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		policyName := cfg.RequireObject("policyName")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		_, err := Waf.GetPolicies(ctx, &waf.GetPoliciesArgs{
			Name:                pulumi.StringRef(policyName),
			EnterpriseProjectId: pulumi.StringRef(enterpriseProjectId),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetPoliciesResultOutput

type GetPoliciesResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getPolicies.

func (GetPoliciesResultOutput) ElementType

func (GetPoliciesResultOutput) ElementType() reflect.Type

func (GetPoliciesResultOutput) EnterpriseProjectId added in v0.0.8

func (o GetPoliciesResultOutput) EnterpriseProjectId() pulumi.StringPtrOutput

func (GetPoliciesResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetPoliciesResultOutput) Name

The WAF policy name.

func (GetPoliciesResultOutput) Policies

A list of WAF policies.

func (GetPoliciesResultOutput) Region

func (GetPoliciesResultOutput) ToGetPoliciesResultOutput

func (o GetPoliciesResultOutput) ToGetPoliciesResultOutput() GetPoliciesResultOutput

func (GetPoliciesResultOutput) ToGetPoliciesResultOutputWithContext

func (o GetPoliciesResultOutput) ToGetPoliciesResultOutputWithContext(ctx context.Context) GetPoliciesResultOutput

type GetReferenceTablesArgs

type GetReferenceTablesArgs struct {
	// Specifies the enterprise project ID of WAF reference tables.
	EnterpriseProjectId *string `pulumi:"enterpriseProjectId"`
	// The name of the reference table. The value is case sensitive and matches exactly.
	Name *string `pulumi:"name"`
	// The region in which to create the WAF reference table resource.
	// If omitted, the provider-level region will be used.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getReferenceTables.

type GetReferenceTablesOutputArgs

type GetReferenceTablesOutputArgs struct {
	// Specifies the enterprise project ID of WAF reference tables.
	EnterpriseProjectId pulumi.StringPtrInput `pulumi:"enterpriseProjectId"`
	// The name of the reference table. The value is case sensitive and matches exactly.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The region in which to create the WAF reference table resource.
	// If omitted, the provider-level region will be used.
	Region pulumi.StringPtrInput `pulumi:"region"`
}

A collection of arguments for invoking getReferenceTables.

func (GetReferenceTablesOutputArgs) ElementType

type GetReferenceTablesResult

type GetReferenceTablesResult struct {
	EnterpriseProjectId *string `pulumi:"enterpriseProjectId"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The name of the reference table. The maximum length is 64 characters.
	Name   *string `pulumi:"name"`
	Region string  `pulumi:"region"`
	// A list of WAF reference tables.
	Tables []GetReferenceTablesTable `pulumi:"tables"`
}

A collection of values returned by getReferenceTables.

func GetReferenceTables

func GetReferenceTables(ctx *pulumi.Context, args *GetReferenceTablesArgs, opts ...pulumi.InvokeOption) (*GetReferenceTablesResult, error)

Use this data source to get a list of WAF reference tables.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		_, err := Waf.GetReferenceTables(ctx, &waf.GetReferenceTablesArgs{
			Name:                pulumi.StringRef("reference_table_name"),
			EnterpriseProjectId: pulumi.StringRef(enterpriseProjectId),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetReferenceTablesResultOutput

type GetReferenceTablesResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getReferenceTables.

func (GetReferenceTablesResultOutput) ElementType

func (GetReferenceTablesResultOutput) EnterpriseProjectId added in v0.0.8

func (o GetReferenceTablesResultOutput) EnterpriseProjectId() pulumi.StringPtrOutput

func (GetReferenceTablesResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetReferenceTablesResultOutput) Name

The name of the reference table. The maximum length is 64 characters.

func (GetReferenceTablesResultOutput) Region

func (GetReferenceTablesResultOutput) Tables

A list of WAF reference tables.

func (GetReferenceTablesResultOutput) ToGetReferenceTablesResultOutput

func (o GetReferenceTablesResultOutput) ToGetReferenceTablesResultOutput() GetReferenceTablesResultOutput

func (GetReferenceTablesResultOutput) ToGetReferenceTablesResultOutputWithContext

func (o GetReferenceTablesResultOutput) ToGetReferenceTablesResultOutputWithContext(ctx context.Context) GetReferenceTablesResultOutput

type GetReferenceTablesTable

type GetReferenceTablesTable struct {
	// The conditions of the reference table.
	Conditions []string `pulumi:"conditions"`
	// The server time when reference table was created.
	CreationTime string `pulumi:"creationTime"`
	// The description of the reference table.
	Description string `pulumi:"description"`
	// The id of the reference table.
	Id string `pulumi:"id"`
	// The name of the reference table. The value is case sensitive and matches exactly.
	Name string `pulumi:"name"`
	// The type of the reference table, The options are: `url`, `user-agent`, `ip`, `params`, `cookie`, `referer`
	// and `header`.
	Type string `pulumi:"type"`
}

type GetReferenceTablesTableArgs

type GetReferenceTablesTableArgs struct {
	// The conditions of the reference table.
	Conditions pulumi.StringArrayInput `pulumi:"conditions"`
	// The server time when reference table was created.
	CreationTime pulumi.StringInput `pulumi:"creationTime"`
	// The description of the reference table.
	Description pulumi.StringInput `pulumi:"description"`
	// The id of the reference table.
	Id pulumi.StringInput `pulumi:"id"`
	// The name of the reference table. The value is case sensitive and matches exactly.
	Name pulumi.StringInput `pulumi:"name"`
	// The type of the reference table, The options are: `url`, `user-agent`, `ip`, `params`, `cookie`, `referer`
	// and `header`.
	Type pulumi.StringInput `pulumi:"type"`
}

func (GetReferenceTablesTableArgs) ElementType

func (GetReferenceTablesTableArgs) ToGetReferenceTablesTableOutput

func (i GetReferenceTablesTableArgs) ToGetReferenceTablesTableOutput() GetReferenceTablesTableOutput

func (GetReferenceTablesTableArgs) ToGetReferenceTablesTableOutputWithContext

func (i GetReferenceTablesTableArgs) ToGetReferenceTablesTableOutputWithContext(ctx context.Context) GetReferenceTablesTableOutput

type GetReferenceTablesTableArray

type GetReferenceTablesTableArray []GetReferenceTablesTableInput

func (GetReferenceTablesTableArray) ElementType

func (GetReferenceTablesTableArray) ToGetReferenceTablesTableArrayOutput

func (i GetReferenceTablesTableArray) ToGetReferenceTablesTableArrayOutput() GetReferenceTablesTableArrayOutput

func (GetReferenceTablesTableArray) ToGetReferenceTablesTableArrayOutputWithContext

func (i GetReferenceTablesTableArray) ToGetReferenceTablesTableArrayOutputWithContext(ctx context.Context) GetReferenceTablesTableArrayOutput

type GetReferenceTablesTableArrayInput

type GetReferenceTablesTableArrayInput interface {
	pulumi.Input

	ToGetReferenceTablesTableArrayOutput() GetReferenceTablesTableArrayOutput
	ToGetReferenceTablesTableArrayOutputWithContext(context.Context) GetReferenceTablesTableArrayOutput
}

GetReferenceTablesTableArrayInput is an input type that accepts GetReferenceTablesTableArray and GetReferenceTablesTableArrayOutput values. You can construct a concrete instance of `GetReferenceTablesTableArrayInput` via:

GetReferenceTablesTableArray{ GetReferenceTablesTableArgs{...} }

type GetReferenceTablesTableArrayOutput

type GetReferenceTablesTableArrayOutput struct{ *pulumi.OutputState }

func (GetReferenceTablesTableArrayOutput) ElementType

func (GetReferenceTablesTableArrayOutput) Index

func (GetReferenceTablesTableArrayOutput) ToGetReferenceTablesTableArrayOutput

func (o GetReferenceTablesTableArrayOutput) ToGetReferenceTablesTableArrayOutput() GetReferenceTablesTableArrayOutput

func (GetReferenceTablesTableArrayOutput) ToGetReferenceTablesTableArrayOutputWithContext

func (o GetReferenceTablesTableArrayOutput) ToGetReferenceTablesTableArrayOutputWithContext(ctx context.Context) GetReferenceTablesTableArrayOutput

type GetReferenceTablesTableInput

type GetReferenceTablesTableInput interface {
	pulumi.Input

	ToGetReferenceTablesTableOutput() GetReferenceTablesTableOutput
	ToGetReferenceTablesTableOutputWithContext(context.Context) GetReferenceTablesTableOutput
}

GetReferenceTablesTableInput is an input type that accepts GetReferenceTablesTableArgs and GetReferenceTablesTableOutput values. You can construct a concrete instance of `GetReferenceTablesTableInput` via:

GetReferenceTablesTableArgs{...}

type GetReferenceTablesTableOutput

type GetReferenceTablesTableOutput struct{ *pulumi.OutputState }

func (GetReferenceTablesTableOutput) Conditions

The conditions of the reference table.

func (GetReferenceTablesTableOutput) CreationTime

The server time when reference table was created.

func (GetReferenceTablesTableOutput) Description

The description of the reference table.

func (GetReferenceTablesTableOutput) ElementType

func (GetReferenceTablesTableOutput) Id

The id of the reference table.

func (GetReferenceTablesTableOutput) Name

The name of the reference table. The value is case sensitive and matches exactly.

func (GetReferenceTablesTableOutput) ToGetReferenceTablesTableOutput

func (o GetReferenceTablesTableOutput) ToGetReferenceTablesTableOutput() GetReferenceTablesTableOutput

func (GetReferenceTablesTableOutput) ToGetReferenceTablesTableOutputWithContext

func (o GetReferenceTablesTableOutput) ToGetReferenceTablesTableOutputWithContext(ctx context.Context) GetReferenceTablesTableOutput

func (GetReferenceTablesTableOutput) Type

The type of the reference table, The options are: `url`, `user-agent`, `ip`, `params`, `cookie`, `referer` and `header`.

type InstanceGroup

type InstanceGroup struct {
	pulumi.CustomResourceState

	// The body limit of the forwarding policy.
	BodyLimit pulumi.IntOutput `pulumi:"bodyLimit"`
	// The time for connection timeout in the forwarding policy.
	ConnectionTimeout pulumi.IntOutput `pulumi:"connectionTimeout"`
	// Specifies the description of the instance group.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The header limit of the forwarding policy.
	HeaderLimit pulumi.IntOutput `pulumi:"headerLimit"`
	// The IDs of the ELB instances that has been bound to the instance group.
	LoadBalancers pulumi.StringArrayOutput `pulumi:"loadBalancers"`
	// Specifies the instance group name.
	// The maximum length is 64 characters. Only letters, digits and underscores (_) are allowed.
	Name pulumi.StringOutput `pulumi:"name"`
	// The time for reading timeout in the forwarding policy.
	ReadTimeout pulumi.IntOutput `pulumi:"readTimeout"`
	// The region in which to create the instance group.
	// If omitted, the provider-level region will be used. Changing this setting will create a new resource.
	Region pulumi.StringOutput `pulumi:"region"`
	// Specifies the id of the VPC that the WAF dedicated instances belongs to.
	VpcId pulumi.StringOutput `pulumi:"vpcId"`
	// The time for writing timeout in the forwarding policy.
	WriteTimeout pulumi.IntOutput `pulumi:"writeTimeout"`
}

Manages WAF instance groups within HuaweiCloud. The groups are used to bind the ELB instance to the ELB mode WAF.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		vpcId := cfg.RequireObject("vpcId")
		_, err := Waf.NewInstanceGroup(ctx, "group1", &Waf.InstanceGroupArgs{
			VpcId: pulumi.Any(vpcId),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

The instance group can be imported using the ID, e.g.

```sh

$ pulumi import huaweicloud:Waf/instanceGroup:InstanceGroup group_1 0be1e69d-1987-4d9c-9dc5-fc7eed592398

```

func GetInstanceGroup

func GetInstanceGroup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InstanceGroupState, opts ...pulumi.ResourceOption) (*InstanceGroup, error)

GetInstanceGroup gets an existing InstanceGroup 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 NewInstanceGroup

func NewInstanceGroup(ctx *pulumi.Context,
	name string, args *InstanceGroupArgs, opts ...pulumi.ResourceOption) (*InstanceGroup, error)

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

func (*InstanceGroup) ElementType

func (*InstanceGroup) ElementType() reflect.Type

func (*InstanceGroup) ToInstanceGroupOutput

func (i *InstanceGroup) ToInstanceGroupOutput() InstanceGroupOutput

func (*InstanceGroup) ToInstanceGroupOutputWithContext

func (i *InstanceGroup) ToInstanceGroupOutputWithContext(ctx context.Context) InstanceGroupOutput

type InstanceGroupArgs

type InstanceGroupArgs struct {
	// Specifies the description of the instance group.
	Description pulumi.StringPtrInput
	// Specifies the instance group name.
	// The maximum length is 64 characters. Only letters, digits and underscores (_) are allowed.
	Name pulumi.StringPtrInput
	// The region in which to create the instance group.
	// If omitted, the provider-level region will be used. Changing this setting will create a new resource.
	Region pulumi.StringPtrInput
	// Specifies the id of the VPC that the WAF dedicated instances belongs to.
	VpcId pulumi.StringInput
}

The set of arguments for constructing a InstanceGroup resource.

func (InstanceGroupArgs) ElementType

func (InstanceGroupArgs) ElementType() reflect.Type

type InstanceGroupArray

type InstanceGroupArray []InstanceGroupInput

func (InstanceGroupArray) ElementType

func (InstanceGroupArray) ElementType() reflect.Type

func (InstanceGroupArray) ToInstanceGroupArrayOutput

func (i InstanceGroupArray) ToInstanceGroupArrayOutput() InstanceGroupArrayOutput

func (InstanceGroupArray) ToInstanceGroupArrayOutputWithContext

func (i InstanceGroupArray) ToInstanceGroupArrayOutputWithContext(ctx context.Context) InstanceGroupArrayOutput

type InstanceGroupArrayInput

type InstanceGroupArrayInput interface {
	pulumi.Input

	ToInstanceGroupArrayOutput() InstanceGroupArrayOutput
	ToInstanceGroupArrayOutputWithContext(context.Context) InstanceGroupArrayOutput
}

InstanceGroupArrayInput is an input type that accepts InstanceGroupArray and InstanceGroupArrayOutput values. You can construct a concrete instance of `InstanceGroupArrayInput` via:

InstanceGroupArray{ InstanceGroupArgs{...} }

type InstanceGroupArrayOutput

type InstanceGroupArrayOutput struct{ *pulumi.OutputState }

func (InstanceGroupArrayOutput) ElementType

func (InstanceGroupArrayOutput) ElementType() reflect.Type

func (InstanceGroupArrayOutput) Index

func (InstanceGroupArrayOutput) ToInstanceGroupArrayOutput

func (o InstanceGroupArrayOutput) ToInstanceGroupArrayOutput() InstanceGroupArrayOutput

func (InstanceGroupArrayOutput) ToInstanceGroupArrayOutputWithContext

func (o InstanceGroupArrayOutput) ToInstanceGroupArrayOutputWithContext(ctx context.Context) InstanceGroupArrayOutput

type InstanceGroupAssociate

type InstanceGroupAssociate struct {
	pulumi.CustomResourceState

	// Specifies the ID of the WAF instance group.
	// Changing this will create a new resource.
	GroupId pulumi.StringOutput `pulumi:"groupId"`
	// Specifies the IDs of the ELB instances bound to the WAF instance group.
	// This is an array of ELB instance ids.
	LoadBalancers pulumi.StringArrayOutput `pulumi:"loadBalancers"`
	// The region in which the WAF instance group created.
	// If omitted, the provider-level region will be used. Changing this setting will create a new resource.
	Region pulumi.StringOutput `pulumi:"region"`
}

Associate ELB instances to a WAF instance group.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		groupId := cfg.RequireObject("groupId")
		elbInstanceId := cfg.RequireObject("elbInstanceId")
		_, err := Waf.NewInstanceGroupAssociate(ctx, "groupAssociate", &Waf.InstanceGroupAssociateArgs{
			GroupId: pulumi.Any(groupId),
			LoadBalancers: pulumi.StringArray{
				pulumi.Any(elbInstanceId),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

The instance group associate can be imported using the group ID, e.g.

```sh

$ pulumi import huaweicloud:Waf/instanceGroupAssociate:InstanceGroupAssociate group_associate 0be1e69d-1987-4d9c-9dc5-fc7eed592398

```

func GetInstanceGroupAssociate

func GetInstanceGroupAssociate(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InstanceGroupAssociateState, opts ...pulumi.ResourceOption) (*InstanceGroupAssociate, error)

GetInstanceGroupAssociate gets an existing InstanceGroupAssociate 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 NewInstanceGroupAssociate

func NewInstanceGroupAssociate(ctx *pulumi.Context,
	name string, args *InstanceGroupAssociateArgs, opts ...pulumi.ResourceOption) (*InstanceGroupAssociate, error)

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

func (*InstanceGroupAssociate) ElementType

func (*InstanceGroupAssociate) ElementType() reflect.Type

func (*InstanceGroupAssociate) ToInstanceGroupAssociateOutput

func (i *InstanceGroupAssociate) ToInstanceGroupAssociateOutput() InstanceGroupAssociateOutput

func (*InstanceGroupAssociate) ToInstanceGroupAssociateOutputWithContext

func (i *InstanceGroupAssociate) ToInstanceGroupAssociateOutputWithContext(ctx context.Context) InstanceGroupAssociateOutput

type InstanceGroupAssociateArgs

type InstanceGroupAssociateArgs struct {
	// Specifies the ID of the WAF instance group.
	// Changing this will create a new resource.
	GroupId pulumi.StringInput
	// Specifies the IDs of the ELB instances bound to the WAF instance group.
	// This is an array of ELB instance ids.
	LoadBalancers pulumi.StringArrayInput
	// The region in which the WAF instance group created.
	// If omitted, the provider-level region will be used. Changing this setting will create a new resource.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a InstanceGroupAssociate resource.

func (InstanceGroupAssociateArgs) ElementType

func (InstanceGroupAssociateArgs) ElementType() reflect.Type

type InstanceGroupAssociateArray

type InstanceGroupAssociateArray []InstanceGroupAssociateInput

func (InstanceGroupAssociateArray) ElementType

func (InstanceGroupAssociateArray) ToInstanceGroupAssociateArrayOutput

func (i InstanceGroupAssociateArray) ToInstanceGroupAssociateArrayOutput() InstanceGroupAssociateArrayOutput

func (InstanceGroupAssociateArray) ToInstanceGroupAssociateArrayOutputWithContext

func (i InstanceGroupAssociateArray) ToInstanceGroupAssociateArrayOutputWithContext(ctx context.Context) InstanceGroupAssociateArrayOutput

type InstanceGroupAssociateArrayInput

type InstanceGroupAssociateArrayInput interface {
	pulumi.Input

	ToInstanceGroupAssociateArrayOutput() InstanceGroupAssociateArrayOutput
	ToInstanceGroupAssociateArrayOutputWithContext(context.Context) InstanceGroupAssociateArrayOutput
}

InstanceGroupAssociateArrayInput is an input type that accepts InstanceGroupAssociateArray and InstanceGroupAssociateArrayOutput values. You can construct a concrete instance of `InstanceGroupAssociateArrayInput` via:

InstanceGroupAssociateArray{ InstanceGroupAssociateArgs{...} }

type InstanceGroupAssociateArrayOutput

type InstanceGroupAssociateArrayOutput struct{ *pulumi.OutputState }

func (InstanceGroupAssociateArrayOutput) ElementType

func (InstanceGroupAssociateArrayOutput) Index

func (InstanceGroupAssociateArrayOutput) ToInstanceGroupAssociateArrayOutput

func (o InstanceGroupAssociateArrayOutput) ToInstanceGroupAssociateArrayOutput() InstanceGroupAssociateArrayOutput

func (InstanceGroupAssociateArrayOutput) ToInstanceGroupAssociateArrayOutputWithContext

func (o InstanceGroupAssociateArrayOutput) ToInstanceGroupAssociateArrayOutputWithContext(ctx context.Context) InstanceGroupAssociateArrayOutput

type InstanceGroupAssociateInput

type InstanceGroupAssociateInput interface {
	pulumi.Input

	ToInstanceGroupAssociateOutput() InstanceGroupAssociateOutput
	ToInstanceGroupAssociateOutputWithContext(ctx context.Context) InstanceGroupAssociateOutput
}

type InstanceGroupAssociateMap

type InstanceGroupAssociateMap map[string]InstanceGroupAssociateInput

func (InstanceGroupAssociateMap) ElementType

func (InstanceGroupAssociateMap) ElementType() reflect.Type

func (InstanceGroupAssociateMap) ToInstanceGroupAssociateMapOutput

func (i InstanceGroupAssociateMap) ToInstanceGroupAssociateMapOutput() InstanceGroupAssociateMapOutput

func (InstanceGroupAssociateMap) ToInstanceGroupAssociateMapOutputWithContext

func (i InstanceGroupAssociateMap) ToInstanceGroupAssociateMapOutputWithContext(ctx context.Context) InstanceGroupAssociateMapOutput

type InstanceGroupAssociateMapInput

type InstanceGroupAssociateMapInput interface {
	pulumi.Input

	ToInstanceGroupAssociateMapOutput() InstanceGroupAssociateMapOutput
	ToInstanceGroupAssociateMapOutputWithContext(context.Context) InstanceGroupAssociateMapOutput
}

InstanceGroupAssociateMapInput is an input type that accepts InstanceGroupAssociateMap and InstanceGroupAssociateMapOutput values. You can construct a concrete instance of `InstanceGroupAssociateMapInput` via:

InstanceGroupAssociateMap{ "key": InstanceGroupAssociateArgs{...} }

type InstanceGroupAssociateMapOutput

type InstanceGroupAssociateMapOutput struct{ *pulumi.OutputState }

func (InstanceGroupAssociateMapOutput) ElementType

func (InstanceGroupAssociateMapOutput) MapIndex

func (InstanceGroupAssociateMapOutput) ToInstanceGroupAssociateMapOutput

func (o InstanceGroupAssociateMapOutput) ToInstanceGroupAssociateMapOutput() InstanceGroupAssociateMapOutput

func (InstanceGroupAssociateMapOutput) ToInstanceGroupAssociateMapOutputWithContext

func (o InstanceGroupAssociateMapOutput) ToInstanceGroupAssociateMapOutputWithContext(ctx context.Context) InstanceGroupAssociateMapOutput

type InstanceGroupAssociateOutput

type InstanceGroupAssociateOutput struct{ *pulumi.OutputState }

func (InstanceGroupAssociateOutput) ElementType

func (InstanceGroupAssociateOutput) GroupId

Specifies the ID of the WAF instance group. Changing this will create a new resource.

func (InstanceGroupAssociateOutput) LoadBalancers

Specifies the IDs of the ELB instances bound to the WAF instance group. This is an array of ELB instance ids.

func (InstanceGroupAssociateOutput) Region

The region in which the WAF instance group created. If omitted, the provider-level region will be used. Changing this setting will create a new resource.

func (InstanceGroupAssociateOutput) ToInstanceGroupAssociateOutput

func (o InstanceGroupAssociateOutput) ToInstanceGroupAssociateOutput() InstanceGroupAssociateOutput

func (InstanceGroupAssociateOutput) ToInstanceGroupAssociateOutputWithContext

func (o InstanceGroupAssociateOutput) ToInstanceGroupAssociateOutputWithContext(ctx context.Context) InstanceGroupAssociateOutput

type InstanceGroupAssociateState

type InstanceGroupAssociateState struct {
	// Specifies the ID of the WAF instance group.
	// Changing this will create a new resource.
	GroupId pulumi.StringPtrInput
	// Specifies the IDs of the ELB instances bound to the WAF instance group.
	// This is an array of ELB instance ids.
	LoadBalancers pulumi.StringArrayInput
	// The region in which the WAF instance group created.
	// If omitted, the provider-level region will be used. Changing this setting will create a new resource.
	Region pulumi.StringPtrInput
}

func (InstanceGroupAssociateState) ElementType

type InstanceGroupInput

type InstanceGroupInput interface {
	pulumi.Input

	ToInstanceGroupOutput() InstanceGroupOutput
	ToInstanceGroupOutputWithContext(ctx context.Context) InstanceGroupOutput
}

type InstanceGroupMap

type InstanceGroupMap map[string]InstanceGroupInput

func (InstanceGroupMap) ElementType

func (InstanceGroupMap) ElementType() reflect.Type

func (InstanceGroupMap) ToInstanceGroupMapOutput

func (i InstanceGroupMap) ToInstanceGroupMapOutput() InstanceGroupMapOutput

func (InstanceGroupMap) ToInstanceGroupMapOutputWithContext

func (i InstanceGroupMap) ToInstanceGroupMapOutputWithContext(ctx context.Context) InstanceGroupMapOutput

type InstanceGroupMapInput

type InstanceGroupMapInput interface {
	pulumi.Input

	ToInstanceGroupMapOutput() InstanceGroupMapOutput
	ToInstanceGroupMapOutputWithContext(context.Context) InstanceGroupMapOutput
}

InstanceGroupMapInput is an input type that accepts InstanceGroupMap and InstanceGroupMapOutput values. You can construct a concrete instance of `InstanceGroupMapInput` via:

InstanceGroupMap{ "key": InstanceGroupArgs{...} }

type InstanceGroupMapOutput

type InstanceGroupMapOutput struct{ *pulumi.OutputState }

func (InstanceGroupMapOutput) ElementType

func (InstanceGroupMapOutput) ElementType() reflect.Type

func (InstanceGroupMapOutput) MapIndex

func (InstanceGroupMapOutput) ToInstanceGroupMapOutput

func (o InstanceGroupMapOutput) ToInstanceGroupMapOutput() InstanceGroupMapOutput

func (InstanceGroupMapOutput) ToInstanceGroupMapOutputWithContext

func (o InstanceGroupMapOutput) ToInstanceGroupMapOutputWithContext(ctx context.Context) InstanceGroupMapOutput

type InstanceGroupOutput

type InstanceGroupOutput struct{ *pulumi.OutputState }

func (InstanceGroupOutput) BodyLimit

func (o InstanceGroupOutput) BodyLimit() pulumi.IntOutput

The body limit of the forwarding policy.

func (InstanceGroupOutput) ConnectionTimeout

func (o InstanceGroupOutput) ConnectionTimeout() pulumi.IntOutput

The time for connection timeout in the forwarding policy.

func (InstanceGroupOutput) Description

func (o InstanceGroupOutput) Description() pulumi.StringPtrOutput

Specifies the description of the instance group.

func (InstanceGroupOutput) ElementType

func (InstanceGroupOutput) ElementType() reflect.Type

func (InstanceGroupOutput) HeaderLimit

func (o InstanceGroupOutput) HeaderLimit() pulumi.IntOutput

The header limit of the forwarding policy.

func (InstanceGroupOutput) LoadBalancers

func (o InstanceGroupOutput) LoadBalancers() pulumi.StringArrayOutput

The IDs of the ELB instances that has been bound to the instance group.

func (InstanceGroupOutput) Name

Specifies the instance group name. The maximum length is 64 characters. Only letters, digits and underscores (_) are allowed.

func (InstanceGroupOutput) ReadTimeout

func (o InstanceGroupOutput) ReadTimeout() pulumi.IntOutput

The time for reading timeout in the forwarding policy.

func (InstanceGroupOutput) Region

The region in which to create the instance group. If omitted, the provider-level region will be used. Changing this setting will create a new resource.

func (InstanceGroupOutput) ToInstanceGroupOutput

func (o InstanceGroupOutput) ToInstanceGroupOutput() InstanceGroupOutput

func (InstanceGroupOutput) ToInstanceGroupOutputWithContext

func (o InstanceGroupOutput) ToInstanceGroupOutputWithContext(ctx context.Context) InstanceGroupOutput

func (InstanceGroupOutput) VpcId

Specifies the id of the VPC that the WAF dedicated instances belongs to.

func (InstanceGroupOutput) WriteTimeout

func (o InstanceGroupOutput) WriteTimeout() pulumi.IntOutput

The time for writing timeout in the forwarding policy.

type InstanceGroupState

type InstanceGroupState struct {
	// The body limit of the forwarding policy.
	BodyLimit pulumi.IntPtrInput
	// The time for connection timeout in the forwarding policy.
	ConnectionTimeout pulumi.IntPtrInput
	// Specifies the description of the instance group.
	Description pulumi.StringPtrInput
	// The header limit of the forwarding policy.
	HeaderLimit pulumi.IntPtrInput
	// The IDs of the ELB instances that has been bound to the instance group.
	LoadBalancers pulumi.StringArrayInput
	// Specifies the instance group name.
	// The maximum length is 64 characters. Only letters, digits and underscores (_) are allowed.
	Name pulumi.StringPtrInput
	// The time for reading timeout in the forwarding policy.
	ReadTimeout pulumi.IntPtrInput
	// The region in which to create the instance group.
	// If omitted, the provider-level region will be used. Changing this setting will create a new resource.
	Region pulumi.StringPtrInput
	// Specifies the id of the VPC that the WAF dedicated instances belongs to.
	VpcId pulumi.StringPtrInput
	// The time for writing timeout in the forwarding policy.
	WriteTimeout pulumi.IntPtrInput
}

func (InstanceGroupState) ElementType

func (InstanceGroupState) ElementType() reflect.Type

type LookupCertificateArgs

type LookupCertificateArgs struct {
	// The enterprise project ID of WAF certificate.
	EnterpriseProjectId *string `pulumi:"enterpriseProjectId"`
	// The expire status of certificate. Defaults is `0`. The value can be:
	// + `0`: not expire
	// + `1`: has expired
	// + `2`: wil expired soon
	ExpireStatus *int `pulumi:"expireStatus"`
	// The name of certificate. The value is case sensitive and supports fuzzy matching.
	Name string `pulumi:"name"`
	// The region in which to obtain the WAF. If omitted, the provider-level region will be
	// used.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getCertificate.

type LookupCertificateOutputArgs

type LookupCertificateOutputArgs struct {
	// The enterprise project ID of WAF certificate.
	EnterpriseProjectId pulumi.StringPtrInput `pulumi:"enterpriseProjectId"`
	// The expire status of certificate. Defaults is `0`. The value can be:
	// + `0`: not expire
	// + `1`: has expired
	// + `2`: wil expired soon
	ExpireStatus pulumi.IntPtrInput `pulumi:"expireStatus"`
	// The name of certificate. The value is case sensitive and supports fuzzy matching.
	Name pulumi.StringInput `pulumi:"name"`
	// The region in which to obtain the WAF. If omitted, the provider-level region will be
	// used.
	Region pulumi.StringPtrInput `pulumi:"region"`
}

A collection of arguments for invoking getCertificate.

func (LookupCertificateOutputArgs) ElementType

type LookupCertificateResult

type LookupCertificateResult struct {
	EnterpriseProjectId *string `pulumi:"enterpriseProjectId"`
	// Indicates the time when the certificate expires.
	Expiration   string `pulumi:"expiration"`
	ExpireStatus *int   `pulumi:"expireStatus"`
	// The provider-assigned unique ID for this managed resource.
	Id     string `pulumi:"id"`
	Name   string `pulumi:"name"`
	Region string `pulumi:"region"`
}

A collection of values returned by getCertificate.

func LookupCertificate

func LookupCertificate(ctx *pulumi.Context, args *LookupCertificateArgs, opts ...pulumi.InvokeOption) (*LookupCertificateResult, error)

Get the certificate in the WAF, including the one pushed from SCM.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		_, err := Waf.GetCertificate(ctx, &waf.GetCertificateArgs{
			Name:                "certificate name",
			EnterpriseProjectId: pulumi.StringRef(enterpriseProjectId),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupCertificateResultOutput

type LookupCertificateResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getCertificate.

func (LookupCertificateResultOutput) ElementType

func (LookupCertificateResultOutput) EnterpriseProjectId added in v0.0.8

func (o LookupCertificateResultOutput) EnterpriseProjectId() pulumi.StringPtrOutput

func (LookupCertificateResultOutput) Expiration

Indicates the time when the certificate expires.

func (LookupCertificateResultOutput) ExpireStatus

func (LookupCertificateResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupCertificateResultOutput) Name

func (LookupCertificateResultOutput) Region

func (LookupCertificateResultOutput) ToLookupCertificateResultOutput

func (o LookupCertificateResultOutput) ToLookupCertificateResultOutput() LookupCertificateResultOutput

func (LookupCertificateResultOutput) ToLookupCertificateResultOutputWithContext

func (o LookupCertificateResultOutput) ToLookupCertificateResultOutputWithContext(ctx context.Context) LookupCertificateResultOutput

type Policy

type Policy struct {
	pulumi.CustomResourceState

	// Specifies the enterprise project ID of WAF policy.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrOutput `pulumi:"enterpriseProjectId"`
	// The detection mode in Precise Protection.
	// + `true`: full detection, Full detection finishes all threat detections before blocking requests that meet Precise
	//   Protection specified conditions.
	// + `false`: instant detection. Instant detection immediately ends threat detection after blocking a request that
	//   meets Precise Protection specified conditions.
	FullDetection pulumi.BoolOutput `pulumi:"fullDetection"`
	// Specifies the protection level. Defaults to `2`. Valid values are:
	// + `1`: low
	// + `2`: medium
	// + `3`: high
	Level pulumi.IntOutput `pulumi:"level"`
	// Specifies the policy name. The maximum length is 256 characters. Only digits, letters,
	// underscores(_), and hyphens(-) are allowed.
	Name pulumi.StringOutput `pulumi:"name"`
	// The protection switches. The options object structure is documented below.
	Options PolicyOptionArrayOutput `pulumi:"options"`
	// Specifies the protective action after a rule is matched. Defaults to `log`.
	// Valid values are:
	// + `block`: WAF blocks and logs detected attacks.
	// + `log`: WAF logs detected attacks only.
	ProtectionMode pulumi.StringOutput `pulumi:"protectionMode"`
	// The region in which to create the WAF policy resource. If omitted, the
	// provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringOutput `pulumi:"region"`
}

Manages a WAF policy resource within HuaweiCloud.

> **NOTE:** All WAF resources depend on WAF instances, and the WAF instances need to be purchased before they can be used. The policy resource can be used in Cloud Mode, Dedicated Mode and ELB Mode.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		_, err := Waf.NewPolicy(ctx, "policy1", &Waf.PolicyArgs{
			ProtectionMode:      pulumi.String("log"),
			Level:               pulumi.Int(2),
			EnterpriseProjectId: pulumi.Any(enterpriseProjectId),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

There are two ways to import WAF policy state. * Using the `id`, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/policy:Policy test <id>

```

  • Using `id` and `enterprise_project_id`, separated by a slash, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/policy:Policy test <id>/<enterprise_project_id>

```

func GetPolicy

func GetPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *PolicyState, opts ...pulumi.ResourceOption) (*Policy, error)

GetPolicy gets an existing Policy 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 NewPolicy

func NewPolicy(ctx *pulumi.Context,
	name string, args *PolicyArgs, opts ...pulumi.ResourceOption) (*Policy, error)

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

func (*Policy) ElementType

func (*Policy) ElementType() reflect.Type

func (*Policy) ToPolicyOutput

func (i *Policy) ToPolicyOutput() PolicyOutput

func (*Policy) ToPolicyOutputWithContext

func (i *Policy) ToPolicyOutputWithContext(ctx context.Context) PolicyOutput

type PolicyArgs

type PolicyArgs struct {
	// Specifies the enterprise project ID of WAF policy.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Specifies the protection level. Defaults to `2`. Valid values are:
	// + `1`: low
	// + `2`: medium
	// + `3`: high
	Level pulumi.IntPtrInput
	// Specifies the policy name. The maximum length is 256 characters. Only digits, letters,
	// underscores(_), and hyphens(-) are allowed.
	Name pulumi.StringPtrInput
	// Specifies the protective action after a rule is matched. Defaults to `log`.
	// Valid values are:
	// + `block`: WAF blocks and logs detected attacks.
	// + `log`: WAF logs detected attacks only.
	ProtectionMode pulumi.StringPtrInput
	// The region in which to create the WAF policy resource. If omitted, the
	// provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a Policy resource.

func (PolicyArgs) ElementType

func (PolicyArgs) ElementType() reflect.Type

type PolicyArray

type PolicyArray []PolicyInput

func (PolicyArray) ElementType

func (PolicyArray) ElementType() reflect.Type

func (PolicyArray) ToPolicyArrayOutput

func (i PolicyArray) ToPolicyArrayOutput() PolicyArrayOutput

func (PolicyArray) ToPolicyArrayOutputWithContext

func (i PolicyArray) ToPolicyArrayOutputWithContext(ctx context.Context) PolicyArrayOutput

type PolicyArrayInput

type PolicyArrayInput interface {
	pulumi.Input

	ToPolicyArrayOutput() PolicyArrayOutput
	ToPolicyArrayOutputWithContext(context.Context) PolicyArrayOutput
}

PolicyArrayInput is an input type that accepts PolicyArray and PolicyArrayOutput values. You can construct a concrete instance of `PolicyArrayInput` via:

PolicyArray{ PolicyArgs{...} }

type PolicyArrayOutput

type PolicyArrayOutput struct{ *pulumi.OutputState }

func (PolicyArrayOutput) ElementType

func (PolicyArrayOutput) ElementType() reflect.Type

func (PolicyArrayOutput) Index

func (PolicyArrayOutput) ToPolicyArrayOutput

func (o PolicyArrayOutput) ToPolicyArrayOutput() PolicyArrayOutput

func (PolicyArrayOutput) ToPolicyArrayOutputWithContext

func (o PolicyArrayOutput) ToPolicyArrayOutputWithContext(ctx context.Context) PolicyArrayOutput

type PolicyInput

type PolicyInput interface {
	pulumi.Input

	ToPolicyOutput() PolicyOutput
	ToPolicyOutputWithContext(ctx context.Context) PolicyOutput
}

type PolicyMap

type PolicyMap map[string]PolicyInput

func (PolicyMap) ElementType

func (PolicyMap) ElementType() reflect.Type

func (PolicyMap) ToPolicyMapOutput

func (i PolicyMap) ToPolicyMapOutput() PolicyMapOutput

func (PolicyMap) ToPolicyMapOutputWithContext

func (i PolicyMap) ToPolicyMapOutputWithContext(ctx context.Context) PolicyMapOutput

type PolicyMapInput

type PolicyMapInput interface {
	pulumi.Input

	ToPolicyMapOutput() PolicyMapOutput
	ToPolicyMapOutputWithContext(context.Context) PolicyMapOutput
}

PolicyMapInput is an input type that accepts PolicyMap and PolicyMapOutput values. You can construct a concrete instance of `PolicyMapInput` via:

PolicyMap{ "key": PolicyArgs{...} }

type PolicyMapOutput

type PolicyMapOutput struct{ *pulumi.OutputState }

func (PolicyMapOutput) ElementType

func (PolicyMapOutput) ElementType() reflect.Type

func (PolicyMapOutput) MapIndex

func (PolicyMapOutput) ToPolicyMapOutput

func (o PolicyMapOutput) ToPolicyMapOutput() PolicyMapOutput

func (PolicyMapOutput) ToPolicyMapOutputWithContext

func (o PolicyMapOutput) ToPolicyMapOutputWithContext(ctx context.Context) PolicyMapOutput

type PolicyOption

type PolicyOption struct {
	// Indicates whether Basic Web Protection is enabled.
	BasicWebProtection *bool `pulumi:"basicWebProtection"`
	// Indicates whether Blacklist and Whitelist is enabled.
	Blacklist *bool `pulumi:"blacklist"`
	// Indicates whether CC Attack Protection is enabled.
	CcAttackProtection *bool `pulumi:"ccAttackProtection"`
	// Indicates whether the master crawler detection switch in Basic Web Protection is enabled.
	Crawler *bool `pulumi:"crawler"`
	// Indicates whether the Search Engine switch in Basic Web Protection is enabled.
	CrawlerEngine *bool `pulumi:"crawlerEngine"`
	// Indicates whether detection of other crawlers in Basic Web Protection is enabled.
	CrawlerOther *bool `pulumi:"crawlerOther"`
	// Indicates whether the Scanner switch in Basic Web Protection is enabled.
	CrawlerScanner *bool `pulumi:"crawlerScanner"`
	// Indicates whether the Script Tool switch in Basic Web Protection is enabled.
	CrawlerScript *bool `pulumi:"crawlerScript"`
	// Indicates whether Data Masking is enabled.
	DataMasking *bool `pulumi:"dataMasking"`
	// Indicates whether False Alarm Masking is enabled.
	FalseAlarmMasking *bool `pulumi:"falseAlarmMasking"`
	// Indicates whether General Check in Basic Web Protection is enabled.
	GeneralCheck *bool `pulumi:"generalCheck"`
	// Indicates whether Precise Protection is enabled.
	PreciseProtection *bool `pulumi:"preciseProtection"`
	// Indicates whether Web Tamper Protection is enabled.
	WebTamperProtection *bool `pulumi:"webTamperProtection"`
	// Indicates whether webshell detection in Basic Web Protection is enabled.
	Webshell *bool `pulumi:"webshell"`
}

type PolicyOptionArgs

type PolicyOptionArgs struct {
	// Indicates whether Basic Web Protection is enabled.
	BasicWebProtection pulumi.BoolPtrInput `pulumi:"basicWebProtection"`
	// Indicates whether Blacklist and Whitelist is enabled.
	Blacklist pulumi.BoolPtrInput `pulumi:"blacklist"`
	// Indicates whether CC Attack Protection is enabled.
	CcAttackProtection pulumi.BoolPtrInput `pulumi:"ccAttackProtection"`
	// Indicates whether the master crawler detection switch in Basic Web Protection is enabled.
	Crawler pulumi.BoolPtrInput `pulumi:"crawler"`
	// Indicates whether the Search Engine switch in Basic Web Protection is enabled.
	CrawlerEngine pulumi.BoolPtrInput `pulumi:"crawlerEngine"`
	// Indicates whether detection of other crawlers in Basic Web Protection is enabled.
	CrawlerOther pulumi.BoolPtrInput `pulumi:"crawlerOther"`
	// Indicates whether the Scanner switch in Basic Web Protection is enabled.
	CrawlerScanner pulumi.BoolPtrInput `pulumi:"crawlerScanner"`
	// Indicates whether the Script Tool switch in Basic Web Protection is enabled.
	CrawlerScript pulumi.BoolPtrInput `pulumi:"crawlerScript"`
	// Indicates whether Data Masking is enabled.
	DataMasking pulumi.BoolPtrInput `pulumi:"dataMasking"`
	// Indicates whether False Alarm Masking is enabled.
	FalseAlarmMasking pulumi.BoolPtrInput `pulumi:"falseAlarmMasking"`
	// Indicates whether General Check in Basic Web Protection is enabled.
	GeneralCheck pulumi.BoolPtrInput `pulumi:"generalCheck"`
	// Indicates whether Precise Protection is enabled.
	PreciseProtection pulumi.BoolPtrInput `pulumi:"preciseProtection"`
	// Indicates whether Web Tamper Protection is enabled.
	WebTamperProtection pulumi.BoolPtrInput `pulumi:"webTamperProtection"`
	// Indicates whether webshell detection in Basic Web Protection is enabled.
	Webshell pulumi.BoolPtrInput `pulumi:"webshell"`
}

func (PolicyOptionArgs) ElementType

func (PolicyOptionArgs) ElementType() reflect.Type

func (PolicyOptionArgs) ToPolicyOptionOutput

func (i PolicyOptionArgs) ToPolicyOptionOutput() PolicyOptionOutput

func (PolicyOptionArgs) ToPolicyOptionOutputWithContext

func (i PolicyOptionArgs) ToPolicyOptionOutputWithContext(ctx context.Context) PolicyOptionOutput

type PolicyOptionArray

type PolicyOptionArray []PolicyOptionInput

func (PolicyOptionArray) ElementType

func (PolicyOptionArray) ElementType() reflect.Type

func (PolicyOptionArray) ToPolicyOptionArrayOutput

func (i PolicyOptionArray) ToPolicyOptionArrayOutput() PolicyOptionArrayOutput

func (PolicyOptionArray) ToPolicyOptionArrayOutputWithContext

func (i PolicyOptionArray) ToPolicyOptionArrayOutputWithContext(ctx context.Context) PolicyOptionArrayOutput

type PolicyOptionArrayInput

type PolicyOptionArrayInput interface {
	pulumi.Input

	ToPolicyOptionArrayOutput() PolicyOptionArrayOutput
	ToPolicyOptionArrayOutputWithContext(context.Context) PolicyOptionArrayOutput
}

PolicyOptionArrayInput is an input type that accepts PolicyOptionArray and PolicyOptionArrayOutput values. You can construct a concrete instance of `PolicyOptionArrayInput` via:

PolicyOptionArray{ PolicyOptionArgs{...} }

type PolicyOptionArrayOutput

type PolicyOptionArrayOutput struct{ *pulumi.OutputState }

func (PolicyOptionArrayOutput) ElementType

func (PolicyOptionArrayOutput) ElementType() reflect.Type

func (PolicyOptionArrayOutput) Index

func (PolicyOptionArrayOutput) ToPolicyOptionArrayOutput

func (o PolicyOptionArrayOutput) ToPolicyOptionArrayOutput() PolicyOptionArrayOutput

func (PolicyOptionArrayOutput) ToPolicyOptionArrayOutputWithContext

func (o PolicyOptionArrayOutput) ToPolicyOptionArrayOutputWithContext(ctx context.Context) PolicyOptionArrayOutput

type PolicyOptionInput

type PolicyOptionInput interface {
	pulumi.Input

	ToPolicyOptionOutput() PolicyOptionOutput
	ToPolicyOptionOutputWithContext(context.Context) PolicyOptionOutput
}

PolicyOptionInput is an input type that accepts PolicyOptionArgs and PolicyOptionOutput values. You can construct a concrete instance of `PolicyOptionInput` via:

PolicyOptionArgs{...}

type PolicyOptionOutput

type PolicyOptionOutput struct{ *pulumi.OutputState }

func (PolicyOptionOutput) BasicWebProtection

func (o PolicyOptionOutput) BasicWebProtection() pulumi.BoolPtrOutput

Indicates whether Basic Web Protection is enabled.

func (PolicyOptionOutput) Blacklist

func (o PolicyOptionOutput) Blacklist() pulumi.BoolPtrOutput

Indicates whether Blacklist and Whitelist is enabled.

func (PolicyOptionOutput) CcAttackProtection

func (o PolicyOptionOutput) CcAttackProtection() pulumi.BoolPtrOutput

Indicates whether CC Attack Protection is enabled.

func (PolicyOptionOutput) Crawler

Indicates whether the master crawler detection switch in Basic Web Protection is enabled.

func (PolicyOptionOutput) CrawlerEngine

func (o PolicyOptionOutput) CrawlerEngine() pulumi.BoolPtrOutput

Indicates whether the Search Engine switch in Basic Web Protection is enabled.

func (PolicyOptionOutput) CrawlerOther

func (o PolicyOptionOutput) CrawlerOther() pulumi.BoolPtrOutput

Indicates whether detection of other crawlers in Basic Web Protection is enabled.

func (PolicyOptionOutput) CrawlerScanner

func (o PolicyOptionOutput) CrawlerScanner() pulumi.BoolPtrOutput

Indicates whether the Scanner switch in Basic Web Protection is enabled.

func (PolicyOptionOutput) CrawlerScript

func (o PolicyOptionOutput) CrawlerScript() pulumi.BoolPtrOutput

Indicates whether the Script Tool switch in Basic Web Protection is enabled.

func (PolicyOptionOutput) DataMasking

func (o PolicyOptionOutput) DataMasking() pulumi.BoolPtrOutput

Indicates whether Data Masking is enabled.

func (PolicyOptionOutput) ElementType

func (PolicyOptionOutput) ElementType() reflect.Type

func (PolicyOptionOutput) FalseAlarmMasking

func (o PolicyOptionOutput) FalseAlarmMasking() pulumi.BoolPtrOutput

Indicates whether False Alarm Masking is enabled.

func (PolicyOptionOutput) GeneralCheck

func (o PolicyOptionOutput) GeneralCheck() pulumi.BoolPtrOutput

Indicates whether General Check in Basic Web Protection is enabled.

func (PolicyOptionOutput) PreciseProtection

func (o PolicyOptionOutput) PreciseProtection() pulumi.BoolPtrOutput

Indicates whether Precise Protection is enabled.

func (PolicyOptionOutput) ToPolicyOptionOutput

func (o PolicyOptionOutput) ToPolicyOptionOutput() PolicyOptionOutput

func (PolicyOptionOutput) ToPolicyOptionOutputWithContext

func (o PolicyOptionOutput) ToPolicyOptionOutputWithContext(ctx context.Context) PolicyOptionOutput

func (PolicyOptionOutput) WebTamperProtection

func (o PolicyOptionOutput) WebTamperProtection() pulumi.BoolPtrOutput

Indicates whether Web Tamper Protection is enabled.

func (PolicyOptionOutput) Webshell

Indicates whether webshell detection in Basic Web Protection is enabled.

type PolicyOutput

type PolicyOutput struct{ *pulumi.OutputState }

func (PolicyOutput) ElementType

func (PolicyOutput) ElementType() reflect.Type

func (PolicyOutput) EnterpriseProjectId added in v0.0.8

func (o PolicyOutput) EnterpriseProjectId() pulumi.StringPtrOutput

Specifies the enterprise project ID of WAF policy. Changing this parameter will create a new resource.

func (PolicyOutput) FullDetection

func (o PolicyOutput) FullDetection() pulumi.BoolOutput

The detection mode in Precise Protection.

  • `true`: full detection, Full detection finishes all threat detections before blocking requests that meet Precise Protection specified conditions.
  • `false`: instant detection. Instant detection immediately ends threat detection after blocking a request that meets Precise Protection specified conditions.

func (PolicyOutput) Level

func (o PolicyOutput) Level() pulumi.IntOutput

Specifies the protection level. Defaults to `2`. Valid values are: + `1`: low + `2`: medium + `3`: high

func (PolicyOutput) Name

func (o PolicyOutput) Name() pulumi.StringOutput

Specifies the policy name. The maximum length is 256 characters. Only digits, letters, underscores(_), and hyphens(-) are allowed.

func (PolicyOutput) Options

The protection switches. The options object structure is documented below.

func (PolicyOutput) ProtectionMode

func (o PolicyOutput) ProtectionMode() pulumi.StringOutput

Specifies the protective action after a rule is matched. Defaults to `log`. Valid values are: + `block`: WAF blocks and logs detected attacks. + `log`: WAF logs detected attacks only.

func (PolicyOutput) Region

func (o PolicyOutput) Region() pulumi.StringOutput

The region in which to create the WAF policy resource. If omitted, the provider-level region will be used. Changing this setting will push a new certificate.

func (PolicyOutput) ToPolicyOutput

func (o PolicyOutput) ToPolicyOutput() PolicyOutput

func (PolicyOutput) ToPolicyOutputWithContext

func (o PolicyOutput) ToPolicyOutputWithContext(ctx context.Context) PolicyOutput

type PolicyState

type PolicyState struct {
	// Specifies the enterprise project ID of WAF policy.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// The detection mode in Precise Protection.
	// + `true`: full detection, Full detection finishes all threat detections before blocking requests that meet Precise
	//   Protection specified conditions.
	// + `false`: instant detection. Instant detection immediately ends threat detection after blocking a request that
	//   meets Precise Protection specified conditions.
	FullDetection pulumi.BoolPtrInput
	// Specifies the protection level. Defaults to `2`. Valid values are:
	// + `1`: low
	// + `2`: medium
	// + `3`: high
	Level pulumi.IntPtrInput
	// Specifies the policy name. The maximum length is 256 characters. Only digits, letters,
	// underscores(_), and hyphens(-) are allowed.
	Name pulumi.StringPtrInput
	// The protection switches. The options object structure is documented below.
	Options PolicyOptionArrayInput
	// Specifies the protective action after a rule is matched. Defaults to `log`.
	// Valid values are:
	// + `block`: WAF blocks and logs detected attacks.
	// + `log`: WAF logs detected attacks only.
	ProtectionMode pulumi.StringPtrInput
	// The region in which to create the WAF policy resource. If omitted, the
	// provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringPtrInput
}

func (PolicyState) ElementType

func (PolicyState) ElementType() reflect.Type

type ReferenceTable

type ReferenceTable struct {
	pulumi.CustomResourceState

	// The conditions of the reference table. The maximum length is 30. The maximum length of
	// condition is 2048 characters.
	Conditions pulumi.StringArrayOutput `pulumi:"conditions"`
	// The server time when reference table was created.
	CreationTime pulumi.StringOutput `pulumi:"creationTime"`
	// The description of the reference table. The maximum length is 128 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Specifies the enterprise project ID of WAF reference table.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrOutput `pulumi:"enterpriseProjectId"`
	// The name of the reference table. Only letters, digits, and underscores(_) are allowed. The
	// maximum length is 64 characters.
	Name pulumi.StringOutput `pulumi:"name"`
	// The region in which to create the WAF reference table resource. If omitted,
	// the provider-level region will be used. Changing this setting will push a new reference table.
	Region pulumi.StringOutput `pulumi:"region"`
	// The type of the reference table, The options are `url`, `user-agent`, `ip`,
	// `params`, `cookie`, `referer` and `header`. Changing this setting will push a new reference table.
	Type pulumi.StringOutput `pulumi:"type"`
}

Manages a WAF reference table resource within HuaweiCloud.

> **NOTE:** All WAF resources depend on WAF instances, and the WAF instances need to be purchased before they can be used. The reference table resource can be used in Cloud Mode (professional version), Dedicated Mode and ELB Mode.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		_, err := Waf.NewReferenceTable(ctx, "refTable", &Waf.ReferenceTableArgs{
			Type:                pulumi.String("url"),
			EnterpriseProjectId: pulumi.Any(enterpriseProjectId),
			Conditions: pulumi.StringArray{
				pulumi.String("/admin"),
				pulumi.String("/manage"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

There are two ways to import WAF reference table state. * Using the `id`, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/referenceTable:ReferenceTable test <id>

```

  • Using `id` and `enterprise_project_id`, separated by a slash, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/referenceTable:ReferenceTable test <id>/<enterprise_project_id>

```

func GetReferenceTable

func GetReferenceTable(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ReferenceTableState, opts ...pulumi.ResourceOption) (*ReferenceTable, error)

GetReferenceTable gets an existing ReferenceTable 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 NewReferenceTable

func NewReferenceTable(ctx *pulumi.Context,
	name string, args *ReferenceTableArgs, opts ...pulumi.ResourceOption) (*ReferenceTable, error)

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

func (*ReferenceTable) ElementType

func (*ReferenceTable) ElementType() reflect.Type

func (*ReferenceTable) ToReferenceTableOutput

func (i *ReferenceTable) ToReferenceTableOutput() ReferenceTableOutput

func (*ReferenceTable) ToReferenceTableOutputWithContext

func (i *ReferenceTable) ToReferenceTableOutputWithContext(ctx context.Context) ReferenceTableOutput

type ReferenceTableArgs

type ReferenceTableArgs struct {
	// The conditions of the reference table. The maximum length is 30. The maximum length of
	// condition is 2048 characters.
	Conditions pulumi.StringArrayInput
	// The description of the reference table. The maximum length is 128 characters.
	Description pulumi.StringPtrInput
	// Specifies the enterprise project ID of WAF reference table.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// The name of the reference table. Only letters, digits, and underscores(_) are allowed. The
	// maximum length is 64 characters.
	Name pulumi.StringPtrInput
	// The region in which to create the WAF reference table resource. If omitted,
	// the provider-level region will be used. Changing this setting will push a new reference table.
	Region pulumi.StringPtrInput
	// The type of the reference table, The options are `url`, `user-agent`, `ip`,
	// `params`, `cookie`, `referer` and `header`. Changing this setting will push a new reference table.
	Type pulumi.StringInput
}

The set of arguments for constructing a ReferenceTable resource.

func (ReferenceTableArgs) ElementType

func (ReferenceTableArgs) ElementType() reflect.Type

type ReferenceTableArray

type ReferenceTableArray []ReferenceTableInput

func (ReferenceTableArray) ElementType

func (ReferenceTableArray) ElementType() reflect.Type

func (ReferenceTableArray) ToReferenceTableArrayOutput

func (i ReferenceTableArray) ToReferenceTableArrayOutput() ReferenceTableArrayOutput

func (ReferenceTableArray) ToReferenceTableArrayOutputWithContext

func (i ReferenceTableArray) ToReferenceTableArrayOutputWithContext(ctx context.Context) ReferenceTableArrayOutput

type ReferenceTableArrayInput

type ReferenceTableArrayInput interface {
	pulumi.Input

	ToReferenceTableArrayOutput() ReferenceTableArrayOutput
	ToReferenceTableArrayOutputWithContext(context.Context) ReferenceTableArrayOutput
}

ReferenceTableArrayInput is an input type that accepts ReferenceTableArray and ReferenceTableArrayOutput values. You can construct a concrete instance of `ReferenceTableArrayInput` via:

ReferenceTableArray{ ReferenceTableArgs{...} }

type ReferenceTableArrayOutput

type ReferenceTableArrayOutput struct{ *pulumi.OutputState }

func (ReferenceTableArrayOutput) ElementType

func (ReferenceTableArrayOutput) ElementType() reflect.Type

func (ReferenceTableArrayOutput) Index

func (ReferenceTableArrayOutput) ToReferenceTableArrayOutput

func (o ReferenceTableArrayOutput) ToReferenceTableArrayOutput() ReferenceTableArrayOutput

func (ReferenceTableArrayOutput) ToReferenceTableArrayOutputWithContext

func (o ReferenceTableArrayOutput) ToReferenceTableArrayOutputWithContext(ctx context.Context) ReferenceTableArrayOutput

type ReferenceTableInput

type ReferenceTableInput interface {
	pulumi.Input

	ToReferenceTableOutput() ReferenceTableOutput
	ToReferenceTableOutputWithContext(ctx context.Context) ReferenceTableOutput
}

type ReferenceTableMap

type ReferenceTableMap map[string]ReferenceTableInput

func (ReferenceTableMap) ElementType

func (ReferenceTableMap) ElementType() reflect.Type

func (ReferenceTableMap) ToReferenceTableMapOutput

func (i ReferenceTableMap) ToReferenceTableMapOutput() ReferenceTableMapOutput

func (ReferenceTableMap) ToReferenceTableMapOutputWithContext

func (i ReferenceTableMap) ToReferenceTableMapOutputWithContext(ctx context.Context) ReferenceTableMapOutput

type ReferenceTableMapInput

type ReferenceTableMapInput interface {
	pulumi.Input

	ToReferenceTableMapOutput() ReferenceTableMapOutput
	ToReferenceTableMapOutputWithContext(context.Context) ReferenceTableMapOutput
}

ReferenceTableMapInput is an input type that accepts ReferenceTableMap and ReferenceTableMapOutput values. You can construct a concrete instance of `ReferenceTableMapInput` via:

ReferenceTableMap{ "key": ReferenceTableArgs{...} }

type ReferenceTableMapOutput

type ReferenceTableMapOutput struct{ *pulumi.OutputState }

func (ReferenceTableMapOutput) ElementType

func (ReferenceTableMapOutput) ElementType() reflect.Type

func (ReferenceTableMapOutput) MapIndex

func (ReferenceTableMapOutput) ToReferenceTableMapOutput

func (o ReferenceTableMapOutput) ToReferenceTableMapOutput() ReferenceTableMapOutput

func (ReferenceTableMapOutput) ToReferenceTableMapOutputWithContext

func (o ReferenceTableMapOutput) ToReferenceTableMapOutputWithContext(ctx context.Context) ReferenceTableMapOutput

type ReferenceTableOutput

type ReferenceTableOutput struct{ *pulumi.OutputState }

func (ReferenceTableOutput) Conditions

The conditions of the reference table. The maximum length is 30. The maximum length of condition is 2048 characters.

func (ReferenceTableOutput) CreationTime

func (o ReferenceTableOutput) CreationTime() pulumi.StringOutput

The server time when reference table was created.

func (ReferenceTableOutput) Description

The description of the reference table. The maximum length is 128 characters.

func (ReferenceTableOutput) ElementType

func (ReferenceTableOutput) ElementType() reflect.Type

func (ReferenceTableOutput) EnterpriseProjectId added in v0.0.8

func (o ReferenceTableOutput) EnterpriseProjectId() pulumi.StringPtrOutput

Specifies the enterprise project ID of WAF reference table. Changing this parameter will create a new resource.

func (ReferenceTableOutput) Name

The name of the reference table. Only letters, digits, and underscores(_) are allowed. The maximum length is 64 characters.

func (ReferenceTableOutput) Region

The region in which to create the WAF reference table resource. If omitted, the provider-level region will be used. Changing this setting will push a new reference table.

func (ReferenceTableOutput) ToReferenceTableOutput

func (o ReferenceTableOutput) ToReferenceTableOutput() ReferenceTableOutput

func (ReferenceTableOutput) ToReferenceTableOutputWithContext

func (o ReferenceTableOutput) ToReferenceTableOutputWithContext(ctx context.Context) ReferenceTableOutput

func (ReferenceTableOutput) Type

The type of the reference table, The options are `url`, `user-agent`, `ip`, `params`, `cookie`, `referer` and `header`. Changing this setting will push a new reference table.

type ReferenceTableState

type ReferenceTableState struct {
	// The conditions of the reference table. The maximum length is 30. The maximum length of
	// condition is 2048 characters.
	Conditions pulumi.StringArrayInput
	// The server time when reference table was created.
	CreationTime pulumi.StringPtrInput
	// The description of the reference table. The maximum length is 128 characters.
	Description pulumi.StringPtrInput
	// Specifies the enterprise project ID of WAF reference table.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// The name of the reference table. Only letters, digits, and underscores(_) are allowed. The
	// maximum length is 64 characters.
	Name pulumi.StringPtrInput
	// The region in which to create the WAF reference table resource. If omitted,
	// the provider-level region will be used. Changing this setting will push a new reference table.
	Region pulumi.StringPtrInput
	// The type of the reference table, The options are `url`, `user-agent`, `ip`,
	// `params`, `cookie`, `referer` and `header`. Changing this setting will push a new reference table.
	Type pulumi.StringPtrInput
}

func (ReferenceTableState) ElementType

func (ReferenceTableState) ElementType() reflect.Type

type RuleBlacklist

type RuleBlacklist struct {
	pulumi.CustomResourceState

	// Specifies the protective action. Defaults is `0`. The value can be:
	// + `0`: block the request.
	// + `1`: allow the request.
	// + `2`: log the request only.
	Action pulumi.IntPtrOutput `pulumi:"action"`
	// Specifies the WAF address group id.
	// This parameter is required when `ipAddress` is not specified. The parameter `addressGroupId` and `ipAddress`
	// can not be configured together.
	AddressGroupId pulumi.StringPtrOutput `pulumi:"addressGroupId"`
	// The name of the IP address group.
	AddressGroupName pulumi.StringOutput `pulumi:"addressGroupName"`
	// The number of IP addresses or IP address ranges in the IP address group.
	AddressGroupSize pulumi.IntOutput `pulumi:"addressGroupSize"`
	// Specifies the rule description of the WAF address group.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Specifies the enterprise project ID of WAF rule blacklist
	// and whitelist. Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrOutput `pulumi:"enterpriseProjectId"`
	// Specifies the IP address or range. For example, 192.168.0.125 or 192.168.0.0/24.
	// This parameter is required when `addressGroupId` is not specified. The parameter `addressGroupId` and `ipAddress`
	// can not be configured together.
	IpAddress pulumi.StringPtrOutput `pulumi:"ipAddress"`
	// Specifies the Rule name. The value can contain a maximum of 64 characters.
	// Only letters, digits, hyphens (-), underscores (_) and periods (.) are allowed.
	Name pulumi.StringOutput `pulumi:"name"`
	// Specifies the WAF policy ID. Changing this creates a new rule. Please make
	// sure that the region which the policy belongs to be consistent with the `region`.
	PolicyId pulumi.StringOutput `pulumi:"policyId"`
	// The region in which to create the WAF blacklist and whitelist rule resource.
	// If omitted, the provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringOutput `pulumi:"region"`
}

Manages a WAF blacklist and whitelist rule resource within HuaweiCloud.

> **NOTE:** All WAF resources depend on WAF instances, and the WAF instances need to be purchased before they can be used. The blacklist and whitelist rule resource can be used in Cloud Mode, Dedicated Mode and ELB Mode.

## Example Usage ### WAF rule blacklist and whitelist with ip address

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		policyId := cfg.RequireObject("policyId")
		_, err := Waf.NewRuleBlacklist(ctx, "rule", &Waf.RuleBlacklistArgs{
			PolicyId:    pulumi.Any(policyId),
			IpAddress:   pulumi.String("192.168.0.0/24"),
			Action:      pulumi.Int(0),
			Description: pulumi.String("test description"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### WAF rule blacklist and whitelist with address group

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		policyId := cfg.RequireObject("policyId")
		addressGroupId := cfg.RequireObject("addressGroupId")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		_, err := Waf.NewRuleBlacklist(ctx, "rule", &Waf.RuleBlacklistArgs{
			PolicyId:            pulumi.Any(policyId),
			AddressGroupId:      pulumi.Any(addressGroupId),
			EnterpriseProjectId: pulumi.Any(enterpriseProjectId),
			Action:              pulumi.Int(1),
			Description:         pulumi.String("test description"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

There are two ways to import WAF rule blacklist state. * Using `policy_id` and `rule_id`, separated by a slash, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/ruleBlacklist:RuleBlacklist test <policy_id>/<rule_id>

```

  • Using `policy_id`, `rule_id` and `enterprise_project_id`, separated by slashes, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/ruleBlacklist:RuleBlacklist test <policy_id>/<rule_id>/<enterprise_project_id>

```

func GetRuleBlacklist

func GetRuleBlacklist(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RuleBlacklistState, opts ...pulumi.ResourceOption) (*RuleBlacklist, error)

GetRuleBlacklist gets an existing RuleBlacklist 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 NewRuleBlacklist

func NewRuleBlacklist(ctx *pulumi.Context,
	name string, args *RuleBlacklistArgs, opts ...pulumi.ResourceOption) (*RuleBlacklist, error)

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

func (*RuleBlacklist) ElementType

func (*RuleBlacklist) ElementType() reflect.Type

func (*RuleBlacklist) ToRuleBlacklistOutput

func (i *RuleBlacklist) ToRuleBlacklistOutput() RuleBlacklistOutput

func (*RuleBlacklist) ToRuleBlacklistOutputWithContext

func (i *RuleBlacklist) ToRuleBlacklistOutputWithContext(ctx context.Context) RuleBlacklistOutput

type RuleBlacklistArgs

type RuleBlacklistArgs struct {
	// Specifies the protective action. Defaults is `0`. The value can be:
	// + `0`: block the request.
	// + `1`: allow the request.
	// + `2`: log the request only.
	Action pulumi.IntPtrInput
	// Specifies the WAF address group id.
	// This parameter is required when `ipAddress` is not specified. The parameter `addressGroupId` and `ipAddress`
	// can not be configured together.
	AddressGroupId pulumi.StringPtrInput
	// Specifies the rule description of the WAF address group.
	Description pulumi.StringPtrInput
	// Specifies the enterprise project ID of WAF rule blacklist
	// and whitelist. Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Specifies the IP address or range. For example, 192.168.0.125 or 192.168.0.0/24.
	// This parameter is required when `addressGroupId` is not specified. The parameter `addressGroupId` and `ipAddress`
	// can not be configured together.
	IpAddress pulumi.StringPtrInput
	// Specifies the Rule name. The value can contain a maximum of 64 characters.
	// Only letters, digits, hyphens (-), underscores (_) and periods (.) are allowed.
	Name pulumi.StringPtrInput
	// Specifies the WAF policy ID. Changing this creates a new rule. Please make
	// sure that the region which the policy belongs to be consistent with the `region`.
	PolicyId pulumi.StringInput
	// The region in which to create the WAF blacklist and whitelist rule resource.
	// If omitted, the provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a RuleBlacklist resource.

func (RuleBlacklistArgs) ElementType

func (RuleBlacklistArgs) ElementType() reflect.Type

type RuleBlacklistArray

type RuleBlacklistArray []RuleBlacklistInput

func (RuleBlacklistArray) ElementType

func (RuleBlacklistArray) ElementType() reflect.Type

func (RuleBlacklistArray) ToRuleBlacklistArrayOutput

func (i RuleBlacklistArray) ToRuleBlacklistArrayOutput() RuleBlacklistArrayOutput

func (RuleBlacklistArray) ToRuleBlacklistArrayOutputWithContext

func (i RuleBlacklistArray) ToRuleBlacklistArrayOutputWithContext(ctx context.Context) RuleBlacklistArrayOutput

type RuleBlacklistArrayInput

type RuleBlacklistArrayInput interface {
	pulumi.Input

	ToRuleBlacklistArrayOutput() RuleBlacklistArrayOutput
	ToRuleBlacklistArrayOutputWithContext(context.Context) RuleBlacklistArrayOutput
}

RuleBlacklistArrayInput is an input type that accepts RuleBlacklistArray and RuleBlacklistArrayOutput values. You can construct a concrete instance of `RuleBlacklistArrayInput` via:

RuleBlacklistArray{ RuleBlacklistArgs{...} }

type RuleBlacklistArrayOutput

type RuleBlacklistArrayOutput struct{ *pulumi.OutputState }

func (RuleBlacklistArrayOutput) ElementType

func (RuleBlacklistArrayOutput) ElementType() reflect.Type

func (RuleBlacklistArrayOutput) Index

func (RuleBlacklistArrayOutput) ToRuleBlacklistArrayOutput

func (o RuleBlacklistArrayOutput) ToRuleBlacklistArrayOutput() RuleBlacklistArrayOutput

func (RuleBlacklistArrayOutput) ToRuleBlacklistArrayOutputWithContext

func (o RuleBlacklistArrayOutput) ToRuleBlacklistArrayOutputWithContext(ctx context.Context) RuleBlacklistArrayOutput

type RuleBlacklistInput

type RuleBlacklistInput interface {
	pulumi.Input

	ToRuleBlacklistOutput() RuleBlacklistOutput
	ToRuleBlacklistOutputWithContext(ctx context.Context) RuleBlacklistOutput
}

type RuleBlacklistMap

type RuleBlacklistMap map[string]RuleBlacklistInput

func (RuleBlacklistMap) ElementType

func (RuleBlacklistMap) ElementType() reflect.Type

func (RuleBlacklistMap) ToRuleBlacklistMapOutput

func (i RuleBlacklistMap) ToRuleBlacklistMapOutput() RuleBlacklistMapOutput

func (RuleBlacklistMap) ToRuleBlacklistMapOutputWithContext

func (i RuleBlacklistMap) ToRuleBlacklistMapOutputWithContext(ctx context.Context) RuleBlacklistMapOutput

type RuleBlacklistMapInput

type RuleBlacklistMapInput interface {
	pulumi.Input

	ToRuleBlacklistMapOutput() RuleBlacklistMapOutput
	ToRuleBlacklistMapOutputWithContext(context.Context) RuleBlacklistMapOutput
}

RuleBlacklistMapInput is an input type that accepts RuleBlacklistMap and RuleBlacklistMapOutput values. You can construct a concrete instance of `RuleBlacklistMapInput` via:

RuleBlacklistMap{ "key": RuleBlacklistArgs{...} }

type RuleBlacklistMapOutput

type RuleBlacklistMapOutput struct{ *pulumi.OutputState }

func (RuleBlacklistMapOutput) ElementType

func (RuleBlacklistMapOutput) ElementType() reflect.Type

func (RuleBlacklistMapOutput) MapIndex

func (RuleBlacklistMapOutput) ToRuleBlacklistMapOutput

func (o RuleBlacklistMapOutput) ToRuleBlacklistMapOutput() RuleBlacklistMapOutput

func (RuleBlacklistMapOutput) ToRuleBlacklistMapOutputWithContext

func (o RuleBlacklistMapOutput) ToRuleBlacklistMapOutputWithContext(ctx context.Context) RuleBlacklistMapOutput

type RuleBlacklistOutput

type RuleBlacklistOutput struct{ *pulumi.OutputState }

func (RuleBlacklistOutput) Action

Specifies the protective action. Defaults is `0`. The value can be: + `0`: block the request. + `1`: allow the request. + `2`: log the request only.

func (RuleBlacklistOutput) AddressGroupId added in v0.0.8

func (o RuleBlacklistOutput) AddressGroupId() pulumi.StringPtrOutput

Specifies the WAF address group id. This parameter is required when `ipAddress` is not specified. The parameter `addressGroupId` and `ipAddress` can not be configured together.

func (RuleBlacklistOutput) AddressGroupName added in v0.0.8

func (o RuleBlacklistOutput) AddressGroupName() pulumi.StringOutput

The name of the IP address group.

func (RuleBlacklistOutput) AddressGroupSize added in v0.0.8

func (o RuleBlacklistOutput) AddressGroupSize() pulumi.IntOutput

The number of IP addresses or IP address ranges in the IP address group.

func (RuleBlacklistOutput) Description added in v0.0.8

func (o RuleBlacklistOutput) Description() pulumi.StringPtrOutput

Specifies the rule description of the WAF address group.

func (RuleBlacklistOutput) ElementType

func (RuleBlacklistOutput) ElementType() reflect.Type

func (RuleBlacklistOutput) EnterpriseProjectId added in v0.0.8

func (o RuleBlacklistOutput) EnterpriseProjectId() pulumi.StringPtrOutput

Specifies the enterprise project ID of WAF rule blacklist and whitelist. Changing this parameter will create a new resource.

func (RuleBlacklistOutput) IpAddress

Specifies the IP address or range. For example, 192.168.0.125 or 192.168.0.0/24. This parameter is required when `addressGroupId` is not specified. The parameter `addressGroupId` and `ipAddress` can not be configured together.

func (RuleBlacklistOutput) Name added in v0.0.8

Specifies the Rule name. The value can contain a maximum of 64 characters. Only letters, digits, hyphens (-), underscores (_) and periods (.) are allowed.

func (RuleBlacklistOutput) PolicyId

Specifies the WAF policy ID. Changing this creates a new rule. Please make sure that the region which the policy belongs to be consistent with the `region`.

func (RuleBlacklistOutput) Region

The region in which to create the WAF blacklist and whitelist rule resource. If omitted, the provider-level region will be used. Changing this setting will push a new certificate.

func (RuleBlacklistOutput) ToRuleBlacklistOutput

func (o RuleBlacklistOutput) ToRuleBlacklistOutput() RuleBlacklistOutput

func (RuleBlacklistOutput) ToRuleBlacklistOutputWithContext

func (o RuleBlacklistOutput) ToRuleBlacklistOutputWithContext(ctx context.Context) RuleBlacklistOutput

type RuleBlacklistState

type RuleBlacklistState struct {
	// Specifies the protective action. Defaults is `0`. The value can be:
	// + `0`: block the request.
	// + `1`: allow the request.
	// + `2`: log the request only.
	Action pulumi.IntPtrInput
	// Specifies the WAF address group id.
	// This parameter is required when `ipAddress` is not specified. The parameter `addressGroupId` and `ipAddress`
	// can not be configured together.
	AddressGroupId pulumi.StringPtrInput
	// The name of the IP address group.
	AddressGroupName pulumi.StringPtrInput
	// The number of IP addresses or IP address ranges in the IP address group.
	AddressGroupSize pulumi.IntPtrInput
	// Specifies the rule description of the WAF address group.
	Description pulumi.StringPtrInput
	// Specifies the enterprise project ID of WAF rule blacklist
	// and whitelist. Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Specifies the IP address or range. For example, 192.168.0.125 or 192.168.0.0/24.
	// This parameter is required when `addressGroupId` is not specified. The parameter `addressGroupId` and `ipAddress`
	// can not be configured together.
	IpAddress pulumi.StringPtrInput
	// Specifies the Rule name. The value can contain a maximum of 64 characters.
	// Only letters, digits, hyphens (-), underscores (_) and periods (.) are allowed.
	Name pulumi.StringPtrInput
	// Specifies the WAF policy ID. Changing this creates a new rule. Please make
	// sure that the region which the policy belongs to be consistent with the `region`.
	PolicyId pulumi.StringPtrInput
	// The region in which to create the WAF blacklist and whitelist rule resource.
	// If omitted, the provider-level region will be used. Changing this setting will push a new certificate.
	Region pulumi.StringPtrInput
}

func (RuleBlacklistState) ElementType

func (RuleBlacklistState) ElementType() reflect.Type

type RuleDataMasking

type RuleDataMasking struct {
	pulumi.CustomResourceState

	// Specifies the enterprise project ID of WAF data masking rule.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrOutput `pulumi:"enterpriseProjectId"`
	// The position where the masked field stored. Valid values are:
	// + `params`: The field in the parameter.
	// + `header`: The field in the header.
	// + `form`: The field in the form.
	// + `cookie`: The field in the cookie.
	Field pulumi.StringOutput `pulumi:"field"`
	// Specifies the URL to which the data masking rule applies (exact match by default).
	Path pulumi.StringOutput `pulumi:"path"`
	// Specifies the WAF policy ID. Changing this creates a new rule.
	PolicyId pulumi.StringOutput `pulumi:"policyId"`
	// The region in which to create the WAF Data Masking rule resource. If omitted,
	// the provider-level region will be used. Changing this setting will create a new rule.
	Region pulumi.StringOutput `pulumi:"region"`
	// Specifies the name of the masked field, e.g.: password.
	Subfield pulumi.StringOutput `pulumi:"subfield"`
}

Manages a WAF Data Masking Rule resource within HuaweiCloud.

> **NOTE:** All WAF resources depend on WAF instances, and the WAF instances need to be purchased before they can be used. The data masking rule resource can be used in Cloud Mode, Dedicated Mode and ELB Mode.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		policyId := cfg.RequireObject("policyId")
		_, err := Waf.NewRuleDataMasking(ctx, "rule1", &Waf.RuleDataMaskingArgs{
			PolicyId:            pulumi.Any(policyId),
			EnterpriseProjectId: pulumi.Any(enterpriseProjectId),
			Path:                pulumi.String("/login"),
			Field:               pulumi.String("params"),
			Subfield:            pulumi.String("password"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

There are two ways to import WAF rule data masking state. * Using `policy_id` and `rule_id`, separated by a slash, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/ruleDataMasking:RuleDataMasking test <policy_id>/<rule_id>

```

  • Using `policy_id`, `rule_id` and `enterprise_project_id`, separated by slashes, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/ruleDataMasking:RuleDataMasking test <policy_id>/<rule_id>/<enterprise_project_id>

```

func GetRuleDataMasking

func GetRuleDataMasking(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RuleDataMaskingState, opts ...pulumi.ResourceOption) (*RuleDataMasking, error)

GetRuleDataMasking gets an existing RuleDataMasking 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 NewRuleDataMasking

func NewRuleDataMasking(ctx *pulumi.Context,
	name string, args *RuleDataMaskingArgs, opts ...pulumi.ResourceOption) (*RuleDataMasking, error)

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

func (*RuleDataMasking) ElementType

func (*RuleDataMasking) ElementType() reflect.Type

func (*RuleDataMasking) ToRuleDataMaskingOutput

func (i *RuleDataMasking) ToRuleDataMaskingOutput() RuleDataMaskingOutput

func (*RuleDataMasking) ToRuleDataMaskingOutputWithContext

func (i *RuleDataMasking) ToRuleDataMaskingOutputWithContext(ctx context.Context) RuleDataMaskingOutput

type RuleDataMaskingArgs

type RuleDataMaskingArgs struct {
	// Specifies the enterprise project ID of WAF data masking rule.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// The position where the masked field stored. Valid values are:
	// + `params`: The field in the parameter.
	// + `header`: The field in the header.
	// + `form`: The field in the form.
	// + `cookie`: The field in the cookie.
	Field pulumi.StringInput
	// Specifies the URL to which the data masking rule applies (exact match by default).
	Path pulumi.StringInput
	// Specifies the WAF policy ID. Changing this creates a new rule.
	PolicyId pulumi.StringInput
	// The region in which to create the WAF Data Masking rule resource. If omitted,
	// the provider-level region will be used. Changing this setting will create a new rule.
	Region pulumi.StringPtrInput
	// Specifies the name of the masked field, e.g.: password.
	Subfield pulumi.StringInput
}

The set of arguments for constructing a RuleDataMasking resource.

func (RuleDataMaskingArgs) ElementType

func (RuleDataMaskingArgs) ElementType() reflect.Type

type RuleDataMaskingArray

type RuleDataMaskingArray []RuleDataMaskingInput

func (RuleDataMaskingArray) ElementType

func (RuleDataMaskingArray) ElementType() reflect.Type

func (RuleDataMaskingArray) ToRuleDataMaskingArrayOutput

func (i RuleDataMaskingArray) ToRuleDataMaskingArrayOutput() RuleDataMaskingArrayOutput

func (RuleDataMaskingArray) ToRuleDataMaskingArrayOutputWithContext

func (i RuleDataMaskingArray) ToRuleDataMaskingArrayOutputWithContext(ctx context.Context) RuleDataMaskingArrayOutput

type RuleDataMaskingArrayInput

type RuleDataMaskingArrayInput interface {
	pulumi.Input

	ToRuleDataMaskingArrayOutput() RuleDataMaskingArrayOutput
	ToRuleDataMaskingArrayOutputWithContext(context.Context) RuleDataMaskingArrayOutput
}

RuleDataMaskingArrayInput is an input type that accepts RuleDataMaskingArray and RuleDataMaskingArrayOutput values. You can construct a concrete instance of `RuleDataMaskingArrayInput` via:

RuleDataMaskingArray{ RuleDataMaskingArgs{...} }

type RuleDataMaskingArrayOutput

type RuleDataMaskingArrayOutput struct{ *pulumi.OutputState }

func (RuleDataMaskingArrayOutput) ElementType

func (RuleDataMaskingArrayOutput) ElementType() reflect.Type

func (RuleDataMaskingArrayOutput) Index

func (RuleDataMaskingArrayOutput) ToRuleDataMaskingArrayOutput

func (o RuleDataMaskingArrayOutput) ToRuleDataMaskingArrayOutput() RuleDataMaskingArrayOutput

func (RuleDataMaskingArrayOutput) ToRuleDataMaskingArrayOutputWithContext

func (o RuleDataMaskingArrayOutput) ToRuleDataMaskingArrayOutputWithContext(ctx context.Context) RuleDataMaskingArrayOutput

type RuleDataMaskingInput

type RuleDataMaskingInput interface {
	pulumi.Input

	ToRuleDataMaskingOutput() RuleDataMaskingOutput
	ToRuleDataMaskingOutputWithContext(ctx context.Context) RuleDataMaskingOutput
}

type RuleDataMaskingMap

type RuleDataMaskingMap map[string]RuleDataMaskingInput

func (RuleDataMaskingMap) ElementType

func (RuleDataMaskingMap) ElementType() reflect.Type

func (RuleDataMaskingMap) ToRuleDataMaskingMapOutput

func (i RuleDataMaskingMap) ToRuleDataMaskingMapOutput() RuleDataMaskingMapOutput

func (RuleDataMaskingMap) ToRuleDataMaskingMapOutputWithContext

func (i RuleDataMaskingMap) ToRuleDataMaskingMapOutputWithContext(ctx context.Context) RuleDataMaskingMapOutput

type RuleDataMaskingMapInput

type RuleDataMaskingMapInput interface {
	pulumi.Input

	ToRuleDataMaskingMapOutput() RuleDataMaskingMapOutput
	ToRuleDataMaskingMapOutputWithContext(context.Context) RuleDataMaskingMapOutput
}

RuleDataMaskingMapInput is an input type that accepts RuleDataMaskingMap and RuleDataMaskingMapOutput values. You can construct a concrete instance of `RuleDataMaskingMapInput` via:

RuleDataMaskingMap{ "key": RuleDataMaskingArgs{...} }

type RuleDataMaskingMapOutput

type RuleDataMaskingMapOutput struct{ *pulumi.OutputState }

func (RuleDataMaskingMapOutput) ElementType

func (RuleDataMaskingMapOutput) ElementType() reflect.Type

func (RuleDataMaskingMapOutput) MapIndex

func (RuleDataMaskingMapOutput) ToRuleDataMaskingMapOutput

func (o RuleDataMaskingMapOutput) ToRuleDataMaskingMapOutput() RuleDataMaskingMapOutput

func (RuleDataMaskingMapOutput) ToRuleDataMaskingMapOutputWithContext

func (o RuleDataMaskingMapOutput) ToRuleDataMaskingMapOutputWithContext(ctx context.Context) RuleDataMaskingMapOutput

type RuleDataMaskingOutput

type RuleDataMaskingOutput struct{ *pulumi.OutputState }

func (RuleDataMaskingOutput) ElementType

func (RuleDataMaskingOutput) ElementType() reflect.Type

func (RuleDataMaskingOutput) EnterpriseProjectId added in v0.0.8

func (o RuleDataMaskingOutput) EnterpriseProjectId() pulumi.StringPtrOutput

Specifies the enterprise project ID of WAF data masking rule. Changing this parameter will create a new resource.

func (RuleDataMaskingOutput) Field

The position where the masked field stored. Valid values are: + `params`: The field in the parameter. + `header`: The field in the header. + `form`: The field in the form. + `cookie`: The field in the cookie.

func (RuleDataMaskingOutput) Path

Specifies the URL to which the data masking rule applies (exact match by default).

func (RuleDataMaskingOutput) PolicyId

Specifies the WAF policy ID. Changing this creates a new rule.

func (RuleDataMaskingOutput) Region

The region in which to create the WAF Data Masking rule resource. If omitted, the provider-level region will be used. Changing this setting will create a new rule.

func (RuleDataMaskingOutput) Subfield

Specifies the name of the masked field, e.g.: password.

func (RuleDataMaskingOutput) ToRuleDataMaskingOutput

func (o RuleDataMaskingOutput) ToRuleDataMaskingOutput() RuleDataMaskingOutput

func (RuleDataMaskingOutput) ToRuleDataMaskingOutputWithContext

func (o RuleDataMaskingOutput) ToRuleDataMaskingOutputWithContext(ctx context.Context) RuleDataMaskingOutput

type RuleDataMaskingState

type RuleDataMaskingState struct {
	// Specifies the enterprise project ID of WAF data masking rule.
	// Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// The position where the masked field stored. Valid values are:
	// + `params`: The field in the parameter.
	// + `header`: The field in the header.
	// + `form`: The field in the form.
	// + `cookie`: The field in the cookie.
	Field pulumi.StringPtrInput
	// Specifies the URL to which the data masking rule applies (exact match by default).
	Path pulumi.StringPtrInput
	// Specifies the WAF policy ID. Changing this creates a new rule.
	PolicyId pulumi.StringPtrInput
	// The region in which to create the WAF Data Masking rule resource. If omitted,
	// the provider-level region will be used. Changing this setting will create a new rule.
	Region pulumi.StringPtrInput
	// Specifies the name of the masked field, e.g.: password.
	Subfield pulumi.StringPtrInput
}

func (RuleDataMaskingState) ElementType

func (RuleDataMaskingState) ElementType() reflect.Type

type RuleWebTamperProtection

type RuleWebTamperProtection struct {
	pulumi.CustomResourceState

	// Specifies the domain name. Changing this creates a new rule.
	Domain pulumi.StringOutput `pulumi:"domain"`
	// Specifies the enterprise project ID of WAF tamper protection
	// rule. Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrOutput `pulumi:"enterpriseProjectId"`
	// Specifies the URL protected by the web tamper protection rule, excluding a
	// domain name. Changing this creates a new rule.
	Path pulumi.StringOutput `pulumi:"path"`
	// Specifies the WAF policy ID. Changing this creates a new rule.
	PolicyId pulumi.StringOutput `pulumi:"policyId"`
	// The region in which to create the WAF web tamper protection rules resource. If
	// omitted, the provider-level region will be used. Changing this creates a new rule.
	Region pulumi.StringOutput `pulumi:"region"`
}

Manages a WAF web tamper protection rule resource within HuaweiCloud.

> **NOTE:** All WAF resources depend on WAF instances, and the WAF instances need to be purchased before they can be used. The web tamper protection rule resource can be used in Cloud Mode, Dedicated Mode and ELB Mode.

## Example Usage

```go package main

import (

"github.com/huaweicloud/pulumi-huaweicloud/sdk/go/huaweicloud/Waf"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		enterpriseProjectId := cfg.RequireObject("enterpriseProjectId")
		policyId := cfg.RequireObject("policyId")
		_, err := Waf.NewRuleWebTamperProtection(ctx, "rule1", &Waf.RuleWebTamperProtectionArgs{
			PolicyId:            pulumi.Any(policyId),
			EnterpriseProjectId: pulumi.Any(enterpriseProjectId),
			Domain:              pulumi.String("www.your-domain.com"),
			Path:                pulumi.String("/payment"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

There are two ways to import WAF rule web tamper protection state. * Using `policy_id` and `rule_id`, separated by a slash, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/ruleWebTamperProtection:RuleWebTamperProtection test <policy_id>/<rule_id>

```

  • Using `policy_id`, `rule_id` and `enterprise_project_id`, separated by slashes, e.g. bash

```sh

$ pulumi import huaweicloud:Waf/ruleWebTamperProtection:RuleWebTamperProtection test <policy_id>/<rule_id>/<enterprise_project_id>

```

func GetRuleWebTamperProtection

func GetRuleWebTamperProtection(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RuleWebTamperProtectionState, opts ...pulumi.ResourceOption) (*RuleWebTamperProtection, error)

GetRuleWebTamperProtection gets an existing RuleWebTamperProtection 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 NewRuleWebTamperProtection

func NewRuleWebTamperProtection(ctx *pulumi.Context,
	name string, args *RuleWebTamperProtectionArgs, opts ...pulumi.ResourceOption) (*RuleWebTamperProtection, error)

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

func (*RuleWebTamperProtection) ElementType

func (*RuleWebTamperProtection) ElementType() reflect.Type

func (*RuleWebTamperProtection) ToRuleWebTamperProtectionOutput

func (i *RuleWebTamperProtection) ToRuleWebTamperProtectionOutput() RuleWebTamperProtectionOutput

func (*RuleWebTamperProtection) ToRuleWebTamperProtectionOutputWithContext

func (i *RuleWebTamperProtection) ToRuleWebTamperProtectionOutputWithContext(ctx context.Context) RuleWebTamperProtectionOutput

type RuleWebTamperProtectionArgs

type RuleWebTamperProtectionArgs struct {
	// Specifies the domain name. Changing this creates a new rule.
	Domain pulumi.StringInput
	// Specifies the enterprise project ID of WAF tamper protection
	// rule. Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Specifies the URL protected by the web tamper protection rule, excluding a
	// domain name. Changing this creates a new rule.
	Path pulumi.StringInput
	// Specifies the WAF policy ID. Changing this creates a new rule.
	PolicyId pulumi.StringInput
	// The region in which to create the WAF web tamper protection rules resource. If
	// omitted, the provider-level region will be used. Changing this creates a new rule.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a RuleWebTamperProtection resource.

func (RuleWebTamperProtectionArgs) ElementType

type RuleWebTamperProtectionArray

type RuleWebTamperProtectionArray []RuleWebTamperProtectionInput

func (RuleWebTamperProtectionArray) ElementType

func (RuleWebTamperProtectionArray) ToRuleWebTamperProtectionArrayOutput

func (i RuleWebTamperProtectionArray) ToRuleWebTamperProtectionArrayOutput() RuleWebTamperProtectionArrayOutput

func (RuleWebTamperProtectionArray) ToRuleWebTamperProtectionArrayOutputWithContext

func (i RuleWebTamperProtectionArray) ToRuleWebTamperProtectionArrayOutputWithContext(ctx context.Context) RuleWebTamperProtectionArrayOutput

type RuleWebTamperProtectionArrayInput

type RuleWebTamperProtectionArrayInput interface {
	pulumi.Input

	ToRuleWebTamperProtectionArrayOutput() RuleWebTamperProtectionArrayOutput
	ToRuleWebTamperProtectionArrayOutputWithContext(context.Context) RuleWebTamperProtectionArrayOutput
}

RuleWebTamperProtectionArrayInput is an input type that accepts RuleWebTamperProtectionArray and RuleWebTamperProtectionArrayOutput values. You can construct a concrete instance of `RuleWebTamperProtectionArrayInput` via:

RuleWebTamperProtectionArray{ RuleWebTamperProtectionArgs{...} }

type RuleWebTamperProtectionArrayOutput

type RuleWebTamperProtectionArrayOutput struct{ *pulumi.OutputState }

func (RuleWebTamperProtectionArrayOutput) ElementType

func (RuleWebTamperProtectionArrayOutput) Index

func (RuleWebTamperProtectionArrayOutput) ToRuleWebTamperProtectionArrayOutput

func (o RuleWebTamperProtectionArrayOutput) ToRuleWebTamperProtectionArrayOutput() RuleWebTamperProtectionArrayOutput

func (RuleWebTamperProtectionArrayOutput) ToRuleWebTamperProtectionArrayOutputWithContext

func (o RuleWebTamperProtectionArrayOutput) ToRuleWebTamperProtectionArrayOutputWithContext(ctx context.Context) RuleWebTamperProtectionArrayOutput

type RuleWebTamperProtectionInput

type RuleWebTamperProtectionInput interface {
	pulumi.Input

	ToRuleWebTamperProtectionOutput() RuleWebTamperProtectionOutput
	ToRuleWebTamperProtectionOutputWithContext(ctx context.Context) RuleWebTamperProtectionOutput
}

type RuleWebTamperProtectionMap

type RuleWebTamperProtectionMap map[string]RuleWebTamperProtectionInput

func (RuleWebTamperProtectionMap) ElementType

func (RuleWebTamperProtectionMap) ElementType() reflect.Type

func (RuleWebTamperProtectionMap) ToRuleWebTamperProtectionMapOutput

func (i RuleWebTamperProtectionMap) ToRuleWebTamperProtectionMapOutput() RuleWebTamperProtectionMapOutput

func (RuleWebTamperProtectionMap) ToRuleWebTamperProtectionMapOutputWithContext

func (i RuleWebTamperProtectionMap) ToRuleWebTamperProtectionMapOutputWithContext(ctx context.Context) RuleWebTamperProtectionMapOutput

type RuleWebTamperProtectionMapInput

type RuleWebTamperProtectionMapInput interface {
	pulumi.Input

	ToRuleWebTamperProtectionMapOutput() RuleWebTamperProtectionMapOutput
	ToRuleWebTamperProtectionMapOutputWithContext(context.Context) RuleWebTamperProtectionMapOutput
}

RuleWebTamperProtectionMapInput is an input type that accepts RuleWebTamperProtectionMap and RuleWebTamperProtectionMapOutput values. You can construct a concrete instance of `RuleWebTamperProtectionMapInput` via:

RuleWebTamperProtectionMap{ "key": RuleWebTamperProtectionArgs{...} }

type RuleWebTamperProtectionMapOutput

type RuleWebTamperProtectionMapOutput struct{ *pulumi.OutputState }

func (RuleWebTamperProtectionMapOutput) ElementType

func (RuleWebTamperProtectionMapOutput) MapIndex

func (RuleWebTamperProtectionMapOutput) ToRuleWebTamperProtectionMapOutput

func (o RuleWebTamperProtectionMapOutput) ToRuleWebTamperProtectionMapOutput() RuleWebTamperProtectionMapOutput

func (RuleWebTamperProtectionMapOutput) ToRuleWebTamperProtectionMapOutputWithContext

func (o RuleWebTamperProtectionMapOutput) ToRuleWebTamperProtectionMapOutputWithContext(ctx context.Context) RuleWebTamperProtectionMapOutput

type RuleWebTamperProtectionOutput

type RuleWebTamperProtectionOutput struct{ *pulumi.OutputState }

func (RuleWebTamperProtectionOutput) Domain

Specifies the domain name. Changing this creates a new rule.

func (RuleWebTamperProtectionOutput) ElementType

func (RuleWebTamperProtectionOutput) EnterpriseProjectId added in v0.0.8

func (o RuleWebTamperProtectionOutput) EnterpriseProjectId() pulumi.StringPtrOutput

Specifies the enterprise project ID of WAF tamper protection rule. Changing this parameter will create a new resource.

func (RuleWebTamperProtectionOutput) Path

Specifies the URL protected by the web tamper protection rule, excluding a domain name. Changing this creates a new rule.

func (RuleWebTamperProtectionOutput) PolicyId

Specifies the WAF policy ID. Changing this creates a new rule.

func (RuleWebTamperProtectionOutput) Region

The region in which to create the WAF web tamper protection rules resource. If omitted, the provider-level region will be used. Changing this creates a new rule.

func (RuleWebTamperProtectionOutput) ToRuleWebTamperProtectionOutput

func (o RuleWebTamperProtectionOutput) ToRuleWebTamperProtectionOutput() RuleWebTamperProtectionOutput

func (RuleWebTamperProtectionOutput) ToRuleWebTamperProtectionOutputWithContext

func (o RuleWebTamperProtectionOutput) ToRuleWebTamperProtectionOutputWithContext(ctx context.Context) RuleWebTamperProtectionOutput

type RuleWebTamperProtectionState

type RuleWebTamperProtectionState struct {
	// Specifies the domain name. Changing this creates a new rule.
	Domain pulumi.StringPtrInput
	// Specifies the enterprise project ID of WAF tamper protection
	// rule. Changing this parameter will create a new resource.
	EnterpriseProjectId pulumi.StringPtrInput
	// Specifies the URL protected by the web tamper protection rule, excluding a
	// domain name. Changing this creates a new rule.
	Path pulumi.StringPtrInput
	// Specifies the WAF policy ID. Changing this creates a new rule.
	PolicyId pulumi.StringPtrInput
	// The region in which to create the WAF web tamper protection rules resource. If
	// omitted, the provider-level region will be used. Changing this creates a new rule.
	Region pulumi.StringPtrInput
}

func (RuleWebTamperProtectionState) ElementType

Jump to

Keyboard shortcuts

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