AddStorageSystem

enum_DiscoverySystemType := [ "NetAppONTAP" ]

valid {
    input.Body.ServerConfiguration.ServerHostname == STRING
    input.Body.ServerConfiguration.ServerPort == INTEGER
    input.Body.SystemType == enum_DiscoverySystemType[_]
    input.Body.AgentArns[_] == STRING
    input.Body.CloudWatchLogGroupArn == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Name == STRING
    input.Body.ClientToken == STRING
    input.Body.Credentials.Username == STRING
    input.Body.Credentials.Password == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelTaskExecution

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

CreateAgent

valid {
    input.Body.ActivationKey == STRING
    input.Body.AgentName == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.VpcEndpointId == STRING
    input.Body.SubnetArns[_] == STRING
    input.Body.SecurityGroupArns[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocationAzureBlob

enum_AzureAccessTier := [ "HOT", "COOL", "ARCHIVE" ]
enum_AzureBlobAuthenticationType := [ "SAS" ]
enum_AzureBlobType := [ "BLOCK" ]

valid {
    input.Body.ContainerUrl == STRING
    input.Body.AuthenticationType == enum_AzureBlobAuthenticationType[_]
    input.Body.SasConfiguration.Token == STRING
    input.Body.BlobType == enum_AzureBlobType[_]
    input.Body.AccessTier == enum_AzureAccessTier[_]
    input.Body.Subdirectory == STRING
    input.Body.AgentArns[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocationEfs

enum_EfsInTransitEncryption := [ "NONE", "TLS1_2" ]

valid {
    input.Body.Subdirectory == STRING
    input.Body.EfsFilesystemArn == STRING
    input.Body.Ec2Config.SubnetArn == STRING
    input.Body.Ec2Config.SecurityGroupArns[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.AccessPointArn == STRING
    input.Body.FileSystemAccessRoleArn == STRING
    input.Body.InTransitEncryption == enum_EfsInTransitEncryption[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocationFsxLustre

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

CreateLocationFsxOntap

enum_NfsVersion := [ "AUTOMATIC", "NFS3", "NFS4_0", "NFS4_1" ]
enum_SmbVersion := [ "AUTOMATIC", "SMB2", "SMB3", "SMB1", "SMB2_0" ]

valid {
    input.Body.Protocol.NFS.MountOptions.Version == enum_NfsVersion[_]
    input.Body.Protocol.SMB.Domain == STRING
    input.Body.Protocol.SMB.MountOptions.Version == enum_SmbVersion[_]
    input.Body.Protocol.SMB.Password == STRING
    input.Body.Protocol.SMB.User == STRING
    input.Body.SecurityGroupArns[_] == STRING
    input.Body.StorageVirtualMachineArn == STRING
    input.Body.Subdirectory == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocationFsxOpenZfs

enum_NfsVersion := [ "AUTOMATIC", "NFS3", "NFS4_0", "NFS4_1" ]
enum_SmbVersion := [ "AUTOMATIC", "SMB2", "SMB3", "SMB1", "SMB2_0" ]

valid {
    input.Body.FsxFilesystemArn == STRING
    input.Body.Protocol.NFS.MountOptions.Version == enum_NfsVersion[_]
    input.Body.Protocol.SMB.Domain == STRING
    input.Body.Protocol.SMB.MountOptions.Version == enum_SmbVersion[_]
    input.Body.Protocol.SMB.Password == STRING
    input.Body.Protocol.SMB.User == STRING
    input.Body.SecurityGroupArns[_] == STRING
    input.Body.Subdirectory == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocationFsxWindows

valid {
    input.Body.Subdirectory == STRING
    input.Body.FsxFilesystemArn == STRING
    input.Body.SecurityGroupArns[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.User == STRING
    input.Body.Domain == STRING
    input.Body.Password == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocationHdfs

enum_HdfsAuthenticationType := [ "SIMPLE", "KERBEROS" ]
enum_HdfsDataTransferProtection := [ "DISABLED", "AUTHENTICATION", "INTEGRITY", "PRIVACY" ]
enum_HdfsRpcProtection := [ "DISABLED", "AUTHENTICATION", "INTEGRITY", "PRIVACY" ]

valid {
    input.Body.Subdirectory == STRING
    input.Body.NameNodes[_].Hostname == STRING
    input.Body.NameNodes[_].Port == INTEGER
    input.Body.BlockSize == INTEGER
    input.Body.ReplicationFactor == INTEGER
    input.Body.KmsKeyProviderUri == STRING
    input.Body.QopConfiguration.RpcProtection == enum_HdfsRpcProtection[_]
    input.Body.QopConfiguration.DataTransferProtection == enum_HdfsDataTransferProtection[_]
    input.Body.AuthenticationType == enum_HdfsAuthenticationType[_]
    input.Body.SimpleUser == STRING
    input.Body.KerberosPrincipal == STRING
    input.Body.KerberosKeytab == BLOB
    input.Body.KerberosKrb5Conf == BLOB
    input.Body.AgentArns[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocationNfs

enum_NfsVersion := [ "AUTOMATIC", "NFS3", "NFS4_0", "NFS4_1" ]

valid {
    input.Body.Subdirectory == STRING
    input.Body.ServerHostname == STRING
    input.Body.OnPremConfig.AgentArns[_] == STRING
    input.Body.MountOptions.Version == enum_NfsVersion[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocationObjectStorage

enum_ObjectStorageServerProtocol := [ "HTTPS", "HTTP" ]

valid {
    input.Body.ServerHostname == STRING
    input.Body.ServerPort == INTEGER
    input.Body.ServerProtocol == enum_ObjectStorageServerProtocol[_]
    input.Body.Subdirectory == STRING
    input.Body.BucketName == STRING
    input.Body.AccessKey == STRING
    input.Body.SecretKey == STRING
    input.Body.AgentArns[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ServerCertificate == BLOB
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocationS3

enum_S3StorageClass := [ "STANDARD", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_INSTANT_RETRIEVAL" ]

valid {
    input.Body.Subdirectory == STRING
    input.Body.S3BucketArn == STRING
    input.Body.S3StorageClass == enum_S3StorageClass[_]
    input.Body.S3Config.BucketAccessRoleArn == STRING
    input.Body.AgentArns[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLocationSmb

enum_SmbVersion := [ "AUTOMATIC", "SMB2", "SMB3", "SMB1", "SMB2_0" ]

valid {
    input.Body.Subdirectory == STRING
    input.Body.ServerHostname == STRING
    input.Body.User == STRING
    input.Body.Domain == STRING
    input.Body.Password == STRING
    input.Body.AgentArns[_] == STRING
    input.Body.MountOptions.Version == enum_SmbVersion[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTask

enum_Atime := [ "NONE", "BEST_EFFORT" ]
enum_FilterType := [ "SIMPLE_PATTERN" ]
enum_Gid := [ "NONE", "INT_VALUE", "NAME", "BOTH" ]
enum_LogLevel := [ "OFF", "BASIC", "TRANSFER" ]
enum_ManifestAction := [ "TRANSFER" ]
enum_ManifestFormat := [ "CSV" ]
enum_Mtime := [ "NONE", "PRESERVE" ]
enum_ObjectTags := [ "PRESERVE", "NONE" ]
enum_ObjectVersionIds := [ "INCLUDE", "NONE" ]
enum_OverwriteMode := [ "ALWAYS", "NEVER" ]
enum_PosixPermissions := [ "NONE", "PRESERVE" ]
enum_PreserveDeletedFiles := [ "PRESERVE", "REMOVE" ]
enum_PreserveDevices := [ "NONE", "PRESERVE" ]
enum_ReportLevel := [ "ERRORS_ONLY", "SUCCESSES_AND_ERRORS" ]
enum_ReportOutputType := [ "SUMMARY_ONLY", "STANDARD" ]
enum_ScheduleStatus := [ "ENABLED", "DISABLED" ]
enum_SmbSecurityDescriptorCopyFlags := [ "NONE", "OWNER_DACL", "OWNER_DACL_SACL" ]
enum_TaskMode := [ "BASIC", "ENHANCED" ]
enum_TaskQueueing := [ "ENABLED", "DISABLED" ]
enum_TransferMode := [ "CHANGED", "ALL" ]
enum_Uid := [ "NONE", "INT_VALUE", "NAME", "BOTH" ]
enum_VerifyMode := [ "POINT_IN_TIME_CONSISTENT", "ONLY_FILES_TRANSFERRED", "NONE" ]

valid {
    input.Body.SourceLocationArn == STRING
    input.Body.DestinationLocationArn == STRING
    input.Body.CloudWatchLogGroupArn == STRING
    input.Body.Name == STRING
    input.Body.Options.VerifyMode == enum_VerifyMode[_]
    input.Body.Options.OverwriteMode == enum_OverwriteMode[_]
    input.Body.Options.Atime == enum_Atime[_]
    input.Body.Options.Mtime == enum_Mtime[_]
    input.Body.Options.Uid == enum_Uid[_]
    input.Body.Options.Gid == enum_Gid[_]
    input.Body.Options.PreserveDeletedFiles == enum_PreserveDeletedFiles[_]
    input.Body.Options.PreserveDevices == enum_PreserveDevices[_]
    input.Body.Options.PosixPermissions == enum_PosixPermissions[_]
    input.Body.Options.BytesPerSecond == LONG
    input.Body.Options.TaskQueueing == enum_TaskQueueing[_]
    input.Body.Options.LogLevel == enum_LogLevel[_]
    input.Body.Options.TransferMode == enum_TransferMode[_]
    input.Body.Options.SecurityDescriptorCopyFlags == enum_SmbSecurityDescriptorCopyFlags[_]
    input.Body.Options.ObjectTags == enum_ObjectTags[_]
    input.Body.Excludes[_].FilterType == enum_FilterType[_]
    input.Body.Excludes[_].Value == STRING
    input.Body.Schedule.ScheduleExpression == STRING
    input.Body.Schedule.Status == enum_ScheduleStatus[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Includes[_].FilterType == enum_FilterType[_]
    input.Body.Includes[_].Value == STRING
    input.Body.ManifestConfig.Action == enum_ManifestAction[_]
    input.Body.ManifestConfig.Format == enum_ManifestFormat[_]
    input.Body.ManifestConfig.Source.S3.ManifestObjectPath == STRING
    input.Body.ManifestConfig.Source.S3.BucketAccessRoleArn == STRING
    input.Body.ManifestConfig.Source.S3.S3BucketArn == STRING
    input.Body.ManifestConfig.Source.S3.ManifestObjectVersionId == STRING
    input.Body.TaskReportConfig.Destination.S3.Subdirectory == STRING
    input.Body.TaskReportConfig.Destination.S3.S3BucketArn == STRING
    input.Body.TaskReportConfig.Destination.S3.BucketAccessRoleArn == STRING
    input.Body.TaskReportConfig.OutputType == enum_ReportOutputType[_]
    input.Body.TaskReportConfig.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.ObjectVersionIds == enum_ObjectVersionIds[_]
    input.Body.TaskReportConfig.Overrides.Transferred.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.Overrides.Verified.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.Overrides.Deleted.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.Overrides.Skipped.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskMode == enum_TaskMode[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteAgent

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

DeleteLocation

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

DeleteTask

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

DescribeAgent

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

DescribeDiscoveryJob

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

DescribeLocationAzureBlob

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

DescribeLocationEfs

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

DescribeLocationFsxLustre

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

DescribeLocationFsxOntap

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

DescribeLocationFsxOpenZfs

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

DescribeLocationFsxWindows

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

DescribeLocationHdfs

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

DescribeLocationNfs

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

DescribeLocationObjectStorage

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

DescribeLocationS3

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

DescribeLocationSmb

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

DescribeStorageSystem

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

DescribeStorageSystemResourceMetrics

enum_DiscoveryResourceType := [ "SVM", "VOLUME", "CLUSTER" ]

valid {
    input.Body.DiscoveryJobArn == STRING
    input.Body.ResourceType == enum_DiscoveryResourceType[_]
    input.Body.ResourceId == STRING
    input.Body.StartTime == TIMESTAMP
    input.Body.EndTime == TIMESTAMP
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeStorageSystemResources

enum_DiscoveryResourceType := [ "SVM", "VOLUME", "CLUSTER" ]

valid {
    input.Body.DiscoveryJobArn == STRING
    input.Body.ResourceType == enum_DiscoveryResourceType[_]
    input.Body.ResourceIds[_] == STRING
    input.Body.Filter.SVM[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTask

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

DescribeTaskExecution

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

GenerateRecommendations

enum_DiscoveryResourceType := [ "SVM", "VOLUME", "CLUSTER" ]

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

ListAgents

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

ListDiscoveryJobs

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

ListLocations

enum_LocationFilterName := [ "LocationUri", "LocationType", "CreationTime" ]
enum_Operator := [ "Equals", "NotEquals", "In", "LessThanOrEqual", "LessThan", "GreaterThanOrEqual", "GreaterThan", "Contains", "NotContains", "BeginsWith" ]

valid {
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filters[_].Name == enum_LocationFilterName[_]
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Operator == enum_Operator[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStorageSystems

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

ListTagsForResource

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

ListTaskExecutions

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

ListTasks

enum_Operator := [ "Equals", "NotEquals", "In", "LessThanOrEqual", "LessThan", "GreaterThanOrEqual", "GreaterThan", "Contains", "NotContains", "BeginsWith" ]
enum_TaskFilterName := [ "LocationId", "CreationTime" ]

valid {
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filters[_].Name == enum_TaskFilterName[_]
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Operator == enum_Operator[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveStorageSystem

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

StartDiscoveryJob

valid {
    input.Body.StorageSystemArn == STRING
    input.Body.CollectionDurationMinutes == INTEGER
    input.Body.ClientToken == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartTaskExecution

enum_Atime := [ "NONE", "BEST_EFFORT" ]
enum_FilterType := [ "SIMPLE_PATTERN" ]
enum_Gid := [ "NONE", "INT_VALUE", "NAME", "BOTH" ]
enum_LogLevel := [ "OFF", "BASIC", "TRANSFER" ]
enum_ManifestAction := [ "TRANSFER" ]
enum_ManifestFormat := [ "CSV" ]
enum_Mtime := [ "NONE", "PRESERVE" ]
enum_ObjectTags := [ "PRESERVE", "NONE" ]
enum_ObjectVersionIds := [ "INCLUDE", "NONE" ]
enum_OverwriteMode := [ "ALWAYS", "NEVER" ]
enum_PosixPermissions := [ "NONE", "PRESERVE" ]
enum_PreserveDeletedFiles := [ "PRESERVE", "REMOVE" ]
enum_PreserveDevices := [ "NONE", "PRESERVE" ]
enum_ReportLevel := [ "ERRORS_ONLY", "SUCCESSES_AND_ERRORS" ]
enum_ReportOutputType := [ "SUMMARY_ONLY", "STANDARD" ]
enum_SmbSecurityDescriptorCopyFlags := [ "NONE", "OWNER_DACL", "OWNER_DACL_SACL" ]
enum_TaskQueueing := [ "ENABLED", "DISABLED" ]
enum_TransferMode := [ "CHANGED", "ALL" ]
enum_Uid := [ "NONE", "INT_VALUE", "NAME", "BOTH" ]
enum_VerifyMode := [ "POINT_IN_TIME_CONSISTENT", "ONLY_FILES_TRANSFERRED", "NONE" ]

valid {
    input.Body.TaskArn == STRING
    input.Body.OverrideOptions.VerifyMode == enum_VerifyMode[_]
    input.Body.OverrideOptions.OverwriteMode == enum_OverwriteMode[_]
    input.Body.OverrideOptions.Atime == enum_Atime[_]
    input.Body.OverrideOptions.Mtime == enum_Mtime[_]
    input.Body.OverrideOptions.Uid == enum_Uid[_]
    input.Body.OverrideOptions.Gid == enum_Gid[_]
    input.Body.OverrideOptions.PreserveDeletedFiles == enum_PreserveDeletedFiles[_]
    input.Body.OverrideOptions.PreserveDevices == enum_PreserveDevices[_]
    input.Body.OverrideOptions.PosixPermissions == enum_PosixPermissions[_]
    input.Body.OverrideOptions.BytesPerSecond == LONG
    input.Body.OverrideOptions.TaskQueueing == enum_TaskQueueing[_]
    input.Body.OverrideOptions.LogLevel == enum_LogLevel[_]
    input.Body.OverrideOptions.TransferMode == enum_TransferMode[_]
    input.Body.OverrideOptions.SecurityDescriptorCopyFlags == enum_SmbSecurityDescriptorCopyFlags[_]
    input.Body.OverrideOptions.ObjectTags == enum_ObjectTags[_]
    input.Body.Includes[_].FilterType == enum_FilterType[_]
    input.Body.Includes[_].Value == STRING
    input.Body.Excludes[_].FilterType == enum_FilterType[_]
    input.Body.Excludes[_].Value == STRING
    input.Body.ManifestConfig.Action == enum_ManifestAction[_]
    input.Body.ManifestConfig.Format == enum_ManifestFormat[_]
    input.Body.ManifestConfig.Source.S3.ManifestObjectPath == STRING
    input.Body.ManifestConfig.Source.S3.BucketAccessRoleArn == STRING
    input.Body.ManifestConfig.Source.S3.S3BucketArn == STRING
    input.Body.ManifestConfig.Source.S3.ManifestObjectVersionId == STRING
    input.Body.TaskReportConfig.Destination.S3.Subdirectory == STRING
    input.Body.TaskReportConfig.Destination.S3.S3BucketArn == STRING
    input.Body.TaskReportConfig.Destination.S3.BucketAccessRoleArn == STRING
    input.Body.TaskReportConfig.OutputType == enum_ReportOutputType[_]
    input.Body.TaskReportConfig.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.ObjectVersionIds == enum_ObjectVersionIds[_]
    input.Body.TaskReportConfig.Overrides.Transferred.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.Overrides.Verified.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.Overrides.Deleted.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.Overrides.Skipped.ReportLevel == enum_ReportLevel[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopDiscoveryJob

valid {
    input.Body.DiscoveryJobArn == 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.Keys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAgent

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

UpdateDiscoveryJob

valid {
    input.Body.DiscoveryJobArn == STRING
    input.Body.CollectionDurationMinutes == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLocationAzureBlob

enum_AzureAccessTier := [ "HOT", "COOL", "ARCHIVE" ]
enum_AzureBlobAuthenticationType := [ "SAS" ]
enum_AzureBlobType := [ "BLOCK" ]

valid {
    input.Body.LocationArn == STRING
    input.Body.Subdirectory == STRING
    input.Body.AuthenticationType == enum_AzureBlobAuthenticationType[_]
    input.Body.SasConfiguration.Token == STRING
    input.Body.BlobType == enum_AzureBlobType[_]
    input.Body.AccessTier == enum_AzureAccessTier[_]
    input.Body.AgentArns[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLocationHdfs

enum_HdfsAuthenticationType := [ "SIMPLE", "KERBEROS" ]
enum_HdfsDataTransferProtection := [ "DISABLED", "AUTHENTICATION", "INTEGRITY", "PRIVACY" ]
enum_HdfsRpcProtection := [ "DISABLED", "AUTHENTICATION", "INTEGRITY", "PRIVACY" ]

valid {
    input.Body.LocationArn == STRING
    input.Body.Subdirectory == STRING
    input.Body.NameNodes[_].Hostname == STRING
    input.Body.NameNodes[_].Port == INTEGER
    input.Body.BlockSize == INTEGER
    input.Body.ReplicationFactor == INTEGER
    input.Body.KmsKeyProviderUri == STRING
    input.Body.QopConfiguration.RpcProtection == enum_HdfsRpcProtection[_]
    input.Body.QopConfiguration.DataTransferProtection == enum_HdfsDataTransferProtection[_]
    input.Body.AuthenticationType == enum_HdfsAuthenticationType[_]
    input.Body.SimpleUser == STRING
    input.Body.KerberosPrincipal == STRING
    input.Body.KerberosKeytab == BLOB
    input.Body.KerberosKrb5Conf == BLOB
    input.Body.AgentArns[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLocationNfs

enum_NfsVersion := [ "AUTOMATIC", "NFS3", "NFS4_0", "NFS4_1" ]

valid {
    input.Body.LocationArn == STRING
    input.Body.Subdirectory == STRING
    input.Body.OnPremConfig.AgentArns[_] == STRING
    input.Body.MountOptions.Version == enum_NfsVersion[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLocationObjectStorage

enum_ObjectStorageServerProtocol := [ "HTTPS", "HTTP" ]

valid {
    input.Body.LocationArn == STRING
    input.Body.ServerPort == INTEGER
    input.Body.ServerProtocol == enum_ObjectStorageServerProtocol[_]
    input.Body.Subdirectory == STRING
    input.Body.AccessKey == STRING
    input.Body.SecretKey == STRING
    input.Body.AgentArns[_] == STRING
    input.Body.ServerCertificate == BLOB
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLocationSmb

enum_SmbVersion := [ "AUTOMATIC", "SMB2", "SMB3", "SMB1", "SMB2_0" ]

valid {
    input.Body.LocationArn == STRING
    input.Body.Subdirectory == STRING
    input.Body.User == STRING
    input.Body.Domain == STRING
    input.Body.Password == STRING
    input.Body.AgentArns[_] == STRING
    input.Body.MountOptions.Version == enum_SmbVersion[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateStorageSystem

valid {
    input.Body.StorageSystemArn == STRING
    input.Body.ServerConfiguration.ServerHostname == STRING
    input.Body.ServerConfiguration.ServerPort == INTEGER
    input.Body.AgentArns[_] == STRING
    input.Body.Name == STRING
    input.Body.CloudWatchLogGroupArn == STRING
    input.Body.Credentials.Username == STRING
    input.Body.Credentials.Password == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTask

enum_Atime := [ "NONE", "BEST_EFFORT" ]
enum_FilterType := [ "SIMPLE_PATTERN" ]
enum_Gid := [ "NONE", "INT_VALUE", "NAME", "BOTH" ]
enum_LogLevel := [ "OFF", "BASIC", "TRANSFER" ]
enum_ManifestAction := [ "TRANSFER" ]
enum_ManifestFormat := [ "CSV" ]
enum_Mtime := [ "NONE", "PRESERVE" ]
enum_ObjectTags := [ "PRESERVE", "NONE" ]
enum_ObjectVersionIds := [ "INCLUDE", "NONE" ]
enum_OverwriteMode := [ "ALWAYS", "NEVER" ]
enum_PosixPermissions := [ "NONE", "PRESERVE" ]
enum_PreserveDeletedFiles := [ "PRESERVE", "REMOVE" ]
enum_PreserveDevices := [ "NONE", "PRESERVE" ]
enum_ReportLevel := [ "ERRORS_ONLY", "SUCCESSES_AND_ERRORS" ]
enum_ReportOutputType := [ "SUMMARY_ONLY", "STANDARD" ]
enum_ScheduleStatus := [ "ENABLED", "DISABLED" ]
enum_SmbSecurityDescriptorCopyFlags := [ "NONE", "OWNER_DACL", "OWNER_DACL_SACL" ]
enum_TaskQueueing := [ "ENABLED", "DISABLED" ]
enum_TransferMode := [ "CHANGED", "ALL" ]
enum_Uid := [ "NONE", "INT_VALUE", "NAME", "BOTH" ]
enum_VerifyMode := [ "POINT_IN_TIME_CONSISTENT", "ONLY_FILES_TRANSFERRED", "NONE" ]

valid {
    input.Body.TaskArn == STRING
    input.Body.Options.VerifyMode == enum_VerifyMode[_]
    input.Body.Options.OverwriteMode == enum_OverwriteMode[_]
    input.Body.Options.Atime == enum_Atime[_]
    input.Body.Options.Mtime == enum_Mtime[_]
    input.Body.Options.Uid == enum_Uid[_]
    input.Body.Options.Gid == enum_Gid[_]
    input.Body.Options.PreserveDeletedFiles == enum_PreserveDeletedFiles[_]
    input.Body.Options.PreserveDevices == enum_PreserveDevices[_]
    input.Body.Options.PosixPermissions == enum_PosixPermissions[_]
    input.Body.Options.BytesPerSecond == LONG
    input.Body.Options.TaskQueueing == enum_TaskQueueing[_]
    input.Body.Options.LogLevel == enum_LogLevel[_]
    input.Body.Options.TransferMode == enum_TransferMode[_]
    input.Body.Options.SecurityDescriptorCopyFlags == enum_SmbSecurityDescriptorCopyFlags[_]
    input.Body.Options.ObjectTags == enum_ObjectTags[_]
    input.Body.Excludes[_].FilterType == enum_FilterType[_]
    input.Body.Excludes[_].Value == STRING
    input.Body.Schedule.ScheduleExpression == STRING
    input.Body.Schedule.Status == enum_ScheduleStatus[_]
    input.Body.Name == STRING
    input.Body.CloudWatchLogGroupArn == STRING
    input.Body.Includes[_].FilterType == enum_FilterType[_]
    input.Body.Includes[_].Value == STRING
    input.Body.ManifestConfig.Action == enum_ManifestAction[_]
    input.Body.ManifestConfig.Format == enum_ManifestFormat[_]
    input.Body.ManifestConfig.Source.S3.ManifestObjectPath == STRING
    input.Body.ManifestConfig.Source.S3.BucketAccessRoleArn == STRING
    input.Body.ManifestConfig.Source.S3.S3BucketArn == STRING
    input.Body.ManifestConfig.Source.S3.ManifestObjectVersionId == STRING
    input.Body.TaskReportConfig.Destination.S3.Subdirectory == STRING
    input.Body.TaskReportConfig.Destination.S3.S3BucketArn == STRING
    input.Body.TaskReportConfig.Destination.S3.BucketAccessRoleArn == STRING
    input.Body.TaskReportConfig.OutputType == enum_ReportOutputType[_]
    input.Body.TaskReportConfig.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.ObjectVersionIds == enum_ObjectVersionIds[_]
    input.Body.TaskReportConfig.Overrides.Transferred.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.Overrides.Verified.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.Overrides.Deleted.ReportLevel == enum_ReportLevel[_]
    input.Body.TaskReportConfig.Overrides.Skipped.ReportLevel == enum_ReportLevel[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTaskExecution

enum_Atime := [ "NONE", "BEST_EFFORT" ]
enum_Gid := [ "NONE", "INT_VALUE", "NAME", "BOTH" ]
enum_LogLevel := [ "OFF", "BASIC", "TRANSFER" ]
enum_Mtime := [ "NONE", "PRESERVE" ]
enum_ObjectTags := [ "PRESERVE", "NONE" ]
enum_OverwriteMode := [ "ALWAYS", "NEVER" ]
enum_PosixPermissions := [ "NONE", "PRESERVE" ]
enum_PreserveDeletedFiles := [ "PRESERVE", "REMOVE" ]
enum_PreserveDevices := [ "NONE", "PRESERVE" ]
enum_SmbSecurityDescriptorCopyFlags := [ "NONE", "OWNER_DACL", "OWNER_DACL_SACL" ]
enum_TaskQueueing := [ "ENABLED", "DISABLED" ]
enum_TransferMode := [ "CHANGED", "ALL" ]
enum_Uid := [ "NONE", "INT_VALUE", "NAME", "BOTH" ]
enum_VerifyMode := [ "POINT_IN_TIME_CONSISTENT", "ONLY_FILES_TRANSFERRED", "NONE" ]

valid {
    input.Body.TaskExecutionArn == STRING
    input.Body.Options.VerifyMode == enum_VerifyMode[_]
    input.Body.Options.OverwriteMode == enum_OverwriteMode[_]
    input.Body.Options.Atime == enum_Atime[_]
    input.Body.Options.Mtime == enum_Mtime[_]
    input.Body.Options.Uid == enum_Uid[_]
    input.Body.Options.Gid == enum_Gid[_]
    input.Body.Options.PreserveDeletedFiles == enum_PreserveDeletedFiles[_]
    input.Body.Options.PreserveDevices == enum_PreserveDevices[_]
    input.Body.Options.PosixPermissions == enum_PosixPermissions[_]
    input.Body.Options.BytesPerSecond == LONG
    input.Body.Options.TaskQueueing == enum_TaskQueueing[_]
    input.Body.Options.LogLevel == enum_LogLevel[_]
    input.Body.Options.TransferMode == enum_TransferMode[_]
    input.Body.Options.SecurityDescriptorCopyFlags == enum_SmbSecurityDescriptorCopyFlags[_]
    input.Body.Options.ObjectTags == enum_ObjectTags[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}