CLOUDDIRECTORY

AddFacetToObject

valid {
    input.Body.SchemaFacet.SchemaArn == STRING
    input.Body.SchemaFacet.FacetName == STRING
    input.Body.ObjectAttributeList[_].Key.SchemaArn == STRING
    input.Body.ObjectAttributeList[_].Key.FacetName == STRING
    input.Body.ObjectAttributeList[_].Key.Name == STRING
    input.Body.ObjectAttributeList[_].Value.StringValue == STRING
    input.Body.ObjectAttributeList[_].Value.BinaryValue == BLOB
    input.Body.ObjectAttributeList[_].Value.BooleanValue == BOOLEAN
    input.Body.ObjectAttributeList[_].Value.NumberValue == STRING
    input.Body.ObjectAttributeList[_].Value.DatetimeValue == TIMESTAMP
    input.Body.ObjectReference.Selector == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ApplySchema

valid {
    input.Body.PublishedSchemaArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AttachObject

valid {
    input.Body.ParentReference.Selector == STRING
    input.Body.ChildReference.Selector == STRING
    input.Body.LinkName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AttachPolicy

valid {
    input.Body.PolicyReference.Selector == STRING
    input.Body.ObjectReference.Selector == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AttachToIndex

valid {
    input.Body.IndexReference.Selector == STRING
    input.Body.TargetReference.Selector == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AttachTypedLink

valid {
    input.Body.SourceObjectReference.Selector == STRING
    input.Body.TargetObjectReference.Selector == STRING
    input.Body.TypedLinkFacet.SchemaArn == STRING
    input.Body.TypedLinkFacet.TypedLinkName == STRING
    input.Body.Attributes[_].AttributeName == STRING
    input.Body.Attributes[_].Value.StringValue == STRING
    input.Body.Attributes[_].Value.BinaryValue == BLOB
    input.Body.Attributes[_].Value.BooleanValue == BOOLEAN
    input.Body.Attributes[_].Value.NumberValue == STRING
    input.Body.Attributes[_].Value.DatetimeValue == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchRead

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]
enum_RangeMode := [ "FIRST", "LAST", "LAST_BEFORE_MISSING_VALUES", "INCLUSIVE", "EXCLUSIVE" ]

valid {
    input.Body.Operations[_].ListObjectAttributes.ObjectReference.Selector == STRING
    input.Body.Operations[_].ListObjectAttributes.NextToken == STRING
    input.Body.Operations[_].ListObjectAttributes.MaxResults == INTEGER
    input.Body.Operations[_].ListObjectAttributes.FacetFilter.SchemaArn == STRING
    input.Body.Operations[_].ListObjectAttributes.FacetFilter.FacetName == STRING
    input.Body.Operations[_].ListObjectChildren.ObjectReference.Selector == STRING
    input.Body.Operations[_].ListObjectChildren.NextToken == STRING
    input.Body.Operations[_].ListObjectChildren.MaxResults == INTEGER
    input.Body.Operations[_].ListAttachedIndices.TargetReference.Selector == STRING
    input.Body.Operations[_].ListAttachedIndices.NextToken == STRING
    input.Body.Operations[_].ListAttachedIndices.MaxResults == INTEGER
    input.Body.Operations[_].ListObjectParentPaths.ObjectReference.Selector == STRING
    input.Body.Operations[_].ListObjectParentPaths.NextToken == STRING
    input.Body.Operations[_].ListObjectParentPaths.MaxResults == INTEGER
    input.Body.Operations[_].GetObjectInformation.ObjectReference.Selector == STRING
    input.Body.Operations[_].GetObjectAttributes.ObjectReference.Selector == STRING
    input.Body.Operations[_].GetObjectAttributes.SchemaFacet.SchemaArn == STRING
    input.Body.Operations[_].GetObjectAttributes.SchemaFacet.FacetName == STRING
    input.Body.Operations[_].GetObjectAttributes.AttributeNames[_] == STRING
    input.Body.Operations[_].ListObjectParents.ObjectReference.Selector == STRING
    input.Body.Operations[_].ListObjectParents.NextToken == STRING
    input.Body.Operations[_].ListObjectParents.MaxResults == INTEGER
    input.Body.Operations[_].ListObjectPolicies.ObjectReference.Selector == STRING
    input.Body.Operations[_].ListObjectPolicies.NextToken == STRING
    input.Body.Operations[_].ListObjectPolicies.MaxResults == INTEGER
    input.Body.Operations[_].ListPolicyAttachments.PolicyReference.Selector == STRING
    input.Body.Operations[_].ListPolicyAttachments.NextToken == STRING
    input.Body.Operations[_].ListPolicyAttachments.MaxResults == INTEGER
    input.Body.Operations[_].LookupPolicy.ObjectReference.Selector == STRING
    input.Body.Operations[_].LookupPolicy.NextToken == STRING
    input.Body.Operations[_].LookupPolicy.MaxResults == INTEGER
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].AttributeKey.SchemaArn == STRING
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].AttributeKey.FacetName == STRING
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].AttributeKey.Name == STRING
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.StartMode == enum_RangeMode[_]
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.StartValue.StringValue == STRING
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.StartValue.BinaryValue == BLOB
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.StartValue.BooleanValue == BOOLEAN
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.StartValue.NumberValue == STRING
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.StartValue.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.EndMode == enum_RangeMode[_]
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.EndValue.StringValue == STRING
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.EndValue.BinaryValue == BLOB
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.EndValue.BooleanValue == BOOLEAN
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.EndValue.NumberValue == STRING
    input.Body.Operations[_].ListIndex.RangesOnIndexedValues[_].Range.EndValue.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].ListIndex.IndexReference.Selector == STRING
    input.Body.Operations[_].ListIndex.MaxResults == INTEGER
    input.Body.Operations[_].ListIndex.NextToken == STRING
    input.Body.Operations[_].ListOutgoingTypedLinks.ObjectReference.Selector == STRING
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].AttributeName == STRING
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.StartMode == enum_RangeMode[_]
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.StartValue.StringValue == STRING
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.StartValue.BinaryValue == BLOB
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.StartValue.BooleanValue == BOOLEAN
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.StartValue.NumberValue == STRING
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.StartValue.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.EndMode == enum_RangeMode[_]
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.EndValue.StringValue == STRING
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.EndValue.BinaryValue == BLOB
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.EndValue.BooleanValue == BOOLEAN
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.EndValue.NumberValue == STRING
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterAttributeRanges[_].Range.EndValue.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterTypedLink.SchemaArn == STRING
    input.Body.Operations[_].ListOutgoingTypedLinks.FilterTypedLink.TypedLinkName == STRING
    input.Body.Operations[_].ListOutgoingTypedLinks.NextToken == STRING
    input.Body.Operations[_].ListOutgoingTypedLinks.MaxResults == INTEGER
    input.Body.Operations[_].ListIncomingTypedLinks.ObjectReference.Selector == STRING
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].AttributeName == STRING
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.StartMode == enum_RangeMode[_]
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.StartValue.StringValue == STRING
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.StartValue.BinaryValue == BLOB
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.StartValue.BooleanValue == BOOLEAN
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.StartValue.NumberValue == STRING
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.StartValue.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.EndMode == enum_RangeMode[_]
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.EndValue.StringValue == STRING
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.EndValue.BinaryValue == BLOB
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.EndValue.BooleanValue == BOOLEAN
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.EndValue.NumberValue == STRING
    input.Body.Operations[_].ListIncomingTypedLinks.FilterAttributeRanges[_].Range.EndValue.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].ListIncomingTypedLinks.FilterTypedLink.SchemaArn == STRING
    input.Body.Operations[_].ListIncomingTypedLinks.FilterTypedLink.TypedLinkName == STRING
    input.Body.Operations[_].ListIncomingTypedLinks.NextToken == STRING
    input.Body.Operations[_].ListIncomingTypedLinks.MaxResults == INTEGER
    input.Body.Operations[_].GetLinkAttributes.TypedLinkSpecifier.TypedLinkFacet.SchemaArn == STRING
    input.Body.Operations[_].GetLinkAttributes.TypedLinkSpecifier.TypedLinkFacet.TypedLinkName == STRING
    input.Body.Operations[_].GetLinkAttributes.TypedLinkSpecifier.SourceObjectReference.Selector == STRING
    input.Body.Operations[_].GetLinkAttributes.TypedLinkSpecifier.TargetObjectReference.Selector == STRING
    input.Body.Operations[_].GetLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].AttributeName == STRING
    input.Body.Operations[_].GetLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].Value.StringValue == STRING
    input.Body.Operations[_].GetLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BinaryValue == BLOB
    input.Body.Operations[_].GetLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BooleanValue == BOOLEAN
    input.Body.Operations[_].GetLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].Value.NumberValue == STRING
    input.Body.Operations[_].GetLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].Value.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].GetLinkAttributes.AttributeNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchWrite

