Skip to content

Commit

Permalink
Address CR Feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
kstich committed Jun 27, 2023
1 parent e28f64d commit 2386d15
Show file tree
Hide file tree
Showing 84 changed files with 329 additions and 232 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.aws.rulesengine.language.functions;
package software.amazon.smithy.rulesengine.aws.language.functions;

import java.util.Arrays;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.aws.rulesengine.language.functions;
package software.amazon.smithy.rulesengine.aws.language.functions;

import java.util.ArrayList;
import java.util.Collections;
Expand All @@ -14,10 +14,10 @@
import java.util.Map;
import java.util.ServiceLoader;
import java.util.regex.Pattern;
import software.amazon.smithy.aws.rulesengine.language.functions.partition.Partition;
import software.amazon.smithy.aws.rulesengine.language.functions.partition.PartitionDataProvider;
import software.amazon.smithy.aws.rulesengine.language.functions.partition.PartitionOutputs;
import software.amazon.smithy.aws.rulesengine.language.functions.partition.Partitions;
import software.amazon.smithy.rulesengine.aws.language.functions.partition.Partition;
import software.amazon.smithy.rulesengine.aws.language.functions.partition.PartitionDataProvider;
import software.amazon.smithy.rulesengine.aws.language.functions.partition.PartitionOutputs;
import software.amazon.smithy.rulesengine.aws.language.functions.partition.Partitions;
import software.amazon.smithy.rulesengine.language.evaluation.type.Type;
import software.amazon.smithy.rulesengine.language.evaluation.value.Value;
import software.amazon.smithy.rulesengine.language.syntax.Identifier;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.rulesengine.aws.language.functions;

import java.util.List;
import software.amazon.smithy.rulesengine.language.Endpoint;
import software.amazon.smithy.rulesengine.language.syntax.expressions.literal.Literal;
import software.amazon.smithy.utils.MapUtils;

