com.amazonaws.services.securityhub.model.Product Maven / Gradle / Ivy
Show all versions of aws-java-sdk-securityhub 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.securityhub.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;
/**
*
* Contains details about a product.
*
*
* @see AWS API
* Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class Product implements Serializable, Cloneable, StructuredPojo {
/**
*
* The ARN assigned to the product.
*
*/
private String productArn;
/**
*
* The name of the product.
*
*/
private String productName;
/**
*
* The name of the company that provides the product.
*
*/
private String companyName;
/**
*
* A description of the product.
*
*/
private String description;
/**
*
* The categories assigned to the product.
*
*/
private java.util.List categories;
/**
*
* The types of integration that the product supports. Available values are the following.
*
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security Hub, but
* does make updates to the findings that it receives from Security Hub.
*
*
*
*/
private java.util.List integrationTypes;
/**
*
* For integrations with Amazon Web Services services, the Amazon Web Services Console URL from which to activate
* the service.
*
*
* For integrations with third-party products, the Amazon Web Services Marketplace URL from which to subscribe to or
* purchase the product.
*
*/
private String marketplaceUrl;
/**
*
* The URL to the service or product documentation about the integration with Security Hub, including how to
* activate the integration.
*
*/
private String activationUrl;
/**
*
* The resource policy associated with the product.
*
*/
private String productSubscriptionResourcePolicy;
/**
*
* The ARN assigned to the product.
*
*
* @param productArn
* The ARN assigned to the product.
*/
public void setProductArn(String productArn) {
this.productArn = productArn;
}
/**
*
* The ARN assigned to the product.
*
*
* @return The ARN assigned to the product.
*/
public String getProductArn() {
return this.productArn;
}
/**
*
* The ARN assigned to the product.
*
*
* @param productArn
* The ARN assigned to the product.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Product withProductArn(String productArn) {
setProductArn(productArn);
return this;
}
/**
*
* The name of the product.
*
*
* @param productName
* The name of the product.
*/
public void setProductName(String productName) {
this.productName = productName;
}
/**
*
* The name of the product.
*
*
* @return The name of the product.
*/
public String getProductName() {
return this.productName;
}
/**
*
* The name of the product.
*
*
* @param productName
* The name of the product.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Product withProductName(String productName) {
setProductName(productName);
return this;
}
/**
*
* The name of the company that provides the product.
*
*
* @param companyName
* The name of the company that provides the product.
*/
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
/**
*
* The name of the company that provides the product.
*
*
* @return The name of the company that provides the product.
*/
public String getCompanyName() {
return this.companyName;
}
/**
*
* The name of the company that provides the product.
*
*
* @param companyName
* The name of the company that provides the product.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Product withCompanyName(String companyName) {
setCompanyName(companyName);
return this;
}
/**
*
* A description of the product.
*
*
* @param description
* A description of the product.
*/
public void setDescription(String description) {
this.description = description;
}
/**
*
* A description of the product.
*
*
* @return A description of the product.
*/
public String getDescription() {
return this.description;
}
/**
*
* A description of the product.
*
*
* @param description
* A description of the product.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Product withDescription(String description) {
setDescription(description);
return this;
}
/**
*
* The categories assigned to the product.
*
*
* @return The categories assigned to the product.
*/
public java.util.List getCategories() {
return categories;
}
/**
*
* The categories assigned to the product.
*
*
* @param categories
* The categories assigned to the product.
*/
public void setCategories(java.util.Collection categories) {
if (categories == null) {
this.categories = null;
return;
}
this.categories = new java.util.ArrayList(categories);
}
/**
*
* The categories assigned to the product.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setCategories(java.util.Collection)} or {@link #withCategories(java.util.Collection)} if you want to
* override the existing values.
*
*
* @param categories
* The categories assigned to the product.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Product withCategories(String... categories) {
if (this.categories == null) {
setCategories(new java.util.ArrayList(categories.length));
}
for (String ele : categories) {
this.categories.add(ele);
}
return this;
}
/**
*
* The categories assigned to the product.
*
*
* @param categories
* The categories assigned to the product.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Product withCategories(java.util.Collection categories) {
setCategories(categories);
return this;
}
/**
*
* The types of integration that the product supports. Available values are the following.
*
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security Hub, but
* does make updates to the findings that it receives from Security Hub.
*
*
*
*
* @return The types of integration that the product supports. Available values are the following.
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security
* Hub, but does make updates to the findings that it receives from Security Hub.
*
*
* @see IntegrationType
*/
public java.util.List getIntegrationTypes() {
return integrationTypes;
}
/**
*
* The types of integration that the product supports. Available values are the following.
*
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security Hub, but
* does make updates to the findings that it receives from Security Hub.
*
*
*
*
* @param integrationTypes
* The types of integration that the product supports. Available values are the following.
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security Hub,
* but does make updates to the findings that it receives from Security Hub.
*
*
* @see IntegrationType
*/
public void setIntegrationTypes(java.util.Collection integrationTypes) {
if (integrationTypes == null) {
this.integrationTypes = null;
return;
}
this.integrationTypes = new java.util.ArrayList(integrationTypes);
}
/**
*
* The types of integration that the product supports. Available values are the following.
*
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security Hub, but
* does make updates to the findings that it receives from Security Hub.
*
*
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setIntegrationTypes(java.util.Collection)} or {@link #withIntegrationTypes(java.util.Collection)} if you
* want to override the existing values.
*
*
* @param integrationTypes
* The types of integration that the product supports. Available values are the following.
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security Hub,
* but does make updates to the findings that it receives from Security Hub.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see IntegrationType
*/
public Product withIntegrationTypes(String... integrationTypes) {
if (this.integrationTypes == null) {
setIntegrationTypes(new java.util.ArrayList(integrationTypes.length));
}
for (String ele : integrationTypes) {
this.integrationTypes.add(ele);
}
return this;
}
/**
*
* The types of integration that the product supports. Available values are the following.
*
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security Hub, but
* does make updates to the findings that it receives from Security Hub.
*
*
*
*
* @param integrationTypes
* The types of integration that the product supports. Available values are the following.
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security Hub,
* but does make updates to the findings that it receives from Security Hub.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see IntegrationType
*/
public Product withIntegrationTypes(java.util.Collection integrationTypes) {
setIntegrationTypes(integrationTypes);
return this;
}
/**
*
* The types of integration that the product supports. Available values are the following.
*
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security Hub, but
* does make updates to the findings that it receives from Security Hub.
*
*
*
*
* @param integrationTypes
* The types of integration that the product supports. Available values are the following.
*
* -
*
* SEND_FINDINGS_TO_SECURITY_HUB
- The integration sends findings to Security Hub.
*
*
* -
*
* RECEIVE_FINDINGS_FROM_SECURITY_HUB
- The integration receives findings from Security Hub.
*
*
* -
*
* UPDATE_FINDINGS_IN_SECURITY_HUB
- The integration does not send new findings to Security Hub,
* but does make updates to the findings that it receives from Security Hub.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see IntegrationType
*/
public Product withIntegrationTypes(IntegrationType... integrationTypes) {
java.util.ArrayList integrationTypesCopy = new java.util.ArrayList(integrationTypes.length);
for (IntegrationType value : integrationTypes) {
integrationTypesCopy.add(value.toString());
}
if (getIntegrationTypes() == null) {
setIntegrationTypes(integrationTypesCopy);
} else {
getIntegrationTypes().addAll(integrationTypesCopy);
}
return this;
}
/**
*
* For integrations with Amazon Web Services services, the Amazon Web Services Console URL from which to activate
* the service.
*
*
* For integrations with third-party products, the Amazon Web Services Marketplace URL from which to subscribe to or
* purchase the product.
*
*
* @param marketplaceUrl
* For integrations with Amazon Web Services services, the Amazon Web Services Console URL from which to
* activate the service.
*
* For integrations with third-party products, the Amazon Web Services Marketplace URL from which to
* subscribe to or purchase the product.
*/
public void setMarketplaceUrl(String marketplaceUrl) {
this.marketplaceUrl = marketplaceUrl;
}
/**
*
* For integrations with Amazon Web Services services, the Amazon Web Services Console URL from which to activate
* the service.
*
*
* For integrations with third-party products, the Amazon Web Services Marketplace URL from which to subscribe to or
* purchase the product.
*
*
* @return For integrations with Amazon Web Services services, the Amazon Web Services Console URL from which to
* activate the service.
*
* For integrations with third-party products, the Amazon Web Services Marketplace URL from which to
* subscribe to or purchase the product.
*/
public String getMarketplaceUrl() {
return this.marketplaceUrl;
}
/**
*
* For integrations with Amazon Web Services services, the Amazon Web Services Console URL from which to activate
* the service.
*
*
* For integrations with third-party products, the Amazon Web Services Marketplace URL from which to subscribe to or
* purchase the product.
*
*
* @param marketplaceUrl
* For integrations with Amazon Web Services services, the Amazon Web Services Console URL from which to
* activate the service.
*
* For integrations with third-party products, the Amazon Web Services Marketplace URL from which to
* subscribe to or purchase the product.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Product withMarketplaceUrl(String marketplaceUrl) {
setMarketplaceUrl(marketplaceUrl);
return this;
}
/**
*
* The URL to the service or product documentation about the integration with Security Hub, including how to
* activate the integration.
*
*
* @param activationUrl
* The URL to the service or product documentation about the integration with Security Hub, including how to
* activate the integration.
*/
public void setActivationUrl(String activationUrl) {
this.activationUrl = activationUrl;
}
/**
*
* The URL to the service or product documentation about the integration with Security Hub, including how to
* activate the integration.
*
*
* @return The URL to the service or product documentation about the integration with Security Hub, including how to
* activate the integration.
*/
public String getActivationUrl() {
return this.activationUrl;
}
/**
*
* The URL to the service or product documentation about the integration with Security Hub, including how to
* activate the integration.
*
*
* @param activationUrl
* The URL to the service or product documentation about the integration with Security Hub, including how to
* activate the integration.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Product withActivationUrl(String activationUrl) {
setActivationUrl(activationUrl);
return this;
}
/**
*
* The resource policy associated with the product.
*
*
* @param productSubscriptionResourcePolicy
* The resource policy associated with the product.
*/
public void setProductSubscriptionResourcePolicy(String productSubscriptionResourcePolicy) {
this.productSubscriptionResourcePolicy = productSubscriptionResourcePolicy;
}
/**
*
* The resource policy associated with the product.
*
*
* @return The resource policy associated with the product.
*/
public String getProductSubscriptionResourcePolicy() {
return this.productSubscriptionResourcePolicy;
}
/**
*
* The resource policy associated with the product.
*
*
* @param productSubscriptionResourcePolicy
* The resource policy associated with the product.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Product withProductSubscriptionResourcePolicy(String productSubscriptionResourcePolicy) {
setProductSubscriptionResourcePolicy(productSubscriptionResourcePolicy);
return this;
}
/**
* 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 (getProductArn() != null)
sb.append("ProductArn: ").append(getProductArn()).append(",");
if (getProductName() != null)
sb.append("ProductName: ").append(getProductName()).append(",");
if (getCompanyName() != null)
sb.append("CompanyName: ").append(getCompanyName()).append(",");
if (getDescription() != null)
sb.append("Description: ").append(getDescription()).append(",");
if (getCategories() != null)
sb.append("Categories: ").append(getCategories()).append(",");
if (getIntegrationTypes() != null)
sb.append("IntegrationTypes: ").append(getIntegrationTypes()).append(",");
if (getMarketplaceUrl() != null)
sb.append("MarketplaceUrl: ").append(getMarketplaceUrl()).append(",");
if (getActivationUrl() != null)
sb.append("ActivationUrl: ").append(getActivationUrl()).append(",");
if (getProductSubscriptionResourcePolicy() != null)
sb.append("ProductSubscriptionResourcePolicy: ").append(getProductSubscriptionResourcePolicy());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof Product == false)
return false;
Product other = (Product) obj;
if (other.getProductArn() == null ^ this.getProductArn() == null)
return false;
if (other.getProductArn() != null && other.getProductArn().equals(this.getProductArn()) == false)
return false;
if (other.getProductName() == null ^ this.getProductName() == null)
return false;
if (other.getProductName() != null && other.getProductName().equals(this.getProductName()) == false)
return false;
if (other.getCompanyName() == null ^ this.getCompanyName() == null)
return false;
if (other.getCompanyName() != null && other.getCompanyName().equals(this.getCompanyName()) == false)
return false;
if (other.getDescription() == null ^ this.getDescription() == null)
return false;
if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false)
return false;
if (other.getCategories() == null ^ this.getCategories() == null)
return false;
if (other.getCategories() != null && other.getCategories().equals(this.getCategories()) == false)
return false;
if (other.getIntegrationTypes() == null ^ this.getIntegrationTypes() == null)
return false;
if (other.getIntegrationTypes() != null && other.getIntegrationTypes().equals(this.getIntegrationTypes()) == false)
return false;
if (other.getMarketplaceUrl() == null ^ this.getMarketplaceUrl() == null)
return false;
if (other.getMarketplaceUrl() != null && other.getMarketplaceUrl().equals(this.getMarketplaceUrl()) == false)
return false;
if (other.getActivationUrl() == null ^ this.getActivationUrl() == null)
return false;
if (other.getActivationUrl() != null && other.getActivationUrl().equals(this.getActivationUrl()) == false)
return false;
if (other.getProductSubscriptionResourcePolicy() == null ^ this.getProductSubscriptionResourcePolicy() == null)
return false;
if (other.getProductSubscriptionResourcePolicy() != null
&& other.getProductSubscriptionResourcePolicy().equals(this.getProductSubscriptionResourcePolicy()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getProductArn() == null) ? 0 : getProductArn().hashCode());
hashCode = prime * hashCode + ((getProductName() == null) ? 0 : getProductName().hashCode());
hashCode = prime * hashCode + ((getCompanyName() == null) ? 0 : getCompanyName().hashCode());
hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode());
hashCode = prime * hashCode + ((getCategories() == null) ? 0 : getCategories().hashCode());
hashCode = prime * hashCode + ((getIntegrationTypes() == null) ? 0 : getIntegrationTypes().hashCode());
hashCode = prime * hashCode + ((getMarketplaceUrl() == null) ? 0 : getMarketplaceUrl().hashCode());
hashCode = prime * hashCode + ((getActivationUrl() == null) ? 0 : getActivationUrl().hashCode());
hashCode = prime * hashCode + ((getProductSubscriptionResourcePolicy() == null) ? 0 : getProductSubscriptionResourcePolicy().hashCode());
return hashCode;
}
@Override
public Product clone() {
try {
return (Product) 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.securityhub.model.transform.ProductMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}