WORKSPACES

AcceptAccountLinkInvitation

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

AssociateConnectionAlias

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

AssociateIpGroups

valid {
    input.Body.DirectoryId == STRING
    input.Body.GroupIds[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateWorkspaceApplication

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

AuthorizeIpRules

valid {
    input.Body.GroupId == STRING
    input.Body.UserRules[_].ipRule == STRING
    input.Body.UserRules[_].ruleDesc == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CopyWorkspaceImage

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.SourceImageId == STRING
    input.Body.SourceRegion == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateAccountLinkInvitation

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

CreateConnectClientAddIn

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

CreateConnectionAlias

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

CreateIpGroup

valid {
    input.Body.GroupName == STRING
    input.Body.GroupDesc == STRING
    input.Body.UserRules[_].ipRule == STRING
    input.Body.UserRules[_].ruleDesc == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateStandbyWorkspaces

enum_DataReplication := [ "NO_REPLICATION", "PRIMARY_AS_SOURCE" ]

valid {
    input.Body.PrimaryRegion == STRING
    input.Body.StandbyWorkspaces[_].PrimaryWorkspaceId == STRING
    input.Body.StandbyWorkspaces[_].VolumeEncryptionKey == STRING
    input.Body.StandbyWorkspaces[_].DirectoryId == STRING
    input.Body.StandbyWorkspaces[_].Tags[_].Key == STRING
    input.Body.StandbyWorkspaces[_].Tags[_].Value == STRING
    input.Body.StandbyWorkspaces[_].DataReplication == enum_DataReplication[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTags

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

CreateUpdatedWorkspaceImage

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

CreateWorkspaceBundle

enum_Compute := [ "VALUE", "STANDARD", "PERFORMANCE", "POWER", "GRAPHICS", "POWERPRO", "GRAPHICSPRO", "GRAPHICS_G4DN", "GRAPHICSPRO_G4DN" ]

valid {
    input.Body.BundleName == STRING
    input.Body.BundleDescription == STRING
    input.Body.ImageId == STRING
    input.Body.ComputeType.Name == enum_Compute[_]
    input.Body.UserStorage.Capacity == STRING
    input.Body.RootStorage.Capacity == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWorkspaceImage

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

CreateWorkspaces

enum_AGAModeForWorkSpaceEnum := [ "ENABLED_AUTO", "DISABLED", "INHERITED" ]
enum_AGAPreferredProtocolForWorkSpace := [ "TCP", "NONE", "INHERITED" ]
enum_Compute := [ "VALUE", "STANDARD", "PERFORMANCE", "POWER", "GRAPHICS", "POWERPRO", "GRAPHICSPRO", "GRAPHICS_G4DN", "GRAPHICSPRO_G4DN" ]
enum_OperatingSystemName := [ "AMAZON_LINUX_2", "UBUNTU_18_04", "UBUNTU_20_04", "UBUNTU_22_04", "UNKNOWN", "WINDOWS_10", "WINDOWS_11", "WINDOWS_7", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "RHEL_8", "ROCKY_8" ]
enum_Protocol := [ "PCOIP", "WSP" ]
enum_RunningMode := [ "AUTO_STOP", "ALWAYS_ON", "MANUAL" ]

valid {
    input.Body.Workspaces[_].DirectoryId == STRING
    input.Body.Workspaces[_].UserName == STRING
    input.Body.Workspaces[_].BundleId == STRING
    input.Body.Workspaces[_].VolumeEncryptionKey == STRING
    input.Body.Workspaces[_].UserVolumeEncryptionEnabled == BOOLEAN
    input.Body.Workspaces[_].RootVolumeEncryptionEnabled == BOOLEAN
    input.Body.Workspaces[_].WorkspaceProperties.RunningMode == enum_RunningMode[_]
    input.Body.Workspaces[_].WorkspaceProperties.RunningModeAutoStopTimeoutInMinutes == INTEGER
    input.Body.Workspaces[_].WorkspaceProperties.RootVolumeSizeGib == INTEGER
    input.Body.Workspaces[_].WorkspaceProperties.UserVolumeSizeGib == INTEGER
    input.Body.Workspaces[_].WorkspaceProperties.ComputeTypeName == enum_Compute[_]
    input.Body.Workspaces[_].WorkspaceProperties.Protocols[_] == enum_Protocol[_]
    input.Body.Workspaces[_].WorkspaceProperties.OperatingSystemName == enum_OperatingSystemName[_]
    input.Body.Workspaces[_].WorkspaceProperties.GlobalAccelerator.Mode == enum_AGAModeForWorkSpaceEnum[_]
    input.Body.Workspaces[_].WorkspaceProperties.GlobalAccelerator.PreferredProtocol == enum_AGAPreferredProtocolForWorkSpace[_]
    input.Body.Workspaces[_].Tags[_].Key == STRING
    input.Body.Workspaces[_].Tags[_].Value == STRING
    input.Body.Workspaces[_].WorkspaceName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWorkspacesPool

enum_ApplicationSettingsStatusEnum := [ "DISABLED", "ENABLED" ]

valid {
    input.Body.PoolName == STRING
    input.Body.Description == STRING
    input.Body.BundleId == STRING
    input.Body.DirectoryId == STRING
    input.Body.Capacity.DesiredUserSessions == INTEGER
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ApplicationSettings.Status == enum_ApplicationSettingsStatusEnum[_]
    input.Body.ApplicationSettings.SettingsGroup == STRING
    input.Body.TimeoutSettings.DisconnectTimeoutInSeconds == INTEGER
    input.Body.TimeoutSettings.IdleDisconnectTimeoutInSeconds == INTEGER
    input.Body.TimeoutSettings.MaxUserDurationInSeconds == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteAccountLinkInvitation

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

DeleteClientBranding

enum_ClientDeviceType := [ "DeviceTypeWindows", "DeviceTypeOsx", "DeviceTypeAndroid", "DeviceTypeIos", "DeviceTypeLinux", "DeviceTypeWeb" ]

valid {
    input.Body.ResourceId == STRING
    input.Body.Platforms[_] == enum_ClientDeviceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteConnectClientAddIn

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

DeleteConnectionAlias

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

DeleteIpGroup

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

DeleteTags

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

DeleteWorkspaceBundle

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

DeleteWorkspaceImage

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

DeployWorkspaceApplications

valid {
    input.Body.WorkspaceId == STRING
    input.Body.Force == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterWorkspaceDirectory

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

DescribeAccount

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

DescribeAccountModifications

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

DescribeApplicationAssociations

enum_ApplicationAssociatedResourceType := [ "WORKSPACE", "BUNDLE", "IMAGE" ]

valid {
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.ApplicationId == STRING
    input.Body.AssociatedResourceTypes[_] == enum_ApplicationAssociatedResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeApplications

enum_Compute := [ "VALUE", "STANDARD", "PERFORMANCE", "POWER", "GRAPHICS", "POWERPRO", "GRAPHICSPRO", "GRAPHICS_G4DN", "GRAPHICSPRO_G4DN" ]
enum_OperatingSystemName := [ "AMAZON_LINUX_2", "UBUNTU_18_04", "UBUNTU_20_04", "UBUNTU_22_04", "UNKNOWN", "WINDOWS_10", "WINDOWS_11", "WINDOWS_7", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "RHEL_8", "ROCKY_8" ]
enum_WorkSpaceApplicationLicenseType := [ "LICENSED", "UNLICENSED" ]

valid {
    input.Body.ApplicationIds[_] == STRING
    input.Body.ComputeTypeNames[_] == enum_Compute[_]
    input.Body.LicenseType == enum_WorkSpaceApplicationLicenseType[_]
    input.Body.OperatingSystemNames[_] == enum_OperatingSystemName[_]
    input.Body.Owner == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeBundleAssociations

enum_BundleAssociatedResourceType := [ "APPLICATION" ]

valid {
    input.Body.BundleId == STRING
    input.Body.AssociatedResourceTypes[_] == enum_BundleAssociatedResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeClientBranding

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

DescribeClientProperties

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

DescribeConnectClientAddIns

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

DescribeConnectionAliasPermissions

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

DescribeConnectionAliases

valid {
    input.Body.AliasIds[_] == STRING
    input.Body.ResourceId == STRING
    input.Body.Limit == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeImageAssociations

enum_ImageAssociatedResourceType := [ "APPLICATION" ]

valid {
    input.Body.ImageId == STRING
    input.Body.AssociatedResourceTypes[_] == enum_ImageAssociatedResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeIpGroups

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

DescribeTags

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

DescribeWorkspaceAssociations

enum_WorkSpaceAssociatedResourceType := [ "APPLICATION" ]

valid {
    input.Body.WorkspaceId == STRING
    input.Body.AssociatedResourceTypes[_] == enum_WorkSpaceAssociatedResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeWorkspaceBundles

valid {
    input.Body.BundleIds[_] == STRING
    input.Body.Owner == STRING
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeWorkspaceDirectories

enum_DescribeWorkspaceDirectoriesFilterName := [ "USER_IDENTITY_TYPE", "WORKSPACE_TYPE" ]

valid {
    input.Body.DirectoryIds[_] == STRING
    input.Body.WorkspaceDirectoryNames[_] == STRING
    input.Body.Limit == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filters[_].Name == enum_DescribeWorkspaceDirectoriesFilterName[_]
    input.Body.Filters[_].Values[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeWorkspaceImagePermissions

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

DescribeWorkspaceImages

enum_ImageType := [ "OWNED", "SHARED" ]

valid {
    input.Body.ImageIds[_] == STRING
    input.Body.ImageType == enum_ImageType[_]
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeWorkspaceSnapshots

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

DescribeWorkspaces

valid {
    input.Body.WorkspaceIds[_] == STRING
    input.Body.DirectoryId == STRING
    input.Body.UserName == STRING
    input.Body.BundleId == STRING
    input.Body.Limit == INTEGER
    input.Body.NextToken == STRING
    input.Body.WorkspaceName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeWorkspacesConnectionStatus

valid {
    input.Body.WorkspaceIds[_] == STRING
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeWorkspacesPoolSessions

valid {
    input.Body.PoolId == STRING
    input.Body.UserId == STRING
    input.Body.Limit == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeWorkspacesPools

enum_DescribeWorkspacesPoolsFilterName := [ "PoolName" ]
enum_DescribeWorkspacesPoolsFilterOperator := [ "EQUALS", "NOTEQUALS", "CONTAINS", "NOTCONTAINS" ]

valid {
    input.Body.PoolIds[_] == STRING
    input.Body.Filters[_].Name == enum_DescribeWorkspacesPoolsFilterName[_]
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Operator == enum_DescribeWorkspacesPoolsFilterOperator[_]
    input.Body.Limit == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateConnectionAlias

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

DisassociateIpGroups

valid {
    input.Body.DirectoryId == STRING
    input.Body.GroupIds[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateWorkspaceApplication

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

GetAccountLink

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

ImportClientBranding

valid {
    input.Body.ResourceId == STRING
    input.Body.DeviceTypeWindows.Logo == BLOB
    input.Body.DeviceTypeWindows.SupportEmail == STRING
    input.Body.DeviceTypeWindows.SupportLink == STRING
    input.Body.DeviceTypeWindows.ForgotPasswordLink == STRING
    input.Body.DeviceTypeWindows.LoginMessage.STRING == STRING
    input.Body.DeviceTypeOsx.Logo == BLOB
    input.Body.DeviceTypeOsx.SupportEmail == STRING
    input.Body.DeviceTypeOsx.SupportLink == STRING
    input.Body.DeviceTypeOsx.ForgotPasswordLink == STRING
    input.Body.DeviceTypeOsx.LoginMessage.STRING == STRING
    input.Body.DeviceTypeAndroid.Logo == BLOB
    input.Body.DeviceTypeAndroid.SupportEmail == STRING
    input.Body.DeviceTypeAndroid.SupportLink == STRING
    input.Body.DeviceTypeAndroid.ForgotPasswordLink == STRING
    input.Body.DeviceTypeAndroid.LoginMessage.STRING == STRING
    input.Body.DeviceTypeIos.Logo == BLOB
    input.Body.DeviceTypeIos.Logo2x == BLOB
    input.Body.DeviceTypeIos.Logo3x == BLOB
    input.Body.DeviceTypeIos.SupportEmail == STRING
    input.Body.DeviceTypeIos.SupportLink == STRING
    input.Body.DeviceTypeIos.ForgotPasswordLink == STRING
    input.Body.DeviceTypeIos.LoginMessage.STRING == STRING
    input.Body.DeviceTypeLinux.Logo == BLOB
    input.Body.DeviceTypeLinux.SupportEmail == STRING
    input.Body.DeviceTypeLinux.SupportLink == STRING
    input.Body.DeviceTypeLinux.ForgotPasswordLink == STRING
    input.Body.DeviceTypeLinux.LoginMessage.STRING == STRING
    input.Body.DeviceTypeWeb.Logo == BLOB
    input.Body.DeviceTypeWeb.SupportEmail == STRING
    input.Body.DeviceTypeWeb.SupportLink == STRING
    input.Body.DeviceTypeWeb.ForgotPasswordLink == STRING
    input.Body.DeviceTypeWeb.LoginMessage.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportWorkspaceImage

enum_Application := [ "Microsoft_Office_2016", "Microsoft_Office_2019" ]
enum_WorkspaceImageIngestionProcess := [ "BYOL_REGULAR", "BYOL_GRAPHICS", "BYOL_GRAPHICSPRO", "BYOL_GRAPHICS_G4DN", "BYOL_REGULAR_WSP", "BYOL_GRAPHICS_G4DN_WSP", "BYOL_REGULAR_BYOP", "BYOL_GRAPHICS_G4DN_BYOP" ]

valid {
    input.Body.Ec2ImageId == STRING
    input.Body.IngestionProcess == enum_WorkspaceImageIngestionProcess[_]
    input.Body.ImageName == STRING
    input.Body.ImageDescription == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Applications[_] == enum_Application[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAccountLinks

enum_AccountLinkStatusEnum := [ "LINKED", "LINKING_FAILED", "LINK_NOT_FOUND", "PENDING_ACCEPTANCE_BY_TARGET_ACCOUNT", "REJECTED" ]

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

ListAvailableManagementCidrRanges

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

MigrateWorkspace

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

ModifyAccount

enum_DedicatedTenancySupportEnum := [ "ENABLED" ]

valid {
    input.Body.DedicatedTenancySupport == enum_DedicatedTenancySupportEnum[_]
    input.Body.DedicatedTenancyManagementCidrRange == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyCertificateBasedAuthProperties

enum_CertificateBasedAuthStatusEnum := [ "DISABLED", "ENABLED" ]
enum_DeletableCertificateBasedAuthProperty := [ "CERTIFICATE_BASED_AUTH_PROPERTIES_CERTIFICATE_AUTHORITY_ARN" ]

valid {
    input.Body.ResourceId == STRING
    input.Body.CertificateBasedAuthProperties.Status == enum_CertificateBasedAuthStatusEnum[_]
    input.Body.CertificateBasedAuthProperties.CertificateAuthorityArn == STRING
    input.Body.PropertiesToDelete[_] == enum_DeletableCertificateBasedAuthProperty[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyClientProperties

enum_LogUploadEnum := [ "ENABLED", "DISABLED" ]
enum_ReconnectEnum := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.ResourceId == STRING
    input.Body.ClientProperties.ReconnectEnabled == enum_ReconnectEnum[_]
    input.Body.ClientProperties.LogUploadEnabled == enum_LogUploadEnum[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifySamlProperties

enum_DeletableSamlProperty := [ "SAML_PROPERTIES_USER_ACCESS_URL", "SAML_PROPERTIES_RELAY_STATE_PARAMETER_NAME" ]
enum_SamlStatusEnum := [ "DISABLED", "ENABLED", "ENABLED_WITH_DIRECTORY_LOGIN_FALLBACK" ]

valid {
    input.Body.ResourceId == STRING
    input.Body.SamlProperties.Status == enum_SamlStatusEnum[_]
    input.Body.SamlProperties.UserAccessUrl == STRING
    input.Body.SamlProperties.RelayStateParameterName == STRING
    input.Body.PropertiesToDelete[_] == enum_DeletableSamlProperty[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifySelfservicePermissions

enum_ReconnectEnum := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.ResourceId == STRING
    input.Body.SelfservicePermissions.RestartWorkspace == enum_ReconnectEnum[_]
    input.Body.SelfservicePermissions.IncreaseVolumeSize == enum_ReconnectEnum[_]
    input.Body.SelfservicePermissions.ChangeComputeType == enum_ReconnectEnum[_]
    input.Body.SelfservicePermissions.SwitchRunningMode == enum_ReconnectEnum[_]
    input.Body.SelfservicePermissions.RebuildWorkspace == enum_ReconnectEnum[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyStreamingProperties

enum_AGAModeForDirectoryEnum := [ "ENABLED_AUTO", "DISABLED" ]
enum_AGAPreferredProtocolForDirectory := [ "TCP", "NONE" ]
enum_StorageConnectorStatusEnum := [ "ENABLED", "DISABLED" ]
enum_StorageConnectorTypeEnum := [ "HOME_FOLDER" ]
enum_StreamingExperiencePreferredProtocolEnum := [ "TCP", "UDP" ]
enum_UserSettingActionEnum := [ "CLIPBOARD_COPY_FROM_LOCAL_DEVICE", "CLIPBOARD_COPY_TO_LOCAL_DEVICE", "PRINTING_TO_LOCAL_DEVICE", "SMART_CARD" ]
enum_UserSettingPermissionEnum := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.ResourceId == STRING
    input.Body.StreamingProperties.StreamingExperiencePreferredProtocol == enum_StreamingExperiencePreferredProtocolEnum[_]
    input.Body.StreamingProperties.UserSettings[_].Action == enum_UserSettingActionEnum[_]
    input.Body.StreamingProperties.UserSettings[_].Permission == enum_UserSettingPermissionEnum[_]
    input.Body.StreamingProperties.UserSettings[_].MaximumLength == INTEGER
    input.Body.StreamingProperties.StorageConnectors[_].ConnectorType == enum_StorageConnectorTypeEnum[_]
    input.Body.StreamingProperties.StorageConnectors[_].Status == enum_StorageConnectorStatusEnum[_]
    input.Body.StreamingProperties.GlobalAccelerator.Mode == enum_AGAModeForDirectoryEnum[_]
    input.Body.StreamingProperties.GlobalAccelerator.PreferredProtocol == enum_AGAPreferredProtocolForDirectory[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyWorkspaceAccessProperties

enum_AccessPropertyValue := [ "ALLOW", "DENY" ]

valid {
    input.Body.ResourceId == STRING
    input.Body.WorkspaceAccessProperties.DeviceTypeWindows == enum_AccessPropertyValue[_]
    input.Body.WorkspaceAccessProperties.DeviceTypeOsx == enum_AccessPropertyValue[_]
    input.Body.WorkspaceAccessProperties.DeviceTypeWeb == enum_AccessPropertyValue[_]
    input.Body.WorkspaceAccessProperties.DeviceTypeIos == enum_AccessPropertyValue[_]
    input.Body.WorkspaceAccessProperties.DeviceTypeAndroid == enum_AccessPropertyValue[_]
    input.Body.WorkspaceAccessProperties.DeviceTypeChromeOs == enum_AccessPropertyValue[_]
    input.Body.WorkspaceAccessProperties.DeviceTypeZeroClient == enum_AccessPropertyValue[_]
    input.Body.WorkspaceAccessProperties.DeviceTypeLinux == enum_AccessPropertyValue[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyWorkspaceCreationProperties

valid {
    input.Body.ResourceId == STRING
    input.Body.WorkspaceCreationProperties.EnableWorkDocs == BOOLEAN
    input.Body.WorkspaceCreationProperties.EnableInternetAccess == BOOLEAN
    input.Body.WorkspaceCreationProperties.DefaultOu == STRING
    input.Body.WorkspaceCreationProperties.CustomSecurityGroupId == STRING
    input.Body.WorkspaceCreationProperties.UserEnabledAsLocalAdministrator == BOOLEAN
    input.Body.WorkspaceCreationProperties.EnableMaintenanceMode == BOOLEAN
    input.Body.WorkspaceCreationProperties.InstanceIamRoleArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyWorkspaceProperties

enum_AGAModeForWorkSpaceEnum := [ "ENABLED_AUTO", "DISABLED", "INHERITED" ]
enum_AGAPreferredProtocolForWorkSpace := [ "TCP", "NONE", "INHERITED" ]
enum_Compute := [ "VALUE", "STANDARD", "PERFORMANCE", "POWER", "GRAPHICS", "POWERPRO", "GRAPHICSPRO", "GRAPHICS_G4DN", "GRAPHICSPRO_G4DN" ]
enum_DataReplication := [ "NO_REPLICATION", "PRIMARY_AS_SOURCE" ]
enum_OperatingSystemName := [ "AMAZON_LINUX_2", "UBUNTU_18_04", "UBUNTU_20_04", "UBUNTU_22_04", "UNKNOWN", "WINDOWS_10", "WINDOWS_11", "WINDOWS_7", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "RHEL_8", "ROCKY_8" ]
enum_Protocol := [ "PCOIP", "WSP" ]
enum_RunningMode := [ "AUTO_STOP", "ALWAYS_ON", "MANUAL" ]

valid {
    input.Body.WorkspaceId == STRING
    input.Body.WorkspaceProperties.RunningMode == enum_RunningMode[_]
    input.Body.WorkspaceProperties.RunningModeAutoStopTimeoutInMinutes == INTEGER
    input.Body.WorkspaceProperties.RootVolumeSizeGib == INTEGER
    input.Body.WorkspaceProperties.UserVolumeSizeGib == INTEGER
    input.Body.WorkspaceProperties.ComputeTypeName == enum_Compute[_]
    input.Body.WorkspaceProperties.Protocols[_] == enum_Protocol[_]
    input.Body.WorkspaceProperties.OperatingSystemName == enum_OperatingSystemName[_]
    input.Body.WorkspaceProperties.GlobalAccelerator.Mode == enum_AGAModeForWorkSpaceEnum[_]
    input.Body.WorkspaceProperties.GlobalAccelerator.PreferredProtocol == enum_AGAPreferredProtocolForWorkSpace[_]
    input.Body.DataReplication == enum_DataReplication[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyWorkspaceState

enum_TargetWorkspaceState := [ "AVAILABLE", "ADMIN_MAINTENANCE" ]

valid {
    input.Body.WorkspaceId == STRING
    input.Body.WorkspaceState == enum_TargetWorkspaceState[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RebootWorkspaces

valid {
    input.Body.RebootWorkspaceRequests[_].WorkspaceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RebuildWorkspaces

valid {
    input.Body.RebuildWorkspaceRequests[_].WorkspaceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterWorkspaceDirectory

enum_Tenancy := [ "DEDICATED", "SHARED" ]
enum_UserIdentityType := [ "CUSTOMER_MANAGED", "AWS_DIRECTORY_SERVICE", "AWS_IAM_IDENTITY_CENTER" ]
enum_WorkspaceType := [ "PERSONAL", "POOLS" ]

valid {
    input.Body.DirectoryId == STRING
    input.Body.SubnetIds[_] == STRING
    input.Body.EnableWorkDocs == BOOLEAN
    input.Body.EnableSelfService == BOOLEAN
    input.Body.Tenancy == enum_Tenancy[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.WorkspaceDirectoryName == STRING
    input.Body.WorkspaceDirectoryDescription == STRING
    input.Body.UserIdentityType == enum_UserIdentityType[_]
    input.Body.IdcInstanceArn == STRING
    input.Body.MicrosoftEntraConfig.TenantId == STRING
    input.Body.MicrosoftEntraConfig.ApplicationConfigSecretArn == STRING
    input.Body.WorkspaceType == enum_WorkspaceType[_]
    input.Body.ActiveDirectoryConfig.DomainName == STRING
    input.Body.ActiveDirectoryConfig.ServiceAccountSecretArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RejectAccountLinkInvitation

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

RestoreWorkspace

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

RevokeIpRules

valid {
    input.Body.GroupId == STRING
    input.Body.UserRules[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartWorkspaces

valid {
    input.Body.StartWorkspaceRequests[_].WorkspaceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartWorkspacesPool

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

StopWorkspaces

valid {
    input.Body.StopWorkspaceRequests[_].WorkspaceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopWorkspacesPool

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

TerminateWorkspaces

valid {
    input.Body.TerminateWorkspaceRequests[_].WorkspaceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TerminateWorkspacesPool

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

TerminateWorkspacesPoolSession

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

UpdateConnectClientAddIn

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

UpdateConnectionAliasPermission

valid {
    input.Body.AliasId == STRING
    input.Body.ConnectionAliasPermission.SharedAccountId == STRING
    input.Body.ConnectionAliasPermission.AllowAssociation == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRulesOfIpGroup

valid {
    input.Body.GroupId == STRING
    input.Body.UserRules[_].ipRule == STRING
    input.Body.UserRules[_].ruleDesc == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateWorkspaceBundle

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

UpdateWorkspaceImagePermission

valid {
    input.Body.ImageId == STRING
    input.Body.AllowCopyImage == BOOLEAN
    input.Body.SharedAccountId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateWorkspacesPool

enum_ApplicationSettingsStatusEnum := [ "DISABLED", "ENABLED" ]

valid {
    input.Body.PoolId == STRING
    input.Body.Description == STRING
    input.Body.BundleId == STRING
    input.Body.DirectoryId == STRING
    input.Body.Capacity.DesiredUserSessions == INTEGER
    input.Body.ApplicationSettings.Status == enum_ApplicationSettingsStatusEnum[_]
    input.Body.ApplicationSettings.SettingsGroup == STRING
    input.Body.TimeoutSettings.DisconnectTimeoutInSeconds == INTEGER
    input.Body.TimeoutSettings.IdleDisconnectTimeoutInSeconds == INTEGER
    input.Body.TimeoutSettings.MaxUserDurationInSeconds == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}