public final class EndpointAuthUtils {
private static final String SIGV_4 = "sigv4";
private static final String SIG_V4A = "sigv4a";
private static final String SIGNING_NAME = "signingName";
private static final String SIGNING_REGION = "signingRegion";
private static final String SIGNING_REGION_SET = "signingRegionSet";

private EndpointAuthUtils() {}

public static Endpoint.Builder sigv4(Endpoint.Builder builder, Literal signingRegion, Literal signingService) {
return builder.addAuthScheme(SIGV_4, MapUtils.of(SIGNING_REGION, signingRegion, SIGNING_NAME, signingService));
}

public static Endpoint.Builder sigv4a(
Endpoint.Builder builder,
List<Literal> signingRegionSet,
Literal signingService
) {
return builder.addAuthScheme(SIG_V4A, MapUtils.of(SIGNING_REGION_SET, Literal.tupleLiteral(signingRegionSet),
SIGNING_NAME, signingService));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.aws.rulesengine.language.functions;
package software.amazon.smithy.rulesengine.aws.language.functions;

import java.util.Arrays;
import java.util.List;
Expand All @@ -19,11 +19,11 @@
* An AWS rule-set function for determining whether a given string can be promoted to an S3 virtual bucket host label.
*/
@SmithyUnstableApi
public final class AwsIsVirtualHostableS3Bucket extends LibraryFunction {
public final class IsVirtualHostableS3Bucket extends LibraryFunction {
public static final String ID = "aws.isVirtualHostableS3Bucket";
private static final Definition DEFINITION = new Definition();

private AwsIsVirtualHostableS3Bucket(FunctionNode functionNode) {
private IsVirtualHostableS3Bucket(FunctionNode functionNode) {
super(DEFINITION, functionNode);
}

Expand All @@ -33,7 +33,7 @@ public <T> T accept(ExpressionVisitor<T> visitor) {
}

/**
* A {@link FunctionDefinition} for the {@link AwsIsVirtualHostableS3Bucket} function.
* A {@link FunctionDefinition} for the {@link IsVirtualHostableS3Bucket} function.
*/
public static final class Definition implements FunctionDefinition {
@Override
Expand Down Expand Up @@ -67,8 +67,8 @@ public Value evaluate(List<Value> arguments) {
}

@Override
public AwsIsVirtualHostableS3Bucket createFunction(FunctionNode functionNode) {
return new AwsIsVirtualHostableS3Bucket(functionNode);
public IsVirtualHostableS3Bucket createFunction(FunctionNode functionNode) {
return new IsVirtualHostableS3Bucket(functionNode);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.aws.rulesengine.language.functions;
package software.amazon.smithy.rulesengine.aws.language.functions;

import java.util.ArrayList;
import java.util.Collections;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.aws.rulesengine.language.functions.partition;
package software.amazon.smithy.rulesengine.aws.language.functions.partition;

import java.io.InputStream;
import software.amazon.smithy.model.node.Node;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.aws.rulesengine.language.functions.partition;
package software.amazon.smithy.rulesengine.aws.language.functions.partition;

import java.util.List;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.aws.rulesengine.language.functions.partition;
package software.amazon.smithy.rulesengine.aws.language.functions.partition;

import software.amazon.smithy.utils.SmithyUnstableApi;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.aws.rulesengine.language.functions.partition;
package software.amazon.smithy.rulesengine.aws.language.functions.partition;

import java.util.List;
import java.util.Objects;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.aws.rulesengine.language.functions.partition;
package software.amazon.smithy.rulesengine.aws.language.functions.partition;

import java.util.List;
import java.util.Objects;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/

package software.amazon.smithy.aws.rulesengine.language.functions.partition;
package software.amazon.smithy.rulesengine.aws.language.functions.partition;

import software.amazon.smithy.model.FromSourceLocation;
import software.amazon.smithy.model.SourceLocation;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
software.amazon.smithy.rulesengine.aws.language.functions.partition.DefaultPartitionDataProvider
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
software.amazon.smithy.aws.rulesengine.language.functions.AwsIsVirtualHostableS3Bucket$Definition
software.amazon.smithy.aws.rulesengine.language.functions.AwsPartition$Definition
software.amazon.smithy.aws.rulesengine.language.functions.ParseArn$Definition
software.amazon.smithy.rulesengine.aws.language.functions.IsVirtualHostableS3Bucket$Definition
software.amazon.smithy.rulesengine.aws.language.functions.AwsPartition$Definition
software.amazon.smithy.rulesengine.aws.language.functions.ParseArn$Definition
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package software.amazon.smithy.aws.rulesengine.language.functions;
package software.amazon.smithy.rulesengine.aws.language.functions;

import static org.junit.jupiter.api.Assertions.assertEquals;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package software.amazon.smithy.aws.rulesengine.language.functions;
package software.amazon.smithy.rulesengine.aws.language.functions;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package software.amazon.smithy.aws.rulesengine.language.functions;
package software.amazon.smithy.rulesengine.aws.language.functions;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package software.amazon.smithy.aws.rulesengine.language.functions;
package software.amazon.smithy.rulesengine.aws.language.functions;

import java.util.concurrent.Callable;
import java.util.stream.Stream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package software.amazon.smithy.aws.rulesengine.language.functions.partition;
package software.amazon.smithy.rulesengine.aws.language.functions.partition;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#endpointRuleSet | UnstableTrait
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#endpointTests | UnstableTrait
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#clientContextParams | UnstableTrait
[DANGER] example#FizzBuzz: Parameter 'useDualStackEndpoint' is never used in test cases | RuleSetParameter.Unused
[DANGER] example#FizzBuzz: Parameter `useDualStackEndpoint` is never used in an `EndpointTests` test case | RuleSetParameter.TestCase.Unused
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#endpointRuleSet | UnstableTrait
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#endpointTests | UnstableTrait
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#clientContextParams | UnstableTrait
[ERROR] example#FizzBuzz: Test parameter 'notDefined' is not defined in ruleset | RuleSetParameter.Undefined
[ERROR] example#FizzBuzz: Test parameter `notDefined` is not defined in ruleset | RuleSetParameter.TestCase.Undefined
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,8 @@ use smithy.rules#endpointTests
"documentation": "basic case of endpointId",
"params": {
"region": "us-east-1",
"endpointId": "myendpoint"
"endpointId": "myendpoint",
"useDualStackEndpoint": false
},
"expect": {
"endpoint": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#endpointRuleSet | UnstableTrait
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#endpointTests | UnstableTrait
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#clientContextParams | UnstableTrait
[ERROR] example#FizzBuzz: Type mismatch for parameter 'useFIPSEndpoint', 'Boolean' expected | RuleSetParameter.TypeMismatch
[ERROR] example#FizzBuzz: Type mismatch for parameter `useFIPSEndpoint`, `Boolean` expected | RuleSetParameter.TestCase.TypeMismatch
[ERROR] example#FizzBuzz: Expected bool but was: true | RuleSetTestCase
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,8 @@ use smithy.rules#endpointTests
"documentation": "basic case of endpointId",
"params": {
"region": "us-east-1",
"endpointId": "myendpoint"
"endpointId": "myendpoint",
"useDualStackEndpoint": false
},
"expect": {
"endpoint": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#endpointRuleSet | UnstableTrait
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#endpointTests | UnstableTrait
[WARNING] example#FizzBuzz: This shape applies a trait that is unstable: smithy.rules#clientContextParams | UnstableTrait
[ERROR] example#FizzBuzz: Required parameter 'region' is missing in at least one test case | RuleSetParameter.RequiredMissing
[ERROR] example#FizzBuzz: Required parameter `region` is missing in at least one test case | RuleSetParameter.TestCase.RequiredMissing
[ERROR] example#FizzBuzz: Expected string but was: <empty> | RuleSetTestCase
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,8 @@ use smithy.rules#endpointTests
"documentation": "basic case of endpointId",
"params": {
"region": "us-east-1",
"endpointId": "myendpoint"
"endpointId": "myendpoint",
"useDualStackEndpoint": false
},
"expect": {
"endpoint": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,8 @@ use smithy.rules#endpointTests
"documentation": "basic case of endpointId",
"params": {
"region": "us-east-1",
"endpointId": "myendpoint"
"endpointId": "myendpoint",
"useDualStackEndpoint": false
},
"expect": {
"endpoint": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
// while typechecking "{bucketArn#accountId}.{bucketArn#resourceId[2]}.{bucketArn#region}"
// while typechecking the template `"{bucketArn#accountId}.{bucketArn#resourceId[2]}.{bucketArn#region}"`
// while checking {bucketArn#resourceId[2]}
// Expected string but found OptionalType<StringType>. hint: use `assign` in a condition or `isSet` to prove that this value is non-null
// Expected string but found OptionalType[StringType]. hint: use `assign` in a condition or `isSet` to prove that this value is non-null
{
"version": "1.2",
"parameters": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
// while typechecking "https://{bucketArn#resourceId[1]}-{bucketArn#accountId}.{bucketArn#region}.{partitionResult#dnsSuffix}"
// while typechecking the template `"https://{bucketArn#resourceId[1]}-{bucketArn#accountId}.{bucketArn#region}.{partitionResult#dnsSuffix}"`
// while checking {bucketArn#resourceId[1]}
// Expected string but found OptionalType<StringType>. hint: use `assign` in a condition or `isSet` to prove that this value is non-null
// Expected string but found OptionalType[StringType]. hint: use `assign` in a condition or `isSet` to prove that this value is non-null
{
"version": "1.2",
"parameters": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import software.amazon.smithy.rulesengine.language.syntax.expressions.Expression;
import software.amazon.smithy.rulesengine.language.syntax.expressions.literal.Literal;
import software.amazon.smithy.utils.BuilderRef;
import software.amazon.smithy.utils.MapUtils;
import software.amazon.smithy.utils.SmithyBuilder;
import software.amazon.smithy.utils.SmithyUnstableApi;
import software.amazon.smithy.utils.StringUtils;
Expand All @@ -43,9 +42,6 @@ public final class Endpoint implements FromSourceLocation, ToNode, ToSmithyBuild
private static final String URL = "url";
private static final String PROPERTIES = "properties";
private static final String HEADERS = "headers";
private static final String SIGV_4 = "sigv4";
private static final String SIG_V4A = "sigv4a";
private static final String SIGNING_REGION = "signingRegion";

private final Map<String, List<Expression>> headers;
private final Map<Identifier, Literal> properties;
Expand Down Expand Up @@ -239,9 +235,6 @@ public Type typeCheck(Scope<Type> scope) {
* Builder for {@link Endpoint}.
*/
public static class Builder extends RulesComponentBuilder<Builder, Endpoint> {
private static final String SIGNING_NAME = "signingName";
private static final String SIGNING_REGION_SET = "signingRegionSet";

private final BuilderRef<Map<String, List<Expression>>> headers = BuilderRef.forOrderedMap();
private final BuilderRef<Map<Identifier, Literal>> properties = BuilderRef.forOrderedMap();
private final BuilderRef<Map<Identifier, Map<Identifier, Literal>>> authSchemes = BuilderRef.forOrderedMap();
Expand Down Expand Up @@ -286,15 +279,6 @@ public Builder addAuthScheme(String scheme, Map<String, Literal> parameters) {
return addAuthScheme(Identifier.of(scheme), transformedParameters);
}

public Builder sigv4(Literal signingRegion, Literal signingService) {
return addAuthScheme(SIGV_4, MapUtils.of(SIGNING_REGION, signingRegion, SIGNING_NAME, signingService));
}

public Builder sigv4a(List<Literal> signingRegionSet, Literal signingService) {
return addAuthScheme(SIG_V4A, MapUtils.of(SIGNING_REGION_SET, Literal.tupleLiteral(signingRegionSet),
SIGNING_NAME, signingService));
}

public Builder headers(Map<String, List<Expression>> headers) {
this.headers.clear();
this.headers.get().putAll(headers);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,6 @@ public Stream<R> visitEndpoint(Endpoint endpoint) {
* @return a stream of values.
*/
public Stream<R> visitConditions(List<Condition> conditions) {
return conditions.stream().flatMap(condition -> condition.getFn().accept(this));
return conditions.stream().flatMap(condition -> condition.getFunction().accept(this));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public Value evaluateRuleSet(EndpointRuleSet ruleset, Map<Identifier, Value> par
* @return the value returned by the condition.
*/
public Value evaluateCondition(Condition condition) {
Value value = condition.getFn().accept(this);
Value value = condition.getFunction().accept(this);
if (!value.isEmpty()) {
condition.getResult().ifPresent(res -> scope.insert(res, value));
}
Expand Down
Loading

0 comments on commit 2386d15

Please sign in to comment.