enum_UpdateActionType := [ "CREATE_OR_UPDATE", "DELETE" ]

valid {
    input.Body.Operations[_].CreateObject.SchemaFacet[_].SchemaArn == STRING
    input.Body.Operations[_].CreateObject.SchemaFacet[_].FacetName == STRING
    input.Body.Operations[_].CreateObject.ObjectAttributeList[_].Key.SchemaArn == STRING
    input.Body.Operations[_].CreateObject.ObjectAttributeList[_].Key.FacetName == STRING
    input.Body.Operations[_].CreateObject.ObjectAttributeList[_].Key.Name == STRING
    input.Body.Operations[_].CreateObject.ObjectAttributeList[_].Value.StringValue == STRING
    input.Body.Operations[_].CreateObject.ObjectAttributeList[_].Value.BinaryValue == BLOB
    input.Body.Operations[_].CreateObject.ObjectAttributeList[_].Value.BooleanValue == BOOLEAN
    input.Body.Operations[_].CreateObject.ObjectAttributeList[_].Value.NumberValue == STRING
    input.Body.Operations[_].CreateObject.ObjectAttributeList[_].Value.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].CreateObject.ParentReference.Selector == STRING
    input.Body.Operations[_].CreateObject.LinkName == STRING
    input.Body.Operations[_].CreateObject.BatchReferenceName == STRING
    input.Body.Operations[_].AttachObject.ParentReference.Selector == STRING
    input.Body.Operations[_].AttachObject.ChildReference.Selector == STRING
    input.Body.Operations[_].AttachObject.LinkName == STRING
    input.Body.Operations[_].DetachObject.ParentReference.Selector == STRING
    input.Body.Operations[_].DetachObject.LinkName == STRING
    input.Body.Operations[_].DetachObject.BatchReferenceName == STRING
    input.Body.Operations[_].UpdateObjectAttributes.ObjectReference.Selector == STRING
    input.Body.Operations[_].UpdateObjectAttributes.AttributeUpdates[_].ObjectAttributeKey.SchemaArn == STRING
    input.Body.Operations[_].UpdateObjectAttributes.AttributeUpdates[_].ObjectAttributeKey.FacetName == STRING
    input.Body.Operations[_].UpdateObjectAttributes.AttributeUpdates[_].ObjectAttributeKey.Name == STRING
    input.Body.Operations[_].UpdateObjectAttributes.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeActionType == enum_UpdateActionType[_]
    input.Body.Operations[_].UpdateObjectAttributes.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeUpdateValue.StringValue == STRING
    input.Body.Operations[_].UpdateObjectAttributes.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeUpdateValue.BinaryValue == BLOB
    input.Body.Operations[_].UpdateObjectAttributes.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeUpdateValue.BooleanValue == BOOLEAN
    input.Body.Operations[_].UpdateObjectAttributes.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeUpdateValue.NumberValue == STRING
    input.Body.Operations[_].UpdateObjectAttributes.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeUpdateValue.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].DeleteObject.ObjectReference.Selector == STRING
    input.Body.Operations[_].AddFacetToObject.SchemaFacet.SchemaArn == STRING
    input.Body.Operations[_].AddFacetToObject.SchemaFacet.FacetName == STRING
    input.Body.Operations[_].AddFacetToObject.ObjectAttributeList[_].Key.SchemaArn == STRING
    input.Body.Operations[_].AddFacetToObject.ObjectAttributeList[_].Key.FacetName == STRING
    input.Body.Operations[_].AddFacetToObject.ObjectAttributeList[_].Key.Name == STRING
    input.Body.Operations[_].AddFacetToObject.ObjectAttributeList[_].Value.StringValue == STRING
    input.Body.Operations[_].AddFacetToObject.ObjectAttributeList[_].Value.BinaryValue == BLOB
    input.Body.Operations[_].AddFacetToObject.ObjectAttributeList[_].Value.BooleanValue == BOOLEAN
    input.Body.Operations[_].AddFacetToObject.ObjectAttributeList[_].Value.NumberValue == STRING
    input.Body.Operations[_].AddFacetToObject.ObjectAttributeList[_].Value.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].AddFacetToObject.ObjectReference.Selector == STRING
    input.Body.Operations[_].RemoveFacetFromObject.SchemaFacet.SchemaArn == STRING
    input.Body.Operations[_].RemoveFacetFromObject.SchemaFacet.FacetName == STRING
    input.Body.Operations[_].RemoveFacetFromObject.ObjectReference.Selector == STRING
    input.Body.Operations[_].AttachPolicy.PolicyReference.Selector == STRING
    input.Body.Operations[_].AttachPolicy.ObjectReference.Selector == STRING
    input.Body.Operations[_].DetachPolicy.PolicyReference.Selector == STRING
    input.Body.Operations[_].DetachPolicy.ObjectReference.Selector == STRING
    input.Body.Operations[_].CreateIndex.OrderedIndexedAttributeList[_].SchemaArn == STRING
    input.Body.Operations[_].CreateIndex.OrderedIndexedAttributeList[_].FacetName == STRING
    input.Body.Operations[_].CreateIndex.OrderedIndexedAttributeList[_].Name == STRING
    input.Body.Operations[_].CreateIndex.IsUnique == BOOLEAN
    input.Body.Operations[_].CreateIndex.ParentReference.Selector == STRING
    input.Body.Operations[_].CreateIndex.LinkName == STRING
    input.Body.Operations[_].CreateIndex.BatchReferenceName == STRING
    input.Body.Operations[_].AttachToIndex.IndexReference.Selector == STRING
    input.Body.Operations[_].AttachToIndex.TargetReference.Selector == STRING
    input.Body.Operations[_].DetachFromIndex.IndexReference.Selector == STRING
    input.Body.Operations[_].DetachFromIndex.TargetReference.Selector == STRING
    input.Body.Operations[_].AttachTypedLink.SourceObjectReference.Selector == STRING
    input.Body.Operations[_].AttachTypedLink.TargetObjectReference.Selector == STRING
    input.Body.Operations[_].AttachTypedLink.TypedLinkFacet.SchemaArn == STRING
    input.Body.Operations[_].AttachTypedLink.TypedLinkFacet.TypedLinkName == STRING
    input.Body.Operations[_].AttachTypedLink.Attributes[_].AttributeName == STRING
    input.Body.Operations[_].AttachTypedLink.Attributes[_].Value.StringValue == STRING
    input.Body.Operations[_].AttachTypedLink.Attributes[_].Value.BinaryValue == BLOB
    input.Body.Operations[_].AttachTypedLink.Attributes[_].Value.BooleanValue == BOOLEAN
    input.Body.Operations[_].AttachTypedLink.Attributes[_].Value.NumberValue == STRING
    input.Body.Operations[_].AttachTypedLink.Attributes[_].Value.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].DetachTypedLink.TypedLinkSpecifier.TypedLinkFacet.SchemaArn == STRING
    input.Body.Operations[_].DetachTypedLink.TypedLinkSpecifier.TypedLinkFacet.TypedLinkName == STRING
    input.Body.Operations[_].DetachTypedLink.TypedLinkSpecifier.SourceObjectReference.Selector == STRING
    input.Body.Operations[_].DetachTypedLink.TypedLinkSpecifier.TargetObjectReference.Selector == STRING
    input.Body.Operations[_].DetachTypedLink.TypedLinkSpecifier.IdentityAttributeValues[_].AttributeName == STRING
    input.Body.Operations[_].DetachTypedLink.TypedLinkSpecifier.IdentityAttributeValues[_].Value.StringValue == STRING
    input.Body.Operations[_].DetachTypedLink.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BinaryValue == BLOB
    input.Body.Operations[_].DetachTypedLink.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BooleanValue == BOOLEAN
    input.Body.Operations[_].DetachTypedLink.TypedLinkSpecifier.IdentityAttributeValues[_].Value.NumberValue == STRING
    input.Body.Operations[_].DetachTypedLink.TypedLinkSpecifier.IdentityAttributeValues[_].Value.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].UpdateLinkAttributes.TypedLinkSpecifier.TypedLinkFacet.SchemaArn == STRING
    input.Body.Operations[_].UpdateLinkAttributes.TypedLinkSpecifier.TypedLinkFacet.TypedLinkName == STRING
    input.Body.Operations[_].UpdateLinkAttributes.TypedLinkSpecifier.SourceObjectReference.Selector == STRING
    input.Body.Operations[_].UpdateLinkAttributes.TypedLinkSpecifier.TargetObjectReference.Selector == STRING
    input.Body.Operations[_].UpdateLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].AttributeName == STRING
    input.Body.Operations[_].UpdateLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].Value.StringValue == STRING
    input.Body.Operations[_].UpdateLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BinaryValue == BLOB
    input.Body.Operations[_].UpdateLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BooleanValue == BOOLEAN
    input.Body.Operations[_].UpdateLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].Value.NumberValue == STRING
    input.Body.Operations[_].UpdateLinkAttributes.TypedLinkSpecifier.IdentityAttributeValues[_].Value.DatetimeValue == TIMESTAMP
    input.Body.Operations[_].UpdateLinkAttributes.AttributeUpdates[_].AttributeKey.SchemaArn == STRING
    input.Body.Operations[_].UpdateLinkAttributes.AttributeUpdates[_].AttributeKey.FacetName == STRING
    input.Body.Operations[_].UpdateLinkAttributes.AttributeUpdates[_].AttributeKey.Name == STRING
    input.Body.Operations[_].UpdateLinkAttributes.AttributeUpdates[_].AttributeAction.AttributeActionType == enum_UpdateActionType[_]
    input.Body.Operations[_].UpdateLinkAttributes.AttributeUpdates[_].AttributeAction.AttributeUpdateValue.StringValue == STRING
    input.Body.Operations[_].UpdateLinkAttributes.AttributeUpdates[_].AttributeAction.AttributeUpdateValue.BinaryValue == BLOB
    input.Body.Operations[_].UpdateLinkAttributes.AttributeUpdates[_].AttributeAction.AttributeUpdateValue.BooleanValue == BOOLEAN
    input.Body.Operations[_].UpdateLinkAttributes.AttributeUpdates[_].AttributeAction.AttributeUpdateValue.NumberValue == STRING
    input.Body.Operations[_].UpdateLinkAttributes.AttributeUpdates[_].AttributeAction.AttributeUpdateValue.DatetimeValue == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDirectory

