IOT-MANAGED-INTEGRATIONS

CreateCredentialLocker

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

CreateDestination

enum_DeliveryDestinationType := [ "KINESIS" ]

valid {
    input.Body.DeliveryDestinationArn == STRING
    input.Body.DeliveryDestinationType == enum_DeliveryDestinationType[_]
    input.Body.Name == STRING
    input.Body.RoleArn == STRING
    input.Body.ClientToken == STRING
    input.Body.Description == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateEventLogConfiguration

enum_LogLevel := [ "DEBUG", "ERROR", "INFO", "WARN" ]

valid {
    input.Body.ResourceType == STRING
    input.Body.ResourceId == STRING
    input.Body.EventLogLevel == enum_LogLevel[_]
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateManagedThing

enum_AuthMaterialType := [ "WIFI_SETUP_QR_BAR_CODE", "ZWAVE_QR_BAR_CODE", "ZIGBEE_QR_BAR_CODE" ]
enum_Role := [ "CONTROLLER", "DEVICE" ]

valid {
    input.Body.Role == enum_Role[_]
    input.Body.Owner == STRING
    input.Body.CredentialLockerId == STRING
    input.Body.AuthenticationMaterial == STRING
    input.Body.AuthenticationMaterialType == enum_AuthMaterialType[_]
    input.Body.SerialNumber == STRING
    input.Body.Brand == STRING
    input.Body.Model == STRING
    input.Body.Name == STRING
    input.Body.CapabilityReport.version == STRING
    input.Body.CapabilityReport.nodeId == STRING
    input.Body.CapabilityReport.endpoints[_].id == STRING
    input.Body.CapabilityReport.endpoints[_].deviceTypes[_] == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].id == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].name == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].version == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].properties[_] == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].actions[_] == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].events[_] == STRING
    input.Body.Capabilities == STRING
    input.Body.ClientToken == STRING
    input.Body.Classification == STRING
    input.Body.Tags.STRING == STRING
    input.Body.MetaData.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateNotificationConfiguration

enum_EventType := [ "DEVICE_COMMAND", "DEVICE_COMMAND_REQUEST", "DEVICE_EVENT", "DEVICE_LIFE_CYCLE", "DEVICE_STATE", "DEVICE_OTA", "CONNECTOR_ASSOCIATION", "CONNECTOR_ERROR_REPORT" ]

