MICROSOFT.CONTAINERINSTANCE

ContainerGroups_CreateOrUpdate

enum_ContainerGroupIdentityType := [ "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned", "None" ]
enum_ContainerGroupPropertiesPropertiesOsType := [ "Windows", "Linux" ]
enum_ContainerGroupPropertiesPropertiesPriority := [ "Regular", "Spot" ]
enum_ContainerGroupPropertiesPropertiesRestartPolicy := [ "Always", "OnFailure", "Never" ]
enum_ContainerGroupSku := [ "Standard", "Dedicated", "Confidential" ]
enum_ContainerHttpGetScheme := [ "http", "https" ]
enum_ContainerPortProtocol := [ "TCP", "UDP" ]
enum_GpuResourceSku := [ "K80", "P100", "V100" ]
enum_IpAddressAutoGeneratedDomainNameLabelScope := [ "Unsecure", "TenantReuse", "SubscriptionReuse", "ResourceGroupReuse", "Noreuse" ]
enum_IpAddressType := [ "Public", "Private" ]
enum_LogAnalyticsLogType := [ "ContainerInsights", "ContainerInstanceLogs" ]
enum_PortProtocol := [ "TCP", "UDP" ]

valid {
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.Body.zones[_] == STRING
    input.Body.identity.type == enum_ContainerGroupIdentityType[_]
    input.Body.identity.userAssignedIdentities.STRING == {}
    input.Body.properties.containers[_].name == STRING
    input.Body.properties.containers[_].properties.image == STRING
    input.Body.properties.containers[_].properties.command[_] == STRING
    input.Body.properties.containers[_].properties.ports[_].protocol == enum_ContainerPortProtocol[_]
    input.Body.properties.containers[_].properties.ports[_].port == INTEGER
    input.Body.properties.containers[_].properties.environmentVariables[_].name == STRING
    input.Body.properties.containers[_].properties.environmentVariables[_].value == STRING
    input.Body.properties.containers[_].properties.environmentVariables[_].secureValue == STRING
    input.Body.properties.containers[_].properties.resources.requests.memoryInGB == NUMBER
    input.Body.properties.containers[_].properties.resources.requests.cpu == NUMBER
    input.Body.properties.containers[_].properties.resources.requests.gpu.count == INTEGER
    input.Body.properties.containers[_].properties.resources.requests.gpu.sku == enum_GpuResourceSku[_]
    input.Body.properties.containers[_].properties.resources.limits.memoryInGB == NUMBER
    input.Body.properties.containers[_].properties.resources.limits.cpu == NUMBER
    input.Body.properties.containers[_].properties.resources.limits.gpu.count == INTEGER
    input.Body.properties.containers[_].properties.resources.limits.gpu.sku == enum_GpuResourceSku[_]
    input.Body.properties.containers[_].properties.volumeMounts[_].name == STRING
    input.Body.properties.containers[_].properties.volumeMounts[_].mountPath == STRING
    input.Body.properties.containers[_].properties.volumeMounts[_].readOnly == BOOLEAN
    input.Body.properties.containers[_].properties.livenessProbe.exec.command[_] == STRING
    input.Body.properties.containers[_].properties.livenessProbe.httpGet.path == STRING
    input.Body.properties.containers[_].properties.livenessProbe.httpGet.port == INTEGER
    input.Body.properties.containers[_].properties.livenessProbe.httpGet.scheme == enum_ContainerHttpGetScheme[_]
    input.Body.properties.containers[_].properties.livenessProbe.httpGet.httpHeaders[_].name == STRING
    input.Body.properties.containers[_].properties.livenessProbe.httpGet.httpHeaders[_].value == STRING
    input.Body.properties.containers[_].properties.livenessProbe.initialDelaySeconds == INTEGER
    input.Body.properties.containers[_].properties.livenessProbe.periodSeconds == INTEGER
    input.Body.properties.containers[_].properties.livenessProbe.failureThreshold == INTEGER
    input.Body.properties.containers[_].properties.livenessProbe.successThreshold == INTEGER
    input.Body.properties.containers[_].properties.livenessProbe.timeoutSeconds == INTEGER
    input.Body.properties.containers[_].properties.readinessProbe.exec.command[_] == STRING
    input.Body.properties.containers[_].properties.readinessProbe.httpGet.path == STRING
    input.Body.properties.containers[_].properties.readinessProbe.httpGet.port == INTEGER
    input.Body.properties.containers[_].properties.readinessProbe.httpGet.scheme == enum_ContainerHttpGetScheme[_]
    input.Body.properties.containers[_].properties.readinessProbe.httpGet.httpHeaders[_].name == STRING
    input.Body.properties.containers[_].properties.readinessProbe.httpGet.httpHeaders[_].value == STRING
    input.Body.properties.containers[_].properties.readinessProbe.initialDelaySeconds == INTEGER
    input.Body.properties.containers[_].properties.readinessProbe.periodSeconds == INTEGER
    input.Body.properties.containers[_].properties.readinessProbe.failureThreshold == INTEGER
    input.Body.properties.containers[_].properties.readinessProbe.successThreshold == INTEGER
    input.Body.properties.containers[_].properties.readinessProbe.timeoutSeconds == INTEGER
    input.Body.properties.containers[_].properties.securityContext.privileged == BOOLEAN
    input.Body.properties.containers[_].properties.securityContext.allowPrivilegeEscalation == BOOLEAN
    input.Body.properties.containers[_].properties.securityContext.capabilities.add[_] == STRING
    input.Body.properties.containers[_].properties.securityContext.capabilities.drop[_] == STRING
    input.Body.properties.containers[_].properties.securityContext.runAsGroup == INTEGER
    input.Body.properties.containers[_].properties.securityContext.runAsUser == INTEGER
    input.Body.properties.containers[_].properties.securityContext.seccompProfile == STRING
    input.Body.properties.imageRegistryCredentials[_].server == STRING
    input.Body.properties.imageRegistryCredentials[_].username == STRING
    input.Body.properties.imageRegistryCredentials[_].password == STRING
    input.Body.properties.imageRegistryCredentials[_].identity == STRING
    input.Body.properties.imageRegistryCredentials[_].identityUrl == STRING
    input.Body.properties.restartPolicy == enum_ContainerGroupPropertiesPropertiesRestartPolicy[_]
    input.Body.properties.ipAddress.ports[_].protocol == enum_PortProtocol[_]
    input.Body.properties.ipAddress.ports[_].port == INTEGER
    input.Body.properties.ipAddress.type == enum_IpAddressType[_]
    input.Body.properties.ipAddress.ip == STRING
    input.Body.properties.ipAddress.dnsNameLabel == STRING
    input.Body.properties.ipAddress.autoGeneratedDomainNameLabelScope == enum_IpAddressAutoGeneratedDomainNameLabelScope[_]
    input.Body.properties.osType == enum_ContainerGroupPropertiesPropertiesOsType[_]
    input.Body.properties.volumes[_].name == STRING
    input.Body.properties.volumes[_].azureFile.shareName == STRING
    input.Body.properties.volumes[_].azureFile.readOnly == BOOLEAN
    input.Body.properties.volumes[_].azureFile.storageAccountName == STRING
    input.Body.properties.volumes[_].azureFile.storageAccountKey == STRING
    input.Body.properties.volumes[_].emptyDir.STRING == STRING
    input.Body.properties.volumes[_].secret.STRING == STRING
    input.Body.properties.volumes[_].gitRepo.directory == STRING
    input.Body.properties.volumes[_].gitRepo.repository == STRING
    input.Body.properties.volumes[_].gitRepo.revision == STRING
    input.Body.properties.diagnostics.logAnalytics.workspaceId == STRING
    input.Body.properties.diagnostics.logAnalytics.workspaceKey == STRING
    input.Body.properties.diagnostics.logAnalytics.logType == enum_LogAnalyticsLogType[_]
    input.Body.properties.diagnostics.logAnalytics.metadata.STRING == STRING
    input.Body.properties.diagnostics.logAnalytics.workspaceResourceId == STRING
    input.Body.properties.subnetIds[_].id == STRING
    input.Body.properties.subnetIds[_].name == STRING
    input.Body.properties.dnsConfig.nameServers[_] == STRING
    input.Body.properties.dnsConfig.searchDomains == STRING
    input.Body.properties.dnsConfig.options == STRING
    input.Body.properties.sku == enum_ContainerGroupSku[_]
    input.Body.properties.encryptionProperties.vaultBaseUrl == STRING
    input.Body.properties.encryptionProperties.keyName == STRING
    input.Body.properties.encryptionProperties.keyVersion == STRING
    input.Body.properties.encryptionProperties.identity == STRING
    input.Body.properties.initContainers[_].name == STRING
    input.Body.properties.initContainers[_].properties.image == STRING
    input.Body.properties.initContainers[_].properties.command[_] == STRING
    input.Body.properties.initContainers[_].properties.environmentVariables[_].name == STRING
    input.Body.properties.initContainers[_].properties.environmentVariables[_].value == STRING
    input.Body.properties.initContainers[_].properties.environmentVariables[_].secureValue == STRING
    input.Body.properties.initContainers[_].properties.volumeMounts[_].name == STRING
    input.Body.properties.initContainers[_].properties.volumeMounts[_].mountPath == STRING
    input.Body.properties.initContainers[_].properties.volumeMounts[_].readOnly == BOOLEAN
    input.Body.properties.initContainers[_].properties.securityContext.privileged == BOOLEAN
    input.Body.properties.initContainers[_].properties.securityContext.allowPrivilegeEscalation == BOOLEAN
    input.Body.properties.initContainers[_].properties.securityContext.capabilities.add[_] == STRING
    input.Body.properties.initContainers[_].properties.securityContext.capabilities.drop[_] == STRING
    input.Body.properties.initContainers[_].properties.securityContext.runAsGroup == INTEGER
    input.Body.properties.initContainers[_].properties.securityContext.runAsUser == INTEGER
    input.Body.properties.initContainers[_].properties.securityContext.seccompProfile == STRING
    input.Body.properties.extensions[_].name == STRING
    input.Body.properties.extensions[_].properties.extensionType == STRING
    input.Body.properties.extensions[_].properties.version == STRING
    input.Body.properties.extensions[_].properties.settings.STRING == STRING
    input.Body.properties.extensions[_].properties.protectedSettings.STRING == STRING
    input.Body.properties.confidentialComputeProperties.ccePolicy == STRING
    input.Body.properties.priority == enum_ContainerGroupPropertiesPropertiesPriority[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContainerGroups_Delete

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContainerGroups_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContainerGroups_GetOutboundNetworkDependenciesEndpoints

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContainerGroups_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ContainerGroups_ListByResourceGroup

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContainerGroups_Restart

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContainerGroups_Start

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContainerGroups_Stop

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContainerGroups_Update

valid {
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.Body.zones[_] == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Containers_Attach

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.ReqMap.containerName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Containers_ExecuteCommand

valid {
    input.Body.command == STRING
    input.Body.terminalSize.rows == INTEGER
    input.Body.terminalSize.cols == INTEGER
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.ReqMap.containerName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Containers_ListLogs

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.containerGroupName == STRING
    input.ReqMap.containerName == STRING
    input.Qs.api-version == STRING
    input.Qs.tail == INTEGER
    input.Qs.timestamps == BOOLEAN
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Location_ListCachedImages

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Location_ListCapabilities

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Location_ListUsage

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Operations_List

valid {
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

SubnetServiceAssociationLink_Delete

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.virtualNetworkName == STRING
    input.ReqMap.subnetName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}