software.amazon.awssdk.policybuilder.iam.IamConditionOperator Maven / Gradle / Ivy
/*
* Copyright 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 software.amazon.awssdk.policybuilder.iam;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.policybuilder.iam.internal.DefaultIamConditionOperator;
/**
* The {@code IamConditionOperator} specifies the operator that should be applied to compare the {@link IamConditionKey} to an
* expected value in an {@link IamCondition}.
*
* @see IamCondition
* @see Condition
* user guide
*/
@SdkPublicApi
@ThreadSafe
public interface IamConditionOperator extends IamValue {
/**
* A string comparison of the {@link IamCondition#key()} and {@link IamCondition#value()}.
*
* @see
*
* String conditions
*/
IamConditionOperator STRING_EQUALS = create("StringEquals");
/**
* A negated string comparison of the {@link IamCondition#key()} and {@link IamCondition#value()}.
*
* @see
*
* String conditions
*/
IamConditionOperator STRING_NOT_EQUALS = create("StringNotEquals");
/**
* A string comparison, ignoring casing, of the {@link IamCondition#key()} and {@link IamCondition#value()}.
*
* @see
*
* String conditions
*/
IamConditionOperator STRING_EQUALS_IGNORE_CASE = create("StringEqualsIgnoreCase");
/**
* A negated string comparison, ignoring casing, of the {@link IamCondition#key()} and {@link IamCondition#value()}.
*
* @see
*
* String conditions
*/
IamConditionOperator STRING_NOT_EQUALS_IGNORE_CASE = create("StringNotEqualsIgnoreCase");
/**
* A case-sensitive pattern match between the {@link IamCondition#key()} and {@link IamCondition#value()}.
*
* @see
*
* String conditions
*/
IamConditionOperator STRING_LIKE = create("StringLike");
/**
* A negated case-sensitive pattern match between the {@link IamCondition#key()} and {@link IamCondition#value()}.
*
* @see
*
* String conditions
*/
IamConditionOperator STRING_NOT_LIKE = create("StringNotLike");
/**
* A numeric comparison of the {@link IamCondition#key()} and {@link IamCondition#value()}.
*
* @see
*
* Numeric conditions
*/
IamConditionOperator NUMERIC_EQUALS = create("NumericEquals");
/**
* A negated numeric comparison of the {@link IamCondition#key()} and {@link IamCondition#value()}.
*
* @see
*
* Numeric conditions
*/
IamConditionOperator NUMERIC_NOT_EQUALS = create("NumericNotEquals");
/**
* A numeric comparison of whether the {@link IamCondition#key()} is "less than" the {@link IamCondition#value()}.
*
* @see
*
* Numeric conditions
*/
IamConditionOperator NUMERIC_LESS_THAN = create("NumericLessThan");
/**
* A numeric comparison of whether the {@link IamCondition#key()} is "less than or equal to" the {@link IamCondition#value()}.
*
* @see
*
* Numeric conditions
*/
IamConditionOperator NUMERIC_LESS_THAN_EQUALS = create("NumericLessThanEquals");
/**
* A numeric comparison of whether the {@link IamCondition#key()} is "greater than" the {@link IamCondition#value()}.
*
* @see
*
* Numeric conditions
*/
IamConditionOperator NUMERIC_GREATER_THAN = create("NumericGreaterThan");
/**
* A numeric comparison of whether the {@link IamCondition#key()} is "greater than or equal to" the
* {@link IamCondition#value()}.
*
* @see
*
* Numeric conditions
*/
IamConditionOperator NUMERIC_GREATER_THAN_EQUALS = create("NumericGreaterThanEquals");
/**
* A date comparison of the {@link IamCondition#key()} and {@link IamCondition#value()}.
*
* @see
*
* Date conditions
*/
IamConditionOperator DATE_EQUALS = create("DateEquals");
/**
* A negated date comparison of the {@link IamCondition#key()} and {@link IamCondition#value()}.
*
* @see
*
* Date conditions
*/
IamConditionOperator DATE_NOT_EQUALS = create("DateNotEquals");
/**
* A date comparison of whether the {@link IamCondition#key()} "is earlier than" the {@link IamCondition#value()}.
*
* @see
*
* Date conditions
*/
IamConditionOperator DATE_LESS_THAN = create("DateLessThan");
/**
* A date comparison of whether the {@link IamCondition#key()} "is earlier than or the same date as" the
* {@link IamCondition#value()}.
*
* @see
*
* Date conditions
*/
IamConditionOperator DATE_LESS_THAN_EQUALS = create("DateLessThanEquals");
/**
* A date comparison of whether the {@link IamCondition#key()} "is later than" the {@link IamCondition#value()}.
*
* @see
*
* Date conditions
*/
IamConditionOperator DATE_GREATER_THAN = create("DateGreaterThan");
/**
* A date comparison of whether the {@link IamCondition#key()} "is later than or the same date as" the
* {@link IamCondition#value()}.
*
* @see
*
* Date conditions
*/
IamConditionOperator DATE_GREATER_THAN_EQUALS = create("DateGreaterThanEquals");
/**
* A boolean comparison of the {@link IamCondition#key()} and the {@link IamCondition#value()}.
*
* @see
*
* Boolean conditions
*/
IamConditionOperator BOOL = create("Bool");
/**
* A binary comparison of the {@link IamCondition#key()} and the {@link IamCondition#value()}.
*
* @see
*
* Binary conditions
*/
IamConditionOperator BINARY_EQUALS = create("BinaryEquals");
/**
* An IP address comparison of the {@link IamCondition#key()} and the {@link IamCondition#value()}.
*
* @see
*
* IP Address conditions
*/
IamConditionOperator IP_ADDRESS = create("IpAddress");
/**
* A negated IP address comparison of the {@link IamCondition#key()} and the {@link IamCondition#value()}.
*
* @see
*
* IP Address conditions
*/
IamConditionOperator NOT_IP_ADDRESS = create("NotIpAddress");
/**
* An Amazon Resource Name (ARN) comparison of the {@link IamCondition#key()} and the {@link IamCondition#value()}.
*
* @see
*
* ARN conditions
*/
IamConditionOperator ARN_EQUALS = create("ArnEquals");
/**
* A negated Amazon Resource Name (ARN) comparison of the {@link IamCondition#key()} and the {@link IamCondition#value()}.
*
* @see
*
* ARN conditions
*/
IamConditionOperator ARN_NOT_EQUALS = create("ArnNotEquals");
/**
* A pattern match of the Amazon Resource Names (ARNs) in the {@link IamCondition#key()} and the {@link IamCondition#value()}.
*
* @see
*
* ARN conditions
*/
IamConditionOperator ARN_LIKE = create("ArnLike");
/**
* A negated pattern match of the Amazon Resource Names (ARNs) in the {@link IamCondition#key()} and the
* {@link IamCondition#value()}.
*
* @see
*
* ARN conditions
*/
IamConditionOperator ARN_NOT_LIKE = create("ArnNotLike");
/**
* A check to determine whether the {@link IamCondition#key()} is present (use "false" in the {@link IamCondition#value()})
* or not present (use "true" in the {@link IamCondition#value()}).
*
* @see
*
* ARN conditions
*/
IamConditionOperator NULL = create("Null");
/**
* Create a new {@link IamConditionOperator} with the provided string added as a prefix.
*
* This is useful when adding
* the
* "ForAllValues:" or "ForAnyValues:" prefixes to an operator.
*/
IamConditionOperator addPrefix(String prefix);
/**
* Create a new {@link IamConditionOperator} with the provided string added as a suffix.
*
* This is useful when adding
*
* the "IfExists" suffix to an operator.
*/
IamConditionOperator addSuffix(String suffix);
/**
* Create a new {@code IamConditionOperator} element with the provided {@link #value()}.
*/
static IamConditionOperator create(String value) {
return new DefaultIamConditionOperator(value);
}
}