ROUTE53DOMAINS

AcceptDomainTransferFromAnotherAwsAccount

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

AssociateDelegationSignerToDomain

valid {
    input.Body.DomainName == STRING
    input.Body.SigningAttributes.Algorithm == INTEGER
    input.Body.SigningAttributes.Flags == INTEGER
    input.Body.SigningAttributes.PublicKey == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelDomainTransferToAnotherAwsAccount

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

CheckDomainAvailability

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

CheckDomainTransferability

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

DeleteDomain

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

DeleteTagsForDomain

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

DisableDomainAutoRenew

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

DisableDomainTransferLock

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

DisassociateDelegationSignerFromDomain

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

EnableDomainAutoRenew

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

EnableDomainTransferLock

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

GetContactReachabilityStatus

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

GetDomainDetail

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

GetDomainSuggestions

valid {
    input.Body.DomainName == STRING
    input.Body.SuggestionCount == INTEGER
    input.Body.OnlyAvailable == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetOperationDetail

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

ListDomains

enum_ListDomainsAttributeName := [ "DomainName", "Expiry" ]
enum_Operator := [ "LE", "GE", "BEGINS_WITH" ]
enum_SortOrder := [ "ASC", "DESC" ]

valid {
    input.Body.FilterConditions[_].Name == enum_ListDomainsAttributeName[_]
    input.Body.FilterConditions[_].Operator == enum_Operator[_]
    input.Body.FilterConditions[_].Values[_] == STRING
    input.Body.SortCondition.Name == enum_ListDomainsAttributeName[_]
    input.Body.SortCondition.SortOrder == enum_SortOrder[_]
    input.Body.Marker == STRING
    input.Body.MaxItems == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListOperations

enum_ListOperationsSortAttributeName := [ "SubmittedDate" ]
enum_OperationStatus := [ "SUBMITTED", "IN_PROGRESS", "ERROR", "SUCCESSFUL", "FAILED" ]
enum_OperationType := [ "REGISTER_DOMAIN", "DELETE_DOMAIN", "TRANSFER_IN_DOMAIN", "UPDATE_DOMAIN_CONTACT", "UPDATE_NAMESERVER", "CHANGE_PRIVACY_PROTECTION", "DOMAIN_LOCK", "ENABLE_AUTORENEW", "DISABLE_AUTORENEW", "ADD_DNSSEC", "REMOVE_DNSSEC", "EXPIRE_DOMAIN", "TRANSFER_OUT_DOMAIN", "CHANGE_DOMAIN_OWNER", "RENEW_DOMAIN", "PUSH_DOMAIN", "INTERNAL_TRANSFER_OUT_DOMAIN", "INTERNAL_TRANSFER_IN_DOMAIN", "RELEASE_TO_GANDI", "TRANSFER_ON_RENEW", "RESTORE_DOMAIN" ]
enum_SortOrder := [ "ASC", "DESC" ]

valid {
    input.Body.SubmittedSince == TIMESTAMP
    input.Body.Marker == STRING
    input.Body.MaxItems == INTEGER
    input.Body.Status[_] == enum_OperationStatus[_]
    input.Body.Type[_] == enum_OperationType[_]
    input.Body.SortBy == enum_ListOperationsSortAttributeName[_]
    input.Body.SortOrder == enum_SortOrder[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPrices

valid {
    input.Body.Tld == STRING
    input.Body.Marker == STRING
    input.Body.MaxItems == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForDomain

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

PushDomain

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

RegisterDomain

enum_ContactType := [ "PERSON", "COMPANY", "ASSOCIATION", "PUBLIC_BODY", "RESELLER" ]
enum_CountryCode := [ "AC", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TP", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW" ]
enum_ExtraParamName := [ "DUNS_NUMBER", "BRAND_NUMBER", "BIRTH_DEPARTMENT", "BIRTH_DATE_IN_YYYY_MM_DD", "BIRTH_COUNTRY", "BIRTH_CITY", "DOCUMENT_NUMBER", "AU_ID_NUMBER", "AU_ID_TYPE", "CA_LEGAL_TYPE", "CA_BUSINESS_ENTITY_TYPE", "CA_LEGAL_REPRESENTATIVE", "CA_LEGAL_REPRESENTATIVE_CAPACITY", "ES_IDENTIFICATION", "ES_IDENTIFICATION_TYPE", "ES_LEGAL_FORM", "FI_BUSINESS_NUMBER", "FI_ID_NUMBER", "FI_NATIONALITY", "FI_ORGANIZATION_TYPE", "IT_NATIONALITY", "IT_PIN", "IT_REGISTRANT_ENTITY_TYPE", "RU_PASSPORT_DATA", "SE_ID_NUMBER", "SG_ID_NUMBER", "VAT_NUMBER", "UK_CONTACT_TYPE", "UK_COMPANY_NUMBER", "EU_COUNTRY_OF_CITIZENSHIP", "AU_PRIORITY_TOKEN" ]

valid {
    input.Body.DomainName == STRING
    input.Body.IdnLangCode == STRING
    input.Body.DurationInYears == INTEGER
    input.Body.AutoRenew == BOOLEAN
    input.Body.AdminContact.FirstName == STRING
    input.Body.AdminContact.LastName == STRING
    input.Body.AdminContact.ContactType == enum_ContactType[_]
    input.Body.AdminContact.OrganizationName == STRING
    input.Body.AdminContact.AddressLine1 == STRING
    input.Body.AdminContact.AddressLine2 == STRING
    input.Body.AdminContact.City == STRING
    input.Body.AdminContact.State == STRING
    input.Body.AdminContact.CountryCode == enum_CountryCode[_]
    input.Body.AdminContact.ZipCode == STRING
    input.Body.AdminContact.PhoneNumber == STRING
    input.Body.AdminContact.Email == STRING
    input.Body.AdminContact.Fax == STRING
    input.Body.AdminContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.AdminContact.ExtraParams[_].Value == STRING
    input.Body.RegistrantContact.FirstName == STRING
    input.Body.RegistrantContact.LastName == STRING
    input.Body.RegistrantContact.ContactType == enum_ContactType[_]
    input.Body.RegistrantContact.OrganizationName == STRING
    input.Body.RegistrantContact.AddressLine1 == STRING
    input.Body.RegistrantContact.AddressLine2 == STRING
    input.Body.RegistrantContact.City == STRING
    input.Body.RegistrantContact.State == STRING
    input.Body.RegistrantContact.CountryCode == enum_CountryCode[_]
    input.Body.RegistrantContact.ZipCode == STRING
    input.Body.RegistrantContact.PhoneNumber == STRING
    input.Body.RegistrantContact.Email == STRING
    input.Body.RegistrantContact.Fax == STRING
    input.Body.RegistrantContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.RegistrantContact.ExtraParams[_].Value == STRING
    input.Body.TechContact.FirstName == STRING
    input.Body.TechContact.LastName == STRING
    input.Body.TechContact.ContactType == enum_ContactType[_]
    input.Body.TechContact.OrganizationName == STRING
    input.Body.TechContact.AddressLine1 == STRING
    input.Body.TechContact.AddressLine2 == STRING
    input.Body.TechContact.City == STRING
    input.Body.TechContact.State == STRING
    input.Body.TechContact.CountryCode == enum_CountryCode[_]
    input.Body.TechContact.ZipCode == STRING
    input.Body.TechContact.PhoneNumber == STRING
    input.Body.TechContact.Email == STRING
    input.Body.TechContact.Fax == STRING
    input.Body.TechContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.TechContact.ExtraParams[_].Value == STRING
    input.Body.PrivacyProtectAdminContact == BOOLEAN
    input.Body.PrivacyProtectRegistrantContact == BOOLEAN
    input.Body.PrivacyProtectTechContact == BOOLEAN
    input.Body.BillingContact.FirstName == STRING
    input.Body.BillingContact.LastName == STRING
    input.Body.BillingContact.ContactType == enum_ContactType[_]
    input.Body.BillingContact.OrganizationName == STRING
    input.Body.BillingContact.AddressLine1 == STRING
    input.Body.BillingContact.AddressLine2 == STRING
    input.Body.BillingContact.City == STRING
    input.Body.BillingContact.State == STRING
    input.Body.BillingContact.CountryCode == enum_CountryCode[_]
    input.Body.BillingContact.ZipCode == STRING
    input.Body.BillingContact.PhoneNumber == STRING
    input.Body.BillingContact.Email == STRING
    input.Body.BillingContact.Fax == STRING
    input.Body.BillingContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.BillingContact.ExtraParams[_].Value == STRING
    input.Body.PrivacyProtectBillingContact == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RejectDomainTransferFromAnotherAwsAccount

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

RenewDomain

valid {
    input.Body.DomainName == STRING
    input.Body.DurationInYears == INTEGER
    input.Body.CurrentExpiryYear == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResendContactReachabilityEmail

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

ResendOperationAuthorization

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

RetrieveDomainAuthCode

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

TransferDomain

enum_ContactType := [ "PERSON", "COMPANY", "ASSOCIATION", "PUBLIC_BODY", "RESELLER" ]
enum_CountryCode := [ "AC", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TP", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW" ]
enum_ExtraParamName := [ "DUNS_NUMBER", "BRAND_NUMBER", "BIRTH_DEPARTMENT", "BIRTH_DATE_IN_YYYY_MM_DD", "BIRTH_COUNTRY", "BIRTH_CITY", "DOCUMENT_NUMBER", "AU_ID_NUMBER", "AU_ID_TYPE", "CA_LEGAL_TYPE", "CA_BUSINESS_ENTITY_TYPE", "CA_LEGAL_REPRESENTATIVE", "CA_LEGAL_REPRESENTATIVE_CAPACITY", "ES_IDENTIFICATION", "ES_IDENTIFICATION_TYPE", "ES_LEGAL_FORM", "FI_BUSINESS_NUMBER", "FI_ID_NUMBER", "FI_NATIONALITY", "FI_ORGANIZATION_TYPE", "IT_NATIONALITY", "IT_PIN", "IT_REGISTRANT_ENTITY_TYPE", "RU_PASSPORT_DATA", "SE_ID_NUMBER", "SG_ID_NUMBER", "VAT_NUMBER", "UK_CONTACT_TYPE", "UK_COMPANY_NUMBER", "EU_COUNTRY_OF_CITIZENSHIP", "AU_PRIORITY_TOKEN" ]

valid {
    input.Body.DomainName == STRING
    input.Body.IdnLangCode == STRING
    input.Body.DurationInYears == INTEGER
    input.Body.Nameservers[_].Name == STRING
    input.Body.Nameservers[_].GlueIps[_] == STRING
    input.Body.AuthCode == STRING
    input.Body.AutoRenew == BOOLEAN
    input.Body.AdminContact.FirstName == STRING
    input.Body.AdminContact.LastName == STRING
    input.Body.AdminContact.ContactType == enum_ContactType[_]
    input.Body.AdminContact.OrganizationName == STRING
    input.Body.AdminContact.AddressLine1 == STRING
    input.Body.AdminContact.AddressLine2 == STRING
    input.Body.AdminContact.City == STRING
    input.Body.AdminContact.State == STRING
    input.Body.AdminContact.CountryCode == enum_CountryCode[_]
    input.Body.AdminContact.ZipCode == STRING
    input.Body.AdminContact.PhoneNumber == STRING
    input.Body.AdminContact.Email == STRING
    input.Body.AdminContact.Fax == STRING
    input.Body.AdminContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.AdminContact.ExtraParams[_].Value == STRING
    input.Body.RegistrantContact.FirstName == STRING
    input.Body.RegistrantContact.LastName == STRING
    input.Body.RegistrantContact.ContactType == enum_ContactType[_]
    input.Body.RegistrantContact.OrganizationName == STRING
    input.Body.RegistrantContact.AddressLine1 == STRING
    input.Body.RegistrantContact.AddressLine2 == STRING
    input.Body.RegistrantContact.City == STRING
    input.Body.RegistrantContact.State == STRING
    input.Body.RegistrantContact.CountryCode == enum_CountryCode[_]
    input.Body.RegistrantContact.ZipCode == STRING
    input.Body.RegistrantContact.PhoneNumber == STRING
    input.Body.RegistrantContact.Email == STRING
    input.Body.RegistrantContact.Fax == STRING
    input.Body.RegistrantContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.RegistrantContact.ExtraParams[_].Value == STRING
    input.Body.TechContact.FirstName == STRING
    input.Body.TechContact.LastName == STRING
    input.Body.TechContact.ContactType == enum_ContactType[_]
    input.Body.TechContact.OrganizationName == STRING
    input.Body.TechContact.AddressLine1 == STRING
    input.Body.TechContact.AddressLine2 == STRING
    input.Body.TechContact.City == STRING
    input.Body.TechContact.State == STRING
    input.Body.TechContact.CountryCode == enum_CountryCode[_]
    input.Body.TechContact.ZipCode == STRING
    input.Body.TechContact.PhoneNumber == STRING
    input.Body.TechContact.Email == STRING
    input.Body.TechContact.Fax == STRING
    input.Body.TechContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.TechContact.ExtraParams[_].Value == STRING
    input.Body.PrivacyProtectAdminContact == BOOLEAN
    input.Body.PrivacyProtectRegistrantContact == BOOLEAN
    input.Body.PrivacyProtectTechContact == BOOLEAN
    input.Body.BillingContact.FirstName == STRING
    input.Body.BillingContact.LastName == STRING
    input.Body.BillingContact.ContactType == enum_ContactType[_]
    input.Body.BillingContact.OrganizationName == STRING
    input.Body.BillingContact.AddressLine1 == STRING
    input.Body.BillingContact.AddressLine2 == STRING
    input.Body.BillingContact.City == STRING
    input.Body.BillingContact.State == STRING
    input.Body.BillingContact.CountryCode == enum_CountryCode[_]
    input.Body.BillingContact.ZipCode == STRING
    input.Body.BillingContact.PhoneNumber == STRING
    input.Body.BillingContact.Email == STRING
    input.Body.BillingContact.Fax == STRING
    input.Body.BillingContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.BillingContact.ExtraParams[_].Value == STRING
    input.Body.PrivacyProtectBillingContact == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TransferDomainToAnotherAwsAccount

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

UpdateDomainContact

enum_ContactType := [ "PERSON", "COMPANY", "ASSOCIATION", "PUBLIC_BODY", "RESELLER" ]
enum_CountryCode := [ "AC", "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TP", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW" ]
enum_ExtraParamName := [ "DUNS_NUMBER", "BRAND_NUMBER", "BIRTH_DEPARTMENT", "BIRTH_DATE_IN_YYYY_MM_DD", "BIRTH_COUNTRY", "BIRTH_CITY", "DOCUMENT_NUMBER", "AU_ID_NUMBER", "AU_ID_TYPE", "CA_LEGAL_TYPE", "CA_BUSINESS_ENTITY_TYPE", "CA_LEGAL_REPRESENTATIVE", "CA_LEGAL_REPRESENTATIVE_CAPACITY", "ES_IDENTIFICATION", "ES_IDENTIFICATION_TYPE", "ES_LEGAL_FORM", "FI_BUSINESS_NUMBER", "FI_ID_NUMBER", "FI_NATIONALITY", "FI_ORGANIZATION_TYPE", "IT_NATIONALITY", "IT_PIN", "IT_REGISTRANT_ENTITY_TYPE", "RU_PASSPORT_DATA", "SE_ID_NUMBER", "SG_ID_NUMBER", "VAT_NUMBER", "UK_CONTACT_TYPE", "UK_COMPANY_NUMBER", "EU_COUNTRY_OF_CITIZENSHIP", "AU_PRIORITY_TOKEN" ]

valid {
    input.Body.DomainName == STRING
    input.Body.AdminContact.FirstName == STRING
    input.Body.AdminContact.LastName == STRING
    input.Body.AdminContact.ContactType == enum_ContactType[_]
    input.Body.AdminContact.OrganizationName == STRING
    input.Body.AdminContact.AddressLine1 == STRING
    input.Body.AdminContact.AddressLine2 == STRING
    input.Body.AdminContact.City == STRING
    input.Body.AdminContact.State == STRING
    input.Body.AdminContact.CountryCode == enum_CountryCode[_]
    input.Body.AdminContact.ZipCode == STRING
    input.Body.AdminContact.PhoneNumber == STRING
    input.Body.AdminContact.Email == STRING
    input.Body.AdminContact.Fax == STRING
    input.Body.AdminContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.AdminContact.ExtraParams[_].Value == STRING
    input.Body.RegistrantContact.FirstName == STRING
    input.Body.RegistrantContact.LastName == STRING
    input.Body.RegistrantContact.ContactType == enum_ContactType[_]
    input.Body.RegistrantContact.OrganizationName == STRING
    input.Body.RegistrantContact.AddressLine1 == STRING
    input.Body.RegistrantContact.AddressLine2 == STRING
    input.Body.RegistrantContact.City == STRING
    input.Body.RegistrantContact.State == STRING
    input.Body.RegistrantContact.CountryCode == enum_CountryCode[_]
    input.Body.RegistrantContact.ZipCode == STRING
    input.Body.RegistrantContact.PhoneNumber == STRING
    input.Body.RegistrantContact.Email == STRING
    input.Body.RegistrantContact.Fax == STRING
    input.Body.RegistrantContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.RegistrantContact.ExtraParams[_].Value == STRING
    input.Body.TechContact.FirstName == STRING
    input.Body.TechContact.LastName == STRING
    input.Body.TechContact.ContactType == enum_ContactType[_]
    input.Body.TechContact.OrganizationName == STRING
    input.Body.TechContact.AddressLine1 == STRING
    input.Body.TechContact.AddressLine2 == STRING
    input.Body.TechContact.City == STRING
    input.Body.TechContact.State == STRING
    input.Body.TechContact.CountryCode == enum_CountryCode[_]
    input.Body.TechContact.ZipCode == STRING
    input.Body.TechContact.PhoneNumber == STRING
    input.Body.TechContact.Email == STRING
    input.Body.TechContact.Fax == STRING
    input.Body.TechContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.TechContact.ExtraParams[_].Value == STRING
    input.Body.Consent.MaxPrice == DOUBLE
    input.Body.Consent.Currency == STRING
    input.Body.BillingContact.FirstName == STRING
    input.Body.BillingContact.LastName == STRING
    input.Body.BillingContact.ContactType == enum_ContactType[_]
    input.Body.BillingContact.OrganizationName == STRING
    input.Body.BillingContact.AddressLine1 == STRING
    input.Body.BillingContact.AddressLine2 == STRING
    input.Body.BillingContact.City == STRING
    input.Body.BillingContact.State == STRING
    input.Body.BillingContact.CountryCode == enum_CountryCode[_]
    input.Body.BillingContact.ZipCode == STRING
    input.Body.BillingContact.PhoneNumber == STRING
    input.Body.BillingContact.Email == STRING
    input.Body.BillingContact.Fax == STRING
    input.Body.BillingContact.ExtraParams[_].Name == enum_ExtraParamName[_]
    input.Body.BillingContact.ExtraParams[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDomainContactPrivacy

valid {
    input.Body.DomainName == STRING
    input.Body.AdminPrivacy == BOOLEAN
    input.Body.RegistrantPrivacy == BOOLEAN
    input.Body.TechPrivacy == BOOLEAN
    input.Body.BillingPrivacy == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDomainNameservers

valid {
    input.Body.DomainName == STRING
    input.Body.FIAuthKey == STRING
    input.Body.Nameservers[_].Name == STRING
    input.Body.Nameservers[_].GlueIps[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTagsForDomain

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

ViewBilling

valid {
    input.Body.Start == TIMESTAMP
    input.Body.End == TIMESTAMP
    input.Body.Marker == STRING
    input.Body.MaxItems == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}