valid {
    input.Body.EventType == enum_EventType[_]
    input.Body.DestinationName == STRING
    input.Body.ClientToken == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateOtaTask

enum_OtaMechanism := [ "PUSH" ]
enum_OtaProtocol := [ "HTTP" ]
enum_OtaType := [ "ONE_TIME", "CONTINUOUS" ]
enum_RetryCriteriaFailureType := [ "FAILED", "TIMED_OUT", "ALL" ]
enum_SchedulingConfigEndBehavior := [ "STOP_ROLLOUT", "CANCEL", "FORCE_CANCEL" ]

valid {
    input.Body.Description == STRING
    input.Body.S3Url == STRING
    input.Body.Protocol == enum_OtaProtocol[_]
    input.Body.Target[_] == STRING
    input.Body.TaskConfigurationId == STRING
    input.Body.OtaMechanism == enum_OtaMechanism[_]
    input.Body.OtaType == enum_OtaType[_]
    input.Body.OtaTargetQueryString == STRING
    input.Body.ClientToken == STRING
    input.Body.OtaSchedulingConfig.EndBehavior == enum_SchedulingConfigEndBehavior[_]
    input.Body.OtaSchedulingConfig.EndTime == STRING
    input.Body.OtaSchedulingConfig.MaintenanceWindows[_].DurationInMinutes == INTEGER
    input.Body.OtaSchedulingConfig.MaintenanceWindows[_].StartTime == STRING
    input.Body.OtaSchedulingConfig.StartTime == STRING
    input.Body.OtaTaskExecutionRetryConfig.RetryConfigCriteria[_].FailureType == enum_RetryCriteriaFailureType[_]
    input.Body.OtaTaskExecutionRetryConfig.RetryConfigCriteria[_].MinNumberOfRetries == INTEGER
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateOtaTaskConfiguration

enum_AbortCriteriaAction := [ "CANCEL" ]
enum_AbortCriteriaFailureType := [ "FAILED", "REJECTED", "TIMED_OUT", "ALL" ]

valid {
    input.Body.Description == STRING
    input.Body.Name == STRING
    input.Body.PushConfig.AbortConfig.AbortConfigCriteriaList[_].Action == enum_AbortCriteriaAction[_]
    input.Body.PushConfig.AbortConfig.AbortConfigCriteriaList[_].FailureType == enum_AbortCriteriaFailureType[_]
    input.Body.PushConfig.AbortConfig.AbortConfigCriteriaList[_].MinNumberOfExecutedThings == INTEGER
    input.Body.PushConfig.AbortConfig.AbortConfigCriteriaList[_].ThresholdPercentage == DOUBLE
    input.Body.PushConfig.RolloutConfig.ExponentialRolloutRate.BaseRatePerMinute == INTEGER
    input.Body.PushConfig.RolloutConfig.ExponentialRolloutRate.IncrementFactor == DOUBLE
    input.Body.PushConfig.RolloutConfig.ExponentialRolloutRate.RateIncreaseCriteria.numberOfNotifiedThings == INTEGER
    input.Body.PushConfig.RolloutConfig.ExponentialRolloutRate.RateIncreaseCriteria.numberOfSucceededThings == INTEGER
    input.Body.PushConfig.RolloutConfig.MaximumPerMinute == INTEGER
    input.Body.PushConfig.TimeoutConfig.InProgressTimeoutInMinutes == LONG
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateProvisioningProfile

enum_ProvisioningType := [ "FLEET_PROVISIONING", "JITR" ]

valid {
    input.Body.ProvisioningType == enum_ProvisioningType[_]
    input.Body.CaCertificate == STRING
    input.Body.Name == STRING
    input.Body.ClientToken == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCredentialLocker

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

DeleteDestination

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

DeleteEventLogConfiguration

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

DeleteManagedThing

valid {
    input.ReqMap.Identifier == STRING
    input.Qs.Force == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNotificationConfiguration

enum_EventType := [ "DEVICE_COMMAND", "DEVICE_COMMAND_REQUEST", "DEVICE_EVENT", "DEVICE_LIFE_CYCLE", "DEVICE_STATE", "DEVICE_OTA", "CONNECTOR_ASSOCIATION", "CONNECTOR_ERROR_REPORT" ]

valid {
    input.ReqMap.EventType == enum_EventType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteOtaTask

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

DeleteOtaTaskConfiguration

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

DeleteProvisioningProfile

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

GetCredentialLocker

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

GetCustomEndpoint

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

GetDefaultEncryptionConfiguration

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

GetDestination

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

GetDeviceDiscovery

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

GetEventLogConfiguration

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

GetHubConfiguration

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

GetManagedThing

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

GetManagedThingCapabilities

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

GetManagedThingConnectivityData

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

GetManagedThingMetaData

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

GetManagedThingState

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

GetNotificationConfiguration

enum_EventType := [ "DEVICE_COMMAND", "DEVICE_COMMAND_REQUEST", "DEVICE_EVENT", "DEVICE_LIFE_CYCLE", "DEVICE_STATE", "DEVICE_OTA", "CONNECTOR_ASSOCIATION", "CONNECTOR_ERROR_REPORT" ]

valid {
    input.ReqMap.EventType == enum_EventType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetOtaTask

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

GetOtaTaskConfiguration

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

GetProvisioningProfile

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

GetRuntimeLogConfiguration

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

GetSchemaVersion

enum_SchemaVersionFormat := [ "AWS", "ZCL", "CONNECTOR" ]
enum_SchemaVersionType := [ "capability", "definition" ]

valid {
    input.ReqMap.Type == enum_SchemaVersionType[_]
    input.ReqMap.SchemaVersionedId == STRING
    input.Qs.Format == enum_SchemaVersionFormat[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCredentialLockers

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

ListDestinations

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

ListEventLogConfigurations

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

ListManagedThingSchemas

valid {
    input.ReqMap.Identifier == STRING
    input.Qs.EndpointIdFilter == STRING
    input.Qs.CapabilityIdFilter == STRING
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListManagedThings

enum_ProvisioningStatus := [ "UNASSOCIATED", "PRE_ASSOCIATED", "DISCOVERED", "ACTIVATED", "DELETION_FAILED", "DELETE_IN_PROGRESS", "ISOLATED", "DELETED" ]
enum_Role := [ "CONTROLLER", "DEVICE" ]

valid {
    input.Qs.OwnerFilter == STRING
    input.Qs.CredentialLockerFilter == STRING
    input.Qs.RoleFilter == enum_Role[_]
    input.Qs.ParentControllerIdentifierFilter == STRING
    input.Qs.ConnectorPolicyIdFilter == STRING
    input.Qs.SerialNumberFilter == STRING
    input.Qs.ProvisioningStatusFilter == enum_ProvisioningStatus[_]
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListNotificationConfigurations

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

ListOtaTaskConfigurations

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

ListOtaTaskExecutions

valid {
    input.ReqMap.Identifier == STRING
    input.Qs.NextToken == STRING
    input.Qs.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListOtaTasks

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

ListProvisioningProfiles

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

ListSchemaVersions

enum_SchemaVersionType := [ "capability", "definition" ]
enum_SchemaVersionVisibility := [ "PUBLIC", "PRIVATE" ]

valid {
    input.ReqMap.Type == enum_SchemaVersionType[_]
    input.Qs.MaxResults == INTEGER
    input.Qs.NextToken == STRING
    input.Qs.SchemaIdFilter == STRING
    input.Qs.NamespaceFilter == STRING
    input.Qs.VisibilityFilter == enum_SchemaVersionVisibility[_]
    input.Qs.SemanticVersionFilter == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutDefaultEncryptionConfiguration

enum_EncryptionType := [ "MANAGED_INTEGRATIONS_DEFAULT_ENCRYPTION", "CUSTOMER_KEY_ENCRYPTION" ]

valid {
    input.Body.encryptionType == enum_EncryptionType[_]
    input.Body.kmsKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutHubConfiguration

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

PutRuntimeLogConfiguration

enum_LogLevel := [ "DEBUG", "ERROR", "INFO", "WARN" ]

valid {
    input.Body.RuntimeLogConfigurations.LogLevel == enum_LogLevel[_]
    input.Body.RuntimeLogConfigurations.LogFlushLevel == enum_LogLevel[_]
    input.Body.RuntimeLogConfigurations.LocalStoreLocation == STRING
    input.Body.RuntimeLogConfigurations.LocalStoreFileRotationMaxFiles == INTEGER
    input.Body.RuntimeLogConfigurations.LocalStoreFileRotationMaxBytes == INTEGER
    input.Body.RuntimeLogConfigurations.UploadLog == BOOLEAN
    input.Body.RuntimeLogConfigurations.UploadPeriodMinutes == INTEGER
    input.Body.RuntimeLogConfigurations.DeleteLocalStoreAfterUpload == BOOLEAN
    input.ReqMap.ManagedThingId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterCustomEndpoint

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

ResetRuntimeLogConfiguration

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

SendManagedThingCommand

valid {
    input.Body.Endpoints[_].endpointId == STRING
    input.Body.Endpoints[_].capabilities[_].id == STRING
    input.Body.Endpoints[_].capabilities[_].name == STRING
    input.Body.Endpoints[_].capabilities[_].version == STRING
    input.Body.Endpoints[_].capabilities[_].actions[_].name == STRING
    input.Body.Endpoints[_].capabilities[_].actions[_].ref == STRING
    input.Body.Endpoints[_].capabilities[_].actions[_].actionTraceId == STRING
    input.Body.Endpoints[_].capabilities[_].actions[_].parameters == {}
    input.Body.ConnectorAssociationId == STRING
    input.ReqMap.ManagedThingId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartDeviceDiscovery

enum_DiscoveryAuthMaterialType := [ "ZWAVE_INSTALL_CODE" ]
enum_DiscoveryType := [ "ZWAVE", "ZIGBEE", "CLOUD" ]

valid {
    input.Body.DiscoveryType == enum_DiscoveryType[_]
    input.Body.ControllerIdentifier == STRING
    input.Body.ConnectorAssociationIdentifier == STRING
    input.Body.AuthenticationMaterial == STRING
    input.Body.AuthenticationMaterialType == enum_DiscoveryAuthMaterialType[_]
    input.Body.ClientToken == STRING
    input.Body.Tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDestination

enum_DeliveryDestinationType := [ "KINESIS" ]

valid {
    input.Body.DeliveryDestinationArn == STRING
    input.Body.DeliveryDestinationType == enum_DeliveryDestinationType[_]
    input.Body.RoleArn == STRING
    input.Body.Description == STRING
    input.ReqMap.Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateEventLogConfiguration

enum_LogLevel := [ "DEBUG", "ERROR", "INFO", "WARN" ]

valid {
    input.Body.EventLogLevel == enum_LogLevel[_]
    input.ReqMap.Id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateManagedThing

enum_HubNetworkMode := [ "STANDARD", "NETWORK_WIDE_EXCLUSION" ]

valid {
    input.Body.Owner == STRING
    input.Body.CredentialLockerId == STRING
    input.Body.SerialNumber == STRING
    input.Body.Brand == STRING
    input.Body.Model == STRING
    input.Body.Name == STRING
    input.Body.CapabilityReport.version == STRING
    input.Body.CapabilityReport.nodeId == STRING
    input.Body.CapabilityReport.endpoints[_].id == STRING
    input.Body.CapabilityReport.endpoints[_].deviceTypes[_] == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].id == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].name == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].version == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].properties[_] == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].actions[_] == STRING
    input.Body.CapabilityReport.endpoints[_].capabilities[_].events[_] == STRING
    input.Body.Capabilities == STRING
    input.Body.Classification == STRING
    input.Body.HubNetworkMode == enum_HubNetworkMode[_]
    input.Body.MetaData.STRING == STRING
    input.ReqMap.Identifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateNotificationConfiguration

enum_EventType := [ "DEVICE_COMMAND", "DEVICE_COMMAND_REQUEST", "DEVICE_EVENT", "DEVICE_LIFE_CYCLE", "DEVICE_STATE", "DEVICE_OTA", "CONNECTOR_ASSOCIATION", "CONNECTOR_ERROR_REPORT" ]

valid {
    input.Body.DestinationName == STRING
    input.ReqMap.EventType == enum_EventType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateOtaTask

valid {
    input.Body.Description == STRING
    input.Body.TaskConfigurationId == STRING
    input.ReqMap.Identifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}