The Java type defines return type for Condition property as Map<String, Map<String, Object>>.
The .NET type specifies return type of Condition property as IDictionary<ConditionOperator, IDictionary<ConditionKey, string>>.
Refer IAM JSON policy elements: Condition for IAM policy Condition reference. Per this reference, it is of the format "Condition" : { "{condition-operator}" : { "{condition-key}" : "{condition-value}" }}.
The return type of APIGatewayCustomAuthorizerPolicy.IAMPolicyStatement.Condition is IDictionary<string, IDictionary<string, object>> similar to Java version due to following reasons:
Keep implementation simple to avoid to maintain enum types ConditionOperator and ConditionKey.
So that null Condition property (if not set) is not rendered in IAM Policy statement.
Due to change above, reviewer,
Check the version bump.
Do we need to ensure that customer also updates to latest Amazon.Lambda.Serialization.Json.JsonSerializer package? The events classes do not have any direct reference to this package as expected. We use this package in event tests?
Should we also add test case to ASP.NET tests?
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Issue #, if available: #588
Description of changes: Adds support for
Condition
element inAPIGatewayCustomAuthorizerPolicy.IAMPolicyStatement
.Kindly note the following:
Condition
property asMap<String, Map<String, Object>>
.Condition
property asIDictionary<ConditionOperator, IDictionary<ConditionKey, string>>
.Condition
reference. Per this reference, it is of the format"Condition" : { "{condition-operator}" : { "{condition-key}" : "{condition-value}" }}
.APIGatewayCustomAuthorizerPolicy.IAMPolicyStatement.Condition
isIDictionary<string, IDictionary<string, object>>
similar to Java version due to following reasons:ConditionOperator
andConditionKey
.condition-value
. Hence, it is modeled asobject
type.settings.NullValueHandling = NullValueHandling.Ignore
in Amazon.Lambda.Serialization.Json.JsonSerializer.Condition
property (if not set) is not rendered in IAM Policy statement.Amazon.Lambda.Serialization.Json.JsonSerializer
package? The events classes do not have any direct reference to this package as expected. We use this package in event tests?By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.