valid {
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFacet

enum_FacetAttributeType := [ "STRING", "BINARY", "BOOLEAN", "NUMBER", "DATETIME", "VARIANT" ]
enum_FacetStyle := [ "STATIC", "DYNAMIC" ]
enum_ObjectType := [ "NODE", "LEAF_NODE", "POLICY", "INDEX" ]
enum_RequiredAttributeBehavior := [ "REQUIRED_ALWAYS", "NOT_REQUIRED" ]
enum_RuleType := [ "BINARY_LENGTH", "NUMBER_COMPARISON", "STRING_FROM_SET", "STRING_LENGTH" ]

valid {
    input.Body.Name == STRING
    input.Body.Attributes[_].Name == STRING
    input.Body.Attributes[_].AttributeDefinition.Type == enum_FacetAttributeType[_]
    input.Body.Attributes[_].AttributeDefinition.DefaultValue.StringValue == STRING
    input.Body.Attributes[_].AttributeDefinition.DefaultValue.BinaryValue == BLOB
    input.Body.Attributes[_].AttributeDefinition.DefaultValue.BooleanValue == BOOLEAN
    input.Body.Attributes[_].AttributeDefinition.DefaultValue.NumberValue == STRING
    input.Body.Attributes[_].AttributeDefinition.DefaultValue.DatetimeValue == TIMESTAMP
    input.Body.Attributes[_].AttributeDefinition.IsImmutable == BOOLEAN
    input.Body.Attributes[_].AttributeDefinition.Rules.STRING.Type == enum_RuleType[_]
    input.Body.Attributes[_].AttributeDefinition.Rules.STRING.Parameters.STRING == STRING
    input.Body.Attributes[_].AttributeReference.TargetFacetName == STRING
    input.Body.Attributes[_].AttributeReference.TargetAttributeName == STRING
    input.Body.Attributes[_].RequiredBehavior == enum_RequiredAttributeBehavior[_]
    input.Body.ObjectType == enum_ObjectType[_]
    input.Body.FacetStyle == enum_FacetStyle[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateIndex

valid {
    input.Body.OrderedIndexedAttributeList[_].SchemaArn == STRING
    input.Body.OrderedIndexedAttributeList[_].FacetName == STRING
    input.Body.OrderedIndexedAttributeList[_].Name == STRING
    input.Body.IsUnique == BOOLEAN
    input.Body.ParentReference.Selector == STRING
    input.Body.LinkName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateObject

valid {
    input.Body.SchemaFacets[_].SchemaArn == STRING
    input.Body.SchemaFacets[_].FacetName == STRING
    input.Body.ObjectAttributeList[_].Key.SchemaArn == STRING
    input.Body.ObjectAttributeList[_].Key.FacetName == STRING
    input.Body.ObjectAttributeList[_].Key.Name == STRING
    input.Body.ObjectAttributeList[_].Value.StringValue == STRING
    input.Body.ObjectAttributeList[_].Value.BinaryValue == BLOB
    input.Body.ObjectAttributeList[_].Value.BooleanValue == BOOLEAN
    input.Body.ObjectAttributeList[_].Value.NumberValue == STRING
    input.Body.ObjectAttributeList[_].Value.DatetimeValue == TIMESTAMP
    input.Body.ParentReference.Selector == STRING
    input.Body.LinkName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSchema

valid {
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTypedLinkFacet

enum_FacetAttributeType := [ "STRING", "BINARY", "BOOLEAN", "NUMBER", "DATETIME", "VARIANT" ]
enum_RequiredAttributeBehavior := [ "REQUIRED_ALWAYS", "NOT_REQUIRED" ]
enum_RuleType := [ "BINARY_LENGTH", "NUMBER_COMPARISON", "STRING_FROM_SET", "STRING_LENGTH" ]

valid {
    input.Body.Facet.Name == STRING
    input.Body.Facet.Attributes[_].Name == STRING
    input.Body.Facet.Attributes[_].Type == enum_FacetAttributeType[_]
    input.Body.Facet.Attributes[_].DefaultValue.StringValue == STRING
    input.Body.Facet.Attributes[_].DefaultValue.BinaryValue == BLOB
    input.Body.Facet.Attributes[_].DefaultValue.BooleanValue == BOOLEAN
    input.Body.Facet.Attributes[_].DefaultValue.NumberValue == STRING
    input.Body.Facet.Attributes[_].DefaultValue.DatetimeValue == TIMESTAMP
    input.Body.Facet.Attributes[_].IsImmutable == BOOLEAN
    input.Body.Facet.Attributes[_].Rules.STRING.Type == enum_RuleType[_]
    input.Body.Facet.Attributes[_].Rules.STRING.Parameters.STRING == STRING
    input.Body.Facet.Attributes[_].RequiredBehavior == enum_RequiredAttributeBehavior[_]
    input.Body.Facet.IdentityAttributeOrder[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDirectory

valid {
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteFacet

valid {
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteObject

valid {
    input.Body.ObjectReference.Selector == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSchema

valid {
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTypedLinkFacet

valid {
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DetachFromIndex

valid {
    input.Body.IndexReference.Selector == STRING
    input.Body.TargetReference.Selector == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DetachObject

valid {
    input.Body.ParentReference.Selector == STRING
    input.Body.LinkName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DetachPolicy

valid {
    input.Body.PolicyReference.Selector == STRING
    input.Body.ObjectReference.Selector == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DetachTypedLink

valid {
    input.Body.TypedLinkSpecifier.TypedLinkFacet.SchemaArn == STRING
    input.Body.TypedLinkSpecifier.TypedLinkFacet.TypedLinkName == STRING
    input.Body.TypedLinkSpecifier.SourceObjectReference.Selector == STRING
    input.Body.TypedLinkSpecifier.TargetObjectReference.Selector == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].AttributeName == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.StringValue == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BinaryValue == BLOB
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BooleanValue == BOOLEAN
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.NumberValue == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.DatetimeValue == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableDirectory

valid {
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableDirectory

valid {
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAppliedSchemaVersion

valid {
    input.Body.SchemaArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetDirectory

valid {
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetFacet

valid {
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetLinkAttributes

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]

valid {
    input.Body.TypedLinkSpecifier.TypedLinkFacet.SchemaArn == STRING
    input.Body.TypedLinkSpecifier.TypedLinkFacet.TypedLinkName == STRING
    input.Body.TypedLinkSpecifier.SourceObjectReference.Selector == STRING
    input.Body.TypedLinkSpecifier.TargetObjectReference.Selector == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].AttributeName == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.StringValue == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BinaryValue == BLOB
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BooleanValue == BOOLEAN
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.NumberValue == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.DatetimeValue == TIMESTAMP
    input.Body.AttributeNames[_] == STRING
    input.Body.ConsistencyLevel == enum_ConsistencyLevel[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetObjectAttributes

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]

valid {
    input.Body.ObjectReference.Selector == STRING
    input.Body.SchemaFacet.SchemaArn == STRING
    input.Body.SchemaFacet.FacetName == STRING
    input.Body.AttributeNames[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetObjectInformation

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]

valid {
    input.Body.ObjectReference.Selector == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSchemaAsJson

valid {
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTypedLinkFacetInformation

valid {
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAppliedSchemaArns

valid {
    input.Body.DirectoryArn == STRING
    input.Body.SchemaArn == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAttachedIndices

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]

valid {
    input.Body.TargetReference.Selector == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDevelopmentSchemaArns

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDirectories

enum_DirectoryState := [ "ENABLED", "DISABLED", "DELETED" ]

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.state == enum_DirectoryState[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListFacetAttributes

valid {
    input.Body.Name == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListFacetNames

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListIncomingTypedLinks

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]
enum_RangeMode := [ "FIRST", "LAST", "LAST_BEFORE_MISSING_VALUES", "INCLUSIVE", "EXCLUSIVE" ]

valid {
    input.Body.ObjectReference.Selector == STRING
    input.Body.FilterAttributeRanges[_].AttributeName == STRING
    input.Body.FilterAttributeRanges[_].Range.StartMode == enum_RangeMode[_]
    input.Body.FilterAttributeRanges[_].Range.StartValue.StringValue == STRING
    input.Body.FilterAttributeRanges[_].Range.StartValue.BinaryValue == BLOB
    input.Body.FilterAttributeRanges[_].Range.StartValue.BooleanValue == BOOLEAN
    input.Body.FilterAttributeRanges[_].Range.StartValue.NumberValue == STRING
    input.Body.FilterAttributeRanges[_].Range.StartValue.DatetimeValue == TIMESTAMP
    input.Body.FilterAttributeRanges[_].Range.EndMode == enum_RangeMode[_]
    input.Body.FilterAttributeRanges[_].Range.EndValue.StringValue == STRING
    input.Body.FilterAttributeRanges[_].Range.EndValue.BinaryValue == BLOB
    input.Body.FilterAttributeRanges[_].Range.EndValue.BooleanValue == BOOLEAN
    input.Body.FilterAttributeRanges[_].Range.EndValue.NumberValue == STRING
    input.Body.FilterAttributeRanges[_].Range.EndValue.DatetimeValue == TIMESTAMP
    input.Body.FilterTypedLink.SchemaArn == STRING
    input.Body.FilterTypedLink.TypedLinkName == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.ConsistencyLevel == enum_ConsistencyLevel[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListIndex

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]
enum_RangeMode := [ "FIRST", "LAST", "LAST_BEFORE_MISSING_VALUES", "INCLUSIVE", "EXCLUSIVE" ]

valid {
    input.Body.RangesOnIndexedValues[_].AttributeKey.SchemaArn == STRING
    input.Body.RangesOnIndexedValues[_].AttributeKey.FacetName == STRING
    input.Body.RangesOnIndexedValues[_].AttributeKey.Name == STRING
    input.Body.RangesOnIndexedValues[_].Range.StartMode == enum_RangeMode[_]
    input.Body.RangesOnIndexedValues[_].Range.StartValue.StringValue == STRING
    input.Body.RangesOnIndexedValues[_].Range.StartValue.BinaryValue == BLOB
    input.Body.RangesOnIndexedValues[_].Range.StartValue.BooleanValue == BOOLEAN
    input.Body.RangesOnIndexedValues[_].Range.StartValue.NumberValue == STRING
    input.Body.RangesOnIndexedValues[_].Range.StartValue.DatetimeValue == TIMESTAMP
    input.Body.RangesOnIndexedValues[_].Range.EndMode == enum_RangeMode[_]
    input.Body.RangesOnIndexedValues[_].Range.EndValue.StringValue == STRING
    input.Body.RangesOnIndexedValues[_].Range.EndValue.BinaryValue == BLOB
    input.Body.RangesOnIndexedValues[_].Range.EndValue.BooleanValue == BOOLEAN
    input.Body.RangesOnIndexedValues[_].Range.EndValue.NumberValue == STRING
    input.Body.RangesOnIndexedValues[_].Range.EndValue.DatetimeValue == TIMESTAMP
    input.Body.IndexReference.Selector == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListManagedSchemaArns

valid {
    input.Body.SchemaArn == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListObjectAttributes

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]

valid {
    input.Body.ObjectReference.Selector == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.FacetFilter.SchemaArn == STRING
    input.Body.FacetFilter.FacetName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListObjectChildren

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]

valid {
    input.Body.ObjectReference.Selector == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListObjectParentPaths

valid {
    input.Body.ObjectReference.Selector == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListObjectParents

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]

valid {
    input.Body.ObjectReference.Selector == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.IncludeAllLinksToEachParent == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListObjectPolicies

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]

valid {
    input.Body.ObjectReference.Selector == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListOutgoingTypedLinks

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]
enum_RangeMode := [ "FIRST", "LAST", "LAST_BEFORE_MISSING_VALUES", "INCLUSIVE", "EXCLUSIVE" ]

valid {
    input.Body.ObjectReference.Selector == STRING
    input.Body.FilterAttributeRanges[_].AttributeName == STRING
    input.Body.FilterAttributeRanges[_].Range.StartMode == enum_RangeMode[_]
    input.Body.FilterAttributeRanges[_].Range.StartValue.StringValue == STRING
    input.Body.FilterAttributeRanges[_].Range.StartValue.BinaryValue == BLOB
    input.Body.FilterAttributeRanges[_].Range.StartValue.BooleanValue == BOOLEAN
    input.Body.FilterAttributeRanges[_].Range.StartValue.NumberValue == STRING
    input.Body.FilterAttributeRanges[_].Range.StartValue.DatetimeValue == TIMESTAMP
    input.Body.FilterAttributeRanges[_].Range.EndMode == enum_RangeMode[_]
    input.Body.FilterAttributeRanges[_].Range.EndValue.StringValue == STRING
    input.Body.FilterAttributeRanges[_].Range.EndValue.BinaryValue == BLOB
    input.Body.FilterAttributeRanges[_].Range.EndValue.BooleanValue == BOOLEAN
    input.Body.FilterAttributeRanges[_].Range.EndValue.NumberValue == STRING
    input.Body.FilterAttributeRanges[_].Range.EndValue.DatetimeValue == TIMESTAMP
    input.Body.FilterTypedLink.SchemaArn == STRING
    input.Body.FilterTypedLink.TypedLinkName == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.ConsistencyLevel == enum_ConsistencyLevel[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPolicyAttachments

enum_ConsistencyLevel := [ "SERIALIZABLE", "EVENTUAL" ]

valid {
    input.Body.PolicyReference.Selector == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPublishedSchemaArns

valid {
    input.Body.SchemaArn == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.Body.ResourceArn == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTypedLinkFacetAttributes

valid {
    input.Body.Name == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTypedLinkFacetNames

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

LookupPolicy

valid {
    input.Body.ObjectReference.Selector == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PublishSchema

valid {
    input.Body.Version == STRING
    input.Body.MinorVersion == STRING
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutSchemaFromJson

valid {
    input.Body.Document == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveFacetFromObject

valid {
    input.Body.SchemaFacet.SchemaArn == STRING
    input.Body.SchemaFacet.FacetName == STRING
    input.Body.ObjectReference.Selector == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.ResourceArn == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.Body.ResourceArn == STRING
    input.Body.TagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateFacet

enum_FacetAttributeType := [ "STRING", "BINARY", "BOOLEAN", "NUMBER", "DATETIME", "VARIANT" ]
enum_ObjectType := [ "NODE", "LEAF_NODE", "POLICY", "INDEX" ]
enum_RequiredAttributeBehavior := [ "REQUIRED_ALWAYS", "NOT_REQUIRED" ]
enum_RuleType := [ "BINARY_LENGTH", "NUMBER_COMPARISON", "STRING_FROM_SET", "STRING_LENGTH" ]
enum_UpdateActionType := [ "CREATE_OR_UPDATE", "DELETE" ]

valid {
    input.Body.Name == STRING
    input.Body.AttributeUpdates[_].Attribute.Name == STRING
    input.Body.AttributeUpdates[_].Attribute.AttributeDefinition.Type == enum_FacetAttributeType[_]
    input.Body.AttributeUpdates[_].Attribute.AttributeDefinition.DefaultValue.StringValue == STRING
    input.Body.AttributeUpdates[_].Attribute.AttributeDefinition.DefaultValue.BinaryValue == BLOB
    input.Body.AttributeUpdates[_].Attribute.AttributeDefinition.DefaultValue.BooleanValue == BOOLEAN
    input.Body.AttributeUpdates[_].Attribute.AttributeDefinition.DefaultValue.NumberValue == STRING
    input.Body.AttributeUpdates[_].Attribute.AttributeDefinition.DefaultValue.DatetimeValue == TIMESTAMP
    input.Body.AttributeUpdates[_].Attribute.AttributeDefinition.IsImmutable == BOOLEAN
    input.Body.AttributeUpdates[_].Attribute.AttributeDefinition.Rules.STRING.Type == enum_RuleType[_]
    input.Body.AttributeUpdates[_].Attribute.AttributeDefinition.Rules.STRING.Parameters.STRING == STRING
    input.Body.AttributeUpdates[_].Attribute.AttributeReference.TargetFacetName == STRING
    input.Body.AttributeUpdates[_].Attribute.AttributeReference.TargetAttributeName == STRING
    input.Body.AttributeUpdates[_].Attribute.RequiredBehavior == enum_RequiredAttributeBehavior[_]
    input.Body.AttributeUpdates[_].Action == enum_UpdateActionType[_]
    input.Body.ObjectType == enum_ObjectType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLinkAttributes

enum_UpdateActionType := [ "CREATE_OR_UPDATE", "DELETE" ]

valid {
    input.Body.TypedLinkSpecifier.TypedLinkFacet.SchemaArn == STRING
    input.Body.TypedLinkSpecifier.TypedLinkFacet.TypedLinkName == STRING
    input.Body.TypedLinkSpecifier.SourceObjectReference.Selector == STRING
    input.Body.TypedLinkSpecifier.TargetObjectReference.Selector == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].AttributeName == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.StringValue == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BinaryValue == BLOB
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.BooleanValue == BOOLEAN
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.NumberValue == STRING
    input.Body.TypedLinkSpecifier.IdentityAttributeValues[_].Value.DatetimeValue == TIMESTAMP
    input.Body.AttributeUpdates[_].AttributeKey.SchemaArn == STRING
    input.Body.AttributeUpdates[_].AttributeKey.FacetName == STRING
    input.Body.AttributeUpdates[_].AttributeKey.Name == STRING
    input.Body.AttributeUpdates[_].AttributeAction.AttributeActionType == enum_UpdateActionType[_]
    input.Body.AttributeUpdates[_].AttributeAction.AttributeUpdateValue.StringValue == STRING
    input.Body.AttributeUpdates[_].AttributeAction.AttributeUpdateValue.BinaryValue == BLOB
    input.Body.AttributeUpdates[_].AttributeAction.AttributeUpdateValue.BooleanValue == BOOLEAN
    input.Body.AttributeUpdates[_].AttributeAction.AttributeUpdateValue.NumberValue == STRING
    input.Body.AttributeUpdates[_].AttributeAction.AttributeUpdateValue.DatetimeValue == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateObjectAttributes

enum_UpdateActionType := [ "CREATE_OR_UPDATE", "DELETE" ]

valid {
    input.Body.ObjectReference.Selector == STRING
    input.Body.AttributeUpdates[_].ObjectAttributeKey.SchemaArn == STRING
    input.Body.AttributeUpdates[_].ObjectAttributeKey.FacetName == STRING
    input.Body.AttributeUpdates[_].ObjectAttributeKey.Name == STRING
    input.Body.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeActionType == enum_UpdateActionType[_]
    input.Body.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeUpdateValue.StringValue == STRING
    input.Body.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeUpdateValue.BinaryValue == BLOB
    input.Body.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeUpdateValue.BooleanValue == BOOLEAN
    input.Body.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeUpdateValue.NumberValue == STRING
    input.Body.AttributeUpdates[_].ObjectAttributeAction.ObjectAttributeUpdateValue.DatetimeValue == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSchema

valid {
    input.Body.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTypedLinkFacet

enum_FacetAttributeType := [ "STRING", "BINARY", "BOOLEAN", "NUMBER", "DATETIME", "VARIANT" ]
enum_RequiredAttributeBehavior := [ "REQUIRED_ALWAYS", "NOT_REQUIRED" ]
enum_RuleType := [ "BINARY_LENGTH", "NUMBER_COMPARISON", "STRING_FROM_SET", "STRING_LENGTH" ]
enum_UpdateActionType := [ "CREATE_OR_UPDATE", "DELETE" ]

valid {
    input.Body.Name == STRING
    input.Body.AttributeUpdates[_].Attribute.Name == STRING
    input.Body.AttributeUpdates[_].Attribute.Type == enum_FacetAttributeType[_]
    input.Body.AttributeUpdates[_].Attribute.DefaultValue.StringValue == STRING
    input.Body.AttributeUpdates[_].Attribute.DefaultValue.BinaryValue == BLOB
    input.Body.AttributeUpdates[_].Attribute.DefaultValue.BooleanValue == BOOLEAN
    input.Body.AttributeUpdates[_].Attribute.DefaultValue.NumberValue == STRING
    input.Body.AttributeUpdates[_].Attribute.DefaultValue.DatetimeValue == TIMESTAMP
    input.Body.AttributeUpdates[_].Attribute.IsImmutable == BOOLEAN
    input.Body.AttributeUpdates[_].Attribute.Rules.STRING.Type == enum_RuleType[_]
    input.Body.AttributeUpdates[_].Attribute.Rules.STRING.Parameters.STRING == STRING
    input.Body.AttributeUpdates[_].Attribute.RequiredBehavior == enum_RequiredAttributeBehavior[_]
    input.Body.AttributeUpdates[_].Action == enum_UpdateActionType[_]
    input.Body.IdentityAttributeOrder[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpgradeAppliedSchema

valid {
    input.Body.PublishedSchemaArn == STRING
    input.Body.DirectoryArn == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpgradePublishedSchema

valid {
    input.Body.DevelopmentSchemaArn == STRING
    input.Body.PublishedSchemaArn == STRING
    input.Body.MinorVersion == STRING
    input.Body.DryRun == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}