com.amazonaws.services.wafv2.model.ManagedProductDescriptor Maven / Gradle / Ivy
Show all versions of aws-java-sdk-wafv2 Show documentation
/*
* Copyright 2019-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package com.amazonaws.services.wafv2.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;
/**
*
* The properties of a managed product, such as an Amazon Web Services Managed Rules rule group or an Amazon Web
* Services Marketplace managed rule group.
*
*
* @see AWS API
* Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class ManagedProductDescriptor implements Serializable, Cloneable, StructuredPojo {
/**
*
* The name of the managed rule group vendor. You use this, along with the rule group name, to identify a rule
* group.
*
*/
private String vendorName;
/**
*
* The name of the managed rule group. For example, AWSManagedRulesAnonymousIpList
or
* AWSManagedRulesATPRuleSet
.
*
*/
private String managedRuleSetName;
/**
*
* A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You
* provide it to operations like update and delete.
*
*/
private String productId;
/**
*
* For Amazon Web Services Marketplace managed rule groups only, the link to the rule group product page.
*
*/
private String productLink;
/**
*
* The display name for the managed rule group. For example, Anonymous IP list
or
* Account takeover prevention
.
*
*/
private String productTitle;
/**
*
* A short description of the managed rule group.
*
*/
private String productDescription;
/**
*
* The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS topic that's used to provide
* notification of changes to the managed rule group. You can subscribe to the SNS topic to receive notifications
* when the managed rule group is modified, such as for new versions and for version expiration. For more
* information, see the Amazon Simple Notification
* Service Developer Guide.
*
*/
private String snsTopicArn;
/**
*
* Indicates whether the rule group is versioned.
*
*/
private Boolean isVersioningSupported;
/**
*
* Indicates whether the rule group provides an advanced set of protections, such as the the Amazon Web Services
* Managed Rules rule groups that are used for WAF intelligent threat mitigation.
*
*/
private Boolean isAdvancedManagedRuleSet;
/**
*
* The name of the managed rule group vendor. You use this, along with the rule group name, to identify a rule
* group.
*
*
* @param vendorName
* The name of the managed rule group vendor. You use this, along with the rule group name, to identify a
* rule group.
*/
public void setVendorName(String vendorName) {
this.vendorName = vendorName;
}
/**
*
* The name of the managed rule group vendor. You use this, along with the rule group name, to identify a rule
* group.
*
*
* @return The name of the managed rule group vendor. You use this, along with the rule group name, to identify a
* rule group.
*/
public String getVendorName() {
return this.vendorName;
}
/**
*
* The name of the managed rule group vendor. You use this, along with the rule group name, to identify a rule
* group.
*
*
* @param vendorName
* The name of the managed rule group vendor. You use this, along with the rule group name, to identify a
* rule group.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ManagedProductDescriptor withVendorName(String vendorName) {
setVendorName(vendorName);
return this;
}
/**
*
* The name of the managed rule group. For example, AWSManagedRulesAnonymousIpList
or
* AWSManagedRulesATPRuleSet
.
*
*
* @param managedRuleSetName
* The name of the managed rule group. For example, AWSManagedRulesAnonymousIpList
or
* AWSManagedRulesATPRuleSet
.
*/
public void setManagedRuleSetName(String managedRuleSetName) {
this.managedRuleSetName = managedRuleSetName;
}
/**
*
* The name of the managed rule group. For example, AWSManagedRulesAnonymousIpList
or
* AWSManagedRulesATPRuleSet
.
*
*
* @return The name of the managed rule group. For example, AWSManagedRulesAnonymousIpList
or
* AWSManagedRulesATPRuleSet
.
*/
public String getManagedRuleSetName() {
return this.managedRuleSetName;
}
/**
*
* The name of the managed rule group. For example, AWSManagedRulesAnonymousIpList
or
* AWSManagedRulesATPRuleSet
.
*
*
* @param managedRuleSetName
* The name of the managed rule group. For example, AWSManagedRulesAnonymousIpList
or
* AWSManagedRulesATPRuleSet
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ManagedProductDescriptor withManagedRuleSetName(String managedRuleSetName) {
setManagedRuleSetName(managedRuleSetName);
return this;
}
/**
*
* A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You
* provide it to operations like update and delete.
*
*
* @param productId
* A unique identifier for the rule group. This ID is returned in the responses to create and list commands.
* You provide it to operations like update and delete.
*/
public void setProductId(String productId) {
this.productId = productId;
}
/**
*
* A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You
* provide it to operations like update and delete.
*
*
* @return A unique identifier for the rule group. This ID is returned in the responses to create and list commands.
* You provide it to operations like update and delete.
*/
public String getProductId() {
return this.productId;
}
/**
*
* A unique identifier for the rule group. This ID is returned in the responses to create and list commands. You
* provide it to operations like update and delete.
*
*
* @param productId
* A unique identifier for the rule group. This ID is returned in the responses to create and list commands.
* You provide it to operations like update and delete.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ManagedProductDescriptor withProductId(String productId) {
setProductId(productId);
return this;
}
/**
*
* For Amazon Web Services Marketplace managed rule groups only, the link to the rule group product page.
*
*
* @param productLink
* For Amazon Web Services Marketplace managed rule groups only, the link to the rule group product page.
*/
public void setProductLink(String productLink) {
this.productLink = productLink;
}
/**
*
* For Amazon Web Services Marketplace managed rule groups only, the link to the rule group product page.
*
*
* @return For Amazon Web Services Marketplace managed rule groups only, the link to the rule group product page.
*/
public String getProductLink() {
return this.productLink;
}
/**
*
* For Amazon Web Services Marketplace managed rule groups only, the link to the rule group product page.
*
*
* @param productLink
* For Amazon Web Services Marketplace managed rule groups only, the link to the rule group product page.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ManagedProductDescriptor withProductLink(String productLink) {
setProductLink(productLink);
return this;
}
/**
*
* The display name for the managed rule group. For example, Anonymous IP list
or
* Account takeover prevention
.
*
*
* @param productTitle
* The display name for the managed rule group. For example, Anonymous IP list
or
* Account takeover prevention
.
*/
public void setProductTitle(String productTitle) {
this.productTitle = productTitle;
}
/**
*
* The display name for the managed rule group. For example, Anonymous IP list
or
* Account takeover prevention
.
*
*
* @return The display name for the managed rule group. For example, Anonymous IP list
or
* Account takeover prevention
.
*/
public String getProductTitle() {
return this.productTitle;
}
/**
*
* The display name for the managed rule group. For example, Anonymous IP list
or
* Account takeover prevention
.
*
*
* @param productTitle
* The display name for the managed rule group. For example, Anonymous IP list
or
* Account takeover prevention
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ManagedProductDescriptor withProductTitle(String productTitle) {
setProductTitle(productTitle);
return this;
}
/**
*
* A short description of the managed rule group.
*
*
* @param productDescription
* A short description of the managed rule group.
*/
public void setProductDescription(String productDescription) {
this.productDescription = productDescription;
}
/**
*
* A short description of the managed rule group.
*
*
* @return A short description of the managed rule group.
*/
public String getProductDescription() {
return this.productDescription;
}
/**
*
* A short description of the managed rule group.
*
*
* @param productDescription
* A short description of the managed rule group.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ManagedProductDescriptor withProductDescription(String productDescription) {
setProductDescription(productDescription);
return this;
}
/**
*
* The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS topic that's used to provide
* notification of changes to the managed rule group. You can subscribe to the SNS topic to receive notifications
* when the managed rule group is modified, such as for new versions and for version expiration. For more
* information, see the Amazon Simple Notification
* Service Developer Guide.
*
*
* @param snsTopicArn
* The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS topic that's used to provide
* notification of changes to the managed rule group. You can subscribe to the SNS topic to receive
* notifications when the managed rule group is modified, such as for new versions and for version
* expiration. For more information, see the Amazon Simple Notification Service Developer
* Guide.
*/
public void setSnsTopicArn(String snsTopicArn) {
this.snsTopicArn = snsTopicArn;
}
/**
*
* The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS topic that's used to provide
* notification of changes to the managed rule group. You can subscribe to the SNS topic to receive notifications
* when the managed rule group is modified, such as for new versions and for version expiration. For more
* information, see the Amazon Simple Notification
* Service Developer Guide.
*
*
* @return The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS topic that's used to provide
* notification of changes to the managed rule group. You can subscribe to the SNS topic to receive
* notifications when the managed rule group is modified, such as for new versions and for version
* expiration. For more information, see the Amazon Simple Notification Service
* Developer Guide.
*/
public String getSnsTopicArn() {
return this.snsTopicArn;
}
/**
*
* The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS topic that's used to provide
* notification of changes to the managed rule group. You can subscribe to the SNS topic to receive notifications
* when the managed rule group is modified, such as for new versions and for version expiration. For more
* information, see the Amazon Simple Notification
* Service Developer Guide.
*
*
* @param snsTopicArn
* The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS topic that's used to provide
* notification of changes to the managed rule group. You can subscribe to the SNS topic to receive
* notifications when the managed rule group is modified, such as for new versions and for version
* expiration. For more information, see the Amazon Simple Notification Service Developer
* Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ManagedProductDescriptor withSnsTopicArn(String snsTopicArn) {
setSnsTopicArn(snsTopicArn);
return this;
}
/**
*
* Indicates whether the rule group is versioned.
*
*
* @param isVersioningSupported
* Indicates whether the rule group is versioned.
*/
public void setIsVersioningSupported(Boolean isVersioningSupported) {
this.isVersioningSupported = isVersioningSupported;
}
/**
*
* Indicates whether the rule group is versioned.
*
*
* @return Indicates whether the rule group is versioned.
*/
public Boolean getIsVersioningSupported() {
return this.isVersioningSupported;
}
/**
*
* Indicates whether the rule group is versioned.
*
*
* @param isVersioningSupported
* Indicates whether the rule group is versioned.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ManagedProductDescriptor withIsVersioningSupported(Boolean isVersioningSupported) {
setIsVersioningSupported(isVersioningSupported);
return this;
}
/**
*
* Indicates whether the rule group is versioned.
*
*
* @return Indicates whether the rule group is versioned.
*/
public Boolean isVersioningSupported() {
return this.isVersioningSupported;
}
/**
*
* Indicates whether the rule group provides an advanced set of protections, such as the the Amazon Web Services
* Managed Rules rule groups that are used for WAF intelligent threat mitigation.
*
*
* @param isAdvancedManagedRuleSet
* Indicates whether the rule group provides an advanced set of protections, such as the the Amazon Web
* Services Managed Rules rule groups that are used for WAF intelligent threat mitigation.
*/
public void setIsAdvancedManagedRuleSet(Boolean isAdvancedManagedRuleSet) {
this.isAdvancedManagedRuleSet = isAdvancedManagedRuleSet;
}
/**
*
* Indicates whether the rule group provides an advanced set of protections, such as the the Amazon Web Services
* Managed Rules rule groups that are used for WAF intelligent threat mitigation.
*
*
* @return Indicates whether the rule group provides an advanced set of protections, such as the the Amazon Web
* Services Managed Rules rule groups that are used for WAF intelligent threat mitigation.
*/
public Boolean getIsAdvancedManagedRuleSet() {
return this.isAdvancedManagedRuleSet;
}
/**
*
* Indicates whether the rule group provides an advanced set of protections, such as the the Amazon Web Services
* Managed Rules rule groups that are used for WAF intelligent threat mitigation.
*
*
* @param isAdvancedManagedRuleSet
* Indicates whether the rule group provides an advanced set of protections, such as the the Amazon Web
* Services Managed Rules rule groups that are used for WAF intelligent threat mitigation.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ManagedProductDescriptor withIsAdvancedManagedRuleSet(Boolean isAdvancedManagedRuleSet) {
setIsAdvancedManagedRuleSet(isAdvancedManagedRuleSet);
return this;
}
/**
*
* Indicates whether the rule group provides an advanced set of protections, such as the the Amazon Web Services
* Managed Rules rule groups that are used for WAF intelligent threat mitigation.
*
*
* @return Indicates whether the rule group provides an advanced set of protections, such as the the Amazon Web
* Services Managed Rules rule groups that are used for WAF intelligent threat mitigation.
*/
public Boolean isAdvancedManagedRuleSet() {
return this.isAdvancedManagedRuleSet;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getVendorName() != null)
sb.append("VendorName: ").append(getVendorName()).append(",");
if (getManagedRuleSetName() != null)
sb.append("ManagedRuleSetName: ").append(getManagedRuleSetName()).append(",");
if (getProductId() != null)
sb.append("ProductId: ").append(getProductId()).append(",");
if (getProductLink() != null)
sb.append("ProductLink: ").append(getProductLink()).append(",");
if (getProductTitle() != null)
sb.append("ProductTitle: ").append(getProductTitle()).append(",");
if (getProductDescription() != null)
sb.append("ProductDescription: ").append(getProductDescription()).append(",");
if (getSnsTopicArn() != null)
sb.append("SnsTopicArn: ").append(getSnsTopicArn()).append(",");
if (getIsVersioningSupported() != null)
sb.append("IsVersioningSupported: ").append(getIsVersioningSupported()).append(",");
if (getIsAdvancedManagedRuleSet() != null)
sb.append("IsAdvancedManagedRuleSet: ").append(getIsAdvancedManagedRuleSet());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof ManagedProductDescriptor == false)
return false;
ManagedProductDescriptor other = (ManagedProductDescriptor) obj;
if (other.getVendorName() == null ^ this.getVendorName() == null)
return false;
if (other.getVendorName() != null && other.getVendorName().equals(this.getVendorName()) == false)
return false;
if (other.getManagedRuleSetName() == null ^ this.getManagedRuleSetName() == null)
return false;
if (other.getManagedRuleSetName() != null && other.getManagedRuleSetName().equals(this.getManagedRuleSetName()) == false)
return false;
if (other.getProductId() == null ^ this.getProductId() == null)
return false;
if (other.getProductId() != null && other.getProductId().equals(this.getProductId()) == false)
return false;
if (other.getProductLink() == null ^ this.getProductLink() == null)
return false;
if (other.getProductLink() != null && other.getProductLink().equals(this.getProductLink()) == false)
return false;
if (other.getProductTitle() == null ^ this.getProductTitle() == null)
return false;
if (other.getProductTitle() != null && other.getProductTitle().equals(this.getProductTitle()) == false)
return false;
if (other.getProductDescription() == null ^ this.getProductDescription() == null)
return false;
if (other.getProductDescription() != null && other.getProductDescription().equals(this.getProductDescription()) == false)
return false;
if (other.getSnsTopicArn() == null ^ this.getSnsTopicArn() == null)
return false;
if (other.getSnsTopicArn() != null && other.getSnsTopicArn().equals(this.getSnsTopicArn()) == false)
return false;
if (other.getIsVersioningSupported() == null ^ this.getIsVersioningSupported() == null)
return false;
if (other.getIsVersioningSupported() != null && other.getIsVersioningSupported().equals(this.getIsVersioningSupported()) == false)
return false;
if (other.getIsAdvancedManagedRuleSet() == null ^ this.getIsAdvancedManagedRuleSet() == null)
return false;
if (other.getIsAdvancedManagedRuleSet() != null && other.getIsAdvancedManagedRuleSet().equals(this.getIsAdvancedManagedRuleSet()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getVendorName() == null) ? 0 : getVendorName().hashCode());
hashCode = prime * hashCode + ((getManagedRuleSetName() == null) ? 0 : getManagedRuleSetName().hashCode());
hashCode = prime * hashCode + ((getProductId() == null) ? 0 : getProductId().hashCode());
hashCode = prime * hashCode + ((getProductLink() == null) ? 0 : getProductLink().hashCode());
hashCode = prime * hashCode + ((getProductTitle() == null) ? 0 : getProductTitle().hashCode());
hashCode = prime * hashCode + ((getProductDescription() == null) ? 0 : getProductDescription().hashCode());
hashCode = prime * hashCode + ((getSnsTopicArn() == null) ? 0 : getSnsTopicArn().hashCode());
hashCode = prime * hashCode + ((getIsVersioningSupported() == null) ? 0 : getIsVersioningSupported().hashCode());
hashCode = prime * hashCode + ((getIsAdvancedManagedRuleSet() == null) ? 0 : getIsAdvancedManagedRuleSet().hashCode());
return hashCode;
}
@Override
public ManagedProductDescriptor clone() {
try {
return (ManagedProductDescriptor) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
@com.amazonaws.annotation.SdkInternalApi
@Override
public void marshall(ProtocolMarshaller protocolMarshaller) {
com.amazonaws.services.wafv2.model.transform.ManagedProductDescriptorMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}