All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.aliyun.sdk.service.waf_openapi20211001.models.ModifyCloudResourceRequest Maven / Gradle / Ivy

// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sdk.service.waf_openapi20211001.models;

import darabonba.core.RequestModel;
import darabonba.core.TeaModel;
import com.aliyun.sdk.gateway.pop.models.*;

/**
 * 
 * {@link ModifyCloudResourceRequest} extends {@link RequestModel}
 *
 * 

ModifyCloudResourceRequest

*/ public class ModifyCloudResourceRequest extends Request { @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("InstanceId") @com.aliyun.core.annotation.Validation(required = true) private String instanceId; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("Listen") @com.aliyun.core.annotation.Validation(required = true) private Listen listen; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("Redirect") private Redirect redirect; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("RegionId") @com.aliyun.core.annotation.Validation(required = true) private String regionId; @com.aliyun.core.annotation.Query @com.aliyun.core.annotation.NameInMap("ResourceManagerResourceGroupId") private String resourceManagerResourceGroupId; private ModifyCloudResourceRequest(Builder builder) { super(builder); this.instanceId = builder.instanceId; this.listen = builder.listen; this.redirect = builder.redirect; this.regionId = builder.regionId; this.resourceManagerResourceGroupId = builder.resourceManagerResourceGroupId; } public static Builder builder() { return new Builder(); } public static ModifyCloudResourceRequest create() { return builder().build(); } @Override public Builder toBuilder() { return new Builder(this); } /** * @return instanceId */ public String getInstanceId() { return this.instanceId; } /** * @return listen */ public Listen getListen() { return this.listen; } /** * @return redirect */ public Redirect getRedirect() { return this.redirect; } /** * @return regionId */ public String getRegionId() { return this.regionId; } /** * @return resourceManagerResourceGroupId */ public String getResourceManagerResourceGroupId() { return this.resourceManagerResourceGroupId; } public static final class Builder extends Request.Builder { private String instanceId; private Listen listen; private Redirect redirect; private String regionId; private String resourceManagerResourceGroupId; private Builder() { super(); } private Builder(ModifyCloudResourceRequest request) { super(request); this.instanceId = request.instanceId; this.listen = request.listen; this.redirect = request.redirect; this.regionId = request.regionId; this.resourceManagerResourceGroupId = request.resourceManagerResourceGroupId; } /** *

The ID of the WAF instance.

*
*

You can call the DescribeInstance operation to query the ID of the WAF instance.

*
*

This parameter is required.

* * example: *

waf_v3prepaid_public_cn-***

*/ public Builder instanceId(String instanceId) { this.putQueryParameter("InstanceId", instanceId); this.instanceId = instanceId; return this; } /** *

The configurations of the listeners.

*

This parameter is required.

*/ public Builder listen(Listen listen) { String listenShrink = shrink(listen, "Listen", "json"); this.putQueryParameter("Listen", listenShrink); this.listen = listen; return this; } /** *

The configurations of the forwarding rule.

*/ public Builder redirect(Redirect redirect) { String redirectShrink = shrink(redirect, "Redirect", "json"); this.putQueryParameter("Redirect", redirectShrink); this.redirect = redirect; return this; } /** *

The region in which the WAF instance is deployed. Valid values:

*
    *
  • cn-hangzhou: the Chinese mainland.
  • *
  • ap-southeast-1: outside the Chinese mainland.
  • *
*

This parameter is required.

* * example: *

cn-hangzhou

*/ public Builder regionId(String regionId) { this.putQueryParameter("RegionId", regionId); this.regionId = regionId; return this; } /** *

The ID of the Alibaba Cloud resource group.

* * example: *

rg-acfm***q

*/ public Builder resourceManagerResourceGroupId(String resourceManagerResourceGroupId) { this.putQueryParameter("ResourceManagerResourceGroupId", resourceManagerResourceGroupId); this.resourceManagerResourceGroupId = resourceManagerResourceGroupId; return this; } @Override public ModifyCloudResourceRequest build() { return new ModifyCloudResourceRequest(this); } } /** * * {@link ModifyCloudResourceRequest} extends {@link TeaModel} * *

ModifyCloudResourceRequest

*/ public static class Certificates extends TeaModel { @com.aliyun.core.annotation.NameInMap("AppliedType") private String appliedType; @com.aliyun.core.annotation.NameInMap("CertificateId") private String certificateId; private Certificates(Builder builder) { this.appliedType = builder.appliedType; this.certificateId = builder.certificateId; } public static Builder builder() { return new Builder(); } public static Certificates create() { return builder().build(); } /** * @return appliedType */ public String getAppliedType() { return this.appliedType; } /** * @return certificateId */ public String getCertificateId() { return this.certificateId; } public static final class Builder { private String appliedType; private String certificateId; /** *

The type of the HTTPS certificate. Valid values:

*
    *
  • default: default certificate.
  • *
  • extension: additional certificate.
  • *
* * example: *

default

*/ public Builder appliedType(String appliedType) { this.appliedType = appliedType; return this; } /** *

The ID of the certificate.

* * example: *

123-cn-hangzhou

*/ public Builder certificateId(String certificateId) { this.certificateId = certificateId; return this; } public Certificates build() { return new Certificates(this); } } } /** * * {@link ModifyCloudResourceRequest} extends {@link TeaModel} * *

ModifyCloudResourceRequest

*/ public static class Listen extends TeaModel { @com.aliyun.core.annotation.NameInMap("Certificates") private java.util.List < Certificates> certificates; @com.aliyun.core.annotation.NameInMap("CipherSuite") private Integer cipherSuite; @com.aliyun.core.annotation.NameInMap("CustomCiphers") private java.util.List < String > customCiphers; @com.aliyun.core.annotation.NameInMap("EnableTLSv3") private Boolean enableTLSv3; @com.aliyun.core.annotation.NameInMap("Http2Enabled") private Boolean http2Enabled; @com.aliyun.core.annotation.NameInMap("Port") @com.aliyun.core.annotation.Validation(required = true) private Integer port; @com.aliyun.core.annotation.NameInMap("Protocol") @com.aliyun.core.annotation.Validation(required = true) private String protocol; @com.aliyun.core.annotation.NameInMap("ResourceInstanceId") @com.aliyun.core.annotation.Validation(required = true) private String resourceInstanceId; @com.aliyun.core.annotation.NameInMap("ResourceProduct") @com.aliyun.core.annotation.Validation(required = true) private String resourceProduct; @com.aliyun.core.annotation.NameInMap("TLSVersion") private String TLSVersion; private Listen(Builder builder) { this.certificates = builder.certificates; this.cipherSuite = builder.cipherSuite; this.customCiphers = builder.customCiphers; this.enableTLSv3 = builder.enableTLSv3; this.http2Enabled = builder.http2Enabled; this.port = builder.port; this.protocol = builder.protocol; this.resourceInstanceId = builder.resourceInstanceId; this.resourceProduct = builder.resourceProduct; this.TLSVersion = builder.TLSVersion; } public static Builder builder() { return new Builder(); } public static Listen create() { return builder().build(); } /** * @return certificates */ public java.util.List < Certificates> getCertificates() { return this.certificates; } /** * @return cipherSuite */ public Integer getCipherSuite() { return this.cipherSuite; } /** * @return customCiphers */ public java.util.List < String > getCustomCiphers() { return this.customCiphers; } /** * @return enableTLSv3 */ public Boolean getEnableTLSv3() { return this.enableTLSv3; } /** * @return http2Enabled */ public Boolean getHttp2Enabled() { return this.http2Enabled; } /** * @return port */ public Integer getPort() { return this.port; } /** * @return protocol */ public String getProtocol() { return this.protocol; } /** * @return resourceInstanceId */ public String getResourceInstanceId() { return this.resourceInstanceId; } /** * @return resourceProduct */ public String getResourceProduct() { return this.resourceProduct; } /** * @return TLSVersion */ public String getTLSVersion() { return this.TLSVersion; } public static final class Builder { private java.util.List < Certificates> certificates; private Integer cipherSuite; private java.util.List < String > customCiphers; private Boolean enableTLSv3; private Boolean http2Enabled; private Integer port; private String protocol; private String resourceInstanceId; private String resourceProduct; private String TLSVersion; /** *

An array of certificates.

*/ public Builder certificates(java.util.List < Certificates> certificates) { this.certificates = certificates; return this; } /** *

The type of the cipher suites that you want to add. This parameter is available only if you specify HttpsPorts. Valid values:

*
    *
  • 1: all cipher suites.
  • *
  • 2: strong cipher suites. You can set the parameter to this value only if you set TLSVersion to tlsv1.2.
  • *
  • 99: custom cipher suites.
  • *
* * example: *

1

*/ public Builder cipherSuite(Integer cipherSuite) { this.cipherSuite = cipherSuite; return this; } /** *

An array of custom cipher suites.

*/ public Builder customCiphers(java.util.List < String > customCiphers) { this.customCiphers = customCiphers; return this; } /** *

Specifies whether to support TLS 1.3. This parameter is available only if you specify HttpsPorts. Valid values:

*
    *
  • true
  • *
  • false
  • *
* * example: *

true

*/ public Builder enableTLSv3(Boolean enableTLSv3) { this.enableTLSv3 = enableTLSv3; return this; } /** *

Specifies whether to enable HTTP/2. This parameter is available only if you specify HttpsPorts. Valid values:

*
    *
  • true
  • *
  • false (default)
  • *
* * example: *

true

*/ public Builder http2Enabled(Boolean http2Enabled) { this.http2Enabled = http2Enabled; return this; } /** *

The port of the resource that you want to add to WAF.

*

This parameter is required.

* * example: *

80

*/ public Builder port(Integer port) { this.port = port; return this; } /** *

The type of the protocol. Valid values:

*
    *
  • http
  • *
  • https
  • *
*

This parameter is required.

* * example: *

http

*/ public Builder protocol(String protocol) { this.protocol = protocol; return this; } /** *

The ID of the resource.

*

This parameter is required.

* * example: *

lb-***

*/ public Builder resourceInstanceId(String resourceInstanceId) { this.resourceInstanceId = resourceInstanceId; return this; } /** *

The cloud service. Valid values:

*
    *
  • clb4: Layer 4 Classic Load Balancer (CLB).
  • *
  • clb7: Layer 7 CLB.
  • *
  • ecs: Elastic Compute Service (ECS).
  • *
*

This parameter is required.

* * example: *

clb7

*/ public Builder resourceProduct(String resourceProduct) { this.resourceProduct = resourceProduct; return this; } /** *

The Transport Layer Security (TLS) version. This parameter is available only if you specify HttpsPorts. Valid values:

*
    *
  • tlsv1
  • *
  • tlsv1.1
  • *
  • tlsv1.2
  • *
* * example: *

tlsv1.2

*/ public Builder TLSVersion(String TLSVersion) { this.TLSVersion = TLSVersion; return this; } public Listen build() { return new Listen(this); } } } /** * * {@link ModifyCloudResourceRequest} extends {@link TeaModel} * *

ModifyCloudResourceRequest

*/ public static class RequestHeaders extends TeaModel { @com.aliyun.core.annotation.NameInMap("Key") private String key; @com.aliyun.core.annotation.NameInMap("Value") private String value; private RequestHeaders(Builder builder) { this.key = builder.key; this.value = builder.value; } public static Builder builder() { return new Builder(); } public static RequestHeaders create() { return builder().build(); } /** * @return key */ public String getKey() { return this.key; } /** * @return value */ public String getValue() { return this.value; } public static final class Builder { private String key; private String value; /** *

The key of the custom header field.

* * example: *

key1

*/ public Builder key(String key) { this.key = key; return this; } /** *

The value of the custom header field.

* * example: *

value1

*/ public Builder value(String value) { this.value = value; return this; } public RequestHeaders build() { return new RequestHeaders(this); } } } /** * * {@link ModifyCloudResourceRequest} extends {@link TeaModel} * *

ModifyCloudResourceRequest

*/ public static class Redirect extends TeaModel { @com.aliyun.core.annotation.NameInMap("Keepalive") private Boolean keepalive; @com.aliyun.core.annotation.NameInMap("KeepaliveRequests") @com.aliyun.core.annotation.Validation(maximum = 1000, minimum = 60) private Integer keepaliveRequests; @com.aliyun.core.annotation.NameInMap("KeepaliveTimeout") @com.aliyun.core.annotation.Validation(maximum = 3600, minimum = 10) private Integer keepaliveTimeout; @com.aliyun.core.annotation.NameInMap("ReadTimeout") @com.aliyun.core.annotation.Validation(maximum = 3600, minimum = 1) private Integer readTimeout; @com.aliyun.core.annotation.NameInMap("RequestHeaders") private java.util.List < RequestHeaders> requestHeaders; @com.aliyun.core.annotation.NameInMap("WriteTimeout") @com.aliyun.core.annotation.Validation(maximum = 3600, minimum = 1) private Integer writeTimeout; @com.aliyun.core.annotation.NameInMap("XffHeaderMode") private Integer xffHeaderMode; @com.aliyun.core.annotation.NameInMap("XffHeaders") private java.util.List < String > xffHeaders; @com.aliyun.core.annotation.NameInMap("XffProto") private Boolean xffProto; private Redirect(Builder builder) { this.keepalive = builder.keepalive; this.keepaliveRequests = builder.keepaliveRequests; this.keepaliveTimeout = builder.keepaliveTimeout; this.readTimeout = builder.readTimeout; this.requestHeaders = builder.requestHeaders; this.writeTimeout = builder.writeTimeout; this.xffHeaderMode = builder.xffHeaderMode; this.xffHeaders = builder.xffHeaders; this.xffProto = builder.xffProto; } public static Builder builder() { return new Builder(); } public static Redirect create() { return builder().build(); } /** * @return keepalive */ public Boolean getKeepalive() { return this.keepalive; } /** * @return keepaliveRequests */ public Integer getKeepaliveRequests() { return this.keepaliveRequests; } /** * @return keepaliveTimeout */ public Integer getKeepaliveTimeout() { return this.keepaliveTimeout; } /** * @return readTimeout */ public Integer getReadTimeout() { return this.readTimeout; } /** * @return requestHeaders */ public java.util.List < RequestHeaders> getRequestHeaders() { return this.requestHeaders; } /** * @return writeTimeout */ public Integer getWriteTimeout() { return this.writeTimeout; } /** * @return xffHeaderMode */ public Integer getXffHeaderMode() { return this.xffHeaderMode; } /** * @return xffHeaders */ public java.util.List < String > getXffHeaders() { return this.xffHeaders; } /** * @return xffProto */ public Boolean getXffProto() { return this.xffProto; } public static final class Builder { private Boolean keepalive; private Integer keepaliveRequests; private Integer keepaliveTimeout; private Integer readTimeout; private java.util.List < RequestHeaders> requestHeaders; private Integer writeTimeout; private Integer xffHeaderMode; private java.util.List < String > xffHeaders; private Boolean xffProto; /** *

Specifies whether to enable the persistent connection feature. Valid values:

*
    *
  • true (default)
  • *
  • false:
  • *
* * example: *

true

*/ public Builder keepalive(Boolean keepalive) { this.keepalive = keepalive; return this; } /** *

The number of requests that reuse persistent connections. Valid values: 60 to 1000.

*
*

This parameter specifies the number of requests that can reuse persistent connections after you enable the persistent connection feature.

*
* * example: *

1000

*/ public Builder keepaliveRequests(Integer keepaliveRequests) { this.keepaliveRequests = keepaliveRequests; return this; } /** *

The timeout period for idle persistent connections. Valid values: 10 to 3600. Default value: 3600. Unit: seconds.

*
*

If no new requests are initiated over the idle persistent connection within the specified timeout period, the connection is closed.

*
* * example: *

15

*/ public Builder keepaliveTimeout(Integer keepaliveTimeout) { this.keepaliveTimeout = keepaliveTimeout; return this; } /** *

The timeout period for read connections. Unit: seconds. Valid values: 1 to 3600.

* * example: *

1

*/ public Builder readTimeout(Integer readTimeout) { this.readTimeout = readTimeout; return this; } /** *

The custom header field that you want to use to label requests that are processed by WAF.

*/ public Builder requestHeaders(java.util.List < RequestHeaders> requestHeaders) { this.requestHeaders = requestHeaders; return this; } /** *

The timeout period for write connections. Unit: seconds. Valid values: 1 to 3600.

* * example: *

1

*/ public Builder writeTimeout(Integer writeTimeout) { this.writeTimeout = writeTimeout; return this; } /** *

The method that WAF uses to obtain the originating IP address of a client. Valid values:

*
    *
  • 0: No Layer 7 proxies are deployed in front of WAF.
  • *
  • 1: WAF reads the first value of the X-Forwarded-For (XFF) header field as the originating IP address of the client.
  • *
  • 2: WAF reads the value of a custom header field as the originating IP address of the client.
  • *
* * example: *

0

*/ public Builder xffHeaderMode(Integer xffHeaderMode) { this.xffHeaderMode = xffHeaderMode; return this; } /** *

The custom header field that is used to obtain the originating IP address of a client. Specify the value in the ["header1","header2",...] format.

*
*

This parameter is required only if you set XffHeaderMode to 2.

*
*/ public Builder xffHeaders(java.util.List < String > xffHeaders) { this.xffHeaders = xffHeaders; return this; } /** *

Specifies whether to use the X-Forward-For-Proto header to identify the protocol used by WAF to forward requests to the origin server. Valid values:

*
    *
  • true (default)
  • *
  • false
  • *
* * example: *

true

*/ public Builder xffProto(Boolean xffProto) { this.xffProto = xffProto; return this; } public Redirect build() { return new Redirect(this); } } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy