SERVICECATALOG

AcceptPortfolioShare

enum_PortfolioShareType := [ "IMPORTED", "AWS_SERVICECATALOG", "AWS_ORGANIZATIONS" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.PortfolioShareType == enum_PortfolioShareType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateBudgetWithResource

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

AssociatePrincipalWithPortfolio

enum_PrincipalType := [ "IAM", "IAM_PATTERN" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.PrincipalARN == STRING
    input.Body.PrincipalType == enum_PrincipalType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateProductWithPortfolio

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProductId == STRING
    input.Body.PortfolioId == STRING
    input.Body.SourcePortfolioId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateServiceActionWithProvisioningArtifact

valid {
    input.Body.ProductId == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.Body.ServiceActionId == STRING
    input.Body.AcceptLanguage == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateTagOptionWithResource

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

BatchAssociateServiceActionWithProvisioningArtifact

valid {
    input.Body.ServiceActionAssociations[_].ServiceActionId == STRING
    input.Body.ServiceActionAssociations[_].ProductId == STRING
    input.Body.ServiceActionAssociations[_].ProvisioningArtifactId == STRING
    input.Body.AcceptLanguage == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchDisassociateServiceActionFromProvisioningArtifact

valid {
    input.Body.ServiceActionAssociations[_].ServiceActionId == STRING
    input.Body.ServiceActionAssociations[_].ProductId == STRING
    input.Body.ServiceActionAssociations[_].ProvisioningArtifactId == STRING
    input.Body.AcceptLanguage == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CopyProduct

enum_CopyOption := [ "CopyTags" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.SourceProductArn == STRING
    input.Body.TargetProductId == STRING
    input.Body.TargetProductName == STRING
    input.Body.SourceProvisioningArtifactIdentifiers[_].Id == STRING
    input.Body.CopyOptions[_] == enum_CopyOption[_]
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateConstraint

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.ProductId == STRING
    input.Body.Parameters == STRING
    input.Body.Type == STRING
    input.Body.Description == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePortfolio

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.DisplayName == STRING
    input.Body.Description == STRING
    input.Body.ProviderName == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePortfolioShare

enum_OrganizationNodeType := [ "ORGANIZATION", "ORGANIZATIONAL_UNIT", "ACCOUNT" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.AccountId == STRING
    input.Body.OrganizationNode.Type == enum_OrganizationNodeType[_]
    input.Body.OrganizationNode.Value == STRING
    input.Body.ShareTagOptions == BOOLEAN
    input.Body.SharePrincipals == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProduct

enum_ProductType := [ "CLOUD_FORMATION_TEMPLATE", "MARKETPLACE", "TERRAFORM_OPEN_SOURCE", "TERRAFORM_CLOUD", "EXTERNAL" ]
enum_ProvisioningArtifactType := [ "CLOUD_FORMATION_TEMPLATE", "MARKETPLACE_AMI", "MARKETPLACE_CAR", "TERRAFORM_OPEN_SOURCE", "TERRAFORM_CLOUD", "EXTERNAL" ]
enum_SourceType := [ "CODESTAR" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.Name == STRING
    input.Body.Owner == STRING
    input.Body.Description == STRING
    input.Body.Distributor == STRING
    input.Body.SupportDescription == STRING
    input.Body.SupportEmail == STRING
    input.Body.SupportUrl == STRING
    input.Body.ProductType == enum_ProductType[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ProvisioningArtifactParameters.Name == STRING
    input.Body.ProvisioningArtifactParameters.Description == STRING
    input.Body.ProvisioningArtifactParameters.Info.STRING == STRING
    input.Body.ProvisioningArtifactParameters.Type == enum_ProvisioningArtifactType[_]
    input.Body.ProvisioningArtifactParameters.DisableTemplateValidation == BOOLEAN
    input.Body.IdempotencyToken == STRING
    input.Body.SourceConnection.Type == enum_SourceType[_]
    input.Body.SourceConnection.ConnectionParameters.CodeStar.ConnectionArn == STRING
    input.Body.SourceConnection.ConnectionParameters.CodeStar.Repository == STRING
    input.Body.SourceConnection.ConnectionParameters.CodeStar.Branch == STRING
    input.Body.SourceConnection.ConnectionParameters.CodeStar.ArtifactPath == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProvisionedProductPlan

enum_ProvisionedProductPlanType := [ "CLOUDFORMATION" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PlanName == STRING
    input.Body.PlanType == enum_ProvisionedProductPlanType[_]
    input.Body.NotificationArns[_] == STRING
    input.Body.PathId == STRING
    input.Body.ProductId == STRING
    input.Body.ProvisionedProductName == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.Body.ProvisioningParameters[_].Key == STRING
    input.Body.ProvisioningParameters[_].Value == STRING
    input.Body.ProvisioningParameters[_].UsePreviousValue == BOOLEAN
    input.Body.IdempotencyToken == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProvisioningArtifact

enum_ProvisioningArtifactType := [ "CLOUD_FORMATION_TEMPLATE", "MARKETPLACE_AMI", "MARKETPLACE_CAR", "TERRAFORM_OPEN_SOURCE", "TERRAFORM_CLOUD", "EXTERNAL" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProductId == STRING
    input.Body.Parameters.Name == STRING
    input.Body.Parameters.Description == STRING
    input.Body.Parameters.Info.STRING == STRING
    input.Body.Parameters.Type == enum_ProvisioningArtifactType[_]
    input.Body.Parameters.DisableTemplateValidation == BOOLEAN
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateServiceAction

enum_ServiceActionDefinitionType := [ "SSM_AUTOMATION" ]

valid {
    input.Body.Name == STRING
    input.Body.DefinitionType == enum_ServiceActionDefinitionType[_]
    input.Body.Definition.Name == STRING
    input.Body.Definition.Version == STRING
    input.Body.Definition.AssumeRole == STRING
    input.Body.Definition.Parameters == STRING
    input.Body.Description == STRING
    input.Body.AcceptLanguage == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTagOption

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

DeleteConstraint

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

DeletePortfolio

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

DeletePortfolioShare

enum_OrganizationNodeType := [ "ORGANIZATION", "ORGANIZATIONAL_UNIT", "ACCOUNT" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.AccountId == STRING
    input.Body.OrganizationNode.Type == enum_OrganizationNodeType[_]
    input.Body.OrganizationNode.Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteProduct

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

DeleteProvisionedProductPlan

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PlanId == STRING
    input.Body.IgnoreErrors == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteProvisioningArtifact

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProductId == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteServiceAction

valid {
    input.Body.Id == STRING
    input.Body.AcceptLanguage == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTagOption

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

DescribeConstraint

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

DescribeCopyProductStatus

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

DescribePortfolio

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

DescribePortfolioShareStatus

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

DescribePortfolioShares

enum_DescribePortfolioShareType := [ "ACCOUNT", "ORGANIZATION", "ORGANIZATIONAL_UNIT", "ORGANIZATION_MEMBER_ACCOUNT" ]

valid {
    input.Body.PortfolioId == STRING
    input.Body.Type == enum_DescribePortfolioShareType[_]
    input.Body.PageToken == STRING
    input.Body.PageSize == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeProduct

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

DescribeProductAsAdmin

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

DescribeProductView

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

DescribeProvisionedProduct

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

DescribeProvisionedProductPlan

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PlanId == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeProvisioningArtifact

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.Body.ProductId == STRING
    input.Body.ProvisioningArtifactName == STRING
    input.Body.ProductName == STRING
    input.Body.Verbose == BOOLEAN
    input.Body.IncludeProvisioningArtifactParameters == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeProvisioningParameters

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProductId == STRING
    input.Body.ProductName == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.Body.ProvisioningArtifactName == STRING
    input.Body.PathId == STRING
    input.Body.PathName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeRecord

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.Id == STRING
    input.Body.PageToken == STRING
    input.Body.PageSize == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeServiceAction

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

DescribeServiceActionExecutionParameters

valid {
    input.Body.ProvisionedProductId == STRING
    input.Body.ServiceActionId == STRING
    input.Body.AcceptLanguage == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTagOption

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

DisableAWSOrganizationsAccess

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

DisassociateBudgetFromResource

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

DisassociatePrincipalFromPortfolio

enum_PrincipalType := [ "IAM", "IAM_PATTERN" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.PrincipalARN == STRING
    input.Body.PrincipalType == enum_PrincipalType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateProductFromPortfolio

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProductId == STRING
    input.Body.PortfolioId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateServiceActionFromProvisioningArtifact

valid {
    input.Body.ProductId == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.Body.ServiceActionId == STRING
    input.Body.AcceptLanguage == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateTagOptionFromResource

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

EnableAWSOrganizationsAccess

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

ExecuteProvisionedProductPlan

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PlanId == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ExecuteProvisionedProductServiceAction

valid {
    input.Body.ProvisionedProductId == STRING
    input.Body.ServiceActionId == STRING
    input.Body.ExecuteToken == STRING
    input.Body.AcceptLanguage == STRING
    input.Body.Parameters.STRING[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAWSOrganizationsAccessStatus

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

GetProvisionedProductOutputs

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProvisionedProductId == STRING
    input.Body.ProvisionedProductName == STRING
    input.Body.OutputKeys[_] == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportAsProvisionedProduct

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProductId == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.Body.ProvisionedProductName == STRING
    input.Body.PhysicalId == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAcceptedPortfolioShares

enum_PortfolioShareType := [ "IMPORTED", "AWS_SERVICECATALOG", "AWS_ORGANIZATIONS" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PageToken == STRING
    input.Body.PageSize == INTEGER
    input.Body.PortfolioShareType == enum_PortfolioShareType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBudgetsForResource

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ResourceId == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListConstraintsForPortfolio

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.ProductId == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListLaunchPaths

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProductId == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListOrganizationPortfolioAccess

enum_OrganizationNodeType := [ "ORGANIZATION", "ORGANIZATIONAL_UNIT", "ACCOUNT" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.OrganizationNodeType == enum_OrganizationNodeType[_]
    input.Body.PageToken == STRING
    input.Body.PageSize == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPortfolioAccess

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.OrganizationParentId == STRING
    input.Body.PageToken == STRING
    input.Body.PageSize == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPortfolios

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PageToken == STRING
    input.Body.PageSize == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPortfoliosForProduct

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProductId == STRING
    input.Body.PageToken == STRING
    input.Body.PageSize == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPrincipalsForPortfolio

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProvisionedProductPlans

enum_AccessLevelFilterKey := [ "Account", "Role", "User" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProvisionProductId == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.Body.AccessLevelFilter.Key == enum_AccessLevelFilterKey[_]
    input.Body.AccessLevelFilter.Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListProvisioningArtifacts

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

ListProvisioningArtifactsForServiceAction

valid {
    input.Body.ServiceActionId == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.Body.AcceptLanguage == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRecordHistory

enum_AccessLevelFilterKey := [ "Account", "Role", "User" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.AccessLevelFilter.Key == enum_AccessLevelFilterKey[_]
    input.Body.AccessLevelFilter.Value == STRING
    input.Body.SearchFilter.Key == STRING
    input.Body.SearchFilter.Value == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListResourcesForTagOption

valid {
    input.Body.TagOptionId == STRING
    input.Body.ResourceType == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListServiceActions

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListServiceActionsForProvisioningArtifact

valid {
    input.Body.ProductId == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.Body.AcceptLanguage == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStackInstancesForProvisionedProduct

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProvisionedProductId == STRING
    input.Body.PageToken == STRING
    input.Body.PageSize == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagOptions

valid {
    input.Body.Filters.Key == STRING
    input.Body.Filters.Value == STRING
    input.Body.Filters.Active == BOOLEAN
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

NotifyProvisionProductEngineWorkflowResult

enum_EngineWorkflowStatus := [ "SUCCEEDED", "FAILED" ]

valid {
    input.Body.WorkflowToken == STRING
    input.Body.RecordId == STRING
    input.Body.Status == enum_EngineWorkflowStatus[_]
    input.Body.FailureReason == STRING
    input.Body.ResourceIdentifier.UniqueTag.Key == STRING
    input.Body.ResourceIdentifier.UniqueTag.Value == STRING
    input.Body.Outputs[_].OutputKey == STRING
    input.Body.Outputs[_].OutputValue == STRING
    input.Body.Outputs[_].Description == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

NotifyTerminateProvisionedProductEngineWorkflowResult

enum_EngineWorkflowStatus := [ "SUCCEEDED", "FAILED" ]

valid {
    input.Body.WorkflowToken == STRING
    input.Body.RecordId == STRING
    input.Body.Status == enum_EngineWorkflowStatus[_]
    input.Body.FailureReason == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

NotifyUpdateProvisionedProductEngineWorkflowResult

enum_EngineWorkflowStatus := [ "SUCCEEDED", "FAILED" ]

valid {
    input.Body.WorkflowToken == STRING
    input.Body.RecordId == STRING
    input.Body.Status == enum_EngineWorkflowStatus[_]
    input.Body.FailureReason == STRING
    input.Body.Outputs[_].OutputKey == STRING
    input.Body.Outputs[_].OutputValue == STRING
    input.Body.Outputs[_].Description == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ProvisionProduct

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProductId == STRING
    input.Body.ProductName == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.Body.ProvisioningArtifactName == STRING
    input.Body.PathId == STRING
    input.Body.PathName == STRING
    input.Body.ProvisionedProductName == STRING
    input.Body.ProvisioningParameters[_].Key == STRING
    input.Body.ProvisioningParameters[_].Value == STRING
    input.Body.ProvisioningPreferences.StackSetAccounts[_] == STRING
    input.Body.ProvisioningPreferences.StackSetRegions[_] == STRING
    input.Body.ProvisioningPreferences.StackSetFailureToleranceCount == INTEGER
    input.Body.ProvisioningPreferences.StackSetFailureTolerancePercentage == INTEGER
    input.Body.ProvisioningPreferences.StackSetMaxConcurrencyCount == INTEGER
    input.Body.ProvisioningPreferences.StackSetMaxConcurrencyPercentage == INTEGER
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.NotificationArns[_] == STRING
    input.Body.ProvisionToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RejectPortfolioShare

enum_PortfolioShareType := [ "IMPORTED", "AWS_SERVICECATALOG", "AWS_ORGANIZATIONS" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.PortfolioShareType == enum_PortfolioShareType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ScanProvisionedProducts

enum_AccessLevelFilterKey := [ "Account", "Role", "User" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.AccessLevelFilter.Key == enum_AccessLevelFilterKey[_]
    input.Body.AccessLevelFilter.Value == STRING
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchProducts

enum_ProductViewSortBy := [ "Title", "VersionCount", "CreationDate" ]
enum_SortOrder := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.Filters.FullTextSearch[_] == STRING
    input.Body.Filters.Owner[_] == STRING
    input.Body.Filters.ProductType[_] == STRING
    input.Body.Filters.SourceProductId[_] == STRING
    input.Body.PageSize == INTEGER
    input.Body.SortBy == enum_ProductViewSortBy[_]
    input.Body.SortOrder == enum_SortOrder[_]
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchProductsAsAdmin

enum_ProductSource := [ "ACCOUNT" ]
enum_ProductViewSortBy := [ "Title", "VersionCount", "CreationDate" ]
enum_SortOrder := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.Filters.FullTextSearch[_] == STRING
    input.Body.Filters.Owner[_] == STRING
    input.Body.Filters.ProductType[_] == STRING
    input.Body.Filters.SourceProductId[_] == STRING
    input.Body.SortBy == enum_ProductViewSortBy[_]
    input.Body.SortOrder == enum_SortOrder[_]
    input.Body.PageToken == STRING
    input.Body.PageSize == INTEGER
    input.Body.ProductSource == enum_ProductSource[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SearchProvisionedProducts

enum_AccessLevelFilterKey := [ "Account", "Role", "User" ]
enum_SortOrder := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.AccessLevelFilter.Key == enum_AccessLevelFilterKey[_]
    input.Body.AccessLevelFilter.Value == STRING
    input.Body.Filters.SearchQuery[_] == STRING
    input.Body.SortBy == STRING
    input.Body.SortOrder == enum_SortOrder[_]
    input.Body.PageSize == INTEGER
    input.Body.PageToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TerminateProvisionedProduct

valid {
    input.Body.ProvisionedProductName == STRING
    input.Body.ProvisionedProductId == STRING
    input.Body.TerminateToken == STRING
    input.Body.IgnoreErrors == BOOLEAN
    input.Body.AcceptLanguage == STRING
    input.Body.RetainPhysicalResources == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateConstraint

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.Id == STRING
    input.Body.Description == STRING
    input.Body.Parameters == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePortfolio

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.Id == STRING
    input.Body.DisplayName == STRING
    input.Body.Description == STRING
    input.Body.ProviderName == STRING
    input.Body.AddTags[_].Key == STRING
    input.Body.AddTags[_].Value == STRING
    input.Body.RemoveTags[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePortfolioShare

enum_OrganizationNodeType := [ "ORGANIZATION", "ORGANIZATIONAL_UNIT", "ACCOUNT" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.PortfolioId == STRING
    input.Body.AccountId == STRING
    input.Body.OrganizationNode.Type == enum_OrganizationNodeType[_]
    input.Body.OrganizationNode.Value == STRING
    input.Body.ShareTagOptions == BOOLEAN
    input.Body.SharePrincipals == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProduct

enum_SourceType := [ "CODESTAR" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.Id == STRING
    input.Body.Name == STRING
    input.Body.Owner == STRING
    input.Body.Description == STRING
    input.Body.Distributor == STRING
    input.Body.SupportDescription == STRING
    input.Body.SupportEmail == STRING
    input.Body.SupportUrl == STRING
    input.Body.AddTags[_].Key == STRING
    input.Body.AddTags[_].Value == STRING
    input.Body.RemoveTags[_] == STRING
    input.Body.SourceConnection.Type == enum_SourceType[_]
    input.Body.SourceConnection.ConnectionParameters.CodeStar.ConnectionArn == STRING
    input.Body.SourceConnection.ConnectionParameters.CodeStar.Repository == STRING
    input.Body.SourceConnection.ConnectionParameters.CodeStar.Branch == STRING
    input.Body.SourceConnection.ConnectionParameters.CodeStar.ArtifactPath == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProvisionedProduct

enum_StackSetOperationType := [ "CREATE", "UPDATE", "DELETE" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProvisionedProductName == STRING
    input.Body.ProvisionedProductId == STRING
    input.Body.ProductId == STRING
    input.Body.ProductName == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.Body.ProvisioningArtifactName == STRING
    input.Body.PathId == STRING
    input.Body.PathName == STRING
    input.Body.ProvisioningParameters[_].Key == STRING
    input.Body.ProvisioningParameters[_].Value == STRING
    input.Body.ProvisioningParameters[_].UsePreviousValue == BOOLEAN
    input.Body.ProvisioningPreferences.StackSetAccounts[_] == STRING
    input.Body.ProvisioningPreferences.StackSetRegions[_] == STRING
    input.Body.ProvisioningPreferences.StackSetFailureToleranceCount == INTEGER
    input.Body.ProvisioningPreferences.StackSetFailureTolerancePercentage == INTEGER
    input.Body.ProvisioningPreferences.StackSetMaxConcurrencyCount == INTEGER
    input.Body.ProvisioningPreferences.StackSetMaxConcurrencyPercentage == INTEGER
    input.Body.ProvisioningPreferences.StackSetOperationType == enum_StackSetOperationType[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.UpdateToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProvisionedProductProperties

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProvisionedProductId == STRING
    input.Body.ProvisionedProductProperties.OWNER == STRING
    input.Body.ProvisionedProductProperties.LAUNCH_ROLE == STRING
    input.Body.IdempotencyToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateProvisioningArtifact

enum_ProvisioningArtifactGuidance := [ "DEFAULT", "DEPRECATED" ]

valid {
    input.Body.AcceptLanguage == STRING
    input.Body.ProductId == STRING
    input.Body.ProvisioningArtifactId == STRING
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.Active == BOOLEAN
    input.Body.Guidance == enum_ProvisioningArtifactGuidance[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateServiceAction

valid {
    input.Body.Id == STRING
    input.Body.Name == STRING
    input.Body.Definition.Name == STRING
    input.Body.Definition.Version == STRING
    input.Body.Definition.AssumeRole == STRING
    input.Body.Definition.Parameters == STRING
    input.Body.Description == STRING
    input.Body.AcceptLanguage == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTagOption

valid {
    input.Body.Id == STRING
    input.Body.Value == STRING
    input.Body.Active == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}