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

com.amazonaws.services.cleanrooms.model.AnalysisRuleAggregation Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS Clean Rooms module holds the client classes that are used for communicating with AWS Clean Rooms Service

There is a newer version: 1.12.778
Show newest version
/*
 * 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.cleanrooms.model;

import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;

/**
 * 

* A type of analysis rule that enables query structure and specified queries that produce aggregate statistics. *

* * @see AWS * API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AnalysisRuleAggregation implements Serializable, Cloneable, StructuredPojo { /** *

* The columns that query runners are allowed to use in aggregation queries. *

*/ private java.util.List aggregateColumns; /** *

* Columns in configured table that can be used in join statements and/or as aggregate columns. They can never be * outputted directly. *

*/ private java.util.List joinColumns; /** *

* Control that requires member who runs query to do a join with their configured table and/or other configured * table in query. *

*/ private String joinRequired; /** *

* Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is AND. *

*/ private java.util.List allowedJoinOperators; /** *

* The columns that query runners are allowed to select, group by, or filter by. *

*/ private java.util.List dimensionColumns; /** *

* Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. *

*/ private java.util.List scalarFunctions; /** *

* Columns that must meet a specific threshold value (after an aggregation function is applied to it) for each * output row to be returned. *

*/ private java.util.List outputConstraints; /** *

* An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the * direct query. *

*

* The additionalAnalyses parameter is currently supported for the list analysis rule ( * AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). *

*/ private String additionalAnalyses; /** *

* The columns that query runners are allowed to use in aggregation queries. *

* * @return The columns that query runners are allowed to use in aggregation queries. */ public java.util.List getAggregateColumns() { return aggregateColumns; } /** *

* The columns that query runners are allowed to use in aggregation queries. *

* * @param aggregateColumns * The columns that query runners are allowed to use in aggregation queries. */ public void setAggregateColumns(java.util.Collection aggregateColumns) { if (aggregateColumns == null) { this.aggregateColumns = null; return; } this.aggregateColumns = new java.util.ArrayList(aggregateColumns); } /** *

* The columns that query runners are allowed to use in aggregation queries. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setAggregateColumns(java.util.Collection)} or {@link #withAggregateColumns(java.util.Collection)} if you * want to override the existing values. *

* * @param aggregateColumns * The columns that query runners are allowed to use in aggregation queries. * @return Returns a reference to this object so that method calls can be chained together. */ public AnalysisRuleAggregation withAggregateColumns(AggregateColumn... aggregateColumns) { if (this.aggregateColumns == null) { setAggregateColumns(new java.util.ArrayList(aggregateColumns.length)); } for (AggregateColumn ele : aggregateColumns) { this.aggregateColumns.add(ele); } return this; } /** *

* The columns that query runners are allowed to use in aggregation queries. *

* * @param aggregateColumns * The columns that query runners are allowed to use in aggregation queries. * @return Returns a reference to this object so that method calls can be chained together. */ public AnalysisRuleAggregation withAggregateColumns(java.util.Collection aggregateColumns) { setAggregateColumns(aggregateColumns); return this; } /** *

* Columns in configured table that can be used in join statements and/or as aggregate columns. They can never be * outputted directly. *

* * @return Columns in configured table that can be used in join statements and/or as aggregate columns. They can * never be outputted directly. */ public java.util.List getJoinColumns() { return joinColumns; } /** *

* Columns in configured table that can be used in join statements and/or as aggregate columns. They can never be * outputted directly. *

* * @param joinColumns * Columns in configured table that can be used in join statements and/or as aggregate columns. They can * never be outputted directly. */ public void setJoinColumns(java.util.Collection joinColumns) { if (joinColumns == null) { this.joinColumns = null; return; } this.joinColumns = new java.util.ArrayList(joinColumns); } /** *

* Columns in configured table that can be used in join statements and/or as aggregate columns. They can never be * outputted directly. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setJoinColumns(java.util.Collection)} or {@link #withJoinColumns(java.util.Collection)} if you want to * override the existing values. *

* * @param joinColumns * Columns in configured table that can be used in join statements and/or as aggregate columns. They can * never be outputted directly. * @return Returns a reference to this object so that method calls can be chained together. */ public AnalysisRuleAggregation withJoinColumns(String... joinColumns) { if (this.joinColumns == null) { setJoinColumns(new java.util.ArrayList(joinColumns.length)); } for (String ele : joinColumns) { this.joinColumns.add(ele); } return this; } /** *

* Columns in configured table that can be used in join statements and/or as aggregate columns. They can never be * outputted directly. *

* * @param joinColumns * Columns in configured table that can be used in join statements and/or as aggregate columns. They can * never be outputted directly. * @return Returns a reference to this object so that method calls can be chained together. */ public AnalysisRuleAggregation withJoinColumns(java.util.Collection joinColumns) { setJoinColumns(joinColumns); return this; } /** *

* Control that requires member who runs query to do a join with their configured table and/or other configured * table in query. *

* * @param joinRequired * Control that requires member who runs query to do a join with their configured table and/or other * configured table in query. * @see JoinRequiredOption */ public void setJoinRequired(String joinRequired) { this.joinRequired = joinRequired; } /** *

* Control that requires member who runs query to do a join with their configured table and/or other configured * table in query. *

* * @return Control that requires member who runs query to do a join with their configured table and/or other * configured table in query. * @see JoinRequiredOption */ public String getJoinRequired() { return this.joinRequired; } /** *

* Control that requires member who runs query to do a join with their configured table and/or other configured * table in query. *

* * @param joinRequired * Control that requires member who runs query to do a join with their configured table and/or other * configured table in query. * @return Returns a reference to this object so that method calls can be chained together. * @see JoinRequiredOption */ public AnalysisRuleAggregation withJoinRequired(String joinRequired) { setJoinRequired(joinRequired); return this; } /** *

* Control that requires member who runs query to do a join with their configured table and/or other configured * table in query. *

* * @param joinRequired * Control that requires member who runs query to do a join with their configured table and/or other * configured table in query. * @return Returns a reference to this object so that method calls can be chained together. * @see JoinRequiredOption */ public AnalysisRuleAggregation withJoinRequired(JoinRequiredOption joinRequired) { this.joinRequired = joinRequired.toString(); return this; } /** *

* Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is AND. *

* * @return Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is * AND. * @see JoinOperator */ public java.util.List getAllowedJoinOperators() { return allowedJoinOperators; } /** *

* Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is AND. *

* * @param allowedJoinOperators * Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is * AND. * @see JoinOperator */ public void setAllowedJoinOperators(java.util.Collection allowedJoinOperators) { if (allowedJoinOperators == null) { this.allowedJoinOperators = null; return; } this.allowedJoinOperators = new java.util.ArrayList(allowedJoinOperators); } /** *

* Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is AND. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setAllowedJoinOperators(java.util.Collection)} or {@link #withAllowedJoinOperators(java.util.Collection)} * if you want to override the existing values. *

* * @param allowedJoinOperators * Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is * AND. * @return Returns a reference to this object so that method calls can be chained together. * @see JoinOperator */ public AnalysisRuleAggregation withAllowedJoinOperators(String... allowedJoinOperators) { if (this.allowedJoinOperators == null) { setAllowedJoinOperators(new java.util.ArrayList(allowedJoinOperators.length)); } for (String ele : allowedJoinOperators) { this.allowedJoinOperators.add(ele); } return this; } /** *

* Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is AND. *

* * @param allowedJoinOperators * Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is * AND. * @return Returns a reference to this object so that method calls can be chained together. * @see JoinOperator */ public AnalysisRuleAggregation withAllowedJoinOperators(java.util.Collection allowedJoinOperators) { setAllowedJoinOperators(allowedJoinOperators); return this; } /** *

* Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is AND. *

* * @param allowedJoinOperators * Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is * AND. * @return Returns a reference to this object so that method calls can be chained together. * @see JoinOperator */ public AnalysisRuleAggregation withAllowedJoinOperators(JoinOperator... allowedJoinOperators) { java.util.ArrayList allowedJoinOperatorsCopy = new java.util.ArrayList(allowedJoinOperators.length); for (JoinOperator value : allowedJoinOperators) { allowedJoinOperatorsCopy.add(value.toString()); } if (getAllowedJoinOperators() == null) { setAllowedJoinOperators(allowedJoinOperatorsCopy); } else { getAllowedJoinOperators().addAll(allowedJoinOperatorsCopy); } return this; } /** *

* The columns that query runners are allowed to select, group by, or filter by. *

* * @return The columns that query runners are allowed to select, group by, or filter by. */ public java.util.List getDimensionColumns() { return dimensionColumns; } /** *

* The columns that query runners are allowed to select, group by, or filter by. *

* * @param dimensionColumns * The columns that query runners are allowed to select, group by, or filter by. */ public void setDimensionColumns(java.util.Collection dimensionColumns) { if (dimensionColumns == null) { this.dimensionColumns = null; return; } this.dimensionColumns = new java.util.ArrayList(dimensionColumns); } /** *

* The columns that query runners are allowed to select, group by, or filter by. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setDimensionColumns(java.util.Collection)} or {@link #withDimensionColumns(java.util.Collection)} if you * want to override the existing values. *

* * @param dimensionColumns * The columns that query runners are allowed to select, group by, or filter by. * @return Returns a reference to this object so that method calls can be chained together. */ public AnalysisRuleAggregation withDimensionColumns(String... dimensionColumns) { if (this.dimensionColumns == null) { setDimensionColumns(new java.util.ArrayList(dimensionColumns.length)); } for (String ele : dimensionColumns) { this.dimensionColumns.add(ele); } return this; } /** *

* The columns that query runners are allowed to select, group by, or filter by. *

* * @param dimensionColumns * The columns that query runners are allowed to select, group by, or filter by. * @return Returns a reference to this object so that method calls can be chained together. */ public AnalysisRuleAggregation withDimensionColumns(java.util.Collection dimensionColumns) { setDimensionColumns(dimensionColumns); return this; } /** *

* Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. *

* * @return Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. * @see ScalarFunctions */ public java.util.List getScalarFunctions() { return scalarFunctions; } /** *

* Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. *

* * @param scalarFunctions * Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. * @see ScalarFunctions */ public void setScalarFunctions(java.util.Collection scalarFunctions) { if (scalarFunctions == null) { this.scalarFunctions = null; return; } this.scalarFunctions = new java.util.ArrayList(scalarFunctions); } /** *

* Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setScalarFunctions(java.util.Collection)} or {@link #withScalarFunctions(java.util.Collection)} if you * want to override the existing values. *

* * @param scalarFunctions * Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. * @return Returns a reference to this object so that method calls can be chained together. * @see ScalarFunctions */ public AnalysisRuleAggregation withScalarFunctions(String... scalarFunctions) { if (this.scalarFunctions == null) { setScalarFunctions(new java.util.ArrayList(scalarFunctions.length)); } for (String ele : scalarFunctions) { this.scalarFunctions.add(ele); } return this; } /** *

* Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. *

* * @param scalarFunctions * Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. * @return Returns a reference to this object so that method calls can be chained together. * @see ScalarFunctions */ public AnalysisRuleAggregation withScalarFunctions(java.util.Collection scalarFunctions) { setScalarFunctions(scalarFunctions); return this; } /** *

* Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. *

* * @param scalarFunctions * Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of * metrics. * @return Returns a reference to this object so that method calls can be chained together. * @see ScalarFunctions */ public AnalysisRuleAggregation withScalarFunctions(ScalarFunctions... scalarFunctions) { java.util.ArrayList scalarFunctionsCopy = new java.util.ArrayList(scalarFunctions.length); for (ScalarFunctions value : scalarFunctions) { scalarFunctionsCopy.add(value.toString()); } if (getScalarFunctions() == null) { setScalarFunctions(scalarFunctionsCopy); } else { getScalarFunctions().addAll(scalarFunctionsCopy); } return this; } /** *

* Columns that must meet a specific threshold value (after an aggregation function is applied to it) for each * output row to be returned. *

* * @return Columns that must meet a specific threshold value (after an aggregation function is applied to it) for * each output row to be returned. */ public java.util.List getOutputConstraints() { return outputConstraints; } /** *

* Columns that must meet a specific threshold value (after an aggregation function is applied to it) for each * output row to be returned. *

* * @param outputConstraints * Columns that must meet a specific threshold value (after an aggregation function is applied to it) for * each output row to be returned. */ public void setOutputConstraints(java.util.Collection outputConstraints) { if (outputConstraints == null) { this.outputConstraints = null; return; } this.outputConstraints = new java.util.ArrayList(outputConstraints); } /** *

* Columns that must meet a specific threshold value (after an aggregation function is applied to it) for each * output row to be returned. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setOutputConstraints(java.util.Collection)} or {@link #withOutputConstraints(java.util.Collection)} if * you want to override the existing values. *

* * @param outputConstraints * Columns that must meet a specific threshold value (after an aggregation function is applied to it) for * each output row to be returned. * @return Returns a reference to this object so that method calls can be chained together. */ public AnalysisRuleAggregation withOutputConstraints(AggregationConstraint... outputConstraints) { if (this.outputConstraints == null) { setOutputConstraints(new java.util.ArrayList(outputConstraints.length)); } for (AggregationConstraint ele : outputConstraints) { this.outputConstraints.add(ele); } return this; } /** *

* Columns that must meet a specific threshold value (after an aggregation function is applied to it) for each * output row to be returned. *

* * @param outputConstraints * Columns that must meet a specific threshold value (after an aggregation function is applied to it) for * each output row to be returned. * @return Returns a reference to this object so that method calls can be chained together. */ public AnalysisRuleAggregation withOutputConstraints(java.util.Collection outputConstraints) { setOutputConstraints(outputConstraints); return this; } /** *

* An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the * direct query. *

*

* The additionalAnalyses parameter is currently supported for the list analysis rule ( * AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). *

* * @param additionalAnalyses * An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of * the direct query.

*

* The additionalAnalyses parameter is currently supported for the list analysis rule ( * AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). * @see AdditionalAnalyses */ public void setAdditionalAnalyses(String additionalAnalyses) { this.additionalAnalyses = additionalAnalyses; } /** *

* An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the * direct query. *

*

* The additionalAnalyses parameter is currently supported for the list analysis rule ( * AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). *

* * @return An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of * the direct query.

*

* The additionalAnalyses parameter is currently supported for the list analysis rule ( * AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). * @see AdditionalAnalyses */ public String getAdditionalAnalyses() { return this.additionalAnalyses; } /** *

* An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the * direct query. *

*

* The additionalAnalyses parameter is currently supported for the list analysis rule ( * AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). *

* * @param additionalAnalyses * An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of * the direct query.

*

* The additionalAnalyses parameter is currently supported for the list analysis rule ( * AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). * @return Returns a reference to this object so that method calls can be chained together. * @see AdditionalAnalyses */ public AnalysisRuleAggregation withAdditionalAnalyses(String additionalAnalyses) { setAdditionalAnalyses(additionalAnalyses); return this; } /** *

* An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the * direct query. *

*

* The additionalAnalyses parameter is currently supported for the list analysis rule ( * AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). *

* * @param additionalAnalyses * An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of * the direct query.

*

* The additionalAnalyses parameter is currently supported for the list analysis rule ( * AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). * @return Returns a reference to this object so that method calls can be chained together. * @see AdditionalAnalyses */ public AnalysisRuleAggregation withAdditionalAnalyses(AdditionalAnalyses additionalAnalyses) { this.additionalAnalyses = additionalAnalyses.toString(); 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 (getAggregateColumns() != null) sb.append("AggregateColumns: ").append(getAggregateColumns()).append(","); if (getJoinColumns() != null) sb.append("JoinColumns: ").append(getJoinColumns()).append(","); if (getJoinRequired() != null) sb.append("JoinRequired: ").append(getJoinRequired()).append(","); if (getAllowedJoinOperators() != null) sb.append("AllowedJoinOperators: ").append(getAllowedJoinOperators()).append(","); if (getDimensionColumns() != null) sb.append("DimensionColumns: ").append(getDimensionColumns()).append(","); if (getScalarFunctions() != null) sb.append("ScalarFunctions: ").append(getScalarFunctions()).append(","); if (getOutputConstraints() != null) sb.append("OutputConstraints: ").append(getOutputConstraints()).append(","); if (getAdditionalAnalyses() != null) sb.append("AdditionalAnalyses: ").append(getAdditionalAnalyses()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof AnalysisRuleAggregation == false) return false; AnalysisRuleAggregation other = (AnalysisRuleAggregation) obj; if (other.getAggregateColumns() == null ^ this.getAggregateColumns() == null) return false; if (other.getAggregateColumns() != null && other.getAggregateColumns().equals(this.getAggregateColumns()) == false) return false; if (other.getJoinColumns() == null ^ this.getJoinColumns() == null) return false; if (other.getJoinColumns() != null && other.getJoinColumns().equals(this.getJoinColumns()) == false) return false; if (other.getJoinRequired() == null ^ this.getJoinRequired() == null) return false; if (other.getJoinRequired() != null && other.getJoinRequired().equals(this.getJoinRequired()) == false) return false; if (other.getAllowedJoinOperators() == null ^ this.getAllowedJoinOperators() == null) return false; if (other.getAllowedJoinOperators() != null && other.getAllowedJoinOperators().equals(this.getAllowedJoinOperators()) == false) return false; if (other.getDimensionColumns() == null ^ this.getDimensionColumns() == null) return false; if (other.getDimensionColumns() != null && other.getDimensionColumns().equals(this.getDimensionColumns()) == false) return false; if (other.getScalarFunctions() == null ^ this.getScalarFunctions() == null) return false; if (other.getScalarFunctions() != null && other.getScalarFunctions().equals(this.getScalarFunctions()) == false) return false; if (other.getOutputConstraints() == null ^ this.getOutputConstraints() == null) return false; if (other.getOutputConstraints() != null && other.getOutputConstraints().equals(this.getOutputConstraints()) == false) return false; if (other.getAdditionalAnalyses() == null ^ this.getAdditionalAnalyses() == null) return false; if (other.getAdditionalAnalyses() != null && other.getAdditionalAnalyses().equals(this.getAdditionalAnalyses()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getAggregateColumns() == null) ? 0 : getAggregateColumns().hashCode()); hashCode = prime * hashCode + ((getJoinColumns() == null) ? 0 : getJoinColumns().hashCode()); hashCode = prime * hashCode + ((getJoinRequired() == null) ? 0 : getJoinRequired().hashCode()); hashCode = prime * hashCode + ((getAllowedJoinOperators() == null) ? 0 : getAllowedJoinOperators().hashCode()); hashCode = prime * hashCode + ((getDimensionColumns() == null) ? 0 : getDimensionColumns().hashCode()); hashCode = prime * hashCode + ((getScalarFunctions() == null) ? 0 : getScalarFunctions().hashCode()); hashCode = prime * hashCode + ((getOutputConstraints() == null) ? 0 : getOutputConstraints().hashCode()); hashCode = prime * hashCode + ((getAdditionalAnalyses() == null) ? 0 : getAdditionalAnalyses().hashCode()); return hashCode; } @Override public AnalysisRuleAggregation clone() { try { return (AnalysisRuleAggregation) 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.cleanrooms.model.transform.AnalysisRuleAggregationMarshaller.getInstance().marshall(this, protocolMarshaller); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy