GREENGRASS

AssociateRoleToGroup

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

AssociateServiceRoleToAccount

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

BatchAssociateClientDeviceWithCoreDevice

valid {
    input.Body.entries[_].thingName == STRING
    input.ReqMap.coreDeviceThingName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchDisassociateClientDeviceFromCoreDevice

valid {
    input.Body.entries[_].thingName == STRING
    input.ReqMap.coreDeviceThingName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelDeployment

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

CreateComponentVersion

enum_ComponentDependencyType := [ "HARD", "SOFT" ]
enum_LambdaEventSourceType := [ "PUB_SUB", "IOT_CORE" ]
enum_LambdaFilesystemPermission := [ "ro", "rw" ]
enum_LambdaInputPayloadEncodingType := [ "json", "binary" ]
enum_LambdaIsolationMode := [ "GreengrassContainer", "NoContainer" ]

valid {
    input.Body.inlineRecipe == BLOB
    input.Body.lambdaFunction.lambdaArn == STRING
    input.Body.lambdaFunction.componentName == STRING
    input.Body.lambdaFunction.componentVersion == STRING
    input.Body.lambdaFunction.componentPlatforms[_].name == STRING
    input.Body.lambdaFunction.componentPlatforms[_].attributes.STRING == STRING
    input.Body.lambdaFunction.componentDependencies.STRING.versionRequirement == STRING
    input.Body.lambdaFunction.componentDependencies.STRING.dependencyType == enum_ComponentDependencyType[_]
    input.Body.lambdaFunction.componentLambdaParameters.eventSources[_].topic == STRING
    input.Body.lambdaFunction.componentLambdaParameters.eventSources[_].type == enum_LambdaEventSourceType[_]
    input.Body.lambdaFunction.componentLambdaParameters.maxQueueSize == INTEGER
    input.Body.lambdaFunction.componentLambdaParameters.maxInstancesCount == INTEGER
    input.Body.lambdaFunction.componentLambdaParameters.maxIdleTimeInSeconds == INTEGER
    input.Body.lambdaFunction.componentLambdaParameters.timeoutInSeconds == INTEGER
    input.Body.lambdaFunction.componentLambdaParameters.statusTimeoutInSeconds == INTEGER
    input.Body.lambdaFunction.componentLambdaParameters.pinned == BOOLEAN
    input.Body.lambdaFunction.componentLambdaParameters.inputPayloadEncodingType == enum_LambdaInputPayloadEncodingType[_]
    input.Body.lambdaFunction.componentLambdaParameters.execArgs[_] == STRING
    input.Body.lambdaFunction.componentLambdaParameters.environmentVariables.STRING == STRING
    input.Body.lambdaFunction.componentLambdaParameters.linuxProcessParams.isolationMode == enum_LambdaIsolationMode[_]
    input.Body.lambdaFunction.componentLambdaParameters.linuxProcessParams.containerParams.memorySizeInKB == INTEGER
    input.Body.lambdaFunction.componentLambdaParameters.linuxProcessParams.containerParams.mountROSysfs == BOOLEAN
    input.Body.lambdaFunction.componentLambdaParameters.linuxProcessParams.containerParams.volumes[_].sourcePath == STRING
    input.Body.lambdaFunction.componentLambdaParameters.linuxProcessParams.containerParams.volumes[_].destinationPath == STRING
    input.Body.lambdaFunction.componentLambdaParameters.linuxProcessParams.containerParams.volumes[_].permission == enum_LambdaFilesystemPermission[_]
    input.Body.lambdaFunction.componentLambdaParameters.linuxProcessParams.containerParams.volumes[_].addGroupOwner == BOOLEAN
    input.Body.lambdaFunction.componentLambdaParameters.linuxProcessParams.containerParams.devices[_].path == STRING
    input.Body.lambdaFunction.componentLambdaParameters.linuxProcessParams.containerParams.devices[_].permission == enum_LambdaFilesystemPermission[_]
    input.Body.lambdaFunction.componentLambdaParameters.linuxProcessParams.containerParams.devices[_].addGroupOwner == BOOLEAN
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateConnectorDefinition

valid {
    input.Body.InitialVersion.Connectors[_].ConnectorArn == STRING
    input.Body.InitialVersion.Connectors[_].Id == STRING
    input.Body.InitialVersion.Connectors[_].Parameters.STRING == STRING
    input.Body.Name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateConnectorDefinitionVersion

valid {
    input.Body.Connectors[_].ConnectorArn == STRING
    input.Body.Connectors[_].Id == STRING
    input.Body.Connectors[_].Parameters.STRING == STRING
    input.ReqMap.ConnectorDefinitionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCoreDefinition

valid {
    input.Body.InitialVersion.Cores[_].CertificateArn == STRING
    input.Body.InitialVersion.Cores[_].Id == STRING
    input.Body.InitialVersion.Cores[_].SyncShadow == BOOLEAN
    input.Body.InitialVersion.Cores[_].ThingArn == STRING
    input.Body.Name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCoreDefinitionVersion

valid {
    input.Body.Cores[_].CertificateArn == STRING
    input.Body.Cores[_].Id == STRING
    input.Body.Cores[_].SyncShadow == BOOLEAN
    input.Body.Cores[_].ThingArn == STRING
    input.ReqMap.CoreDefinitionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDeployment

enum_DeploymentComponentUpdatePolicyAction := [ "NOTIFY_COMPONENTS", "SKIP_NOTIFY_COMPONENTS" ]
enum_DeploymentFailureHandlingPolicy := [ "ROLLBACK", "DO_NOTHING" ]
enum_IoTJobAbortAction := [ "CANCEL" ]
enum_IoTJobExecutionFailureType := [ "FAILED", "REJECTED", "TIMED_OUT", "ALL" ]

valid {
    input.Body.targetArn == STRING
    input.Body.deploymentName == STRING
    input.Body.components.STRING.componentVersion == STRING
    input.Body.components.STRING.configurationUpdate.merge == STRING
    input.Body.components.STRING.configurationUpdate.reset[_] == STRING
    input.Body.components.STRING.runWith.posixUser == STRING
    input.Body.components.STRING.runWith.systemResourceLimits.memory == LONG
    input.Body.components.STRING.runWith.systemResourceLimits.cpus == DOUBLE
    input.Body.components.STRING.runWith.windowsUser == STRING
    input.Body.iotJobConfiguration.jobExecutionsRolloutConfig.exponentialRate.baseRatePerMinute == INTEGER
    input.Body.iotJobConfiguration.jobExecutionsRolloutConfig.exponentialRate.incrementFactor == DOUBLE
    input.Body.iotJobConfiguration.jobExecutionsRolloutConfig.exponentialRate.rateIncreaseCriteria.numberOfNotifiedThings == INTEGER
    input.Body.iotJobConfiguration.jobExecutionsRolloutConfig.exponentialRate.rateIncreaseCriteria.numberOfSucceededThings == INTEGER
    input.Body.iotJobConfiguration.jobExecutionsRolloutConfig.maximumPerMinute == INTEGER
    input.Body.iotJobConfiguration.abortConfig.criteriaList[_].failureType == enum_IoTJobExecutionFailureType[_]
    input.Body.iotJobConfiguration.abortConfig.criteriaList[_].action == enum_IoTJobAbortAction[_]
    input.Body.iotJobConfiguration.abortConfig.criteriaList[_].thresholdPercentage == DOUBLE
    input.Body.iotJobConfiguration.abortConfig.criteriaList[_].minNumberOfExecutedThings == INTEGER
    input.Body.iotJobConfiguration.timeoutConfig.inProgressTimeoutInMinutes == LONG
    input.Body.deploymentPolicies.failureHandlingPolicy == enum_DeploymentFailureHandlingPolicy[_]
    input.Body.deploymentPolicies.componentUpdatePolicy.timeoutInSeconds == INTEGER
    input.Body.deploymentPolicies.componentUpdatePolicy.action == enum_DeploymentComponentUpdatePolicyAction[_]
    input.Body.deploymentPolicies.configurationValidationPolicy.timeoutInSeconds == INTEGER
    input.Body.parentTargetArn == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDeviceDefinition

valid {
    input.Body.InitialVersion.Devices[_].CertificateArn == STRING
    input.Body.InitialVersion.Devices[_].Id == STRING
    input.Body.InitialVersion.Devices[_].SyncShadow == BOOLEAN
    input.Body.InitialVersion.Devices[_].ThingArn == STRING
    input.Body.Name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDeviceDefinitionVersion

valid {
    input.Body.Devices[_].CertificateArn == STRING
    input.Body.Devices[_].Id == STRING
    input.Body.Devices[_].SyncShadow == BOOLEAN
    input.Body.Devices[_].ThingArn == STRING
    input.ReqMap.DeviceDefinitionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFunctionDefinition

enum_EncodingType := [ "binary", "json" ]
enum_FunctionIsolationMode := [ "GreengrassContainer", "NoContainer" ]
enum_Permission := [ "ro", "rw" ]

valid {
    input.Body.InitialVersion.DefaultConfig.Execution.IsolationMode == enum_FunctionIsolationMode[_]
    input.Body.InitialVersion.DefaultConfig.Execution.RunAs.Gid == INTEGER
    input.Body.InitialVersion.DefaultConfig.Execution.RunAs.Uid == INTEGER
    input.Body.InitialVersion.Functions[_].FunctionArn == STRING
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.EncodingType == enum_EncodingType[_]
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.Environment.AccessSysfs == BOOLEAN
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.Environment.Execution.IsolationMode == enum_FunctionIsolationMode[_]
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.Environment.Execution.RunAs.Gid == INTEGER
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.Environment.Execution.RunAs.Uid == INTEGER
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.Environment.ResourceAccessPolicies[_].Permission == enum_Permission[_]
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.Environment.ResourceAccessPolicies[_].ResourceId == STRING
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.Environment.Variables.STRING == STRING
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.ExecArgs == STRING
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.Executable == STRING
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.MemorySize == INTEGER
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.Pinned == BOOLEAN
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.Timeout == INTEGER
    input.Body.InitialVersion.Functions[_].FunctionConfiguration.FunctionRuntimeOverride == STRING
    input.Body.InitialVersion.Functions[_].Id == STRING
    input.Body.Name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFunctionDefinitionVersion

enum_EncodingType := [ "binary", "json" ]
enum_FunctionIsolationMode := [ "GreengrassContainer", "NoContainer" ]
enum_Permission := [ "ro", "rw" ]

valid {
    input.Body.DefaultConfig.Execution.IsolationMode == enum_FunctionIsolationMode[_]
    input.Body.DefaultConfig.Execution.RunAs.Gid == INTEGER
    input.Body.DefaultConfig.Execution.RunAs.Uid == INTEGER
    input.Body.Functions[_].FunctionArn == STRING
    input.Body.Functions[_].FunctionConfiguration.EncodingType == enum_EncodingType[_]
    input.Body.Functions[_].FunctionConfiguration.Environment.AccessSysfs == BOOLEAN
    input.Body.Functions[_].FunctionConfiguration.Environment.Execution.IsolationMode == enum_FunctionIsolationMode[_]
    input.Body.Functions[_].FunctionConfiguration.Environment.Execution.RunAs.Gid == INTEGER
    input.Body.Functions[_].FunctionConfiguration.Environment.Execution.RunAs.Uid == INTEGER
    input.Body.Functions[_].FunctionConfiguration.Environment.ResourceAccessPolicies[_].Permission == enum_Permission[_]
    input.Body.Functions[_].FunctionConfiguration.Environment.ResourceAccessPolicies[_].ResourceId == STRING
    input.Body.Functions[_].FunctionConfiguration.Environment.Variables.STRING == STRING
    input.Body.Functions[_].FunctionConfiguration.ExecArgs == STRING
    input.Body.Functions[_].FunctionConfiguration.Executable == STRING
    input.Body.Functions[_].FunctionConfiguration.MemorySize == INTEGER
    input.Body.Functions[_].FunctionConfiguration.Pinned == BOOLEAN
    input.Body.Functions[_].FunctionConfiguration.Timeout == INTEGER
    input.Body.Functions[_].FunctionConfiguration.FunctionRuntimeOverride == STRING
    input.Body.Functions[_].Id == STRING
    input.ReqMap.FunctionDefinitionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGroup

valid {
    input.Body.InitialVersion.ConnectorDefinitionVersionArn == STRING
    input.Body.InitialVersion.CoreDefinitionVersionArn == STRING
    input.Body.InitialVersion.DeviceDefinitionVersionArn == STRING
    input.Body.InitialVersion.FunctionDefinitionVersionArn == STRING
    input.Body.InitialVersion.LoggerDefinitionVersionArn == STRING
    input.Body.InitialVersion.ResourceDefinitionVersionArn == STRING
    input.Body.InitialVersion.SubscriptionDefinitionVersionArn == STRING
    input.Body.Name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGroupCertificateAuthority

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

CreateGroupVersion

valid {
    input.Body.ConnectorDefinitionVersionArn == STRING
    input.Body.CoreDefinitionVersionArn == STRING
    input.Body.DeviceDefinitionVersionArn == STRING
    input.Body.FunctionDefinitionVersionArn == STRING
    input.Body.LoggerDefinitionVersionArn == STRING
    input.Body.ResourceDefinitionVersionArn == STRING
    input.Body.SubscriptionDefinitionVersionArn == STRING
    input.ReqMap.GroupId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLoggerDefinition

enum_LoggerComponent := [ "GreengrassSystem", "Lambda" ]
enum_LoggerLevel := [ "DEBUG", "INFO", "WARN", "ERROR", "FATAL" ]
enum_LoggerType := [ "FileSystem", "AWSCloudWatch" ]

valid {
    input.Body.InitialVersion.Loggers[_].Component == enum_LoggerComponent[_]
    input.Body.InitialVersion.Loggers[_].Id == STRING
    input.Body.InitialVersion.Loggers[_].Level == enum_LoggerLevel[_]
    input.Body.InitialVersion.Loggers[_].Space == INTEGER
    input.Body.InitialVersion.Loggers[_].Type == enum_LoggerType[_]
    input.Body.Name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLoggerDefinitionVersion

enum_LoggerComponent := [ "GreengrassSystem", "Lambda" ]
enum_LoggerLevel := [ "DEBUG", "INFO", "WARN", "ERROR", "FATAL" ]
enum_LoggerType := [ "FileSystem", "AWSCloudWatch" ]

valid {
    input.Body.Loggers[_].Component == enum_LoggerComponent[_]
    input.Body.Loggers[_].Id == STRING
    input.Body.Loggers[_].Level == enum_LoggerLevel[_]
    input.Body.Loggers[_].Space == INTEGER
    input.Body.Loggers[_].Type == enum_LoggerType[_]
    input.ReqMap.LoggerDefinitionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateResourceDefinition

enum_Permission := [ "ro", "rw" ]

valid {
    input.Body.InitialVersion.Resources[_].Id == STRING
    input.Body.InitialVersion.Resources[_].Name == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.LocalDeviceResourceData.GroupOwnerSetting.AutoAddGroupOwner == BOOLEAN
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.LocalDeviceResourceData.GroupOwnerSetting.GroupOwner == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.LocalDeviceResourceData.SourcePath == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.LocalVolumeResourceData.DestinationPath == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.LocalVolumeResourceData.GroupOwnerSetting.AutoAddGroupOwner == BOOLEAN
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.LocalVolumeResourceData.GroupOwnerSetting.GroupOwner == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.LocalVolumeResourceData.SourcePath == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.S3MachineLearningModelResourceData.DestinationPath == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.S3MachineLearningModelResourceData.OwnerSetting.GroupOwner == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.S3MachineLearningModelResourceData.OwnerSetting.GroupPermission == enum_Permission[_]
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.S3MachineLearningModelResourceData.S3Uri == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.SageMakerMachineLearningModelResourceData.DestinationPath == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.SageMakerMachineLearningModelResourceData.OwnerSetting.GroupOwner == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.SageMakerMachineLearningModelResourceData.OwnerSetting.GroupPermission == enum_Permission[_]
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.SageMakerMachineLearningModelResourceData.SageMakerJobArn == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.SecretsManagerSecretResourceData.ARN == STRING
    input.Body.InitialVersion.Resources[_].ResourceDataContainer.SecretsManagerSecretResourceData.AdditionalStagingLabelsToDownload[_] == STRING
    input.Body.Name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateResourceDefinitionVersion

enum_Permission := [ "ro", "rw" ]

valid {
    input.Body.Resources[_].Id == STRING
    input.Body.Resources[_].Name == STRING
    input.Body.Resources[_].ResourceDataContainer.LocalDeviceResourceData.GroupOwnerSetting.AutoAddGroupOwner == BOOLEAN
    input.Body.Resources[_].ResourceDataContainer.LocalDeviceResourceData.GroupOwnerSetting.GroupOwner == STRING
    input.Body.Resources[_].ResourceDataContainer.LocalDeviceResourceData.SourcePath == STRING
    input.Body.Resources[_].ResourceDataContainer.LocalVolumeResourceData.DestinationPath == STRING
    input.Body.Resources[_].ResourceDataContainer.LocalVolumeResourceData.GroupOwnerSetting.AutoAddGroupOwner == BOOLEAN
    input.Body.Resources[_].ResourceDataContainer.LocalVolumeResourceData.GroupOwnerSetting.GroupOwner == STRING
    input.Body.Resources[_].ResourceDataContainer.LocalVolumeResourceData.SourcePath == STRING
    input.Body.Resources[_].ResourceDataContainer.S3MachineLearningModelResourceData.DestinationPath == STRING
    input.Body.Resources[_].ResourceDataContainer.S3MachineLearningModelResourceData.OwnerSetting.GroupOwner == STRING
    input.Body.Resources[_].ResourceDataContainer.S3MachineLearningModelResourceData.OwnerSetting.GroupPermission == enum_Permission[_]
    input.Body.Resources[_].ResourceDataContainer.S3MachineLearningModelResourceData.S3Uri == STRING
    input.Body.Resources[_].ResourceDataContainer.SageMakerMachineLearningModelResourceData.DestinationPath == STRING
    input.Body.Resources[_].ResourceDataContainer.SageMakerMachineLearningModelResourceData.OwnerSetting.GroupOwner == STRING
    input.Body.Resources[_].ResourceDataContainer.SageMakerMachineLearningModelResourceData.OwnerSetting.GroupPermission == enum_Permission[_]
    input.Body.Resources[_].ResourceDataContainer.SageMakerMachineLearningModelResourceData.SageMakerJobArn == STRING
    input.Body.Resources[_].ResourceDataContainer.SecretsManagerSecretResourceData.ARN == STRING
    input.Body.Resources[_].ResourceDataContainer.SecretsManagerSecretResourceData.AdditionalStagingLabelsToDownload[_] == STRING
    input.ReqMap.ResourceDefinitionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSoftwareUpdateJob

enum_SoftwareToUpdate := [ "core", "ota_agent" ]
enum_UpdateAgentLogLevel := [ "NONE", "TRACE", "DEBUG", "VERBOSE", "INFO", "WARN", "ERROR", "FATAL" ]
enum_UpdateTargetsArchitecture := [ "armv6l", "armv7l", "x86_64", "aarch64" ]
enum_UpdateTargetsOperatingSystem := [ "ubuntu", "raspbian", "amazon_linux", "openwrt" ]

valid {
    input.Body.S3UrlSignerRole == STRING
    input.Body.SoftwareToUpdate == enum_SoftwareToUpdate[_]
    input.Body.UpdateAgentLogLevel == enum_UpdateAgentLogLevel[_]
    input.Body.UpdateTargets[_] == STRING
    input.Body.UpdateTargetsArchitecture == enum_UpdateTargetsArchitecture[_]
    input.Body.UpdateTargetsOperatingSystem == enum_UpdateTargetsOperatingSystem[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSubscriptionDefinition

valid {
    input.Body.InitialVersion.Subscriptions[_].Id == STRING
    input.Body.InitialVersion.Subscriptions[_].Source == STRING
    input.Body.InitialVersion.Subscriptions[_].Subject == STRING
    input.Body.InitialVersion.Subscriptions[_].Target == STRING
    input.Body.Name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSubscriptionDefinitionVersion

valid {
    input.Body.Subscriptions[_].Id == STRING
    input.Body.Subscriptions[_].Source == STRING
    input.Body.Subscriptions[_].Subject == STRING
    input.Body.Subscriptions[_].Target == STRING
    input.ReqMap.SubscriptionDefinitionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteComponent

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

DeleteConnectorDefinition

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

DeleteCoreDefinition

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

DeleteCoreDevice

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

DeleteDeployment

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

DeleteDeviceDefinition

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

DeleteFunctionDefinition

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

DeleteGroup

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

DeleteLoggerDefinition

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

DeleteResourceDefinition

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

DeleteSubscriptionDefinition

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

DescribeComponent

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

DisassociateRoleFromGroup

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

DisassociateServiceRoleFromAccount

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

GetAssociatedRole

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

GetBulkDeploymentStatus

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

GetComponent

enum_RecipeOutputFormat := [ "JSON", "YAML" ]

valid {
    input.ReqMap.arn == STRING
    input.Qs.recipeOutputFormat == enum_RecipeOutputFormat[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetComponentVersionArtifact

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

GetConnectivityInfo

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

GetConnectorDefinition

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

GetConnectorDefinitionVersion

valid {
    input.ReqMap.ConnectorDefinitionId == STRING
    input.ReqMap.ConnectorDefinitionVersionId == STRING
    input.Qs.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCoreDefinition

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

GetCoreDefinitionVersion

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

GetCoreDevice

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

GetDeployment

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

GetDeploymentStatus

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

GetDeviceDefinition

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

GetDeviceDefinitionVersion

valid {
    input.ReqMap.DeviceDefinitionId == STRING
    input.ReqMap.DeviceDefinitionVersionId == STRING
    input.Qs.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetFunctionDefinition

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

GetFunctionDefinitionVersion

valid {
    input.ReqMap.FunctionDefinitionId == STRING
    input.ReqMap.FunctionDefinitionVersionId == STRING
    input.Qs.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetGroup

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

GetGroupCertificateAuthority

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

GetGroupCertificateConfiguration

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

GetGroupVersion

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

GetLoggerDefinition

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

GetLoggerDefinitionVersion

valid {
    input.ReqMap.LoggerDefinitionId == STRING
    input.ReqMap.LoggerDefinitionVersionId == STRING
    input.Qs.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetResourceDefinition

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

GetResourceDefinitionVersion

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

GetServiceRoleForAccount

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

GetSubscriptionDefinition

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

GetSubscriptionDefinitionVersion

valid {
    input.ReqMap.SubscriptionDefinitionId == STRING
    input.ReqMap.SubscriptionDefinitionVersionId == STRING
    input.Qs.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetThingRuntimeConfiguration

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

ListBulkDeploymentDetailedReports

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

ListBulkDeployments

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

ListClientDevicesAssociatedWithCoreDevice

valid {
    input.ReqMap.coreDeviceThingName == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListComponentVersions

valid {
    input.ReqMap.arn == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListComponents

enum_ComponentVisibilityScope := [ "PRIVATE", "PUBLIC" ]

valid {
    input.Qs.scope == enum_ComponentVisibilityScope[_]
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListConnectorDefinitionVersions

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

ListConnectorDefinitions

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

ListCoreDefinitionVersions

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

ListCoreDefinitions

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

ListCoreDevices

enum_CoreDeviceStatus := [ "HEALTHY", "UNHEALTHY" ]

valid {
    input.Qs.thingGroupArn == STRING
    input.Qs.status == enum_CoreDeviceStatus[_]
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDeployments

enum_DeploymentHistoryFilter := [ "ALL", "LATEST_ONLY" ]

valid {
    input.Qs.targetArn == STRING
    input.Qs.historyFilter == enum_DeploymentHistoryFilter[_]
    input.Qs.parentTargetArn == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDeviceDefinitionVersions

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

ListDeviceDefinitions

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

ListEffectiveDeployments

valid {
    input.ReqMap.coreDeviceThingName == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListFunctionDefinitionVersions

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

ListFunctionDefinitions

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

ListGroupCertificateAuthorities

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

ListGroupVersions

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

ListGroups

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

ListInstalledComponents

enum_InstalledComponentTopologyFilter := [ "ALL", "ROOT" ]

valid {
    input.ReqMap.coreDeviceThingName == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.topologyFilter == enum_InstalledComponentTopologyFilter[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListLoggerDefinitionVersions

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

ListLoggerDefinitions

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

ListResourceDefinitionVersions

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

ListResourceDefinitions

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

ListSubscriptionDefinitionVersions

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

ListSubscriptionDefinitions

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

ListTagsForResource

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

ResetDeployments

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

ResolveComponentCandidates

valid {
    input.Body.platform.name == STRING
    input.Body.platform.attributes.STRING == STRING
    input.Body.componentCandidates[_].componentName == STRING
    input.Body.componentCandidates[_].componentVersion == STRING
    input.Body.componentCandidates[_].versionRequirements.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartBulkDeployment

valid {
    input.Body.ExecutionRoleArn == STRING
    input.Body.InputFileUri == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopBulkDeployment

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

TagResource

valid {
    input.Body.tags.STRING == STRING
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.ReqMap.resourceArn == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateConnectivityInfo

valid {
    input.Body.ConnectivityInfo[_].Id == STRING
    input.Body.ConnectivityInfo[_].HostAddress == STRING
    input.Body.ConnectivityInfo[_].PortNumber == INTEGER
    input.Body.ConnectivityInfo[_].Metadata == STRING
    input.ReqMap.thingName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateConnectorDefinition

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

UpdateCoreDefinition

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

UpdateDeviceDefinition

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

UpdateFunctionDefinition

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

UpdateGroup

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

UpdateGroupCertificateConfiguration

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

UpdateLoggerDefinition

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

UpdateResourceDefinition

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

UpdateSubscriptionDefinition

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

UpdateThingRuntimeConfiguration

enum_Telemetry := [ "On", "Off" ]

valid {
    input.Body.TelemetryConfiguration.Telemetry == enum_Telemetry[_]
    input.ReqMap.ThingName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}