diff --git a/provider/cmd/pulumi-resource-spotinst/bridge-metadata.json b/provider/cmd/pulumi-resource-spotinst/bridge-metadata.json index aa2b00b3..bd731a08 100644 --- a/provider/cmd/pulumi-resource-spotinst/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-spotinst/bridge-metadata.json @@ -459,94 +459,6 @@ } } }, - "spotinst_elastigroup_azure": { - "current": "spotinst:azure/elastigroup:Elastigroup", - "fields": { - "health_check": { - "maxItemsOne": true - }, - "image": { - "maxItemsOne": false, - "elem": { - "fields": { - "custom": { - "maxItemsOne": false - }, - "marketplace": { - "maxItemsOne": false - } - } - } - }, - "integration_kubernetes": { - "maxItemsOne": true - }, - "integration_multai_runtime": { - "maxItemsOne": true - }, - "load_balancers": { - "maxItemsOne": false - }, - "login": { - "maxItemsOne": true - }, - "low_priority_sizes": { - "maxItemsOne": false - }, - "managed_service_identities": { - "maxItemsOne": false - }, - "network": { - "maxItemsOne": true, - "elem": { - "fields": { - "additional_ip_configs": { - "maxItemsOne": false - } - } - } - }, - "od_sizes": { - "maxItemsOne": false - }, - "scaling_down_policy": { - "maxItemsOne": false, - "elem": { - "fields": { - "dimensions": { - "maxItemsOne": false - } - } - } - }, - "scaling_up_policy": { - "maxItemsOne": false, - "elem": { - "fields": { - "dimensions": { - "maxItemsOne": false - } - } - } - }, - "scheduled_task": { - "maxItemsOne": false - }, - "strategy": { - "maxItemsOne": true - }, - "update_policy": { - "maxItemsOne": true, - "elem": { - "fields": { - "roll_config": { - "maxItemsOne": true - } - } - } - } - } - }, "spotinst_elastigroup_azure_v3": { "current": "spotinst:index/elastigroupAzureV3:ElastigroupAzureV3", "fields": { diff --git a/provider/cmd/pulumi-resource-spotinst/schema.json b/provider/cmd/pulumi-resource-spotinst/schema.json index 72b78e45..23609e4d 100644 --- a/provider/cmd/pulumi-resource-spotinst/schema.json +++ b/provider/cmd/pulumi-resource-spotinst/schema.json @@ -3784,143 +3784,242 @@ "name" ] }, - "spotinst:azure/ElastigroupHealthCheck:ElastigroupHealthCheck": { + "spotinst:azure/OceanAutoscaler:OceanAutoscaler": { "properties": { - "autoHealing": { - "type": "boolean" + "autoscaleDown": { + "$ref": "#/types/spotinst:azure/OceanAutoscalerAutoscaleDown:OceanAutoscalerAutoscaleDown", + "description": "Auto Scaling scale down operations.\n" }, - "gracePeriod": { - "type": "integer" + "autoscaleHeadroom": { + "$ref": "#/types/spotinst:azure/OceanAutoscalerAutoscaleHeadroom:OceanAutoscalerAutoscaleHeadroom", + "description": "Spare Resource Capacity Management feature enables fast assignment of Pods without having to wait for new resources to be launched.\n" }, - "healthCheckType": { - "type": "string" + "autoscaleIsEnabled": { + "type": "boolean", + "description": "Enable the Ocean Kubernetes Autoscaler.\n" + }, + "resourceLimits": { + "$ref": "#/types/spotinst:azure/OceanAutoscalerResourceLimits:OceanAutoscalerResourceLimits", + "description": "Optionally set upper and lower bounds on the resource usage of the cluster.\n" } }, "type": "object", - "required": [ - "healthCheckType" - ] + "language": { + "nodejs": { + "requiredOutputs": [ + "autoscaleDown", + "autoscaleHeadroom", + "autoscaleIsEnabled", + "resourceLimits" + ] + } + } }, - "spotinst:azure/ElastigroupImage:ElastigroupImage": { + "spotinst:azure/OceanAutoscalerAutoscaleDown:OceanAutoscalerAutoscaleDown": { "properties": { - "customs": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:azure/ElastigroupImageCustom:ElastigroupImageCustom" - } + "maxScaleDownPercentage": { + "type": "number" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "maxScaleDownPercentage" + ] + } + } + }, + "spotinst:azure/OceanAutoscalerAutoscaleHeadroom:OceanAutoscalerAutoscaleHeadroom": { + "properties": { + "automatic": { + "$ref": "#/types/spotinst:azure/OceanAutoscalerAutoscaleHeadroomAutomatic:OceanAutoscalerAutoscaleHeadroomAutomatic" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "automatic" + ] + } + } + }, + "spotinst:azure/OceanAutoscalerAutoscaleHeadroomAutomatic:OceanAutoscalerAutoscaleHeadroomAutomatic": { + "properties": { + "isEnabled": { + "type": "boolean" }, - "marketplaces": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:azure/ElastigroupImageMarketplace:ElastigroupImageMarketplace" - } + "percentage": { + "type": "integer" } }, - "type": "object" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "isEnabled", + "percentage" + ] + } + } }, - "spotinst:azure/ElastigroupImageCustom:ElastigroupImageCustom": { + "spotinst:azure/OceanAutoscalerResourceLimits:OceanAutoscalerResourceLimits": { "properties": { - "imageName": { - "type": "string" + "maxMemoryGib": { + "type": "integer" }, - "resourceGroupName": { - "type": "string", - "description": "Name of the Resource Group for Elastigroup.\n" + "maxVcpu": { + "type": "integer" } }, "type": "object", - "required": [ - "imageName", - "resourceGroupName" - ] + "language": { + "nodejs": { + "requiredOutputs": [ + "maxMemoryGib" + ] + } + } }, - "spotinst:azure/ElastigroupImageMarketplace:ElastigroupImageMarketplace": { + "spotinst:azure/OceanExtension:OceanExtension": { "properties": { - "offer": { - "type": "string" + "apiVersion": { + "type": "string", + "description": "API version of the extension.\n" + }, + "minorVersionAutoUpgrade": { + "type": "boolean", + "description": "Toggles whether auto upgrades are allowed.\n" + }, + "name": { + "type": "string", + "description": "Extension name.\n" }, "publisher": { "type": "string" }, - "sku": { - "type": "string" + "type": { + "type": "string", + "description": "Extension type.\n" } }, "type": "object", - "required": [ - "offer", - "publisher", - "sku" - ] + "language": { + "nodejs": { + "requiredOutputs": [ + "apiVersion", + "minorVersionAutoUpgrade", + "name", + "publisher", + "type" + ] + } + } }, - "spotinst:azure/ElastigroupIntegrationKubernetes:ElastigroupIntegrationKubernetes": { + "spotinst:azure/OceanHealth:OceanHealth": { "properties": { - "clusterIdentifier": { - "type": "string" + "gracePeriod": { + "type": "integer", + "description": "The amount of time to wait, in seconds, from the moment the instance has launched before monitoring its health checks.\n" } }, - "type": "object", - "required": [ - "clusterIdentifier" - ] + "type": "object" }, - "spotinst:azure/ElastigroupIntegrationMultaiRuntime:ElastigroupIntegrationMultaiRuntime": { + "spotinst:azure/OceanImage:OceanImage": { "properties": { - "deploymentId": { - "type": "string" + "marketplaces": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:azure/OceanImageMarketplace:OceanImageMarketplace" + }, + "description": "Select an image from Azure's Marketplace image catalogue.\n" } }, "type": "object", - "required": [ - "deploymentId" - ] + "language": { + "nodejs": { + "requiredOutputs": [ + "marketplaces" + ] + } + } }, - "spotinst:azure/ElastigroupLoadBalancer:ElastigroupLoadBalancer": { + "spotinst:azure/OceanImageMarketplace:OceanImageMarketplace": { "properties": { - "autoWeight": { - "type": "boolean" + "offer": { + "type": "string" }, - "balancerId": { + "publisher": { "type": "string" }, - "targetSetId": { + "sku": { "type": "string" }, - "type": { + "version": { "type": "string" } }, "type": "object", - "required": [ - "type" - ] + "language": { + "nodejs": { + "requiredOutputs": [ + "offer", + "publisher", + "sku", + "version" + ] + } + } }, - "spotinst:azure/ElastigroupLogin:ElastigroupLogin": { + "spotinst:azure/OceanLoadBalancer:OceanLoadBalancer": { "properties": { - "password": { - "type": "string" + "backendPoolNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Names of the Backend Pools to register the Cluster VMs to. Each Backend Pool is a separate load balancer.\n" }, - "sshPublicKey": { - "type": "string" + "loadBalancerSku": { + "type": "string", + "description": "Supported values: `Standard`, `Basic`.\n" }, - "userName": { - "type": "string" + "name": { + "type": "string", + "description": "Name of the Load Balancer.\n" + }, + "resourceGroupName": { + "type": "string", + "description": "The Resource Group name of the Load Balancer.\n" + }, + "type": { + "type": "string", + "description": "The type of load balancer. Supported value: `loadBalancer`\n" } }, "type": "object", - "required": [ - "userName" - ] + "language": { + "nodejs": { + "requiredOutputs": [ + "backendPoolNames", + "loadBalancerSku", + "name", + "resourceGroupName", + "type" + ] + } + } }, - "spotinst:azure/ElastigroupManagedServiceIdentity:ElastigroupManagedServiceIdentity": { + "spotinst:azure/OceanManagedServiceIdentity:OceanManagedServiceIdentity": { "properties": { "name": { "type": "string", - "description": "The group name.\n" + "description": "Name of the Managed Service Identity.\n" }, "resourceGroupName": { "type": "string", - "description": "Name of the Resource Group for Elastigroup.\n" + "description": "Name of the Azure Resource Group where the Managed Service Identity is located.\n" } }, "type": "object", @@ -3929,392 +4028,148 @@ "resourceGroupName" ] }, - "spotinst:azure/ElastigroupNetwork:ElastigroupNetwork": { + "spotinst:azure/OceanNetwork:OceanNetwork": { "properties": { - "additionalIpConfigs": { + "networkInterfaces": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupNetworkAdditionalIpConfig:ElastigroupNetworkAdditionalIpConfig" - } - }, - "assignPublicIp": { - "type": "boolean" + "$ref": "#/types/spotinst:azure/OceanNetworkNetworkInterface:OceanNetworkNetworkInterface" + }, + "description": "A list of virtual network interfaces. The publicIpSku must be identical between all the network interfaces. One network interface must be set as the primary.\n" }, "resourceGroupName": { "type": "string", - "description": "Name of the Resource Group for Elastigroup.\n" - }, - "subnetName": { - "type": "string" + "description": "Vnet resource group name.\n" }, "virtualNetworkName": { - "type": "string" + "type": "string", + "description": "Virtual network.\n" } }, "type": "object", - "required": [ - "resourceGroupName", - "subnetName", - "virtualNetworkName" - ] - }, - "spotinst:azure/ElastigroupNetworkAdditionalIpConfig:ElastigroupNetworkAdditionalIpConfig": { - "properties": { - "name": { - "type": "string", - "description": "The group name.\n" - }, - "privateIpVersion": { - "type": "string" + "language": { + "nodejs": { + "requiredOutputs": [ + "networkInterfaces", + "resourceGroupName", + "virtualNetworkName" + ] } - }, - "type": "object", - "required": [ - "name" - ] + } }, - "spotinst:azure/ElastigroupScalingDownPolicy:ElastigroupScalingDownPolicy": { + "spotinst:azure/OceanNetworkNetworkInterface:OceanNetworkNetworkInterface": { "properties": { - "actionType": { - "type": "string" - }, - "adjustment": { - "type": "string" - }, - "cooldown": { - "type": "integer" - }, - "dimensions": { + "additionalIpConfigs": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScalingDownPolicyDimension:ElastigroupScalingDownPolicyDimension" + "$ref": "#/types/spotinst:azure/OceanNetworkNetworkInterfaceAdditionalIpConfig:OceanNetworkNetworkInterfaceAdditionalIpConfig" } }, - "evaluationPeriods": { - "type": "integer" - }, - "maxTargetCapacity": { - "type": "string" - }, - "maximum": { - "type": "string" - }, - "metricName": { - "type": "string" - }, - "minTargetCapacity": { - "type": "string" - }, - "minimum": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "period": { - "type": "integer" - }, - "policyName": { - "type": "string" - }, - "statistic": { - "type": "string" + "assignPublicIp": { + "type": "boolean" }, - "target": { - "type": "string" + "isPrimary": { + "type": "boolean" }, - "threshold": { - "type": "number" + "securityGroup": { + "$ref": "#/types/spotinst:azure/OceanNetworkNetworkInterfaceSecurityGroup:OceanNetworkNetworkInterfaceSecurityGroup" }, - "unit": { + "subnetName": { "type": "string" } }, "type": "object", - "required": [ - "metricName", - "namespace", - "policyName", - "threshold" - ], "language": { "nodejs": { "requiredOutputs": [ - "cooldown", - "evaluationPeriods", - "metricName", - "namespace", - "operator", - "period", - "policyName", - "statistic", - "threshold" + "additionalIpConfigs", + "assignPublicIp", + "isPrimary", + "securityGroup", + "subnetName" ] } } }, - "spotinst:azure/ElastigroupScalingDownPolicyDimension:ElastigroupScalingDownPolicyDimension": { + "spotinst:azure/OceanNetworkNetworkInterfaceAdditionalIpConfig:OceanNetworkNetworkInterfaceAdditionalIpConfig": { "properties": { "name": { "type": "string", - "description": "The group name.\n" - }, - "value": { - "type": "string" - } - }, - "type": "object", - "required": [ - "name" - ] - }, - "spotinst:azure/ElastigroupScalingUpPolicy:ElastigroupScalingUpPolicy": { - "properties": { - "actionType": { - "type": "string" - }, - "adjustment": { - "type": "string" - }, - "cooldown": { - "type": "integer" - }, - "dimensions": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScalingUpPolicyDimension:ElastigroupScalingUpPolicyDimension" - } - }, - "evaluationPeriods": { - "type": "integer" - }, - "maxTargetCapacity": { - "type": "string" - }, - "maximum": { - "type": "string" - }, - "metricName": { - "type": "string" - }, - "minTargetCapacity": { - "type": "string" - }, - "minimum": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "period": { - "type": "integer" - }, - "policyName": { - "type": "string" - }, - "statistic": { - "type": "string" - }, - "target": { - "type": "string" - }, - "threshold": { - "type": "number" + "description": "The Ocean cluster name.\n" }, - "unit": { + "privateIpVersion": { "type": "string" } }, "type": "object", - "required": [ - "metricName", - "namespace", - "policyName", - "threshold" - ], "language": { "nodejs": { "requiredOutputs": [ - "cooldown", - "evaluationPeriods", - "metricName", - "namespace", - "operator", - "period", - "policyName", - "statistic", - "threshold" + "name", + "privateIpVersion" ] } } }, - "spotinst:azure/ElastigroupScalingUpPolicyDimension:ElastigroupScalingUpPolicyDimension": { + "spotinst:azure/OceanNetworkNetworkInterfaceSecurityGroup:OceanNetworkNetworkInterfaceSecurityGroup": { "properties": { "name": { "type": "string", - "description": "The group name.\n" + "description": "The Ocean cluster name.\n" }, - "value": { - "type": "string" + "resourceGroupName": { + "type": "string", + "description": "Name of the Azure Resource Group into which VMs will be launched. Cannot be updated.\n" } }, "type": "object", - "required": [ - "name" - ] + "language": { + "nodejs": { + "requiredOutputs": [ + "name", + "resourceGroupName" + ] + } + } }, - "spotinst:azure/ElastigroupScheduledTask:ElastigroupScheduledTask": { + "spotinst:azure/OceanNpAutoscaler:OceanNpAutoscaler": { "properties": { - "adjustment": { - "type": "string" - }, - "adjustmentPercentage": { - "type": "string" - }, - "batchSizePercentage": { - "type": "string" - }, - "cronExpression": { - "type": "string" - }, - "gracePeriod": { - "type": "string" - }, - "isEnabled": { - "type": "boolean" - }, - "scaleMaxCapacity": { - "type": "string" + "autoscaleDown": { + "$ref": "#/types/spotinst:azure/OceanNpAutoscalerAutoscaleDown:OceanNpAutoscalerAutoscaleDown", + "description": "Auto Scaling scale down operations.\n" }, - "scaleMinCapacity": { - "type": "string" + "autoscaleHeadroom": { + "$ref": "#/types/spotinst:azure/OceanNpAutoscalerAutoscaleHeadroom:OceanNpAutoscalerAutoscaleHeadroom", + "description": "Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch.\n" }, - "scaleTargetCapacity": { - "type": "string" + "autoscaleIsEnabled": { + "type": "boolean", + "description": "Enable the Ocean Kubernetes Autoscaler.\n" }, - "taskType": { - "type": "string" + "resourceLimits": { + "$ref": "#/types/spotinst:azure/OceanNpAutoscalerResourceLimits:OceanNpAutoscalerResourceLimits", + "description": "Optionally set upper and lower bounds on the resource usage of the cluster.\n" } }, - "type": "object", - "required": [ - "cronExpression", - "taskType" - ] + "type": "object" }, - "spotinst:azure/ElastigroupStrategy:ElastigroupStrategy": { + "spotinst:azure/OceanNpAutoscalerAutoscaleDown:OceanNpAutoscalerAutoscaleDown": { "properties": { - "drainingTimeout": { - "type": "integer" - }, - "lowPriorityPercentage": { - "type": "integer" - }, - "odCount": { + "maxScaleDownPercentage": { "type": "integer" } }, "type": "object" }, - "spotinst:azure/ElastigroupUpdatePolicy:ElastigroupUpdatePolicy": { + "spotinst:azure/OceanNpAutoscalerAutoscaleHeadroom:OceanNpAutoscalerAutoscaleHeadroom": { "properties": { - "rollConfig": { - "$ref": "#/types/spotinst:azure/ElastigroupUpdatePolicyRollConfig:ElastigroupUpdatePolicyRollConfig" - }, - "shouldRoll": { - "type": "boolean" + "automatic": { + "$ref": "#/types/spotinst:azure/OceanNpAutoscalerAutoscaleHeadroomAutomatic:OceanNpAutoscalerAutoscaleHeadroomAutomatic" } }, - "type": "object", - "required": [ - "shouldRoll" - ] - }, - "spotinst:azure/ElastigroupUpdatePolicyRollConfig:ElastigroupUpdatePolicyRollConfig": { - "properties": { - "batchSizePercentage": { - "type": "integer" - }, - "gracePeriod": { - "type": "integer" - }, - "healthCheckType": { - "type": "string" - } - }, - "type": "object", - "required": [ - "batchSizePercentage" - ] - }, - "spotinst:azure/OceanAutoscaler:OceanAutoscaler": { - "properties": { - "autoscaleDown": { - "$ref": "#/types/spotinst:azure/OceanAutoscalerAutoscaleDown:OceanAutoscalerAutoscaleDown", - "description": "Auto Scaling scale down operations.\n" - }, - "autoscaleHeadroom": { - "$ref": "#/types/spotinst:azure/OceanAutoscalerAutoscaleHeadroom:OceanAutoscalerAutoscaleHeadroom", - "description": "Spare Resource Capacity Management feature enables fast assignment of Pods without having to wait for new resources to be launched.\n" - }, - "autoscaleIsEnabled": { - "type": "boolean", - "description": "Enable the Ocean Kubernetes Autoscaler.\n" - }, - "resourceLimits": { - "$ref": "#/types/spotinst:azure/OceanAutoscalerResourceLimits:OceanAutoscalerResourceLimits", - "description": "Optionally set upper and lower bounds on the resource usage of the cluster.\n" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "autoscaleDown", - "autoscaleHeadroom", - "autoscaleIsEnabled", - "resourceLimits" - ] - } - } - }, - "spotinst:azure/OceanAutoscalerAutoscaleDown:OceanAutoscalerAutoscaleDown": { - "properties": { - "maxScaleDownPercentage": { - "type": "number" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "maxScaleDownPercentage" - ] - } - } - }, - "spotinst:azure/OceanAutoscalerAutoscaleHeadroom:OceanAutoscalerAutoscaleHeadroom": { - "properties": { - "automatic": { - "$ref": "#/types/spotinst:azure/OceanAutoscalerAutoscaleHeadroomAutomatic:OceanAutoscalerAutoscaleHeadroomAutomatic" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "automatic" - ] - } - } + "type": "object" }, - "spotinst:azure/OceanAutoscalerAutoscaleHeadroomAutomatic:OceanAutoscalerAutoscaleHeadroomAutomatic": { + "spotinst:azure/OceanNpAutoscalerAutoscaleHeadroomAutomatic:OceanNpAutoscalerAutoscaleHeadroomAutomatic": { "properties": { "isEnabled": { "type": "boolean" @@ -4323,17 +4178,9 @@ "type": "integer" } }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "isEnabled", - "percentage" - ] - } - } + "type": "object" }, - "spotinst:azure/OceanAutoscalerResourceLimits:OceanAutoscalerResourceLimits": { + "spotinst:azure/OceanNpAutoscalerResourceLimits:OceanNpAutoscalerResourceLimits": { "properties": { "maxMemoryGib": { "type": "integer" @@ -4342,570 +4189,297 @@ "type": "integer" } }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "maxMemoryGib" - ] - } - } + "type": "object" }, - "spotinst:azure/OceanExtension:OceanExtension": { + "spotinst:azure/OceanNpFilters:OceanNpFilters": { "properties": { - "apiVersion": { + "acceleratedNetworking": { "type": "string", - "description": "API version of the extension.\n" + "description": "In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it.\n" }, - "minorVersionAutoUpgrade": { - "type": "boolean", - "description": "Toggles whether auto upgrades are allowed.\n" + "architectures": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64.\n" }, - "name": { + "diskPerformance": { "type": "string", - "description": "Extension name.\n" + "description": "The filtered vm sizes will support at least one of the classes from this list.\n" }, - "publisher": { - "type": "string" + "excludeSeries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Vm sizes belonging to a series from the list will not be available for scaling\n" }, - "type": { - "type": "string", - "description": "Extension type.\n" + "gpuTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The filtered gpu types will belong to one of the gpu types from this list.\n\n\u003ca id=\"update-policy\"\u003e\u003c/a\u003e\n" + }, + "maxGpu": { + "type": "number", + "description": "Maximum number of GPUs available.\n" + }, + "maxMemoryGib": { + "type": "number", + "description": "Maximum amount of Memory (GiB).\n" + }, + "maxVcpu": { + "type": "integer", + "description": "Maximum number of vcpus available.\n" + }, + "minDisk": { + "type": "integer", + "description": "Minimum number of data disks available.\n" + }, + "minGpu": { + "type": "number", + "description": "Minimum number of GPUs available.\n" + }, + "minMemoryGib": { + "type": "number", + "description": "Minimum amount of Memory (GiB).\n" + }, + "minNics": { + "type": "integer", + "description": "Minimum number of network interfaces.\n" + }, + "minVcpu": { + "type": "integer", + "description": "Minimum number of vcpus available.\n" + }, + "series": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these \"DSv2\", \"Ds v2\", \"ds_v2\" refer to same DS_v2 series.\n" + }, + "vmTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The filtered vm types will belong to one of the vm types from this list.\n" } }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "apiVersion", - "minorVersionAutoUpgrade", - "name", - "publisher", - "type" - ] + "type": "object" + }, + "spotinst:azure/OceanNpHeadroom:OceanNpHeadroom": { + "properties": { + "cpuPerUnit": { + "type": "integer", + "description": "Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU.\n" + }, + "gpuPerUnit": { + "type": "integer", + "description": "Amount of GPU to allocate for headroom unit.\n" + }, + "memoryPerUnit": { + "type": "integer", + "description": "Configure the amount of memory (MiB) to allocate the headroom.\n" + }, + "numOfUnits": { + "type": "integer", + "description": "The number of units to retain as headroom, where each unit has the defined headroom CPU and memory.\n" } - } + }, + "type": "object" }, - "spotinst:azure/OceanHealth:OceanHealth": { + "spotinst:azure/OceanNpHealth:OceanNpHealth": { "properties": { "gracePeriod": { "type": "integer", - "description": "The amount of time to wait, in seconds, from the moment the instance has launched before monitoring its health checks.\n" + "description": "The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins.\n" } }, "type": "object" }, - "spotinst:azure/OceanImage:OceanImage": { + "spotinst:azure/OceanNpScheduling:OceanNpScheduling": { "properties": { - "marketplaces": { + "shutdownHours": { + "$ref": "#/types/spotinst:azure/OceanNpSchedulingShutdownHours:OceanNpSchedulingShutdownHours", + "description": "[Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down.\n" + } + }, + "type": "object" + }, + "spotinst:azure/OceanNpSchedulingShutdownHours:OceanNpSchedulingShutdownHours": { + "properties": { + "isEnabled": { + "type": "boolean" + }, + "timeWindows": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/OceanImageMarketplace:OceanImageMarketplace" - }, - "description": "Select an image from Azure's Marketplace image catalogue.\n" + "type": "string" + } } }, "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "marketplaces" - ] - } - } + "required": [ + "timeWindows" + ] }, - "spotinst:azure/OceanImageMarketplace:OceanImageMarketplace": { + "spotinst:azure/OceanNpTaint:OceanNpTaint": { "properties": { - "offer": { - "type": "string" - }, - "publisher": { - "type": "string" + "effect": { + "type": "string", + "description": "Set taint effect.\n" }, - "sku": { - "type": "string" + "key": { + "type": "string", + "description": "Set taint key. The following taint keys are not allowed: [\"node.kubernetes.io/not-ready\", \"node.kubernetes.io/unreachable\", \"node.kubernetes.io/unschedulable\", \"node.kubernetes.io/memory-pressure\", \"node.kubernetes.io/disk-pressure\", \"node.kubernetes.io/network-unavailable\", \"node.kubernetes.io/pid-pressure\", \"node.kubernetes.io/out-of-service\", \"node.cloudprovider.kubernetes.io/uninitialized\", \"node.cloudprovider.kubernetes.io/shutdown\", \"kubernetes.azure.com/scalesetpriority\"]\n" }, - "version": { - "type": "string" + "value": { + "type": "string", + "description": "Set taint value.\n" } }, "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "offer", - "publisher", - "sku", - "version" - ] - } - } + "required": [ + "effect", + "key", + "value" + ] }, - "spotinst:azure/OceanLoadBalancer:OceanLoadBalancer": { + "spotinst:azure/OceanNpUpdatePolicy:OceanNpUpdatePolicy": { "properties": { - "backendPoolNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Names of the Backend Pools to register the Cluster VMs to. Each Backend Pool is a separate load balancer.\n" - }, - "loadBalancerSku": { - "type": "string", - "description": "Supported values: `Standard`, `Basic`.\n" - }, - "name": { - "type": "string", - "description": "Name of the Load Balancer.\n" - }, - "resourceGroupName": { - "type": "string", - "description": "The Resource Group name of the Load Balancer.\n" + "conditionedRoll": { + "type": "boolean" }, - "type": { - "type": "string", - "description": "The type of load balancer. Supported value: `loadBalancer`\n" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "backendPoolNames", - "loadBalancerSku", - "name", - "resourceGroupName", - "type" - ] - } - } - }, - "spotinst:azure/OceanManagedServiceIdentity:OceanManagedServiceIdentity": { - "properties": { - "name": { - "type": "string", - "description": "Name of the Managed Service Identity.\n" + "rollConfig": { + "$ref": "#/types/spotinst:azure/OceanNpUpdatePolicyRollConfig:OceanNpUpdatePolicyRollConfig" }, - "resourceGroupName": { - "type": "string", - "description": "Name of the Azure Resource Group where the Managed Service Identity is located.\n" + "shouldRoll": { + "type": "boolean" } }, "type": "object", "required": [ - "name", - "resourceGroupName" + "shouldRoll" ] }, - "spotinst:azure/OceanNetwork:OceanNetwork": { + "spotinst:azure/OceanNpUpdatePolicyRollConfig:OceanNpUpdatePolicyRollConfig": { "properties": { - "networkInterfaces": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:azure/OceanNetworkNetworkInterface:OceanNetworkNetworkInterface" - }, - "description": "A list of virtual network interfaces. The publicIpSku must be identical between all the network interfaces. One network interface must be set as the primary.\n" + "batchMinHealthyPercentage": { + "type": "integer" }, - "resourceGroupName": { - "type": "string", - "description": "Vnet resource group name.\n" + "batchSizePercentage": { + "type": "integer" }, - "virtualNetworkName": { - "type": "string", - "description": "Virtual network.\n" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "networkInterfaces", - "resourceGroupName", - "virtualNetworkName" - ] - } - } - }, - "spotinst:azure/OceanNetworkNetworkInterface:OceanNetworkNetworkInterface": { - "properties": { - "additionalIpConfigs": { + "comment": { + "type": "string" + }, + "nodeNames": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/OceanNetworkNetworkInterfaceAdditionalIpConfig:OceanNetworkNetworkInterfaceAdditionalIpConfig" + "type": "string" } }, - "assignPublicIp": { - "type": "boolean" - }, - "isPrimary": { - "type": "boolean" - }, - "securityGroup": { - "$ref": "#/types/spotinst:azure/OceanNetworkNetworkInterfaceSecurityGroup:OceanNetworkNetworkInterfaceSecurityGroup" - }, - "subnetName": { - "type": "string" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "additionalIpConfigs", - "assignPublicIp", - "isPrimary", - "securityGroup", - "subnetName" - ] - } - } - }, - "spotinst:azure/OceanNetworkNetworkInterfaceAdditionalIpConfig:OceanNetworkNetworkInterfaceAdditionalIpConfig": { - "properties": { - "name": { - "type": "string", - "description": "The Ocean cluster name.\n" - }, - "privateIpVersion": { - "type": "string" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "name", - "privateIpVersion" - ] - } - } - }, - "spotinst:azure/OceanNetworkNetworkInterfaceSecurityGroup:OceanNetworkNetworkInterfaceSecurityGroup": { - "properties": { - "name": { - "type": "string", - "description": "The Ocean cluster name.\n" - }, - "resourceGroupName": { - "type": "string", - "description": "Name of the Azure Resource Group into which VMs will be launched. Cannot be updated.\n" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "name", - "resourceGroupName" - ] - } - } - }, - "spotinst:azure/OceanNpAutoscaler:OceanNpAutoscaler": { - "properties": { - "autoscaleDown": { - "$ref": "#/types/spotinst:azure/OceanNpAutoscalerAutoscaleDown:OceanNpAutoscalerAutoscaleDown" - }, - "autoscaleHeadroom": { - "$ref": "#/types/spotinst:azure/OceanNpAutoscalerAutoscaleHeadroom:OceanNpAutoscalerAutoscaleHeadroom" + "nodePoolNames": { + "type": "array", + "items": { + "type": "string" + } }, - "autoscaleIsEnabled": { + "respectPdb": { "type": "boolean" }, - "resourceLimits": { - "$ref": "#/types/spotinst:azure/OceanNpAutoscalerResourceLimits:OceanNpAutoscalerResourceLimits" - } - }, - "type": "object" - }, - "spotinst:azure/OceanNpAutoscalerAutoscaleDown:OceanNpAutoscalerAutoscaleDown": { - "properties": { - "maxScaleDownPercentage": { - "type": "integer" - } - }, - "type": "object" - }, - "spotinst:azure/OceanNpAutoscalerAutoscaleHeadroom:OceanNpAutoscalerAutoscaleHeadroom": { - "properties": { - "automatic": { - "$ref": "#/types/spotinst:azure/OceanNpAutoscalerAutoscaleHeadroomAutomatic:OceanNpAutoscalerAutoscaleHeadroomAutomatic" - } - }, - "type": "object" - }, - "spotinst:azure/OceanNpAutoscalerAutoscaleHeadroomAutomatic:OceanNpAutoscalerAutoscaleHeadroomAutomatic": { - "properties": { - "isEnabled": { + "respectRestrictScaleDown": { "type": "boolean" }, - "percentage": { - "type": "integer" - } - }, - "type": "object" - }, - "spotinst:azure/OceanNpAutoscalerResourceLimits:OceanNpAutoscalerResourceLimits": { - "properties": { - "maxMemoryGib": { - "type": "integer" - }, - "maxVcpu": { - "type": "integer" + "vngIds": { + "type": "array", + "items": { + "type": "string" + } } }, "type": "object" }, - "spotinst:azure/OceanNpFilters:OceanNpFilters": { + "spotinst:azure/OceanNpVirtualNodeGroupFilters:OceanNpVirtualNodeGroupFilters": { "properties": { "acceleratedNetworking": { - "type": "string" + "type": "string", + "description": "In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it.\n" }, "architectures": { "type": "array", "items": { "type": "string" - } + }, + "description": "The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64.\n" }, "diskPerformance": { - "type": "string" + "type": "string", + "description": "The filtered vm sizes will support at least one of the classes from this list.\n" }, "excludeSeries": { "type": "array", "items": { "type": "string" - } + }, + "description": "Vm sizes belonging to a series from the list will not be available for scaling.\n" }, "gpuTypes": { "type": "array", "items": { "type": "string" - } + }, + "description": "The filtered gpu types will belong to one of the gpu types from this list.\n\u003ca id=\"update-policy\"\u003e\u003c/a\u003e\n" }, "maxGpu": { - "type": "number" + "type": "number", + "description": "Maximum number of GPUs available.\n" }, "maxMemoryGib": { - "type": "number" + "type": "number", + "description": "Maximum amount of Memory (GiB).\n" }, "maxVcpu": { - "type": "integer" + "type": "integer", + "description": "Maximum number of vcpus available.\n" }, "minDisk": { - "type": "integer" + "type": "integer", + "description": "Minimum number of data disks available.\n" }, "minGpu": { - "type": "number" + "type": "number", + "description": "Minimum number of GPUs available.\n" }, "minMemoryGib": { - "type": "number" + "type": "number", + "description": "Minimum amount of Memory (GiB).\n" }, "minNics": { - "type": "integer" + "type": "integer", + "description": "Minimum number of network interfaces.\n" }, "minVcpu": { - "type": "integer" - }, - "series": { - "type": "array", - "items": { - "type": "string" - } - }, - "vmTypes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "type": "object" - }, - "spotinst:azure/OceanNpHeadroom:OceanNpHeadroom": { - "properties": { - "cpuPerUnit": { - "type": "integer" - }, - "gpuPerUnit": { - "type": "integer" - }, - "memoryPerUnit": { - "type": "integer" - }, - "numOfUnits": { - "type": "integer" - } - }, - "type": "object" - }, - "spotinst:azure/OceanNpHealth:OceanNpHealth": { - "properties": { - "gracePeriod": { - "type": "integer" - } - }, - "type": "object" - }, - "spotinst:azure/OceanNpScheduling:OceanNpScheduling": { - "properties": { - "shutdownHours": { - "$ref": "#/types/spotinst:azure/OceanNpSchedulingShutdownHours:OceanNpSchedulingShutdownHours" - } - }, - "type": "object" - }, - "spotinst:azure/OceanNpSchedulingShutdownHours:OceanNpSchedulingShutdownHours": { - "properties": { - "isEnabled": { - "type": "boolean" - }, - "timeWindows": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "type": "object", - "required": [ - "timeWindows" - ] - }, - "spotinst:azure/OceanNpTaint:OceanNpTaint": { - "properties": { - "effect": { - "type": "string" - }, - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "type": "object", - "required": [ - "effect", - "key", - "value" - ] - }, - "spotinst:azure/OceanNpUpdatePolicy:OceanNpUpdatePolicy": { - "properties": { - "conditionedRoll": { - "type": "boolean" - }, - "rollConfig": { - "$ref": "#/types/spotinst:azure/OceanNpUpdatePolicyRollConfig:OceanNpUpdatePolicyRollConfig" - }, - "shouldRoll": { - "type": "boolean" - } - }, - "type": "object", - "required": [ - "shouldRoll" - ] - }, - "spotinst:azure/OceanNpUpdatePolicyRollConfig:OceanNpUpdatePolicyRollConfig": { - "properties": { - "batchMinHealthyPercentage": { - "type": "integer" - }, - "batchSizePercentage": { - "type": "integer" - }, - "comment": { - "type": "string" - }, - "nodeNames": { - "type": "array", - "items": { - "type": "string" - } - }, - "nodePoolNames": { - "type": "array", - "items": { - "type": "string" - } - }, - "respectPdb": { - "type": "boolean" - }, - "respectRestrictScaleDown": { - "type": "boolean" - }, - "vngIds": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "type": "object" - }, - "spotinst:azure/OceanNpVirtualNodeGroupFilters:OceanNpVirtualNodeGroupFilters": { - "properties": { - "acceleratedNetworking": { - "type": "string" - }, - "architectures": { - "type": "array", - "items": { - "type": "string" - } - }, - "diskPerformance": { - "type": "string" - }, - "excludeSeries": { - "type": "array", - "items": { - "type": "string" - } - }, - "gpuTypes": { - "type": "array", - "items": { - "type": "string" - } - }, - "maxGpu": { - "type": "number" - }, - "maxMemoryGib": { - "type": "number" - }, - "maxVcpu": { - "type": "integer" - }, - "minDisk": { - "type": "integer" - }, - "minGpu": { - "type": "number" - }, - "minMemoryGib": { - "type": "number" - }, - "minNics": { - "type": "integer" - }, - "minVcpu": { - "type": "integer" + "type": "integer", + "description": "Minimum number of vcpus available.\n" }, "series": { "type": "array", "items": { "type": "string" - } + }, + "description": "Vm sizes belonging to a series from the list will be available for scaling.\n" }, "vmTypes": { "type": "array", "items": { "type": "string" - } + }, + "description": "The filtered vm types will belong to one of the vm types from this list.\n" } }, "type": "object" @@ -4913,16 +4487,20 @@ "spotinst:azure/OceanNpVirtualNodeGroupHeadroom:OceanNpVirtualNodeGroupHeadroom": { "properties": { "cpuPerUnit": { - "type": "integer" + "type": "integer", + "description": "Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU.\n" }, "gpuPerUnit": { - "type": "integer" + "type": "integer", + "description": "Amount of GPU to allocate for headroom unit.\n" }, "memoryPerUnit": { - "type": "integer" + "type": "integer", + "description": "Configure the amount of memory (MiB) to allocate the headroom.\n" }, "numOfUnits": { - "type": "integer" + "type": "integer", + "description": "The number of units to retain as headroom, where each unit has the defined headroom CPU and memory.\n" } }, "type": "object" @@ -4930,13 +4508,16 @@ "spotinst:azure/OceanNpVirtualNodeGroupTaint:OceanNpVirtualNodeGroupTaint": { "properties": { "effect": { - "type": "string" + "type": "string", + "description": "Set taint effect.\n" }, "key": { - "type": "string" + "type": "string", + "description": "Set taint key. The following are not allowed: \"kubernetes.azure.com/scalesetpriority\".\n" }, "value": { - "type": "string" + "type": "string", + "description": "Set taint value.\n" } }, "type": "object", @@ -10853,2159 +10434,1804 @@ "serviceAccessSecurityGroup": { "type": "string" }, - "serviceRole": { - "type": "string" - }, - "stepsFiles": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarStepsFile:MrScalarStepsFile" - } - }, - "strategy": { - "type": "string", - "description": "The MrScaler strategy. Allowed values are `new` `clone` and `wrap`.\n" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTag:MrScalarTag" - } - }, - "taskDesiredCapacity": { - "type": "integer" - }, - "taskEbsBlockDevices": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTaskEbsBlockDevice:MrScalarTaskEbsBlockDevice" - } - }, - "taskEbsOptimized": { - "type": "boolean" - }, - "taskInstanceTypes": { - "type": "array", - "items": { - "type": "string" - } - }, - "taskLifecycle": { - "type": "string" - }, - "taskMaxSize": { - "type": "integer" - }, - "taskMinSize": { - "type": "integer" - }, - "taskScalingDownPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTaskScalingDownPolicy:MrScalarTaskScalingDownPolicy" - } - }, - "taskScalingUpPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTaskScalingUpPolicy:MrScalarTaskScalingUpPolicy" - } - }, - "taskUnit": { - "type": "string" - }, - "terminationPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTerminationPolicy:MrScalarTerminationPolicy" - }, - "description": "Allows defining termination policies for EMR clusters based on CloudWatch Metrics.\n" - }, - "terminationProtected": { - "type": "boolean" - }, - "visibleToAllUsers": { - "type": "boolean", - "deprecationMessage": "This field has been removed from our API and is no longer functional." - } - }, - "required": [ - "name", - "outputClusterId", - "strategy" - ], - "inputProperties": { - "additionalInfo": { - "type": "string" - }, - "additionalPrimarySecurityGroups": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalReplicaSecurityGroups": { - "type": "array", - "items": { - "type": "string" - } - }, - "applications": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarApplication:MrScalarApplication" - } - }, - "availabilityZones": { - "type": "array", - "items": { - "type": "string" - } - }, - "bootstrapActionsFiles": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarBootstrapActionsFile:MrScalarBootstrapActionsFile" - } - }, - "clusterId": { - "type": "string", - "description": "The MrScaler cluster id.\n", - "willReplaceOnChanges": true - }, - "configurationsFiles": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarConfigurationsFile:MrScalarConfigurationsFile" - } - }, - "coreDesiredCapacity": { - "type": "integer" - }, - "coreEbsBlockDevices": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarCoreEbsBlockDevice:MrScalarCoreEbsBlockDevice" - } - }, - "coreEbsOptimized": { - "type": "boolean" - }, - "coreInstanceTypes": { - "type": "array", - "items": { - "type": "string" - } - }, - "coreLifecycle": { - "type": "string" - }, - "coreMaxSize": { - "type": "integer" - }, - "coreMinSize": { - "type": "integer" - }, - "coreScalingDownPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarCoreScalingDownPolicy:MrScalarCoreScalingDownPolicy" - } - }, - "coreScalingUpPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarCoreScalingUpPolicy:MrScalarCoreScalingUpPolicy" - } - }, - "coreUnit": { - "type": "string", - "willReplaceOnChanges": true - }, - "customAmiId": { - "type": "string" - }, - "description": { - "type": "string", - "description": "The MrScaler description.\n" - }, - "ebsRootVolumeSize": { - "type": "integer" - }, - "ec2KeyName": { - "type": "string" - }, - "exposeClusterId": { - "type": "boolean", - "description": "Allow the `cluster_id` to set a provider output variable.\n" - }, - "instanceWeights": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarInstanceWeight:MrScalarInstanceWeight" - } - }, - "jobFlowRole": { - "type": "string" - }, - "keepJobFlowAlive": { - "type": "boolean" - }, - "logUri": { - "type": "string" - }, - "managedPrimarySecurityGroup": { - "type": "string" - }, - "managedReplicaSecurityGroup": { - "type": "string" - }, - "masterEbsBlockDevices": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarMasterEbsBlockDevice:MrScalarMasterEbsBlockDevice" - } - }, - "masterEbsOptimized": { - "type": "boolean" - }, - "masterInstanceTypes": { - "type": "array", - "items": { - "type": "string" - } - }, - "masterLifecycle": { - "type": "string" - }, - "masterTarget": { - "type": "integer" - }, - "name": { - "type": "string", - "description": "The MrScaler name.\n" - }, - "provisioningTimeout": { - "$ref": "#/types/spotinst:aws/MrScalarProvisioningTimeout:MrScalarProvisioningTimeout" - }, - "region": { - "type": "string", - "description": "The MrScaler region.\n" - }, - "releaseLabel": { - "type": "string" - }, - "repoUpgradeOnBoot": { - "type": "string" - }, - "retries": { - "type": "integer" - }, - "scheduledTasks": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarScheduledTask:MrScalarScheduledTask" - } - }, - "securityConfig": { - "type": "string" - }, - "serviceAccessSecurityGroup": { - "type": "string" - }, - "serviceRole": { - "type": "string" - }, - "stepsFiles": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarStepsFile:MrScalarStepsFile" - } - }, - "strategy": { - "type": "string", - "description": "The MrScaler strategy. Allowed values are `new` `clone` and `wrap`.\n" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTag:MrScalarTag" - } - }, - "taskDesiredCapacity": { - "type": "integer" - }, - "taskEbsBlockDevices": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTaskEbsBlockDevice:MrScalarTaskEbsBlockDevice" - } - }, - "taskEbsOptimized": { - "type": "boolean" - }, - "taskInstanceTypes": { - "type": "array", - "items": { - "type": "string" - } - }, - "taskLifecycle": { - "type": "string" - }, - "taskMaxSize": { - "type": "integer" - }, - "taskMinSize": { - "type": "integer" - }, - "taskScalingDownPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTaskScalingDownPolicy:MrScalarTaskScalingDownPolicy" - } - }, - "taskScalingUpPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTaskScalingUpPolicy:MrScalarTaskScalingUpPolicy" - } - }, - "taskUnit": { - "type": "string", - "willReplaceOnChanges": true - }, - "terminationPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTerminationPolicy:MrScalarTerminationPolicy" - }, - "description": "Allows defining termination policies for EMR clusters based on CloudWatch Metrics.\n" - }, - "terminationProtected": { - "type": "boolean" - }, - "visibleToAllUsers": { - "type": "boolean", - "deprecationMessage": "This field has been removed from our API and is no longer functional." - } - }, - "requiredInputs": [ - "strategy" - ], - "stateInputs": { - "description": "Input properties used for looking up and filtering MrScalar resources.\n", - "properties": { - "additionalInfo": { - "type": "string" - }, - "additionalPrimarySecurityGroups": { - "type": "array", - "items": { - "type": "string" - } - }, - "additionalReplicaSecurityGroups": { - "type": "array", - "items": { - "type": "string" - } - }, - "applications": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarApplication:MrScalarApplication" - } - }, - "availabilityZones": { - "type": "array", - "items": { - "type": "string" - } - }, - "bootstrapActionsFiles": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarBootstrapActionsFile:MrScalarBootstrapActionsFile" - } - }, - "clusterId": { - "type": "string", - "description": "The MrScaler cluster id.\n", - "willReplaceOnChanges": true - }, - "configurationsFiles": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarConfigurationsFile:MrScalarConfigurationsFile" - } - }, - "coreDesiredCapacity": { - "type": "integer" - }, - "coreEbsBlockDevices": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarCoreEbsBlockDevice:MrScalarCoreEbsBlockDevice" - } - }, - "coreEbsOptimized": { - "type": "boolean" - }, - "coreInstanceTypes": { - "type": "array", - "items": { - "type": "string" - } - }, - "coreLifecycle": { - "type": "string" - }, - "coreMaxSize": { - "type": "integer" - }, - "coreMinSize": { - "type": "integer" - }, - "coreScalingDownPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarCoreScalingDownPolicy:MrScalarCoreScalingDownPolicy" - } - }, - "coreScalingUpPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarCoreScalingUpPolicy:MrScalarCoreScalingUpPolicy" - } - }, - "coreUnit": { - "type": "string", - "willReplaceOnChanges": true - }, - "customAmiId": { - "type": "string" - }, - "description": { - "type": "string", - "description": "The MrScaler description.\n" - }, - "ebsRootVolumeSize": { - "type": "integer" - }, - "ec2KeyName": { - "type": "string" - }, - "exposeClusterId": { - "type": "boolean", - "description": "Allow the `cluster_id` to set a provider output variable.\n" - }, - "instanceWeights": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarInstanceWeight:MrScalarInstanceWeight" - } - }, - "jobFlowRole": { - "type": "string" - }, - "keepJobFlowAlive": { - "type": "boolean" - }, - "logUri": { - "type": "string" - }, - "managedPrimarySecurityGroup": { - "type": "string" - }, - "managedReplicaSecurityGroup": { - "type": "string" - }, - "masterEbsBlockDevices": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarMasterEbsBlockDevice:MrScalarMasterEbsBlockDevice" - } - }, - "masterEbsOptimized": { - "type": "boolean" - }, - "masterInstanceTypes": { - "type": "array", - "items": { - "type": "string" - } - }, - "masterLifecycle": { - "type": "string" - }, - "masterTarget": { - "type": "integer" - }, - "name": { - "type": "string", - "description": "The MrScaler name.\n" - }, - "outputClusterId": { - "type": "string" - }, - "provisioningTimeout": { - "$ref": "#/types/spotinst:aws/MrScalarProvisioningTimeout:MrScalarProvisioningTimeout" - }, - "region": { - "type": "string", - "description": "The MrScaler region.\n" - }, - "releaseLabel": { - "type": "string" - }, - "repoUpgradeOnBoot": { - "type": "string" - }, - "retries": { - "type": "integer" - }, - "scheduledTasks": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarScheduledTask:MrScalarScheduledTask" - } - }, - "securityConfig": { - "type": "string" - }, - "serviceAccessSecurityGroup": { - "type": "string" - }, - "serviceRole": { - "type": "string" - }, - "stepsFiles": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarStepsFile:MrScalarStepsFile" - } - }, - "strategy": { - "type": "string", - "description": "The MrScaler strategy. Allowed values are `new` `clone` and `wrap`.\n" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTag:MrScalarTag" - } - }, - "taskDesiredCapacity": { - "type": "integer" - }, - "taskEbsBlockDevices": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTaskEbsBlockDevice:MrScalarTaskEbsBlockDevice" - } - }, - "taskEbsOptimized": { - "type": "boolean" - }, - "taskInstanceTypes": { - "type": "array", - "items": { - "type": "string" - } - }, - "taskLifecycle": { - "type": "string" - }, - "taskMaxSize": { - "type": "integer" - }, - "taskMinSize": { - "type": "integer" - }, - "taskScalingDownPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTaskScalingDownPolicy:MrScalarTaskScalingDownPolicy" - } - }, - "taskScalingUpPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTaskScalingUpPolicy:MrScalarTaskScalingUpPolicy" - } - }, - "taskUnit": { - "type": "string", - "willReplaceOnChanges": true - }, - "terminationPolicies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/MrScalarTerminationPolicy:MrScalarTerminationPolicy" - }, - "description": "Allows defining termination policies for EMR clusters based on CloudWatch Metrics.\n" - }, - "terminationProtected": { - "type": "boolean" - }, - "visibleToAllUsers": { - "type": "boolean", - "deprecationMessage": "This field has been removed from our API and is no longer functional." - } - }, - "type": "object" - } - }, - "spotinst:aws/ocean:Ocean": { - "description": "## Example Usage\n\n## Import\n\nClusters can be imported using the Ocean `id`, e.g.,\n\nhcl\n\n```sh\n$ pulumi import spotinst:aws/ocean:Ocean this o-12345678\n```\n\n", - "properties": { - "associateIpv6Address": { - "type": "boolean", - "description": "Configure IPv6 address allocation.\n" - }, - "associatePublicIpAddress": { - "type": "boolean", - "description": "Configure public IP address allocation.\n" - }, - "autoscaler": { - "$ref": "#/types/spotinst:aws/OceanAutoscaler:OceanAutoscaler" + "serviceRole": { + "type": "string" }, - "blacklists": { + "stepsFiles": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/spotinst:aws/MrScalarStepsFile:MrScalarStepsFile" } }, - "blockDeviceMappings": { + "strategy": { + "type": "string", + "description": "The MrScaler strategy. Allowed values are `new` `clone` and `wrap`.\n" + }, + "tags": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanBlockDeviceMapping:OceanBlockDeviceMapping" - }, - "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" + "$ref": "#/types/spotinst:aws/MrScalarTag:MrScalarTag" + } }, - "clusterOrientations": { + "taskDesiredCapacity": { + "type": "integer" + }, + "taskEbsBlockDevices": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanClusterOrientation:OceanClusterOrientation" + "$ref": "#/types/spotinst:aws/MrScalarTaskEbsBlockDevice:MrScalarTaskEbsBlockDevice" } }, - "controllerId": { - "type": "string", - "description": "A unique identifier used for connecting the Ocean SaaS platform and the Kubernetes cluster. Typically, the cluster name is used as its identifier.\n" - }, - "desiredCapacity": { - "type": "integer", - "description": "The number of instances to launch and maintain in the cluster.\n" + "taskEbsOptimized": { + "type": "boolean" }, - "drainingTimeout": { - "type": "integer", - "description": "The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.\n" + "taskInstanceTypes": { + "type": "array", + "items": { + "type": "string" + } }, - "ebsOptimized": { - "type": "boolean", - "description": "Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.\n" + "taskLifecycle": { + "type": "string" }, - "fallbackToOndemand": { - "type": "boolean", - "description": "If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.\n" + "taskMaxSize": { + "type": "integer" }, - "filters": { - "$ref": "#/types/spotinst:aws/OceanFilters:OceanFilters" + "taskMinSize": { + "type": "integer" }, - "gracePeriod": { - "type": "integer", - "description": "The amount of time, in seconds, after the instance has launched to start checking its health.\n" + "taskScalingDownPolicies": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarTaskScalingDownPolicy:MrScalarTaskScalingDownPolicy" + } }, - "healthCheckUnhealthyDurationBeforeReplacement": { - "type": "integer", - "description": "The amount of time, in seconds, an existing instance should remain active after becoming unhealthy. After the set time out the instance will be replaced. The minimum value allowed is 60, and it must be a multiple of 60.\n" + "taskScalingUpPolicies": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarTaskScalingUpPolicy:MrScalarTaskScalingUpPolicy" + } }, - "iamInstanceProfile": { - "type": "string", - "description": "The instance profile iam role.\n" + "taskUnit": { + "type": "string" }, - "imageId": { - "type": "string", - "description": "ID of the image used to launch the instances.\n" + "terminationPolicies": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarTerminationPolicy:MrScalarTerminationPolicy" + }, + "description": "Allows defining termination policies for EMR clusters based on CloudWatch Metrics.\n" }, - "instanceMetadataOptions": { - "$ref": "#/types/spotinst:aws/OceanInstanceMetadataOptions:OceanInstanceMetadataOptions", - "description": "Ocean instance metadata options object for IMDSv2.\n" + "terminationProtected": { + "type": "boolean" }, - "keyName": { - "type": "string", - "description": "The key pair to attach the instances.\n" + "visibleToAllUsers": { + "type": "boolean", + "deprecationMessage": "This field has been removed from our API and is no longer functional." + } + }, + "required": [ + "name", + "outputClusterId", + "strategy" + ], + "inputProperties": { + "additionalInfo": { + "type": "string" }, - "loadBalancers": { + "additionalPrimarySecurityGroups": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLoadBalancer:OceanLoadBalancer" - }, - "description": "Array of load balancer objects to add to ocean cluster\n" - }, - "logging": { - "$ref": "#/types/spotinst:aws/OceanLogging:OceanLogging", - "description": "Logging configuration.\n" + "type": "string" + } }, - "maxSize": { - "type": "integer", - "description": "The upper limit of instances the cluster can scale up to.\n" + "additionalReplicaSecurityGroups": { + "type": "array", + "items": { + "type": "string" + } }, - "minSize": { - "type": "integer", - "description": "The lower limit of instances the cluster can scale down to.\n" + "applications": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarApplication:MrScalarApplication" + } }, - "monitoring": { - "type": "boolean", - "description": "Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.\n" + "availabilityZones": { + "type": "array", + "items": { + "type": "string" + } }, - "name": { - "type": "string", - "description": "The cluster name.\n" + "bootstrapActionsFiles": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarBootstrapActionsFile:MrScalarBootstrapActionsFile" + } }, - "region": { + "clusterId": { "type": "string", - "description": "The region the cluster will run in.\n" + "description": "The MrScaler cluster id.\n", + "willReplaceOnChanges": true }, - "resourceTagSpecifications": { + "configurationsFiles": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanResourceTagSpecification:OceanResourceTagSpecification" - }, - "description": "Specify which resources should be tagged with Virtual Node Group tags or Ocean tags. If tags are set on the VNG, the resources will be tagged with the VNG tags; otherwise, they will be tagged with the Ocean tags.\n" + "$ref": "#/types/spotinst:aws/MrScalarConfigurationsFile:MrScalarConfigurationsFile" + } }, - "rootVolumeSize": { - "type": "integer", - "description": "The size (in Gb) to allocate for the root volume. Minimum `20`.\n" + "coreDesiredCapacity": { + "type": "integer" }, - "scheduledTasks": { + "coreEbsBlockDevices": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanScheduledTask:OceanScheduledTask" + "$ref": "#/types/spotinst:aws/MrScalarCoreEbsBlockDevice:MrScalarCoreEbsBlockDevice" } }, - "securityGroups": { + "coreEbsOptimized": { + "type": "boolean" + }, + "coreInstanceTypes": { "type": "array", "items": { "type": "string" - }, - "description": "One or more security group ids.\n" + } }, - "spotPercentage": { - "type": "integer", - "description": "The desired percentage of Spot instances out of all running instances. Only available when the field is not set in any VNG directly (launchSpec.strategy.spotPercentage).\n" + "coreLifecycle": { + "type": "string" }, - "spreadNodesBy": { - "type": "string", - "description": "Ocean will spread the nodes across markets by this value. Possible values: `vcpu` or `count`.\n" + "coreMaxSize": { + "type": "integer" }, - "subnetIds": { + "coreMinSize": { + "type": "integer" + }, + "coreScalingDownPolicies": { "type": "array", "items": { - "type": "string" - }, - "description": "A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public IP.\n" + "$ref": "#/types/spotinst:aws/MrScalarCoreScalingDownPolicy:MrScalarCoreScalingDownPolicy" + } }, - "tags": { + "coreScalingUpPolicies": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanTag:OceanTag" - }, - "description": "Optionally adds tags to instances launched in an Ocean cluster.\n" + "$ref": "#/types/spotinst:aws/MrScalarCoreScalingUpPolicy:MrScalarCoreScalingUpPolicy" + } }, - "updatePolicy": { - "$ref": "#/types/spotinst:aws/OceanUpdatePolicy:OceanUpdatePolicy" + "coreUnit": { + "type": "string", + "willReplaceOnChanges": true }, - "useAsTemplateOnly": { - "type": "boolean", - "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\nWhen set to true, on Ocean resource creation please make sure your custom VNG has an initial_nodes parameter to create nodes for your VNG.\n" + "customAmiId": { + "type": "string" }, - "userData": { + "description": { "type": "string", - "description": "Base64-encoded MIME user data to make available to the instances.\n" + "description": "The MrScaler description.\n" }, - "utilizeCommitments": { - "type": "boolean", - "description": "If savings plans exist, Ocean will utilize them before launching Spot instances.\n" + "ebsRootVolumeSize": { + "type": "integer" }, - "utilizeReservedInstances": { + "ec2KeyName": { + "type": "string" + }, + "exposeClusterId": { "type": "boolean", - "description": "If Reserved instances exist, Ocean will utilize them before launching Spot instances.\n" + "description": "Allow the `cluster_id` to set a provider output variable.\n" }, - "whitelists": { + "instanceWeights": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/spotinst:aws/MrScalarInstanceWeight:MrScalarInstanceWeight" } - } - }, - "required": [ - "desiredCapacity", - "minSize", - "name", - "securityGroups", - "subnetIds" - ], - "inputProperties": { - "associateIpv6Address": { - "type": "boolean", - "description": "Configure IPv6 address allocation.\n" }, - "associatePublicIpAddress": { - "type": "boolean", - "description": "Configure public IP address allocation.\n" + "jobFlowRole": { + "type": "string" + }, + "keepJobFlowAlive": { + "type": "boolean" + }, + "logUri": { + "type": "string" + }, + "managedPrimarySecurityGroup": { + "type": "string" }, - "autoscaler": { - "$ref": "#/types/spotinst:aws/OceanAutoscaler:OceanAutoscaler" + "managedReplicaSecurityGroup": { + "type": "string" }, - "blacklists": { + "masterEbsBlockDevices": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/spotinst:aws/MrScalarMasterEbsBlockDevice:MrScalarMasterEbsBlockDevice" } }, - "blockDeviceMappings": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanBlockDeviceMapping:OceanBlockDeviceMapping" - }, - "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" + "masterEbsOptimized": { + "type": "boolean" }, - "clusterOrientations": { + "masterInstanceTypes": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanClusterOrientation:OceanClusterOrientation" + "type": "string" } }, - "controllerId": { - "type": "string", - "description": "A unique identifier used for connecting the Ocean SaaS platform and the Kubernetes cluster. Typically, the cluster name is used as its identifier.\n" - }, - "desiredCapacity": { - "type": "integer", - "description": "The number of instances to launch and maintain in the cluster.\n" - }, - "drainingTimeout": { - "type": "integer", - "description": "The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.\n" - }, - "ebsOptimized": { - "type": "boolean", - "description": "Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.\n" - }, - "fallbackToOndemand": { - "type": "boolean", - "description": "If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.\n" + "masterLifecycle": { + "type": "string" }, - "filters": { - "$ref": "#/types/spotinst:aws/OceanFilters:OceanFilters" + "masterTarget": { + "type": "integer" }, - "gracePeriod": { - "type": "integer", - "description": "The amount of time, in seconds, after the instance has launched to start checking its health.\n" + "name": { + "type": "string", + "description": "The MrScaler name.\n" }, - "healthCheckUnhealthyDurationBeforeReplacement": { - "type": "integer", - "description": "The amount of time, in seconds, an existing instance should remain active after becoming unhealthy. After the set time out the instance will be replaced. The minimum value allowed is 60, and it must be a multiple of 60.\n" + "provisioningTimeout": { + "$ref": "#/types/spotinst:aws/MrScalarProvisioningTimeout:MrScalarProvisioningTimeout" }, - "iamInstanceProfile": { + "region": { "type": "string", - "description": "The instance profile iam role.\n" + "description": "The MrScaler region.\n" }, - "imageId": { - "type": "string", - "description": "ID of the image used to launch the instances.\n" + "releaseLabel": { + "type": "string" }, - "instanceMetadataOptions": { - "$ref": "#/types/spotinst:aws/OceanInstanceMetadataOptions:OceanInstanceMetadataOptions", - "description": "Ocean instance metadata options object for IMDSv2.\n" + "repoUpgradeOnBoot": { + "type": "string" }, - "keyName": { - "type": "string", - "description": "The key pair to attach the instances.\n" + "retries": { + "type": "integer" }, - "loadBalancers": { + "scheduledTasks": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLoadBalancer:OceanLoadBalancer" - }, - "description": "Array of load balancer objects to add to ocean cluster\n" - }, - "logging": { - "$ref": "#/types/spotinst:aws/OceanLogging:OceanLogging", - "description": "Logging configuration.\n" + "$ref": "#/types/spotinst:aws/MrScalarScheduledTask:MrScalarScheduledTask" + } }, - "maxSize": { - "type": "integer", - "description": "The upper limit of instances the cluster can scale up to.\n" + "securityConfig": { + "type": "string" }, - "minSize": { - "type": "integer", - "description": "The lower limit of instances the cluster can scale down to.\n" + "serviceAccessSecurityGroup": { + "type": "string" }, - "monitoring": { - "type": "boolean", - "description": "Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.\n" + "serviceRole": { + "type": "string" }, - "name": { - "type": "string", - "description": "The cluster name.\n" + "stepsFiles": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarStepsFile:MrScalarStepsFile" + } }, - "region": { + "strategy": { "type": "string", - "description": "The region the cluster will run in.\n" + "description": "The MrScaler strategy. Allowed values are `new` `clone` and `wrap`.\n" }, - "resourceTagSpecifications": { + "tags": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanResourceTagSpecification:OceanResourceTagSpecification" - }, - "description": "Specify which resources should be tagged with Virtual Node Group tags or Ocean tags. If tags are set on the VNG, the resources will be tagged with the VNG tags; otherwise, they will be tagged with the Ocean tags.\n" + "$ref": "#/types/spotinst:aws/MrScalarTag:MrScalarTag" + } }, - "rootVolumeSize": { - "type": "integer", - "description": "The size (in Gb) to allocate for the root volume. Minimum `20`.\n" + "taskDesiredCapacity": { + "type": "integer" }, - "scheduledTasks": { + "taskEbsBlockDevices": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanScheduledTask:OceanScheduledTask" + "$ref": "#/types/spotinst:aws/MrScalarTaskEbsBlockDevice:MrScalarTaskEbsBlockDevice" } }, - "securityGroups": { + "taskEbsOptimized": { + "type": "boolean" + }, + "taskInstanceTypes": { "type": "array", "items": { "type": "string" - }, - "description": "One or more security group ids.\n" + } }, - "spotPercentage": { - "type": "integer", - "description": "The desired percentage of Spot instances out of all running instances. Only available when the field is not set in any VNG directly (launchSpec.strategy.spotPercentage).\n" + "taskLifecycle": { + "type": "string" }, - "spreadNodesBy": { - "type": "string", - "description": "Ocean will spread the nodes across markets by this value. Possible values: `vcpu` or `count`.\n" + "taskMaxSize": { + "type": "integer" }, - "subnetIds": { + "taskMinSize": { + "type": "integer" + }, + "taskScalingDownPolicies": { "type": "array", "items": { - "type": "string" - }, - "description": "A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public IP.\n" + "$ref": "#/types/spotinst:aws/MrScalarTaskScalingDownPolicy:MrScalarTaskScalingDownPolicy" + } }, - "tags": { + "taskScalingUpPolicies": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanTag:OceanTag" - }, - "description": "Optionally adds tags to instances launched in an Ocean cluster.\n" - }, - "updatePolicy": { - "$ref": "#/types/spotinst:aws/OceanUpdatePolicy:OceanUpdatePolicy" - }, - "useAsTemplateOnly": { - "type": "boolean", - "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\nWhen set to true, on Ocean resource creation please make sure your custom VNG has an initial_nodes parameter to create nodes for your VNG.\n" + "$ref": "#/types/spotinst:aws/MrScalarTaskScalingUpPolicy:MrScalarTaskScalingUpPolicy" + } }, - "userData": { + "taskUnit": { "type": "string", - "description": "Base64-encoded MIME user data to make available to the instances.\n" - }, - "utilizeCommitments": { - "type": "boolean", - "description": "If savings plans exist, Ocean will utilize them before launching Spot instances.\n" - }, - "utilizeReservedInstances": { - "type": "boolean", - "description": "If Reserved instances exist, Ocean will utilize them before launching Spot instances.\n" + "willReplaceOnChanges": true }, - "whitelists": { + "terminationPolicies": { "type": "array", "items": { - "type": "string" - } + "$ref": "#/types/spotinst:aws/MrScalarTerminationPolicy:MrScalarTerminationPolicy" + }, + "description": "Allows defining termination policies for EMR clusters based on CloudWatch Metrics.\n" + }, + "terminationProtected": { + "type": "boolean" + }, + "visibleToAllUsers": { + "type": "boolean", + "deprecationMessage": "This field has been removed from our API and is no longer functional." } }, "requiredInputs": [ - "securityGroups", - "subnetIds" + "strategy" ], "stateInputs": { - "description": "Input properties used for looking up and filtering Ocean resources.\n", + "description": "Input properties used for looking up and filtering MrScalar resources.\n", "properties": { - "associateIpv6Address": { - "type": "boolean", - "description": "Configure IPv6 address allocation.\n" + "additionalInfo": { + "type": "string" + }, + "additionalPrimarySecurityGroups": { + "type": "array", + "items": { + "type": "string" + } + }, + "additionalReplicaSecurityGroups": { + "type": "array", + "items": { + "type": "string" + } + }, + "applications": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarApplication:MrScalarApplication" + } + }, + "availabilityZones": { + "type": "array", + "items": { + "type": "string" + } + }, + "bootstrapActionsFiles": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarBootstrapActionsFile:MrScalarBootstrapActionsFile" + } + }, + "clusterId": { + "type": "string", + "description": "The MrScaler cluster id.\n", + "willReplaceOnChanges": true + }, + "configurationsFiles": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarConfigurationsFile:MrScalarConfigurationsFile" + } + }, + "coreDesiredCapacity": { + "type": "integer" }, - "associatePublicIpAddress": { - "type": "boolean", - "description": "Configure public IP address allocation.\n" + "coreEbsBlockDevices": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarCoreEbsBlockDevice:MrScalarCoreEbsBlockDevice" + } }, - "autoscaler": { - "$ref": "#/types/spotinst:aws/OceanAutoscaler:OceanAutoscaler" + "coreEbsOptimized": { + "type": "boolean" }, - "blacklists": { + "coreInstanceTypes": { "type": "array", "items": { "type": "string" } }, - "blockDeviceMappings": { + "coreLifecycle": { + "type": "string" + }, + "coreMaxSize": { + "type": "integer" + }, + "coreMinSize": { + "type": "integer" + }, + "coreScalingDownPolicies": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanBlockDeviceMapping:OceanBlockDeviceMapping" - }, - "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" + "$ref": "#/types/spotinst:aws/MrScalarCoreScalingDownPolicy:MrScalarCoreScalingDownPolicy" + } }, - "clusterOrientations": { + "coreScalingUpPolicies": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanClusterOrientation:OceanClusterOrientation" + "$ref": "#/types/spotinst:aws/MrScalarCoreScalingUpPolicy:MrScalarCoreScalingUpPolicy" } }, - "controllerId": { + "coreUnit": { "type": "string", - "description": "A unique identifier used for connecting the Ocean SaaS platform and the Kubernetes cluster. Typically, the cluster name is used as its identifier.\n" + "willReplaceOnChanges": true }, - "desiredCapacity": { - "type": "integer", - "description": "The number of instances to launch and maintain in the cluster.\n" + "customAmiId": { + "type": "string" }, - "drainingTimeout": { - "type": "integer", - "description": "The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.\n" + "description": { + "type": "string", + "description": "The MrScaler description.\n" }, - "ebsOptimized": { - "type": "boolean", - "description": "Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.\n" + "ebsRootVolumeSize": { + "type": "integer" }, - "fallbackToOndemand": { - "type": "boolean", - "description": "If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.\n" + "ec2KeyName": { + "type": "string" }, - "filters": { - "$ref": "#/types/spotinst:aws/OceanFilters:OceanFilters" + "exposeClusterId": { + "type": "boolean", + "description": "Allow the `cluster_id` to set a provider output variable.\n" }, - "gracePeriod": { - "type": "integer", - "description": "The amount of time, in seconds, after the instance has launched to start checking its health.\n" + "instanceWeights": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarInstanceWeight:MrScalarInstanceWeight" + } }, - "healthCheckUnhealthyDurationBeforeReplacement": { - "type": "integer", - "description": "The amount of time, in seconds, an existing instance should remain active after becoming unhealthy. After the set time out the instance will be replaced. The minimum value allowed is 60, and it must be a multiple of 60.\n" + "jobFlowRole": { + "type": "string" }, - "iamInstanceProfile": { - "type": "string", - "description": "The instance profile iam role.\n" + "keepJobFlowAlive": { + "type": "boolean" }, - "imageId": { - "type": "string", - "description": "ID of the image used to launch the instances.\n" + "logUri": { + "type": "string" }, - "instanceMetadataOptions": { - "$ref": "#/types/spotinst:aws/OceanInstanceMetadataOptions:OceanInstanceMetadataOptions", - "description": "Ocean instance metadata options object for IMDSv2.\n" + "managedPrimarySecurityGroup": { + "type": "string" }, - "keyName": { - "type": "string", - "description": "The key pair to attach the instances.\n" + "managedReplicaSecurityGroup": { + "type": "string" }, - "loadBalancers": { + "masterEbsBlockDevices": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLoadBalancer:OceanLoadBalancer" - }, - "description": "Array of load balancer objects to add to ocean cluster\n" + "$ref": "#/types/spotinst:aws/MrScalarMasterEbsBlockDevice:MrScalarMasterEbsBlockDevice" + } }, - "logging": { - "$ref": "#/types/spotinst:aws/OceanLogging:OceanLogging", - "description": "Logging configuration.\n" + "masterEbsOptimized": { + "type": "boolean" }, - "maxSize": { - "type": "integer", - "description": "The upper limit of instances the cluster can scale up to.\n" + "masterInstanceTypes": { + "type": "array", + "items": { + "type": "string" + } }, - "minSize": { - "type": "integer", - "description": "The lower limit of instances the cluster can scale down to.\n" + "masterLifecycle": { + "type": "string" }, - "monitoring": { - "type": "boolean", - "description": "Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.\n" + "masterTarget": { + "type": "integer" }, "name": { "type": "string", - "description": "The cluster name.\n" + "description": "The MrScaler name.\n" + }, + "outputClusterId": { + "type": "string" + }, + "provisioningTimeout": { + "$ref": "#/types/spotinst:aws/MrScalarProvisioningTimeout:MrScalarProvisioningTimeout" }, "region": { "type": "string", - "description": "The region the cluster will run in.\n" + "description": "The MrScaler region.\n" }, - "resourceTagSpecifications": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanResourceTagSpecification:OceanResourceTagSpecification" - }, - "description": "Specify which resources should be tagged with Virtual Node Group tags or Ocean tags. If tags are set on the VNG, the resources will be tagged with the VNG tags; otherwise, they will be tagged with the Ocean tags.\n" + "releaseLabel": { + "type": "string" }, - "rootVolumeSize": { - "type": "integer", - "description": "The size (in Gb) to allocate for the root volume. Minimum `20`.\n" + "repoUpgradeOnBoot": { + "type": "string" + }, + "retries": { + "type": "integer" }, "scheduledTasks": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanScheduledTask:OceanScheduledTask" + "$ref": "#/types/spotinst:aws/MrScalarScheduledTask:MrScalarScheduledTask" } }, - "securityGroups": { - "type": "array", - "items": { - "type": "string" - }, - "description": "One or more security group ids.\n" + "securityConfig": { + "type": "string" }, - "spotPercentage": { - "type": "integer", - "description": "The desired percentage of Spot instances out of all running instances. Only available when the field is not set in any VNG directly (launchSpec.strategy.spotPercentage).\n" + "serviceAccessSecurityGroup": { + "type": "string" }, - "spreadNodesBy": { - "type": "string", - "description": "Ocean will spread the nodes across markets by this value. Possible values: `vcpu` or `count`.\n" + "serviceRole": { + "type": "string" }, - "subnetIds": { + "stepsFiles": { "type": "array", "items": { - "type": "string" - }, - "description": "A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public IP.\n" + "$ref": "#/types/spotinst:aws/MrScalarStepsFile:MrScalarStepsFile" + } + }, + "strategy": { + "type": "string", + "description": "The MrScaler strategy. Allowed values are `new` `clone` and `wrap`.\n" }, "tags": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanTag:OceanTag" - }, - "description": "Optionally adds tags to instances launched in an Ocean cluster.\n" - }, - "updatePolicy": { - "$ref": "#/types/spotinst:aws/OceanUpdatePolicy:OceanUpdatePolicy" - }, - "useAsTemplateOnly": { - "type": "boolean", - "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\nWhen set to true, on Ocean resource creation please make sure your custom VNG has an initial_nodes parameter to create nodes for your VNG.\n" + "$ref": "#/types/spotinst:aws/MrScalarTag:MrScalarTag" + } }, - "userData": { - "type": "string", - "description": "Base64-encoded MIME user data to make available to the instances.\n" + "taskDesiredCapacity": { + "type": "integer" }, - "utilizeCommitments": { - "type": "boolean", - "description": "If savings plans exist, Ocean will utilize them before launching Spot instances.\n" + "taskEbsBlockDevices": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarTaskEbsBlockDevice:MrScalarTaskEbsBlockDevice" + } }, - "utilizeReservedInstances": { - "type": "boolean", - "description": "If Reserved instances exist, Ocean will utilize them before launching Spot instances.\n" + "taskEbsOptimized": { + "type": "boolean" }, - "whitelists": { + "taskInstanceTypes": { "type": "array", "items": { "type": "string" } - } - }, - "type": "object" - } - }, - "spotinst:aws/oceanExtendedResourceDefinition:OceanExtendedResourceDefinition": { - "description": "Provides a Spotinst Ocean AWS Extended Resource Definition resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.aws.OceanExtendedResourceDefinition(\"example\", {\n name: \"terraform_extended_resource_definition\",\n resourceMapping: {\n \"c3.large\": \"2Ki\",\n \"c3.xlarge\": \"4Ki\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.aws.OceanExtendedResourceDefinition(\"example\",\n name=\"terraform_extended_resource_definition\",\n resource_mapping={\n \"c3.large\": \"2Ki\",\n \"c3.xlarge\": \"4Ki\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new SpotInst.Aws.OceanExtendedResourceDefinition(\"example\", new()\n {\n Name = \"terraform_extended_resource_definition\",\n ResourceMapping = \n {\n { \"c3.large\", \"2Ki\" },\n { \"c3.xlarge\", \"4Ki\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/aws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := aws.NewOceanExtendedResourceDefinition(ctx, \"example\", \u0026aws.OceanExtendedResourceDefinitionArgs{\n\t\t\tName: pulumi.String(\"terraform_extended_resource_definition\"),\n\t\t\tResourceMapping: pulumi.Map{\n\t\t\t\t\"c3.large\": pulumi.Any(\"2Ki\"),\n\t\t\t\t\"c3.xlarge\": pulumi.Any(\"4Ki\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.aws.OceanExtendedResourceDefinition;\nimport com.pulumi.spotinst.aws.OceanExtendedResourceDefinitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OceanExtendedResourceDefinition(\"example\", OceanExtendedResourceDefinitionArgs.builder() \n .name(\"terraform_extended_resource_definition\")\n .resourceMapping(Map.ofEntries(\n Map.entry(\"c3.large\", \"2Ki\"),\n Map.entry(\"c3.xlarge\", \"4Ki\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:aws:OceanExtendedResourceDefinition\n properties:\n name: terraform_extended_resource_definition\n resourceMapping:\n c3.large: 2Ki\n c3.xlarge: 4Ki\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", - "properties": { - "name": { - "type": "string", - "description": "The extended resource name as should be requested by your pods and registered to the nodes. Cannot be updated.\nThe name should be a valid Kubernetes extended resource name.\n" - }, - "resourceMapping": { - "type": "object", - "additionalProperties": { - "$ref": "pulumi.json#/Any" }, - "description": "A mapping between AWS instanceType or * as default and its value for the given extended resource.\n" - } - }, - "required": [ - "name", - "resourceMapping" - ], - "inputProperties": { - "name": { - "type": "string", - "description": "The extended resource name as should be requested by your pods and registered to the nodes. Cannot be updated.\nThe name should be a valid Kubernetes extended resource name.\n" - }, - "resourceMapping": { - "type": "object", - "additionalProperties": { - "$ref": "pulumi.json#/Any" + "taskLifecycle": { + "type": "string" + }, + "taskMaxSize": { + "type": "integer" + }, + "taskMinSize": { + "type": "integer" }, - "description": "A mapping between AWS instanceType or * as default and its value for the given extended resource.\n" - } - }, - "requiredInputs": [ - "resourceMapping" - ], - "stateInputs": { - "description": "Input properties used for looking up and filtering OceanExtendedResourceDefinition resources.\n", - "properties": { - "name": { + "taskScalingDownPolicies": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarTaskScalingDownPolicy:MrScalarTaskScalingDownPolicy" + } + }, + "taskScalingUpPolicies": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarTaskScalingUpPolicy:MrScalarTaskScalingUpPolicy" + } + }, + "taskUnit": { "type": "string", - "description": "The extended resource name as should be requested by your pods and registered to the nodes. Cannot be updated.\nThe name should be a valid Kubernetes extended resource name.\n" + "willReplaceOnChanges": true }, - "resourceMapping": { - "type": "object", - "additionalProperties": { - "$ref": "pulumi.json#/Any" + "terminationPolicies": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/MrScalarTerminationPolicy:MrScalarTerminationPolicy" }, - "description": "A mapping between AWS instanceType or * as default and its value for the given extended resource.\n" + "description": "Allows defining termination policies for EMR clusters based on CloudWatch Metrics.\n" + }, + "terminationProtected": { + "type": "boolean" + }, + "visibleToAllUsers": { + "type": "boolean", + "deprecationMessage": "This field has been removed from our API and is no longer functional." } }, "type": "object" } }, - "spotinst:aws/oceanLaunchSpec:OceanLaunchSpec": { - "description": "Manages a Spotinst Ocean AWS [Virtual Node Group](https://docs.spot.io/ocean/features/launch-specifications) resource.\n\n", + "spotinst:aws/ocean:Ocean": { + "description": "## Example Usage\n\n## Import\n\nClusters can be imported using the Ocean `id`, e.g.,\n\nhcl\n\n```sh\n$ pulumi import spotinst:aws/ocean:Ocean this o-12345678\n```\n\n", "properties": { + "associateIpv6Address": { + "type": "boolean", + "description": "Configure IPv6 address allocation.\n" + }, "associatePublicIpAddress": { "type": "boolean", "description": "Configure public IP address allocation.\n" }, - "autoscaleDowns": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleDown:OceanLaunchSpecAutoscaleDown" - }, - "description": "Auto Scaling scale down operations.\n" + "autoscaler": { + "$ref": "#/types/spotinst:aws/OceanAutoscaler:OceanAutoscaler" }, - "autoscaleHeadrooms": { + "blacklists": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroom:OceanLaunchSpecAutoscaleHeadroom" - }, - "description": "Set custom headroom per Virtual Node Group. Provide a list of headrooms object.\n" + "type": "string" + } }, - "autoscaleHeadroomsAutomatics": { + "blockDeviceMappings": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroomsAutomatic:OceanLaunchSpecAutoscaleHeadroomsAutomatic" + "$ref": "#/types/spotinst:aws/OceanBlockDeviceMapping:OceanBlockDeviceMapping" }, - "description": "Set automatic headroom per launch spec.\n" + "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" }, - "blockDeviceMappings": { + "clusterOrientations": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecBlockDeviceMapping:OceanLaunchSpecBlockDeviceMapping" - }, - "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" + "$ref": "#/types/spotinst:aws/OceanClusterOrientation:OceanClusterOrientation" + } }, - "createOptions": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecCreateOptions:OceanLaunchSpecCreateOptions" + "controllerId": { + "type": "string", + "description": "A unique identifier used for connecting the Ocean SaaS platform and the Kubernetes cluster. Typically, the cluster name is used as its identifier.\n" }, - "deleteOptions": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecDeleteOptions:OceanLaunchSpecDeleteOptions" + "desiredCapacity": { + "type": "integer", + "description": "The number of instances to launch and maintain in the cluster.\n" }, - "elasticIpPools": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecElasticIpPool:OceanLaunchSpecElasticIpPool" - }, - "description": "Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.\n" + "drainingTimeout": { + "type": "integer", + "description": "The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.\n" }, - "ephemeralStorages": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecEphemeralStorage:OceanLaunchSpecEphemeralStorage" - } + "ebsOptimized": { + "type": "boolean", + "description": "Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.\n" + }, + "fallbackToOndemand": { + "type": "boolean", + "description": "If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.\n" + }, + "filters": { + "$ref": "#/types/spotinst:aws/OceanFilters:OceanFilters" + }, + "gracePeriod": { + "type": "integer", + "description": "The amount of time, in seconds, after the instance has launched to start checking its health.\n" + }, + "healthCheckUnhealthyDurationBeforeReplacement": { + "type": "integer", + "description": "The amount of time, in seconds, an existing instance should remain active after becoming unhealthy. After the set time out the instance will be replaced. The minimum value allowed is 60, and it must be a multiple of 60.\n" }, "iamInstanceProfile": { "type": "string", - "description": "The ARN or name of an IAM instance profile to associate with launched instances.\n" + "description": "The instance profile iam role.\n" }, "imageId": { "type": "string", "description": "ID of the image used to launch the instances.\n" }, - "images": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecImage:OceanLaunchSpecImage" - }, - "description": "Array of objects (Image object, containing the id of the image used to launch instances.) You can configure VNG with either the imageId or images objects, but not both simultaneously.\nFor each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element.\n" - }, "instanceMetadataOptions": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceMetadataOptions:OceanLaunchSpecInstanceMetadataOptions", + "$ref": "#/types/spotinst:aws/OceanInstanceMetadataOptions:OceanInstanceMetadataOptions", "description": "Ocean instance metadata options object for IMDSv2.\n" }, - "instanceTypes": { + "keyName": { + "type": "string", + "description": "The key pair to attach the instances.\n" + }, + "loadBalancers": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/spotinst:aws/OceanLoadBalancer:OceanLoadBalancer" }, - "description": "A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the cluster.\n" + "description": "Array of load balancer objects to add to ocean cluster\n" }, - "instanceTypesFilters": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceTypesFilters:OceanLaunchSpecInstanceTypesFilters", - "description": "The instance types that match with all filters compose the Virtual Node Group's instanceTypes parameter.\nThe architectures that come from the Virtual Node Group's images will be taken into account when using this parameter. Cannot be configured together with Virtual Node Group's instanceTypes and with the Cluster's whitelist/blacklist/filters.\n" + "logging": { + "$ref": "#/types/spotinst:aws/OceanLogging:OceanLogging", + "description": "Logging configuration.\n" }, - "labels": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecLabel:OceanLaunchSpecLabel" - }, - "description": "Optionally adds labels to instances launched in the cluster.\n" + "maxSize": { + "type": "integer", + "description": "The upper limit of instances the cluster can scale up to.\n" + }, + "minSize": { + "type": "integer", + "description": "The lower limit of instances the cluster can scale down to.\n" + }, + "monitoring": { + "type": "boolean", + "description": "Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.\n" }, "name": { "type": "string", - "description": "The name of the Virtual Node Group.\n" + "description": "The cluster name.\n" }, - "oceanId": { + "region": { "type": "string", - "description": "The ID of the Ocean cluster.\n" + "description": "The region the cluster will run in.\n" }, - "preferredSpotTypes": { + "resourceTagSpecifications": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/spotinst:aws/OceanResourceTagSpecification:OceanResourceTagSpecification" }, - "description": "A list of instance types. Takes the preferred types into consideration while maintaining a variety of machine types running for optimized distribution.\n" - }, - "resourceLimits": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecResourceLimit:OceanLaunchSpecResourceLimit" - } - }, - "restrictScaleDown": { - "type": "boolean", - "description": "Boolean. When set to `True`, nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.\n" + "description": "Specify which resources should be tagged with Virtual Node Group tags or Ocean tags. If tags are set on the VNG, the resources will be tagged with the VNG tags; otherwise, they will be tagged with the Ocean tags.\n" }, "rootVolumeSize": { "type": "integer", - "description": "Set root volume size (in GB).\n" - }, - "schedulingShutdownHours": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingShutdownHours:OceanLaunchSpecSchedulingShutdownHours", - "description": "Used to specify times that the nodes in the virtual node group will be taken down.\n" + "description": "The size (in Gb) to allocate for the root volume. Minimum `20`.\n" }, - "schedulingTasks": { + "scheduledTasks": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingTask:OceanLaunchSpecSchedulingTask" - }, - "description": "Used to define scheduled tasks such as a manual headroom update.\n" + "$ref": "#/types/spotinst:aws/OceanScheduledTask:OceanScheduledTask" + } }, "securityGroups": { "type": "array", "items": { "type": "string" }, - "description": "Optionally adds security group IDs.\n" + "description": "One or more security group ids.\n" }, - "strategies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecStrategy:OceanLaunchSpecStrategy" - } + "spotPercentage": { + "type": "integer", + "description": "The desired percentage of Spot instances out of all running instances. Only available when the field is not set in any VNG directly (launchSpec.strategy.spotPercentage).\n" + }, + "spreadNodesBy": { + "type": "string", + "description": "Ocean will spread the nodes across markets by this value. Possible values: `vcpu` or `count`.\n" }, "subnetIds": { "type": "array", "items": { "type": "string" }, - "description": "A list of subnet IDs.\n" + "description": "A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public IP.\n" }, "tags": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecTag:OceanLaunchSpecTag" - }, - "description": "A key/value mapping of tags to assign to the resource.\n" - }, - "taints": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecTaint:OceanLaunchSpecTaint" + "$ref": "#/types/spotinst:aws/OceanTag:OceanTag" }, - "description": "Optionally adds labels to instances launched in the cluster.\n" + "description": "Optionally adds tags to instances launched in an Ocean cluster.\n" }, "updatePolicy": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecUpdatePolicy:OceanLaunchSpecUpdatePolicy" + "$ref": "#/types/spotinst:aws/OceanUpdatePolicy:OceanUpdatePolicy" + }, + "useAsTemplateOnly": { + "type": "boolean", + "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\nWhen set to true, on Ocean resource creation please make sure your custom VNG has an initial_nodes parameter to create nodes for your VNG.\n" }, "userData": { "type": "string", "description": "Base64-encoded MIME user data to make available to the instances.\n" + }, + "utilizeCommitments": { + "type": "boolean", + "description": "If savings plans exist, Ocean will utilize them before launching Spot instances.\n" + }, + "utilizeReservedInstances": { + "type": "boolean", + "description": "If Reserved instances exist, Ocean will utilize them before launching Spot instances.\n" + }, + "whitelists": { + "type": "array", + "items": { + "type": "string" + } } }, "required": [ + "desiredCapacity", + "minSize", "name", - "oceanId" + "securityGroups", + "subnetIds" ], "inputProperties": { + "associateIpv6Address": { + "type": "boolean", + "description": "Configure IPv6 address allocation.\n" + }, "associatePublicIpAddress": { "type": "boolean", "description": "Configure public IP address allocation.\n" }, - "autoscaleDowns": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleDown:OceanLaunchSpecAutoscaleDown" - }, - "description": "Auto Scaling scale down operations.\n" + "autoscaler": { + "$ref": "#/types/spotinst:aws/OceanAutoscaler:OceanAutoscaler" }, - "autoscaleHeadrooms": { + "blacklists": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroom:OceanLaunchSpecAutoscaleHeadroom" - }, - "description": "Set custom headroom per Virtual Node Group. Provide a list of headrooms object.\n" + "type": "string" + } }, - "autoscaleHeadroomsAutomatics": { + "blockDeviceMappings": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroomsAutomatic:OceanLaunchSpecAutoscaleHeadroomsAutomatic" + "$ref": "#/types/spotinst:aws/OceanBlockDeviceMapping:OceanBlockDeviceMapping" }, - "description": "Set automatic headroom per launch spec.\n" + "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" }, - "blockDeviceMappings": { + "clusterOrientations": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecBlockDeviceMapping:OceanLaunchSpecBlockDeviceMapping" - }, - "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" + "$ref": "#/types/spotinst:aws/OceanClusterOrientation:OceanClusterOrientation" + } }, - "createOptions": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecCreateOptions:OceanLaunchSpecCreateOptions" + "controllerId": { + "type": "string", + "description": "A unique identifier used for connecting the Ocean SaaS platform and the Kubernetes cluster. Typically, the cluster name is used as its identifier.\n" }, - "deleteOptions": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecDeleteOptions:OceanLaunchSpecDeleteOptions" + "desiredCapacity": { + "type": "integer", + "description": "The number of instances to launch and maintain in the cluster.\n" }, - "elasticIpPools": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecElasticIpPool:OceanLaunchSpecElasticIpPool" - }, - "description": "Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.\n" + "drainingTimeout": { + "type": "integer", + "description": "The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.\n" }, - "ephemeralStorages": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecEphemeralStorage:OceanLaunchSpecEphemeralStorage" - } + "ebsOptimized": { + "type": "boolean", + "description": "Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.\n" + }, + "fallbackToOndemand": { + "type": "boolean", + "description": "If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.\n" + }, + "filters": { + "$ref": "#/types/spotinst:aws/OceanFilters:OceanFilters" + }, + "gracePeriod": { + "type": "integer", + "description": "The amount of time, in seconds, after the instance has launched to start checking its health.\n" + }, + "healthCheckUnhealthyDurationBeforeReplacement": { + "type": "integer", + "description": "The amount of time, in seconds, an existing instance should remain active after becoming unhealthy. After the set time out the instance will be replaced. The minimum value allowed is 60, and it must be a multiple of 60.\n" }, "iamInstanceProfile": { "type": "string", - "description": "The ARN or name of an IAM instance profile to associate with launched instances.\n" + "description": "The instance profile iam role.\n" }, "imageId": { "type": "string", "description": "ID of the image used to launch the instances.\n" }, - "images": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecImage:OceanLaunchSpecImage" - }, - "description": "Array of objects (Image object, containing the id of the image used to launch instances.) You can configure VNG with either the imageId or images objects, but not both simultaneously.\nFor each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element.\n" - }, "instanceMetadataOptions": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceMetadataOptions:OceanLaunchSpecInstanceMetadataOptions", + "$ref": "#/types/spotinst:aws/OceanInstanceMetadataOptions:OceanInstanceMetadataOptions", "description": "Ocean instance metadata options object for IMDSv2.\n" }, - "instanceTypes": { + "keyName": { + "type": "string", + "description": "The key pair to attach the instances.\n" + }, + "loadBalancers": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/spotinst:aws/OceanLoadBalancer:OceanLoadBalancer" }, - "description": "A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the cluster.\n" + "description": "Array of load balancer objects to add to ocean cluster\n" }, - "instanceTypesFilters": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceTypesFilters:OceanLaunchSpecInstanceTypesFilters", - "description": "The instance types that match with all filters compose the Virtual Node Group's instanceTypes parameter.\nThe architectures that come from the Virtual Node Group's images will be taken into account when using this parameter. Cannot be configured together with Virtual Node Group's instanceTypes and with the Cluster's whitelist/blacklist/filters.\n" + "logging": { + "$ref": "#/types/spotinst:aws/OceanLogging:OceanLogging", + "description": "Logging configuration.\n" }, - "labels": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecLabel:OceanLaunchSpecLabel" - }, - "description": "Optionally adds labels to instances launched in the cluster.\n" + "maxSize": { + "type": "integer", + "description": "The upper limit of instances the cluster can scale up to.\n" + }, + "minSize": { + "type": "integer", + "description": "The lower limit of instances the cluster can scale down to.\n" + }, + "monitoring": { + "type": "boolean", + "description": "Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.\n" }, "name": { "type": "string", - "description": "The name of the Virtual Node Group.\n" + "description": "The cluster name.\n" }, - "oceanId": { + "region": { "type": "string", - "description": "The ID of the Ocean cluster.\n", - "willReplaceOnChanges": true + "description": "The region the cluster will run in.\n" }, - "preferredSpotTypes": { + "resourceTagSpecifications": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/spotinst:aws/OceanResourceTagSpecification:OceanResourceTagSpecification" }, - "description": "A list of instance types. Takes the preferred types into consideration while maintaining a variety of machine types running for optimized distribution.\n" - }, - "resourceLimits": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecResourceLimit:OceanLaunchSpecResourceLimit" - } - }, - "restrictScaleDown": { - "type": "boolean", - "description": "Boolean. When set to `True`, nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.\n" + "description": "Specify which resources should be tagged with Virtual Node Group tags or Ocean tags. If tags are set on the VNG, the resources will be tagged with the VNG tags; otherwise, they will be tagged with the Ocean tags.\n" }, "rootVolumeSize": { "type": "integer", - "description": "Set root volume size (in GB).\n" - }, - "schedulingShutdownHours": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingShutdownHours:OceanLaunchSpecSchedulingShutdownHours", - "description": "Used to specify times that the nodes in the virtual node group will be taken down.\n" + "description": "The size (in Gb) to allocate for the root volume. Minimum `20`.\n" }, - "schedulingTasks": { + "scheduledTasks": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingTask:OceanLaunchSpecSchedulingTask" - }, - "description": "Used to define scheduled tasks such as a manual headroom update.\n" + "$ref": "#/types/spotinst:aws/OceanScheduledTask:OceanScheduledTask" + } }, "securityGroups": { "type": "array", "items": { "type": "string" }, - "description": "Optionally adds security group IDs.\n" + "description": "One or more security group ids.\n" }, - "strategies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecStrategy:OceanLaunchSpecStrategy" - } + "spotPercentage": { + "type": "integer", + "description": "The desired percentage of Spot instances out of all running instances. Only available when the field is not set in any VNG directly (launchSpec.strategy.spotPercentage).\n" + }, + "spreadNodesBy": { + "type": "string", + "description": "Ocean will spread the nodes across markets by this value. Possible values: `vcpu` or `count`.\n" }, "subnetIds": { "type": "array", "items": { "type": "string" }, - "description": "A list of subnet IDs.\n" + "description": "A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public IP.\n" }, "tags": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecTag:OceanLaunchSpecTag" - }, - "description": "A key/value mapping of tags to assign to the resource.\n" - }, - "taints": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecTaint:OceanLaunchSpecTaint" + "$ref": "#/types/spotinst:aws/OceanTag:OceanTag" }, - "description": "Optionally adds labels to instances launched in the cluster.\n" + "description": "Optionally adds tags to instances launched in an Ocean cluster.\n" }, "updatePolicy": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecUpdatePolicy:OceanLaunchSpecUpdatePolicy" + "$ref": "#/types/spotinst:aws/OceanUpdatePolicy:OceanUpdatePolicy" + }, + "useAsTemplateOnly": { + "type": "boolean", + "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\nWhen set to true, on Ocean resource creation please make sure your custom VNG has an initial_nodes parameter to create nodes for your VNG.\n" }, "userData": { "type": "string", "description": "Base64-encoded MIME user data to make available to the instances.\n" + }, + "utilizeCommitments": { + "type": "boolean", + "description": "If savings plans exist, Ocean will utilize them before launching Spot instances.\n" + }, + "utilizeReservedInstances": { + "type": "boolean", + "description": "If Reserved instances exist, Ocean will utilize them before launching Spot instances.\n" + }, + "whitelists": { + "type": "array", + "items": { + "type": "string" + } } }, "requiredInputs": [ - "oceanId" + "securityGroups", + "subnetIds" ], "stateInputs": { - "description": "Input properties used for looking up and filtering OceanLaunchSpec resources.\n", + "description": "Input properties used for looking up and filtering Ocean resources.\n", "properties": { + "associateIpv6Address": { + "type": "boolean", + "description": "Configure IPv6 address allocation.\n" + }, "associatePublicIpAddress": { "type": "boolean", "description": "Configure public IP address allocation.\n" }, - "autoscaleDowns": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleDown:OceanLaunchSpecAutoscaleDown" - }, - "description": "Auto Scaling scale down operations.\n" + "autoscaler": { + "$ref": "#/types/spotinst:aws/OceanAutoscaler:OceanAutoscaler" }, - "autoscaleHeadrooms": { + "blacklists": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroom:OceanLaunchSpecAutoscaleHeadroom" - }, - "description": "Set custom headroom per Virtual Node Group. Provide a list of headrooms object.\n" + "type": "string" + } }, - "autoscaleHeadroomsAutomatics": { + "blockDeviceMappings": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroomsAutomatic:OceanLaunchSpecAutoscaleHeadroomsAutomatic" + "$ref": "#/types/spotinst:aws/OceanBlockDeviceMapping:OceanBlockDeviceMapping" }, - "description": "Set automatic headroom per launch spec.\n" + "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" }, - "blockDeviceMappings": { + "clusterOrientations": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecBlockDeviceMapping:OceanLaunchSpecBlockDeviceMapping" - }, - "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" + "$ref": "#/types/spotinst:aws/OceanClusterOrientation:OceanClusterOrientation" + } }, - "createOptions": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecCreateOptions:OceanLaunchSpecCreateOptions" + "controllerId": { + "type": "string", + "description": "A unique identifier used for connecting the Ocean SaaS platform and the Kubernetes cluster. Typically, the cluster name is used as its identifier.\n" }, - "deleteOptions": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecDeleteOptions:OceanLaunchSpecDeleteOptions" + "desiredCapacity": { + "type": "integer", + "description": "The number of instances to launch and maintain in the cluster.\n" + }, + "drainingTimeout": { + "type": "integer", + "description": "The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.\n" + }, + "ebsOptimized": { + "type": "boolean", + "description": "Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.\n" + }, + "fallbackToOndemand": { + "type": "boolean", + "description": "If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.\n" }, - "elasticIpPools": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecElasticIpPool:OceanLaunchSpecElasticIpPool" - }, - "description": "Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.\n" + "filters": { + "$ref": "#/types/spotinst:aws/OceanFilters:OceanFilters" }, - "ephemeralStorages": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecEphemeralStorage:OceanLaunchSpecEphemeralStorage" - } + "gracePeriod": { + "type": "integer", + "description": "The amount of time, in seconds, after the instance has launched to start checking its health.\n" + }, + "healthCheckUnhealthyDurationBeforeReplacement": { + "type": "integer", + "description": "The amount of time, in seconds, an existing instance should remain active after becoming unhealthy. After the set time out the instance will be replaced. The minimum value allowed is 60, and it must be a multiple of 60.\n" }, "iamInstanceProfile": { "type": "string", - "description": "The ARN or name of an IAM instance profile to associate with launched instances.\n" + "description": "The instance profile iam role.\n" }, "imageId": { "type": "string", "description": "ID of the image used to launch the instances.\n" }, - "images": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecImage:OceanLaunchSpecImage" - }, - "description": "Array of objects (Image object, containing the id of the image used to launch instances.) You can configure VNG with either the imageId or images objects, but not both simultaneously.\nFor each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element.\n" - }, "instanceMetadataOptions": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceMetadataOptions:OceanLaunchSpecInstanceMetadataOptions", + "$ref": "#/types/spotinst:aws/OceanInstanceMetadataOptions:OceanInstanceMetadataOptions", "description": "Ocean instance metadata options object for IMDSv2.\n" }, - "instanceTypes": { + "keyName": { + "type": "string", + "description": "The key pair to attach the instances.\n" + }, + "loadBalancers": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/spotinst:aws/OceanLoadBalancer:OceanLoadBalancer" }, - "description": "A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the cluster.\n" + "description": "Array of load balancer objects to add to ocean cluster\n" }, - "instanceTypesFilters": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceTypesFilters:OceanLaunchSpecInstanceTypesFilters", - "description": "The instance types that match with all filters compose the Virtual Node Group's instanceTypes parameter.\nThe architectures that come from the Virtual Node Group's images will be taken into account when using this parameter. Cannot be configured together with Virtual Node Group's instanceTypes and with the Cluster's whitelist/blacklist/filters.\n" + "logging": { + "$ref": "#/types/spotinst:aws/OceanLogging:OceanLogging", + "description": "Logging configuration.\n" }, - "labels": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecLabel:OceanLaunchSpecLabel" - }, - "description": "Optionally adds labels to instances launched in the cluster.\n" + "maxSize": { + "type": "integer", + "description": "The upper limit of instances the cluster can scale up to.\n" + }, + "minSize": { + "type": "integer", + "description": "The lower limit of instances the cluster can scale down to.\n" + }, + "monitoring": { + "type": "boolean", + "description": "Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.\n" }, "name": { "type": "string", - "description": "The name of the Virtual Node Group.\n" + "description": "The cluster name.\n" }, - "oceanId": { + "region": { "type": "string", - "description": "The ID of the Ocean cluster.\n", - "willReplaceOnChanges": true + "description": "The region the cluster will run in.\n" }, - "preferredSpotTypes": { + "resourceTagSpecifications": { "type": "array", "items": { - "type": "string" + "$ref": "#/types/spotinst:aws/OceanResourceTagSpecification:OceanResourceTagSpecification" }, - "description": "A list of instance types. Takes the preferred types into consideration while maintaining a variety of machine types running for optimized distribution.\n" - }, - "resourceLimits": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecResourceLimit:OceanLaunchSpecResourceLimit" - } - }, - "restrictScaleDown": { - "type": "boolean", - "description": "Boolean. When set to `True`, nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.\n" + "description": "Specify which resources should be tagged with Virtual Node Group tags or Ocean tags. If tags are set on the VNG, the resources will be tagged with the VNG tags; otherwise, they will be tagged with the Ocean tags.\n" }, "rootVolumeSize": { "type": "integer", - "description": "Set root volume size (in GB).\n" - }, - "schedulingShutdownHours": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingShutdownHours:OceanLaunchSpecSchedulingShutdownHours", - "description": "Used to specify times that the nodes in the virtual node group will be taken down.\n" + "description": "The size (in Gb) to allocate for the root volume. Minimum `20`.\n" }, - "schedulingTasks": { + "scheduledTasks": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingTask:OceanLaunchSpecSchedulingTask" - }, - "description": "Used to define scheduled tasks such as a manual headroom update.\n" + "$ref": "#/types/spotinst:aws/OceanScheduledTask:OceanScheduledTask" + } }, "securityGroups": { "type": "array", "items": { "type": "string" }, - "description": "Optionally adds security group IDs.\n" + "description": "One or more security group ids.\n" }, - "strategies": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecStrategy:OceanLaunchSpecStrategy" - } + "spotPercentage": { + "type": "integer", + "description": "The desired percentage of Spot instances out of all running instances. Only available when the field is not set in any VNG directly (launchSpec.strategy.spotPercentage).\n" + }, + "spreadNodesBy": { + "type": "string", + "description": "Ocean will spread the nodes across markets by this value. Possible values: `vcpu` or `count`.\n" }, "subnetIds": { "type": "array", "items": { "type": "string" }, - "description": "A list of subnet IDs.\n" + "description": "A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public IP.\n" }, "tags": { "type": "array", "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecTag:OceanLaunchSpecTag" - }, - "description": "A key/value mapping of tags to assign to the resource.\n" - }, - "taints": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecTaint:OceanLaunchSpecTaint" + "$ref": "#/types/spotinst:aws/OceanTag:OceanTag" }, - "description": "Optionally adds labels to instances launched in the cluster.\n" + "description": "Optionally adds tags to instances launched in an Ocean cluster.\n" }, "updatePolicy": { - "$ref": "#/types/spotinst:aws/OceanLaunchSpecUpdatePolicy:OceanLaunchSpecUpdatePolicy" + "$ref": "#/types/spotinst:aws/OceanUpdatePolicy:OceanUpdatePolicy" + }, + "useAsTemplateOnly": { + "type": "boolean", + "description": "launch specification defined on the Ocean object will function only as a template for virtual node groups.\nWhen set to true, on Ocean resource creation please make sure your custom VNG has an initial_nodes parameter to create nodes for your VNG.\n" }, "userData": { "type": "string", "description": "Base64-encoded MIME user data to make available to the instances.\n" + }, + "utilizeCommitments": { + "type": "boolean", + "description": "If savings plans exist, Ocean will utilize them before launching Spot instances.\n" + }, + "utilizeReservedInstances": { + "type": "boolean", + "description": "If Reserved instances exist, Ocean will utilize them before launching Spot instances.\n" + }, + "whitelists": { + "type": "array", + "items": { + "type": "string" + } } }, "type": "object" } }, - "spotinst:aws/suspension:Suspension": { - "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\n// Create a suspension for Elastigroup\nconst resourceName = new spotinst.aws.Suspension(\"resource_name\", {\n groupId: \"sig-12345678\",\n suspensions: [\n {\n name: \"OUT_OF_STRATEGY\",\n },\n {\n name: \"REVERT_PREFERRED\",\n },\n {\n name: \"PREVENTIVE_REPLACEMENT\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\n# Create a suspension for Elastigroup\nresource_name = spotinst.aws.Suspension(\"resource_name\",\n group_id=\"sig-12345678\",\n suspensions=[\n spotinst.aws.SuspensionSuspensionArgs(\n name=\"OUT_OF_STRATEGY\",\n ),\n spotinst.aws.SuspensionSuspensionArgs(\n name=\"REVERT_PREFERRED\",\n ),\n spotinst.aws.SuspensionSuspensionArgs(\n name=\"PREVENTIVE_REPLACEMENT\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a suspension for Elastigroup\n var resourceName = new SpotInst.Aws.Suspension(\"resource_name\", new()\n {\n GroupId = \"sig-12345678\",\n Suspensions = new[]\n {\n new SpotInst.Aws.Inputs.SuspensionSuspensionArgs\n {\n Name = \"OUT_OF_STRATEGY\",\n },\n new SpotInst.Aws.Inputs.SuspensionSuspensionArgs\n {\n Name = \"REVERT_PREFERRED\",\n },\n new SpotInst.Aws.Inputs.SuspensionSuspensionArgs\n {\n Name = \"PREVENTIVE_REPLACEMENT\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/aws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a suspension for Elastigroup\n\t\t_, err := aws.NewSuspension(ctx, \"resource_name\", \u0026aws.SuspensionArgs{\n\t\t\tGroupId: pulumi.String(\"sig-12345678\"),\n\t\t\tSuspensions: aws.SuspensionSuspensionArray{\n\t\t\t\t\u0026aws.SuspensionSuspensionArgs{\n\t\t\t\t\tName: pulumi.String(\"OUT_OF_STRATEGY\"),\n\t\t\t\t},\n\t\t\t\t\u0026aws.SuspensionSuspensionArgs{\n\t\t\t\t\tName: pulumi.String(\"REVERT_PREFERRED\"),\n\t\t\t\t},\n\t\t\t\t\u0026aws.SuspensionSuspensionArgs{\n\t\t\t\t\tName: pulumi.String(\"PREVENTIVE_REPLACEMENT\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.aws.Suspension;\nimport com.pulumi.spotinst.aws.SuspensionArgs;\nimport com.pulumi.spotinst.aws.inputs.SuspensionSuspensionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Create a suspension for Elastigroup\n var resourceName = new Suspension(\"resourceName\", SuspensionArgs.builder() \n .groupId(\"sig-12345678\")\n .suspensions( \n SuspensionSuspensionArgs.builder()\n .name(\"OUT_OF_STRATEGY\")\n .build(),\n SuspensionSuspensionArgs.builder()\n .name(\"REVERT_PREFERRED\")\n .build(),\n SuspensionSuspensionArgs.builder()\n .name(\"PREVENTIVE_REPLACEMENT\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a suspension for Elastigroup\n resourceName:\n type: spotinst:aws:Suspension\n name: resource_name\n properties:\n groupId: sig-12345678\n suspensions:\n - name: OUT_OF_STRATEGY\n - name: REVERT_PREFERRED\n - name: PREVENTIVE_REPLACEMENT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "spotinst:aws/oceanExtendedResourceDefinition:OceanExtendedResourceDefinition": { + "description": "Provides a Spotinst Ocean AWS Extended Resource Definition resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.aws.OceanExtendedResourceDefinition(\"example\", {\n name: \"terraform_extended_resource_definition\",\n resourceMapping: {\n \"c3.large\": \"2Ki\",\n \"c3.xlarge\": \"4Ki\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.aws.OceanExtendedResourceDefinition(\"example\",\n name=\"terraform_extended_resource_definition\",\n resource_mapping={\n \"c3.large\": \"2Ki\",\n \"c3.xlarge\": \"4Ki\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new SpotInst.Aws.OceanExtendedResourceDefinition(\"example\", new()\n {\n Name = \"terraform_extended_resource_definition\",\n ResourceMapping = \n {\n { \"c3.large\", \"2Ki\" },\n { \"c3.xlarge\", \"4Ki\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/aws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := aws.NewOceanExtendedResourceDefinition(ctx, \"example\", \u0026aws.OceanExtendedResourceDefinitionArgs{\n\t\t\tName: pulumi.String(\"terraform_extended_resource_definition\"),\n\t\t\tResourceMapping: pulumi.Map{\n\t\t\t\t\"c3.large\": pulumi.Any(\"2Ki\"),\n\t\t\t\t\"c3.xlarge\": pulumi.Any(\"4Ki\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.aws.OceanExtendedResourceDefinition;\nimport com.pulumi.spotinst.aws.OceanExtendedResourceDefinitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OceanExtendedResourceDefinition(\"example\", OceanExtendedResourceDefinitionArgs.builder() \n .name(\"terraform_extended_resource_definition\")\n .resourceMapping(Map.ofEntries(\n Map.entry(\"c3.large\", \"2Ki\"),\n Map.entry(\"c3.xlarge\", \"4Ki\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:aws:OceanExtendedResourceDefinition\n properties:\n name: terraform_extended_resource_definition\n resourceMapping:\n c3.large: 2Ki\n c3.xlarge: 4Ki\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { - "groupId": { + "name": { "type": "string", - "description": "Elastigroup ID to apply the suspensions on.\n" + "description": "The extended resource name as should be requested by your pods and registered to the nodes. Cannot be updated.\nThe name should be a valid Kubernetes extended resource name.\n" }, - "suspensions": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/SuspensionSuspension:SuspensionSuspension" + "resourceMapping": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" }, - "description": "block of single process to suspend.\n" + "description": "A mapping between AWS instanceType or * as default and its value for the given extended resource.\n" } }, "required": [ - "groupId", - "suspensions" + "name", + "resourceMapping" ], "inputProperties": { - "groupId": { + "name": { "type": "string", - "description": "Elastigroup ID to apply the suspensions on.\n", - "willReplaceOnChanges": true + "description": "The extended resource name as should be requested by your pods and registered to the nodes. Cannot be updated.\nThe name should be a valid Kubernetes extended resource name.\n" }, - "suspensions": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/SuspensionSuspension:SuspensionSuspension" + "resourceMapping": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" }, - "description": "block of single process to suspend.\n" + "description": "A mapping between AWS instanceType or * as default and its value for the given extended resource.\n" } }, "requiredInputs": [ - "groupId", - "suspensions" + "resourceMapping" ], "stateInputs": { - "description": "Input properties used for looking up and filtering Suspension resources.\n", + "description": "Input properties used for looking up and filtering OceanExtendedResourceDefinition resources.\n", "properties": { - "groupId": { + "name": { "type": "string", - "description": "Elastigroup ID to apply the suspensions on.\n", - "willReplaceOnChanges": true + "description": "The extended resource name as should be requested by your pods and registered to the nodes. Cannot be updated.\nThe name should be a valid Kubernetes extended resource name.\n" }, - "suspensions": { - "type": "array", - "items": { - "$ref": "#/types/spotinst:aws/SuspensionSuspension:SuspensionSuspension" + "resourceMapping": { + "type": "object", + "additionalProperties": { + "$ref": "pulumi.json#/Any" }, - "description": "block of single process to suspend.\n" + "description": "A mapping between AWS instanceType or * as default and its value for the given extended resource.\n" + } + }, + "type": "object" + } + }, + "spotinst:aws/oceanLaunchSpec:OceanLaunchSpec": { + "description": "Manages a Spotinst Ocean AWS [Virtual Node Group](https://docs.spot.io/ocean/features/launch-specifications) resource.\n\n", + "properties": { + "associatePublicIpAddress": { + "type": "boolean", + "description": "Configure public IP address allocation.\n" + }, + "autoscaleDowns": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleDown:OceanLaunchSpecAutoscaleDown" + }, + "description": "Auto Scaling scale down operations.\n" + }, + "autoscaleHeadrooms": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroom:OceanLaunchSpecAutoscaleHeadroom" + }, + "description": "Set custom headroom per Virtual Node Group. Provide a list of headrooms object.\n" + }, + "autoscaleHeadroomsAutomatics": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroomsAutomatic:OceanLaunchSpecAutoscaleHeadroomsAutomatic" + }, + "description": "Set automatic headroom per launch spec.\n" + }, + "blockDeviceMappings": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecBlockDeviceMapping:OceanLaunchSpecBlockDeviceMapping" + }, + "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" + }, + "createOptions": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecCreateOptions:OceanLaunchSpecCreateOptions" + }, + "deleteOptions": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecDeleteOptions:OceanLaunchSpecDeleteOptions" + }, + "elasticIpPools": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecElasticIpPool:OceanLaunchSpecElasticIpPool" + }, + "description": "Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.\n" + }, + "ephemeralStorages": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecEphemeralStorage:OceanLaunchSpecEphemeralStorage" } }, - "type": "object" - } - }, - "spotinst:azure/elastigroup:Elastigroup": { - "description": "Provides a Spotinst elastigroup Azure resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst testAzureGroup = new spotinst.ElastigroupAzureV3(\"test_azure_group\", {\n name: \"example_elastigroup_azure\",\n resourceGroupName: \"spotinst-azure\",\n region: \"eastus\",\n os: \"Linux\",\n minSize: 0,\n maxSize: 1,\n desiredCapacity: 1,\n odSizes: [\n \"standard_a1_v1\",\n \"standard_a1_v2\",\n ],\n spotSizes: [\n \"standard_a1_v1\",\n \"standard_a1_v2\",\n ],\n customData: \"IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=\",\n managedServiceIdentities: [{\n resourceGroupName: \"MC_ocean-westus-dev_ocean-westus-dev-aks_westus\",\n name: \"ocean-westus-dev-aks-agentpool\",\n }],\n tags: [\n {\n key: \"key1\",\n value: \"value1\",\n },\n {\n key: \"key2\",\n value: \"value2\",\n },\n ],\n images: [{\n marketplaces: [{\n publisher: \"Canonical\",\n offer: \"UbuntuServer\",\n sku: \"18.04-LTS\",\n version: \"latest\",\n }],\n }],\n spotPercentage: 65,\n drainingTimeout: 300,\n fallbackToOnDemand: true,\n network: {\n virtualNetworkName: \"VirtualNetworkName\",\n resourceGroupName: \"ResourceGroup\",\n networkInterfaces: [{\n subnetName: \"default\",\n assignPublicIp: false,\n isPrimary: true,\n additionalIpConfigs: [{\n name: \"SecondaryIPConfig\",\n privateIPVersion: \"IPv4\",\n }],\n applicationSecurityGroups: [{\n name: \"ApplicationSecurityGroupName\",\n resourceGroupName: \"ResourceGroup\",\n }],\n }],\n },\n login: {\n userName: \"admin\",\n sshPublicKey: \"33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\ntest_azure_group = spotinst.ElastigroupAzureV3(\"test_azure_group\",\n name=\"example_elastigroup_azure\",\n resource_group_name=\"spotinst-azure\",\n region=\"eastus\",\n os=\"Linux\",\n min_size=0,\n max_size=1,\n desired_capacity=1,\n od_sizes=[\n \"standard_a1_v1\",\n \"standard_a1_v2\",\n ],\n spot_sizes=[\n \"standard_a1_v1\",\n \"standard_a1_v2\",\n ],\n custom_data=\"IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=\",\n managed_service_identities=[spotinst.ElastigroupAzureV3ManagedServiceIdentityArgs(\n resource_group_name=\"MC_ocean-westus-dev_ocean-westus-dev-aks_westus\",\n name=\"ocean-westus-dev-aks-agentpool\",\n )],\n tags=[\n spotinst.ElastigroupAzureV3TagArgs(\n key=\"key1\",\n value=\"value1\",\n ),\n spotinst.ElastigroupAzureV3TagArgs(\n key=\"key2\",\n value=\"value2\",\n ),\n ],\n images=[spotinst.ElastigroupAzureV3ImageArgs(\n marketplaces=[spotinst.ElastigroupAzureV3ImageMarketplaceArgs(\n publisher=\"Canonical\",\n offer=\"UbuntuServer\",\n sku=\"18.04-LTS\",\n version=\"latest\",\n )],\n )],\n spot_percentage=65,\n draining_timeout=300,\n fallback_to_on_demand=True,\n network=spotinst.ElastigroupAzureV3NetworkArgs(\n virtual_network_name=\"VirtualNetworkName\",\n resource_group_name=\"ResourceGroup\",\n network_interfaces=[spotinst.ElastigroupAzureV3NetworkNetworkInterfaceArgs(\n subnet_name=\"default\",\n assign_public_ip=False,\n is_primary=True,\n additional_ip_configs=[spotinst.ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArgs(\n name=\"SecondaryIPConfig\",\n private_ip_version=\"IPv4\",\n )],\n application_security_groups=[spotinst.ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArgs(\n name=\"ApplicationSecurityGroupName\",\n resource_group_name=\"ResourceGroup\",\n )],\n )],\n ),\n login=spotinst.ElastigroupAzureV3LoginArgs(\n user_name=\"admin\",\n ssh_public_key=\"33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testAzureGroup = new SpotInst.ElastigroupAzureV3(\"test_azure_group\", new()\n {\n Name = \"example_elastigroup_azure\",\n ResourceGroupName = \"spotinst-azure\",\n Region = \"eastus\",\n Os = \"Linux\",\n MinSize = 0,\n MaxSize = 1,\n DesiredCapacity = 1,\n OdSizes = new[]\n {\n \"standard_a1_v1\",\n \"standard_a1_v2\",\n },\n SpotSizes = new[]\n {\n \"standard_a1_v1\",\n \"standard_a1_v2\",\n },\n CustomData = \"IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=\",\n ManagedServiceIdentities = new[]\n {\n new SpotInst.Inputs.ElastigroupAzureV3ManagedServiceIdentityArgs\n {\n ResourceGroupName = \"MC_ocean-westus-dev_ocean-westus-dev-aks_westus\",\n Name = \"ocean-westus-dev-aks-agentpool\",\n },\n },\n Tags = new[]\n {\n new SpotInst.Inputs.ElastigroupAzureV3TagArgs\n {\n Key = \"key1\",\n Value = \"value1\",\n },\n new SpotInst.Inputs.ElastigroupAzureV3TagArgs\n {\n Key = \"key2\",\n Value = \"value2\",\n },\n },\n Images = new[]\n {\n new SpotInst.Inputs.ElastigroupAzureV3ImageArgs\n {\n Marketplaces = new[]\n {\n new SpotInst.Inputs.ElastigroupAzureV3ImageMarketplaceArgs\n {\n Publisher = \"Canonical\",\n Offer = \"UbuntuServer\",\n Sku = \"18.04-LTS\",\n Version = \"latest\",\n },\n },\n },\n },\n SpotPercentage = 65,\n DrainingTimeout = 300,\n FallbackToOnDemand = true,\n Network = new SpotInst.Inputs.ElastigroupAzureV3NetworkArgs\n {\n VirtualNetworkName = \"VirtualNetworkName\",\n ResourceGroupName = \"ResourceGroup\",\n NetworkInterfaces = new[]\n {\n new SpotInst.Inputs.ElastigroupAzureV3NetworkNetworkInterfaceArgs\n {\n SubnetName = \"default\",\n AssignPublicIp = false,\n IsPrimary = true,\n AdditionalIpConfigs = new[]\n {\n new SpotInst.Inputs.ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArgs\n {\n Name = \"SecondaryIPConfig\",\n PrivateIPVersion = \"IPv4\",\n },\n },\n ApplicationSecurityGroups = new[]\n {\n new SpotInst.Inputs.ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArgs\n {\n Name = \"ApplicationSecurityGroupName\",\n ResourceGroupName = \"ResourceGroup\",\n },\n },\n },\n },\n },\n Login = new SpotInst.Inputs.ElastigroupAzureV3LoginArgs\n {\n UserName = \"admin\",\n SshPublicKey = \"33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := spotinst.NewElastigroupAzureV3(ctx, \"test_azure_group\", \u0026spotinst.ElastigroupAzureV3Args{\n\t\t\tName: pulumi.String(\"example_elastigroup_azure\"),\n\t\t\tResourceGroupName: pulumi.String(\"spotinst-azure\"),\n\t\t\tRegion: pulumi.String(\"eastus\"),\n\t\t\tOs: pulumi.String(\"Linux\"),\n\t\t\tMinSize: pulumi.Int(0),\n\t\t\tMaxSize: pulumi.Int(1),\n\t\t\tDesiredCapacity: pulumi.Int(1),\n\t\t\tOdSizes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"standard_a1_v1\"),\n\t\t\t\tpulumi.String(\"standard_a1_v2\"),\n\t\t\t},\n\t\t\tSpotSizes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"standard_a1_v1\"),\n\t\t\t\tpulumi.String(\"standard_a1_v2\"),\n\t\t\t},\n\t\t\tCustomData: pulumi.String(\"IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=\"),\n\t\t\tManagedServiceIdentities: spotinst.ElastigroupAzureV3ManagedServiceIdentityArray{\n\t\t\t\t\u0026spotinst.ElastigroupAzureV3ManagedServiceIdentityArgs{\n\t\t\t\t\tResourceGroupName: pulumi.String(\"MC_ocean-westus-dev_ocean-westus-dev-aks_westus\"),\n\t\t\t\t\tName: pulumi.String(\"ocean-westus-dev-aks-agentpool\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: spotinst.ElastigroupAzureV3TagArray{\n\t\t\t\t\u0026spotinst.ElastigroupAzureV3TagArgs{\n\t\t\t\t\tKey: pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"value1\"),\n\t\t\t\t},\n\t\t\t\t\u0026spotinst.ElastigroupAzureV3TagArgs{\n\t\t\t\t\tKey: pulumi.String(\"key2\"),\n\t\t\t\t\tValue: pulumi.String(\"value2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tImages: spotinst.ElastigroupAzureV3ImageArray{\n\t\t\t\t\u0026spotinst.ElastigroupAzureV3ImageArgs{\n\t\t\t\t\tMarketplaces: spotinst.ElastigroupAzureV3ImageMarketplaceArray{\n\t\t\t\t\t\t\u0026spotinst.ElastigroupAzureV3ImageMarketplaceArgs{\n\t\t\t\t\t\t\tPublisher: pulumi.String(\"Canonical\"),\n\t\t\t\t\t\t\tOffer: pulumi.String(\"UbuntuServer\"),\n\t\t\t\t\t\t\tSku: pulumi.String(\"18.04-LTS\"),\n\t\t\t\t\t\t\tVersion: pulumi.String(\"latest\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSpotPercentage: pulumi.Int(65),\n\t\t\tDrainingTimeout: pulumi.Int(300),\n\t\t\tFallbackToOnDemand: pulumi.Bool(true),\n\t\t\tNetwork: \u0026spotinst.ElastigroupAzureV3NetworkArgs{\n\t\t\t\tVirtualNetworkName: pulumi.String(\"VirtualNetworkName\"),\n\t\t\t\tResourceGroupName: pulumi.String(\"ResourceGroup\"),\n\t\t\t\tNetworkInterfaces: spotinst.ElastigroupAzureV3NetworkNetworkInterfaceArray{\n\t\t\t\t\t\u0026spotinst.ElastigroupAzureV3NetworkNetworkInterfaceArgs{\n\t\t\t\t\t\tSubnetName: pulumi.String(\"default\"),\n\t\t\t\t\t\tAssignPublicIp: pulumi.Bool(false),\n\t\t\t\t\t\tIsPrimary: pulumi.Bool(true),\n\t\t\t\t\t\tAdditionalIpConfigs: spotinst.ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArray{\n\t\t\t\t\t\t\t\u0026spotinst.ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArgs{\n\t\t\t\t\t\t\t\tName: pulumi.String(\"SecondaryIPConfig\"),\n\t\t\t\t\t\t\t\tPrivateIPVersion: pulumi.String(\"IPv4\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tApplicationSecurityGroups: spotinst.ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArray{\n\t\t\t\t\t\t\t\u0026spotinst.ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArgs{\n\t\t\t\t\t\t\t\tName: pulumi.String(\"ApplicationSecurityGroupName\"),\n\t\t\t\t\t\t\t\tResourceGroupName: pulumi.String(\"ResourceGroup\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLogin: \u0026spotinst.ElastigroupAzureV3LoginArgs{\n\t\t\t\tUserName: pulumi.String(\"admin\"),\n\t\t\t\tSshPublicKey: pulumi.String(\"33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.ElastigroupAzureV3;\nimport com.pulumi.spotinst.ElastigroupAzureV3Args;\nimport com.pulumi.spotinst.inputs.ElastigroupAzureV3ManagedServiceIdentityArgs;\nimport com.pulumi.spotinst.inputs.ElastigroupAzureV3TagArgs;\nimport com.pulumi.spotinst.inputs.ElastigroupAzureV3ImageArgs;\nimport com.pulumi.spotinst.inputs.ElastigroupAzureV3NetworkArgs;\nimport com.pulumi.spotinst.inputs.ElastigroupAzureV3LoginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var testAzureGroup = new ElastigroupAzureV3(\"testAzureGroup\", ElastigroupAzureV3Args.builder() \n .name(\"example_elastigroup_azure\")\n .resourceGroupName(\"spotinst-azure\")\n .region(\"eastus\")\n .os(\"Linux\")\n .minSize(0)\n .maxSize(1)\n .desiredCapacity(1)\n .odSizes( \n \"standard_a1_v1\",\n \"standard_a1_v2\")\n .spotSizes( \n \"standard_a1_v1\",\n \"standard_a1_v2\")\n .customData(\"IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=\")\n .managedServiceIdentities(ElastigroupAzureV3ManagedServiceIdentityArgs.builder()\n .resourceGroupName(\"MC_ocean-westus-dev_ocean-westus-dev-aks_westus\")\n .name(\"ocean-westus-dev-aks-agentpool\")\n .build())\n .tags( \n ElastigroupAzureV3TagArgs.builder()\n .key(\"key1\")\n .value(\"value1\")\n .build(),\n ElastigroupAzureV3TagArgs.builder()\n .key(\"key2\")\n .value(\"value2\")\n .build())\n .images(ElastigroupAzureV3ImageArgs.builder()\n .marketplaces(ElastigroupAzureV3ImageMarketplaceArgs.builder()\n .publisher(\"Canonical\")\n .offer(\"UbuntuServer\")\n .sku(\"18.04-LTS\")\n .version(\"latest\")\n .build())\n .build())\n .spotPercentage(65)\n .drainingTimeout(300)\n .fallbackToOnDemand(true)\n .network(ElastigroupAzureV3NetworkArgs.builder()\n .virtualNetworkName(\"VirtualNetworkName\")\n .resourceGroupName(\"ResourceGroup\")\n .networkInterfaces(ElastigroupAzureV3NetworkNetworkInterfaceArgs.builder()\n .subnetName(\"default\")\n .assignPublicIp(false)\n .isPrimary(true)\n .additionalIpConfigs(ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArgs.builder()\n .name(\"SecondaryIPConfig\")\n .privateIPVersion(\"IPv4\")\n .build())\n .applicationSecurityGroups(ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArgs.builder()\n .name(\"ApplicationSecurityGroupName\")\n .resourceGroupName(\"ResourceGroup\")\n .build())\n .build())\n .build())\n .login(ElastigroupAzureV3LoginArgs.builder()\n .userName(\"admin\")\n .sshPublicKey(\"33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testAzureGroup:\n type: spotinst:ElastigroupAzureV3\n name: test_azure_group\n properties:\n name: example_elastigroup_azure\n resourceGroupName: spotinst-azure\n region: eastus\n os: Linux\n minSize: 0\n maxSize: 1\n desiredCapacity: 1 # --- INSTANCE TYPES ------------------------------------------------\n odSizes:\n - standard_a1_v1\n - standard_a1_v2\n spotSizes:\n - standard_a1_v1\n - standard_a1_v2\n customData: IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=\n managedServiceIdentities:\n - resourceGroupName: MC_ocean-westus-dev_ocean-westus-dev-aks_westus\n name: ocean-westus-dev-aks-agentpool\n tags:\n - key: key1\n value: value1\n - key: key2\n value: value2\n images:\n - marketplaces:\n - publisher: Canonical\n offer: UbuntuServer\n sku: 18.04-LTS\n version: latest\n spotPercentage: 65\n drainingTimeout: 300\n fallbackToOnDemand: true # --- NETWORK -------------------------------------------------------\n network:\n virtualNetworkName: VirtualNetworkName\n resourceGroupName: ResourceGroup\n networkInterfaces:\n - subnetName: default\n assignPublicIp: false\n isPrimary: true\n additionalIpConfigs:\n - name: SecondaryIPConfig\n privateIPVersion: IPv4\n applicationSecurityGroups:\n - name: ApplicationSecurityGroupName\n resourceGroupName: ResourceGroup\n login:\n userName: admin\n sshPublicKey: 33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Strategy\n\n* `spot_percentage` - (Optional) Percentage of Spot-VMs to maintain. Required if `on_demand_count` is not specified.\n* `on_demand_count` - (Optional) Number of On-Demand VMs to maintain. Required if `spot_percentage` is not specified.\n* `fallback_to_on_demand` - \n* `draining_timeout` - (Optional, Default `120`) Time (seconds) to allow the instance to be drained from incoming TCP connections and detached from MLB before terminating it during a scale-down operation.\n\n\u003ca id=\"image\"\u003e\u003c/a\u003e\n", - "properties": { - "customData": { + "iamInstanceProfile": { "type": "string", - "description": "Custom init script file or text in Base64 encoded format.\n" - }, - "desiredCapacity": { - "type": "integer", - "description": "The desired number of instances the group should have at any time.\n" + "description": "The ARN or name of an IAM instance profile to associate with launched instances.\n" }, - "healthCheck": { - "$ref": "#/types/spotinst:azure/ElastigroupHealthCheck:ElastigroupHealthCheck" + "imageId": { + "type": "string", + "description": "ID of the image used to launch the instances.\n" }, "images": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupImage:ElastigroupImage" - } + "$ref": "#/types/spotinst:aws/OceanLaunchSpecImage:OceanLaunchSpecImage" + }, + "description": "Array of objects (Image object, containing the id of the image used to launch instances.) You can configure VNG with either the imageId or images objects, but not both simultaneously.\nFor each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element.\n" }, - "integrationKubernetes": { - "$ref": "#/types/spotinst:azure/ElastigroupIntegrationKubernetes:ElastigroupIntegrationKubernetes" + "instanceMetadataOptions": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceMetadataOptions:OceanLaunchSpecInstanceMetadataOptions", + "description": "Ocean instance metadata options object for IMDSv2.\n" + }, + "instanceTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the cluster.\n" }, - "integrationMultaiRuntime": { - "$ref": "#/types/spotinst:azure/ElastigroupIntegrationMultaiRuntime:ElastigroupIntegrationMultaiRuntime" + "instanceTypesFilters": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceTypesFilters:OceanLaunchSpecInstanceTypesFilters", + "description": "The instance types that match with all filters compose the Virtual Node Group's instanceTypes parameter.\nThe architectures that come from the Virtual Node Group's images will be taken into account when using this parameter. Cannot be configured together with Virtual Node Group's instanceTypes and with the Cluster's whitelist/blacklist/filters.\n" }, - "loadBalancers": { + "labels": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupLoadBalancer:ElastigroupLoadBalancer" - } + "$ref": "#/types/spotinst:aws/OceanLaunchSpecLabel:OceanLaunchSpecLabel" + }, + "description": "Optionally adds labels to instances launched in the cluster.\n" }, - "login": { - "$ref": "#/types/spotinst:azure/ElastigroupLogin:ElastigroupLogin" + "name": { + "type": "string", + "description": "The name of the Virtual Node Group.\n" + }, + "oceanId": { + "type": "string", + "description": "The ID of the Ocean cluster.\n" }, - "lowPrioritySizes": { + "preferredSpotTypes": { "type": "array", "items": { "type": "string" - } + }, + "description": "A list of instance types. Takes the preferred types into consideration while maintaining a variety of machine types running for optimized distribution.\n" }, - "managedServiceIdentities": { + "resourceLimits": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupManagedServiceIdentity:ElastigroupManagedServiceIdentity" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecResourceLimit:OceanLaunchSpecResourceLimit" } }, - "maxSize": { - "type": "integer", - "description": "The maximum number of instances the group should have at any time.\n" + "restrictScaleDown": { + "type": "boolean", + "description": "Boolean. When set to `True`, nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.\n" }, - "minSize": { + "rootVolumeSize": { "type": "integer", - "description": "The minimum number of instances the group should have at any time.\n" + "description": "Set root volume size (in GB).\n" }, - "name": { - "type": "string", - "description": "The group name.\n" + "schedulingShutdownHours": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingShutdownHours:OceanLaunchSpecSchedulingShutdownHours", + "description": "Used to specify times that the nodes in the virtual node group will be taken down.\n" }, - "network": { - "$ref": "#/types/spotinst:azure/ElastigroupNetwork:ElastigroupNetwork" + "schedulingTasks": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingTask:OceanLaunchSpecSchedulingTask" + }, + "description": "Used to define scheduled tasks such as a manual headroom update.\n" }, - "odSizes": { + "securityGroups": { "type": "array", "items": { "type": "string" }, - "description": "Available On-Demand sizes\n" - }, - "product": { - "type": "string" - }, - "region": { - "type": "string", - "description": "The region your Azure group will be created in.\n" - }, - "resourceGroupName": { - "type": "string", - "description": "Name of the Resource Group for Elastigroup.\n" + "description": "Optionally adds security group IDs.\n" }, - "scalingDownPolicies": { + "strategies": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScalingDownPolicy:ElastigroupScalingDownPolicy" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecStrategy:OceanLaunchSpecStrategy" } }, - "scalingUpPolicies": { + "subnetIds": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScalingUpPolicy:ElastigroupScalingUpPolicy" - } + "type": "string" + }, + "description": "A list of subnet IDs.\n" }, - "scheduledTasks": { + "tags": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScheduledTask:ElastigroupScheduledTask" - } - }, - "shutdownScript": { - "type": "string" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecTag:OceanLaunchSpecTag" + }, + "description": "A key/value mapping of tags to assign to the resource.\n" }, - "strategy": { - "$ref": "#/types/spotinst:azure/ElastigroupStrategy:ElastigroupStrategy" + "taints": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecTaint:OceanLaunchSpecTaint" + }, + "description": "Optionally adds labels to instances launched in the cluster.\n" }, "updatePolicy": { - "$ref": "#/types/spotinst:azure/ElastigroupUpdatePolicy:ElastigroupUpdatePolicy" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecUpdatePolicy:OceanLaunchSpecUpdatePolicy" }, "userData": { - "type": "string" + "type": "string", + "description": "Base64-encoded MIME user data to make available to the instances.\n" } }, "required": [ - "lowPrioritySizes", - "maxSize", - "minSize", "name", - "network", - "odSizes", - "product", - "region", - "resourceGroupName", - "strategy" + "oceanId" ], "inputProperties": { - "customData": { - "type": "string", - "description": "Custom init script file or text in Base64 encoded format.\n" + "associatePublicIpAddress": { + "type": "boolean", + "description": "Configure public IP address allocation.\n" }, - "desiredCapacity": { - "type": "integer", - "description": "The desired number of instances the group should have at any time.\n" + "autoscaleDowns": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleDown:OceanLaunchSpecAutoscaleDown" + }, + "description": "Auto Scaling scale down operations.\n" }, - "healthCheck": { - "$ref": "#/types/spotinst:azure/ElastigroupHealthCheck:ElastigroupHealthCheck" + "autoscaleHeadrooms": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroom:OceanLaunchSpecAutoscaleHeadroom" + }, + "description": "Set custom headroom per Virtual Node Group. Provide a list of headrooms object.\n" }, - "images": { + "autoscaleHeadroomsAutomatics": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupImage:ElastigroupImage" - } + "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroomsAutomatic:OceanLaunchSpecAutoscaleHeadroomsAutomatic" + }, + "description": "Set automatic headroom per launch spec.\n" }, - "integrationKubernetes": { - "$ref": "#/types/spotinst:azure/ElastigroupIntegrationKubernetes:ElastigroupIntegrationKubernetes" + "blockDeviceMappings": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecBlockDeviceMapping:OceanLaunchSpecBlockDeviceMapping" + }, + "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" }, - "integrationMultaiRuntime": { - "$ref": "#/types/spotinst:azure/ElastigroupIntegrationMultaiRuntime:ElastigroupIntegrationMultaiRuntime" + "createOptions": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecCreateOptions:OceanLaunchSpecCreateOptions" }, - "loadBalancers": { + "deleteOptions": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecDeleteOptions:OceanLaunchSpecDeleteOptions" + }, + "elasticIpPools": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecElasticIpPool:OceanLaunchSpecElasticIpPool" + }, + "description": "Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.\n" + }, + "ephemeralStorages": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupLoadBalancer:ElastigroupLoadBalancer" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecEphemeralStorage:OceanLaunchSpecEphemeralStorage" } }, - "login": { - "$ref": "#/types/spotinst:azure/ElastigroupLogin:ElastigroupLogin" + "iamInstanceProfile": { + "type": "string", + "description": "The ARN or name of an IAM instance profile to associate with launched instances.\n" + }, + "imageId": { + "type": "string", + "description": "ID of the image used to launch the instances.\n" + }, + "images": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecImage:OceanLaunchSpecImage" + }, + "description": "Array of objects (Image object, containing the id of the image used to launch instances.) You can configure VNG with either the imageId or images objects, but not both simultaneously.\nFor each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element.\n" + }, + "instanceMetadataOptions": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceMetadataOptions:OceanLaunchSpecInstanceMetadataOptions", + "description": "Ocean instance metadata options object for IMDSv2.\n" }, - "lowPrioritySizes": { + "instanceTypes": { "type": "array", "items": { "type": "string" - } + }, + "description": "A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the cluster.\n" }, - "managedServiceIdentities": { + "instanceTypesFilters": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceTypesFilters:OceanLaunchSpecInstanceTypesFilters", + "description": "The instance types that match with all filters compose the Virtual Node Group's instanceTypes parameter.\nThe architectures that come from the Virtual Node Group's images will be taken into account when using this parameter. Cannot be configured together with Virtual Node Group's instanceTypes and with the Cluster's whitelist/blacklist/filters.\n" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecLabel:OceanLaunchSpecLabel" + }, + "description": "Optionally adds labels to instances launched in the cluster.\n" + }, + "name": { + "type": "string", + "description": "The name of the Virtual Node Group.\n" + }, + "oceanId": { + "type": "string", + "description": "The ID of the Ocean cluster.\n", + "willReplaceOnChanges": true + }, + "preferredSpotTypes": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupManagedServiceIdentity:ElastigroupManagedServiceIdentity" + "type": "string" + }, + "description": "A list of instance types. Takes the preferred types into consideration while maintaining a variety of machine types running for optimized distribution.\n" + }, + "resourceLimits": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecResourceLimit:OceanLaunchSpecResourceLimit" } }, - "maxSize": { - "type": "integer", - "description": "The maximum number of instances the group should have at any time.\n" + "restrictScaleDown": { + "type": "boolean", + "description": "Boolean. When set to `True`, nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.\n" }, - "minSize": { + "rootVolumeSize": { "type": "integer", - "description": "The minimum number of instances the group should have at any time.\n" + "description": "Set root volume size (in GB).\n" }, - "name": { - "type": "string", - "description": "The group name.\n" + "schedulingShutdownHours": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingShutdownHours:OceanLaunchSpecSchedulingShutdownHours", + "description": "Used to specify times that the nodes in the virtual node group will be taken down.\n" }, - "network": { - "$ref": "#/types/spotinst:azure/ElastigroupNetwork:ElastigroupNetwork" + "schedulingTasks": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingTask:OceanLaunchSpecSchedulingTask" + }, + "description": "Used to define scheduled tasks such as a manual headroom update.\n" }, - "odSizes": { + "securityGroups": { "type": "array", "items": { "type": "string" }, - "description": "Available On-Demand sizes\n" - }, - "product": { - "type": "string" - }, - "region": { - "type": "string", - "description": "The region your Azure group will be created in.\n" - }, - "resourceGroupName": { - "type": "string", - "description": "Name of the Resource Group for Elastigroup.\n" + "description": "Optionally adds security group IDs.\n" }, - "scalingDownPolicies": { + "strategies": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScalingDownPolicy:ElastigroupScalingDownPolicy" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecStrategy:OceanLaunchSpecStrategy" } }, - "scalingUpPolicies": { + "subnetIds": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScalingUpPolicy:ElastigroupScalingUpPolicy" - } + "type": "string" + }, + "description": "A list of subnet IDs.\n" }, - "scheduledTasks": { + "tags": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScheduledTask:ElastigroupScheduledTask" - } - }, - "shutdownScript": { - "type": "string" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecTag:OceanLaunchSpecTag" + }, + "description": "A key/value mapping of tags to assign to the resource.\n" }, - "strategy": { - "$ref": "#/types/spotinst:azure/ElastigroupStrategy:ElastigroupStrategy" + "taints": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecTaint:OceanLaunchSpecTaint" + }, + "description": "Optionally adds labels to instances launched in the cluster.\n" }, "updatePolicy": { - "$ref": "#/types/spotinst:azure/ElastigroupUpdatePolicy:ElastigroupUpdatePolicy" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecUpdatePolicy:OceanLaunchSpecUpdatePolicy" }, "userData": { - "type": "string" + "type": "string", + "description": "Base64-encoded MIME user data to make available to the instances.\n" } }, "requiredInputs": [ - "lowPrioritySizes", - "network", - "odSizes", - "product", - "region", - "resourceGroupName", - "strategy" + "oceanId" ], "stateInputs": { - "description": "Input properties used for looking up and filtering Elastigroup resources.\n", + "description": "Input properties used for looking up and filtering OceanLaunchSpec resources.\n", "properties": { - "customData": { - "type": "string", - "description": "Custom init script file or text in Base64 encoded format.\n" + "associatePublicIpAddress": { + "type": "boolean", + "description": "Configure public IP address allocation.\n" }, - "desiredCapacity": { - "type": "integer", - "description": "The desired number of instances the group should have at any time.\n" + "autoscaleDowns": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleDown:OceanLaunchSpecAutoscaleDown" + }, + "description": "Auto Scaling scale down operations.\n" + }, + "autoscaleHeadrooms": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroom:OceanLaunchSpecAutoscaleHeadroom" + }, + "description": "Set custom headroom per Virtual Node Group. Provide a list of headrooms object.\n" }, - "healthCheck": { - "$ref": "#/types/spotinst:azure/ElastigroupHealthCheck:ElastigroupHealthCheck" + "autoscaleHeadroomsAutomatics": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecAutoscaleHeadroomsAutomatic:OceanLaunchSpecAutoscaleHeadroomsAutomatic" + }, + "description": "Set automatic headroom per launch spec.\n" }, - "images": { + "blockDeviceMappings": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupImage:ElastigroupImage" - } + "$ref": "#/types/spotinst:aws/OceanLaunchSpecBlockDeviceMapping:OceanLaunchSpecBlockDeviceMapping" + }, + "description": "Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.\n" }, - "integrationKubernetes": { - "$ref": "#/types/spotinst:azure/ElastigroupIntegrationKubernetes:ElastigroupIntegrationKubernetes" + "createOptions": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecCreateOptions:OceanLaunchSpecCreateOptions" }, - "integrationMultaiRuntime": { - "$ref": "#/types/spotinst:azure/ElastigroupIntegrationMultaiRuntime:ElastigroupIntegrationMultaiRuntime" + "deleteOptions": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecDeleteOptions:OceanLaunchSpecDeleteOptions" }, - "loadBalancers": { + "elasticIpPools": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecElasticIpPool:OceanLaunchSpecElasticIpPool" + }, + "description": "Assign an Elastic IP to the instances spun by the Virtual Node Group. Can be null.\n" + }, + "ephemeralStorages": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupLoadBalancer:ElastigroupLoadBalancer" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecEphemeralStorage:OceanLaunchSpecEphemeralStorage" } }, - "login": { - "$ref": "#/types/spotinst:azure/ElastigroupLogin:ElastigroupLogin" + "iamInstanceProfile": { + "type": "string", + "description": "The ARN or name of an IAM instance profile to associate with launched instances.\n" + }, + "imageId": { + "type": "string", + "description": "ID of the image used to launch the instances.\n" }, - "lowPrioritySizes": { + "images": { "type": "array", "items": { - "type": "string" - } + "$ref": "#/types/spotinst:aws/OceanLaunchSpecImage:OceanLaunchSpecImage" + }, + "description": "Array of objects (Image object, containing the id of the image used to launch instances.) You can configure VNG with either the imageId or images objects, but not both simultaneously.\nFor each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element.\n" }, - "managedServiceIdentities": { + "instanceMetadataOptions": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceMetadataOptions:OceanLaunchSpecInstanceMetadataOptions", + "description": "Ocean instance metadata options object for IMDSv2.\n" + }, + "instanceTypes": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupManagedServiceIdentity:ElastigroupManagedServiceIdentity" - } + "type": "string" + }, + "description": "A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the cluster.\n" }, - "maxSize": { - "type": "integer", - "description": "The maximum number of instances the group should have at any time.\n" + "instanceTypesFilters": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecInstanceTypesFilters:OceanLaunchSpecInstanceTypesFilters", + "description": "The instance types that match with all filters compose the Virtual Node Group's instanceTypes parameter.\nThe architectures that come from the Virtual Node Group's images will be taken into account when using this parameter. Cannot be configured together with Virtual Node Group's instanceTypes and with the Cluster's whitelist/blacklist/filters.\n" }, - "minSize": { - "type": "integer", - "description": "The minimum number of instances the group should have at any time.\n" + "labels": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecLabel:OceanLaunchSpecLabel" + }, + "description": "Optionally adds labels to instances launched in the cluster.\n" }, "name": { "type": "string", - "description": "The group name.\n" + "description": "The name of the Virtual Node Group.\n" }, - "network": { - "$ref": "#/types/spotinst:azure/ElastigroupNetwork:ElastigroupNetwork" + "oceanId": { + "type": "string", + "description": "The ID of the Ocean cluster.\n", + "willReplaceOnChanges": true }, - "odSizes": { + "preferredSpotTypes": { "type": "array", "items": { "type": "string" }, - "description": "Available On-Demand sizes\n" + "description": "A list of instance types. Takes the preferred types into consideration while maintaining a variety of machine types running for optimized distribution.\n" }, - "product": { - "type": "string" + "resourceLimits": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecResourceLimit:OceanLaunchSpecResourceLimit" + } }, - "region": { - "type": "string", - "description": "The region your Azure group will be created in.\n" + "restrictScaleDown": { + "type": "boolean", + "description": "Boolean. When set to `True`, nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.\n" }, - "resourceGroupName": { - "type": "string", - "description": "Name of the Resource Group for Elastigroup.\n" + "rootVolumeSize": { + "type": "integer", + "description": "Set root volume size (in GB).\n" }, - "scalingDownPolicies": { + "schedulingShutdownHours": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingShutdownHours:OceanLaunchSpecSchedulingShutdownHours", + "description": "Used to specify times that the nodes in the virtual node group will be taken down.\n" + }, + "schedulingTasks": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScalingDownPolicy:ElastigroupScalingDownPolicy" - } + "$ref": "#/types/spotinst:aws/OceanLaunchSpecSchedulingTask:OceanLaunchSpecSchedulingTask" + }, + "description": "Used to define scheduled tasks such as a manual headroom update.\n" }, - "scalingUpPolicies": { + "securityGroups": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScalingUpPolicy:ElastigroupScalingUpPolicy" - } + "type": "string" + }, + "description": "Optionally adds security group IDs.\n" }, - "scheduledTasks": { + "strategies": { "type": "array", "items": { - "$ref": "#/types/spotinst:azure/ElastigroupScheduledTask:ElastigroupScheduledTask" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecStrategy:OceanLaunchSpecStrategy" } }, - "shutdownScript": { - "type": "string" + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of subnet IDs.\n" }, - "strategy": { - "$ref": "#/types/spotinst:azure/ElastigroupStrategy:ElastigroupStrategy" + "tags": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecTag:OceanLaunchSpecTag" + }, + "description": "A key/value mapping of tags to assign to the resource.\n" + }, + "taints": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/OceanLaunchSpecTaint:OceanLaunchSpecTaint" + }, + "description": "Optionally adds labels to instances launched in the cluster.\n" }, "updatePolicy": { - "$ref": "#/types/spotinst:azure/ElastigroupUpdatePolicy:ElastigroupUpdatePolicy" + "$ref": "#/types/spotinst:aws/OceanLaunchSpecUpdatePolicy:OceanLaunchSpecUpdatePolicy" + }, + "userData": { + "type": "string", + "description": "Base64-encoded MIME user data to make available to the instances.\n" + } + }, + "type": "object" + } + }, + "spotinst:aws/suspension:Suspension": { + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\n// Create a suspension for Elastigroup\nconst resourceName = new spotinst.aws.Suspension(\"resource_name\", {\n groupId: \"sig-12345678\",\n suspensions: [\n {\n name: \"OUT_OF_STRATEGY\",\n },\n {\n name: \"REVERT_PREFERRED\",\n },\n {\n name: \"PREVENTIVE_REPLACEMENT\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\n# Create a suspension for Elastigroup\nresource_name = spotinst.aws.Suspension(\"resource_name\",\n group_id=\"sig-12345678\",\n suspensions=[\n spotinst.aws.SuspensionSuspensionArgs(\n name=\"OUT_OF_STRATEGY\",\n ),\n spotinst.aws.SuspensionSuspensionArgs(\n name=\"REVERT_PREFERRED\",\n ),\n spotinst.aws.SuspensionSuspensionArgs(\n name=\"PREVENTIVE_REPLACEMENT\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Create a suspension for Elastigroup\n var resourceName = new SpotInst.Aws.Suspension(\"resource_name\", new()\n {\n GroupId = \"sig-12345678\",\n Suspensions = new[]\n {\n new SpotInst.Aws.Inputs.SuspensionSuspensionArgs\n {\n Name = \"OUT_OF_STRATEGY\",\n },\n new SpotInst.Aws.Inputs.SuspensionSuspensionArgs\n {\n Name = \"REVERT_PREFERRED\",\n },\n new SpotInst.Aws.Inputs.SuspensionSuspensionArgs\n {\n Name = \"PREVENTIVE_REPLACEMENT\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/aws\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a suspension for Elastigroup\n\t\t_, err := aws.NewSuspension(ctx, \"resource_name\", \u0026aws.SuspensionArgs{\n\t\t\tGroupId: pulumi.String(\"sig-12345678\"),\n\t\t\tSuspensions: aws.SuspensionSuspensionArray{\n\t\t\t\t\u0026aws.SuspensionSuspensionArgs{\n\t\t\t\t\tName: pulumi.String(\"OUT_OF_STRATEGY\"),\n\t\t\t\t},\n\t\t\t\t\u0026aws.SuspensionSuspensionArgs{\n\t\t\t\t\tName: pulumi.String(\"REVERT_PREFERRED\"),\n\t\t\t\t},\n\t\t\t\t\u0026aws.SuspensionSuspensionArgs{\n\t\t\t\t\tName: pulumi.String(\"PREVENTIVE_REPLACEMENT\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.aws.Suspension;\nimport com.pulumi.spotinst.aws.SuspensionArgs;\nimport com.pulumi.spotinst.aws.inputs.SuspensionSuspensionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Create a suspension for Elastigroup\n var resourceName = new Suspension(\"resourceName\", SuspensionArgs.builder() \n .groupId(\"sig-12345678\")\n .suspensions( \n SuspensionSuspensionArgs.builder()\n .name(\"OUT_OF_STRATEGY\")\n .build(),\n SuspensionSuspensionArgs.builder()\n .name(\"REVERT_PREFERRED\")\n .build(),\n SuspensionSuspensionArgs.builder()\n .name(\"PREVENTIVE_REPLACEMENT\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a suspension for Elastigroup\n resourceName:\n type: spotinst:aws:Suspension\n name: resource_name\n properties:\n groupId: sig-12345678\n suspensions:\n - name: OUT_OF_STRATEGY\n - name: REVERT_PREFERRED\n - name: PREVENTIVE_REPLACEMENT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "properties": { + "groupId": { + "type": "string", + "description": "Elastigroup ID to apply the suspensions on.\n" + }, + "suspensions": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/SuspensionSuspension:SuspensionSuspension" + }, + "description": "block of single process to suspend.\n" + } + }, + "required": [ + "groupId", + "suspensions" + ], + "inputProperties": { + "groupId": { + "type": "string", + "description": "Elastigroup ID to apply the suspensions on.\n", + "willReplaceOnChanges": true + }, + "suspensions": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/SuspensionSuspension:SuspensionSuspension" + }, + "description": "block of single process to suspend.\n" + } + }, + "requiredInputs": [ + "groupId", + "suspensions" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Suspension resources.\n", + "properties": { + "groupId": { + "type": "string", + "description": "Elastigroup ID to apply the suspensions on.\n", + "willReplaceOnChanges": true }, - "userData": { - "type": "string" + "suspensions": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:aws/SuspensionSuspension:SuspensionSuspension" + }, + "description": "block of single process to suspend.\n" } }, "type": "object" @@ -13384,6 +12610,7 @@ } }, "spotinst:azure/oceanNp:OceanNp": { + "description": "Manages a Spotinst Ocean AKS resource.\n\n## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.azure.OceanNp(\"example\", {\n name: \"test\",\n aksRegion: \"eastus\",\n aksClusterName: \"test-cluster\",\n aksInfrastructureResourceGroupName: \"MC_TestResourceGroup_test-cluster_eastus\",\n aksResourceGroupName: \"TestResourceGroup\",\n controllerClusterId: \"test-123124\",\n availabilityZones: [\n \"1\",\n \"2\",\n \"3\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.azure.OceanNp(\"example\",\n name=\"test\",\n aks_region=\"eastus\",\n aks_cluster_name=\"test-cluster\",\n aks_infrastructure_resource_group_name=\"MC_TestResourceGroup_test-cluster_eastus\",\n aks_resource_group_name=\"TestResourceGroup\",\n controller_cluster_id=\"test-123124\",\n availability_zones=[\n \"1\",\n \"2\",\n \"3\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new SpotInst.Azure.OceanNp(\"example\", new()\n {\n Name = \"test\",\n AksRegion = \"eastus\",\n AksClusterName = \"test-cluster\",\n AksInfrastructureResourceGroupName = \"MC_TestResourceGroup_test-cluster_eastus\",\n AksResourceGroupName = \"TestResourceGroup\",\n ControllerClusterId = \"test-123124\",\n AvailabilityZones = new[]\n {\n \"1\",\n \"2\",\n \"3\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/azure\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azure.NewOceanNp(ctx, \"example\", \u0026azure.OceanNpArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tAksRegion: pulumi.String(\"eastus\"),\n\t\t\tAksClusterName: pulumi.String(\"test-cluster\"),\n\t\t\tAksInfrastructureResourceGroupName: pulumi.String(\"MC_TestResourceGroup_test-cluster_eastus\"),\n\t\t\tAksResourceGroupName: pulumi.String(\"TestResourceGroup\"),\n\t\t\tControllerClusterId: pulumi.String(\"test-123124\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.azure.OceanNp;\nimport com.pulumi.spotinst.azure.OceanNpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OceanNp(\"example\", OceanNpArgs.builder() \n .name(\"test\")\n .aksRegion(\"eastus\")\n .aksClusterName(\"test-cluster\")\n .aksInfrastructureResourceGroupName(\"MC_TestResourceGroup_test-cluster_eastus\")\n .aksResourceGroupName(\"TestResourceGroup\")\n .controllerClusterId(\"test-123124\")\n .availabilityZones( \n \"1\",\n \"2\",\n \"3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:azure:OceanNp\n properties:\n name: test\n aksRegion: eastus\n aksClusterName: test-cluster\n aksInfrastructureResourceGroupName: MC_TestResourceGroup_test-cluster_eastus\n aksResourceGroupName: TestResourceGroup\n controllerClusterId: test-123124\n availabilityZones: # -------------------------------------------------------------------\n - '1'\n - '2'\n - '3'\n```\n\u003c!--End PulumiCodeChooser --\u003e \n \n## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values\n\n```hcl \nresource \"spotinst_ocean_aks_np\" \"example\" {\n \n name = \"test\"\n \n // --- AKS -------------------------------------------------------------------------\n \n aks_region = \"eastus\"\n aks_cluster_name = \"test-cluster\"\n aks_infrastructure_resource_group_name = \"MC_TestResourceGroup_test-cluster_eastus\"\n aks_resource_group_name = \"TestResourceGroup\"\n \n // ---------------------------------------------------------------------------------\n\n controller_cluster_id = \"test-123124\"\n\n // --- Auto Scaler ---------------------------------------------------\n \n autoscaler {\n autoscale_is_enabled = true\n resource_limits {\n max_vcpu = 750\n max_memory_gib = 1500\n }\n autoscale_down {\n max_scale_down_percentage = 30\n }\n autoscale_headroom {\n automatic {\n is_enabled = true\n percentage = 5\n }\n }\n }\n \n // ----------------------------------------------------------------------\n\n // --- Health -----------------------------------------------------------\n \n health {\n grace_period = 600\n }\n \n // ----------------------------------------------------------------------\n\n // --- Scheduling -------------------------------------------------------\n \n scheduling {\n shutdown_hours{\n is_enabled = true\n time_windows = [\"Sat:08:00-Sun:08:00\"]\n }\n }\n \n // ----------------------------------------------------------------------\n\n // --- virtualNodeGroupTemplate -----------------------------------------\n\n // --- autoscale --------------------------------------------------------\n headrooms {\n cpu_per_unit = 1024\n memory_per_unit = 512\n gpu_per_unit = 0\n num_of_units = 2\n }\n // ----------------------------------------------------------------------\n \n availability_zones = [\n \"1\",\n \"2\",\n \"3\"\n ]\n labels = {\n key = \"env\"\n value = \"test\"\n }\n \n // --- nodeCountLimits --------------------------------------------------\n \n min_count = 1\n max_count = 100\n \n // ----------------------------------------------------------------------\n\n // --- nodePoolProperties -----------------------------------------------\n \n max_pods_per_node = 30\n enable_node_public_ip = true\n os_disk_size_gb = 30\n os_disk_type = \"Managed\"\n os_type = \"Windows\"\n os_sku = \"Windows2022\"\n kubernetes_version = \"1.26\"\n pod_subnet_ids = [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"]\n vnet_subnet_ids = [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"]\n\n // ----------------------------------------------------------------------\n\n // --- strategy ---------------------------------------------------------\n \n spot_percentage = 50\n fallback_to_ondemand = true\n\n // ----------------------------------------------------------------------\n\n taints {\n key = \"taintKey\"\n value = \"taintValue\"\n effect = \"NoSchedule\"\n }\n\n tags = {\n tagKey = \"env\"\n tagValue = \"staging\"\n }\n // --- vmSizes ----------------------------------------------------------\n \n filters {\n min_vcpu = 2\n max_vcpu = 16\n min_memory_gib = 8\n max_memory_gib = 128\n architectures = [\"x86_64\", \"arm64\"]\n series = [\"D v3\", \"Dds_v4\", \"Dsv2\"]\n exclude_series = [\"Av2\", \"A\", \"Bs\", \"D\", \"E\"]\n accelerated_networking = \"Enabled\"\n disk_performance = \"Premium\"\n min_gpu = 1\n max_gpu = 2\n min_nics = 1\n vm_types = [\"generalPurpose\", \"GPU\"]\n min_disk = 1\n gpu_types = [\"nvidia-tesla-t4\"]\n }\n \n // ----------------------------------------------------------------------\n}\n```\n\n```\noutput \"ocean_id\" {\n value = spotinst_ocean_aks_np.example.id\n}\n```\n\n", "properties": { "aksClusterName": { "type": "string" @@ -13398,79 +12625,100 @@ "type": "string" }, "autoscaler": { - "$ref": "#/types/spotinst:azure/OceanNpAutoscaler:OceanNpAutoscaler" + "$ref": "#/types/spotinst:azure/OceanNpAutoscaler:OceanNpAutoscaler", + "description": "The Ocean Kubernetes Autoscaler object.\n" }, "availabilityZones": { "type": "array", "items": { "type": "string" - } + }, + "description": "An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.\n" }, "controllerClusterId": { - "type": "string" + "type": "string", + "description": "Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string.\n" }, "enableNodePublicIp": { - "type": "boolean" + "type": "boolean", + "description": "Enable node public IP.\n" }, "fallbackToOndemand": { - "type": "boolean" + "type": "boolean", + "description": "If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead.\n" }, "filters": { - "$ref": "#/types/spotinst:azure/OceanNpFilters:OceanNpFilters" + "$ref": "#/types/spotinst:azure/OceanNpFilters:OceanNpFilters", + "description": "Filters for the VM sizes that can be launched from the virtual node group.\n" }, "headrooms": { "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpHeadroom:OceanNpHeadroom" - } + }, + "description": "Specify the custom headroom per VNG. Provide a list of headroom objects.\n" }, "health": { - "$ref": "#/types/spotinst:azure/OceanNpHealth:OceanNpHealth" + "$ref": "#/types/spotinst:azure/OceanNpHealth:OceanNpHealth", + "description": "The Ocean AKS Health object.\n" }, "kubernetesVersion": { - "type": "string" + "type": "string", + "description": "The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.\n" }, "labels": { "type": "object", "additionalProperties": { "$ref": "pulumi.json#/Any" - } + }, + "description": "An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels).\n" }, "maxCount": { - "type": "integer" + "type": "integer", + "description": "Maximum node count limit.\n" }, "maxPodsPerNode": { - "type": "integer" + "type": "integer", + "description": "The maximum number of pods per node in the node pools.\n" }, "minCount": { - "type": "integer" + "type": "integer", + "description": "Minimum node count limit.\n" }, "name": { - "type": "string" + "type": "string", + "description": "Add a name for the Ocean cluster.\n" }, "osDiskSizeGb": { - "type": "integer" + "type": "integer", + "description": "The size of the OS disk in GB.\n" }, "osDiskType": { - "type": "string" + "type": "string", + "description": "The type of the OS disk.\n" }, "osSku": { - "type": "string" + "type": "string", + "description": "The OS SKU of the OS type. Must correlate with the os type.\n" }, "osType": { - "type": "string" + "type": "string", + "description": "The OS type of the OS disk. Can't be modified once set.\n" }, "podSubnetIds": { "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).\n" }, "scheduling": { - "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling" + "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling", + "description": "An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.\n" }, "spotPercentage": { - "type": "integer" + "type": "integer", + "description": "Percentage of spot VMs to maintain.\n" }, "tags": { "type": "object", @@ -13482,7 +12730,8 @@ "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpTaint:OceanNpTaint" - } + }, + "description": "Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean.\n" }, "updatePolicy": { "$ref": "#/types/spotinst:azure/OceanNpUpdatePolicy:OceanNpUpdatePolicy" @@ -13491,7 +12740,8 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).\n" } }, "required": [ @@ -13517,79 +12767,100 @@ "type": "string" }, "autoscaler": { - "$ref": "#/types/spotinst:azure/OceanNpAutoscaler:OceanNpAutoscaler" + "$ref": "#/types/spotinst:azure/OceanNpAutoscaler:OceanNpAutoscaler", + "description": "The Ocean Kubernetes Autoscaler object.\n" }, "availabilityZones": { "type": "array", "items": { "type": "string" - } + }, + "description": "An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.\n" }, "controllerClusterId": { - "type": "string" + "type": "string", + "description": "Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string.\n" }, "enableNodePublicIp": { - "type": "boolean" + "type": "boolean", + "description": "Enable node public IP.\n" }, "fallbackToOndemand": { - "type": "boolean" + "type": "boolean", + "description": "If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead.\n" }, "filters": { - "$ref": "#/types/spotinst:azure/OceanNpFilters:OceanNpFilters" + "$ref": "#/types/spotinst:azure/OceanNpFilters:OceanNpFilters", + "description": "Filters for the VM sizes that can be launched from the virtual node group.\n" }, "headrooms": { "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpHeadroom:OceanNpHeadroom" - } + }, + "description": "Specify the custom headroom per VNG. Provide a list of headroom objects.\n" }, "health": { - "$ref": "#/types/spotinst:azure/OceanNpHealth:OceanNpHealth" + "$ref": "#/types/spotinst:azure/OceanNpHealth:OceanNpHealth", + "description": "The Ocean AKS Health object.\n" }, "kubernetesVersion": { - "type": "string" + "type": "string", + "description": "The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.\n" }, "labels": { "type": "object", "additionalProperties": { "$ref": "pulumi.json#/Any" - } + }, + "description": "An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels).\n" }, "maxCount": { - "type": "integer" + "type": "integer", + "description": "Maximum node count limit.\n" }, "maxPodsPerNode": { - "type": "integer" + "type": "integer", + "description": "The maximum number of pods per node in the node pools.\n" }, "minCount": { - "type": "integer" + "type": "integer", + "description": "Minimum node count limit.\n" }, "name": { - "type": "string" + "type": "string", + "description": "Add a name for the Ocean cluster.\n" }, "osDiskSizeGb": { - "type": "integer" + "type": "integer", + "description": "The size of the OS disk in GB.\n" }, "osDiskType": { - "type": "string" + "type": "string", + "description": "The type of the OS disk.\n" }, "osSku": { - "type": "string" + "type": "string", + "description": "The OS SKU of the OS type. Must correlate with the os type.\n" }, "osType": { - "type": "string" + "type": "string", + "description": "The OS type of the OS disk. Can't be modified once set.\n" }, "podSubnetIds": { "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).\n" }, "scheduling": { - "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling" + "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling", + "description": "An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.\n" }, "spotPercentage": { - "type": "integer" + "type": "integer", + "description": "Percentage of spot VMs to maintain.\n" }, "tags": { "type": "object", @@ -13601,7 +12872,8 @@ "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpTaint:OceanNpTaint" - } + }, + "description": "Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean.\n" }, "updatePolicy": { "$ref": "#/types/spotinst:azure/OceanNpUpdatePolicy:OceanNpUpdatePolicy" @@ -13610,7 +12882,8 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).\n" } }, "requiredInputs": [ @@ -13637,79 +12910,100 @@ "type": "string" }, "autoscaler": { - "$ref": "#/types/spotinst:azure/OceanNpAutoscaler:OceanNpAutoscaler" + "$ref": "#/types/spotinst:azure/OceanNpAutoscaler:OceanNpAutoscaler", + "description": "The Ocean Kubernetes Autoscaler object.\n" }, "availabilityZones": { "type": "array", "items": { "type": "string" - } + }, + "description": "An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.\n" }, "controllerClusterId": { - "type": "string" + "type": "string", + "description": "Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string.\n" }, "enableNodePublicIp": { - "type": "boolean" + "type": "boolean", + "description": "Enable node public IP.\n" }, "fallbackToOndemand": { - "type": "boolean" + "type": "boolean", + "description": "If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead.\n" }, "filters": { - "$ref": "#/types/spotinst:azure/OceanNpFilters:OceanNpFilters" + "$ref": "#/types/spotinst:azure/OceanNpFilters:OceanNpFilters", + "description": "Filters for the VM sizes that can be launched from the virtual node group.\n" }, "headrooms": { "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpHeadroom:OceanNpHeadroom" - } + }, + "description": "Specify the custom headroom per VNG. Provide a list of headroom objects.\n" }, "health": { - "$ref": "#/types/spotinst:azure/OceanNpHealth:OceanNpHealth" + "$ref": "#/types/spotinst:azure/OceanNpHealth:OceanNpHealth", + "description": "The Ocean AKS Health object.\n" }, "kubernetesVersion": { - "type": "string" + "type": "string", + "description": "The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.\n" }, "labels": { "type": "object", "additionalProperties": { "$ref": "pulumi.json#/Any" - } + }, + "description": "An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels).\n" }, "maxCount": { - "type": "integer" + "type": "integer", + "description": "Maximum node count limit.\n" }, "maxPodsPerNode": { - "type": "integer" + "type": "integer", + "description": "The maximum number of pods per node in the node pools.\n" }, "minCount": { - "type": "integer" + "type": "integer", + "description": "Minimum node count limit.\n" }, "name": { - "type": "string" + "type": "string", + "description": "Add a name for the Ocean cluster.\n" }, "osDiskSizeGb": { - "type": "integer" + "type": "integer", + "description": "The size of the OS disk in GB.\n" }, "osDiskType": { - "type": "string" + "type": "string", + "description": "The type of the OS disk.\n" }, "osSku": { - "type": "string" + "type": "string", + "description": "The OS SKU of the OS type. Must correlate with the os type.\n" }, "osType": { - "type": "string" + "type": "string", + "description": "The OS type of the OS disk. Can't be modified once set.\n" }, "podSubnetIds": { "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).\n" }, "scheduling": { - "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling" + "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling", + "description": "An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.\n" }, "spotPercentage": { - "type": "integer" + "type": "integer", + "description": "Percentage of spot VMs to maintain.\n" }, "tags": { "type": "object", @@ -13721,7 +13015,8 @@ "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpTaint:OceanNpTaint" - } + }, + "description": "Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean.\n" }, "updatePolicy": { "$ref": "#/types/spotinst:azure/OceanNpUpdatePolicy:OceanNpUpdatePolicy" @@ -13730,79 +13025,99 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).\n" } }, "type": "object" } }, "spotinst:azure/oceanNpVirtualNodeGroup:OceanNpVirtualNodeGroup": { + "description": "Manages a Spotinst Ocean AKS Virtual Node Groups resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.azure.OceanNpVirtualNodeGroup(\"example\", {\n name: \"testVng\",\n oceanId: \"o-134abcd\",\n headrooms: [{\n cpuPerUnit: 1024,\n memoryPerUnit: 512,\n gpuPerUnit: 0,\n numOfUnits: 2,\n }],\n availabilityZones: [\n \"1\",\n \"2\",\n \"3\",\n ],\n labels: {\n key: \"env\",\n value: \"test\",\n },\n minCount: 1,\n maxCount: 100,\n maxPodsPerNode: 30,\n enableNodePublicIp: true,\n osDiskSizeGb: 30,\n osDiskType: \"Managed\",\n osType: \"Linux\",\n osSku: \"Ubuntu\",\n kubernetesVersion: \"1.26\",\n podSubnetIds: [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n vnetSubnetIds: [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n spotPercentage: 50,\n fallbackToOndemand: true,\n taints: [{\n key: \"taintKey\",\n value: \"taintValue\",\n effect: \"NoSchedule\",\n }],\n tags: {\n tagKey: \"env\",\n tagValue: \"staging\",\n },\n filters: {\n minVcpu: 2,\n maxVcpu: 16,\n minMemoryGib: 8,\n maxMemoryGib: 128,\n architectures: [\n \"x86_64\",\n \"arm64\",\n ],\n series: [\n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\",\n ],\n excludeSeries: [\n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\",\n ],\n acceleratedNetworking: \"Enabled\",\n diskPerformance: \"Premium\",\n minGpu: 1,\n maxGpu: 2,\n minNics: 1,\n vmTypes: [\n \"generalPurpose\",\n \"GPU\",\n ],\n minDisk: 1,\n gpuTypes: [\"nvidia-tesla-t4\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.azure.OceanNpVirtualNodeGroup(\"example\",\n name=\"testVng\",\n ocean_id=\"o-134abcd\",\n headrooms=[spotinst.azure.OceanNpVirtualNodeGroupHeadroomArgs(\n cpu_per_unit=1024,\n memory_per_unit=512,\n gpu_per_unit=0,\n num_of_units=2,\n )],\n availability_zones=[\n \"1\",\n \"2\",\n \"3\",\n ],\n labels={\n \"key\": \"env\",\n \"value\": \"test\",\n },\n min_count=1,\n max_count=100,\n max_pods_per_node=30,\n enable_node_public_ip=True,\n os_disk_size_gb=30,\n os_disk_type=\"Managed\",\n os_type=\"Linux\",\n os_sku=\"Ubuntu\",\n kubernetes_version=\"1.26\",\n pod_subnet_ids=[\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n vnet_subnet_ids=[\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n spot_percentage=50,\n fallback_to_ondemand=True,\n taints=[spotinst.azure.OceanNpVirtualNodeGroupTaintArgs(\n key=\"taintKey\",\n value=\"taintValue\",\n effect=\"NoSchedule\",\n )],\n tags={\n \"tagKey\": \"env\",\n \"tagValue\": \"staging\",\n },\n filters=spotinst.azure.OceanNpVirtualNodeGroupFiltersArgs(\n min_vcpu=2,\n max_vcpu=16,\n min_memory_gib=8,\n max_memory_gib=128,\n architectures=[\n \"x86_64\",\n \"arm64\",\n ],\n series=[\n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\",\n ],\n exclude_series=[\n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\",\n ],\n accelerated_networking=\"Enabled\",\n disk_performance=\"Premium\",\n min_gpu=1,\n max_gpu=2,\n min_nics=1,\n vm_types=[\n \"generalPurpose\",\n \"GPU\",\n ],\n min_disk=1,\n gpu_types=[\"nvidia-tesla-t4\"],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new SpotInst.Azure.OceanNpVirtualNodeGroup(\"example\", new()\n {\n Name = \"testVng\",\n OceanId = \"o-134abcd\",\n Headrooms = new[]\n {\n new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupHeadroomArgs\n {\n CpuPerUnit = 1024,\n MemoryPerUnit = 512,\n GpuPerUnit = 0,\n NumOfUnits = 2,\n },\n },\n AvailabilityZones = new[]\n {\n \"1\",\n \"2\",\n \"3\",\n },\n Labels = \n {\n { \"key\", \"env\" },\n { \"value\", \"test\" },\n },\n MinCount = 1,\n MaxCount = 100,\n MaxPodsPerNode = 30,\n EnableNodePublicIp = true,\n OsDiskSizeGb = 30,\n OsDiskType = \"Managed\",\n OsType = \"Linux\",\n OsSku = \"Ubuntu\",\n KubernetesVersion = \"1.26\",\n PodSubnetIds = new[]\n {\n \"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\",\n },\n VnetSubnetIds = new[]\n {\n \"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\",\n },\n SpotPercentage = 50,\n FallbackToOndemand = true,\n Taints = new[]\n {\n new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupTaintArgs\n {\n Key = \"taintKey\",\n Value = \"taintValue\",\n Effect = \"NoSchedule\",\n },\n },\n Tags = \n {\n { \"tagKey\", \"env\" },\n { \"tagValue\", \"staging\" },\n },\n Filters = new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupFiltersArgs\n {\n MinVcpu = 2,\n MaxVcpu = 16,\n MinMemoryGib = 8,\n MaxMemoryGib = 128,\n Architectures = new[]\n {\n \"x86_64\",\n \"arm64\",\n },\n Series = new[]\n {\n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\",\n },\n ExcludeSeries = new[]\n {\n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\",\n },\n AcceleratedNetworking = \"Enabled\",\n DiskPerformance = \"Premium\",\n MinGpu = 1,\n MaxGpu = 2,\n MinNics = 1,\n VmTypes = new[]\n {\n \"generalPurpose\",\n \"GPU\",\n },\n MinDisk = 1,\n GpuTypes = new[]\n {\n \"nvidia-tesla-t4\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/azure\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azure.NewOceanNpVirtualNodeGroup(ctx, \"example\", \u0026azure.OceanNpVirtualNodeGroupArgs{\n\t\t\tName: pulumi.String(\"testVng\"),\n\t\t\tOceanId: pulumi.String(\"o-134abcd\"),\n\t\t\tHeadrooms: azure.OceanNpVirtualNodeGroupHeadroomArray{\n\t\t\t\t\u0026azure.OceanNpVirtualNodeGroupHeadroomArgs{\n\t\t\t\t\tCpuPerUnit: pulumi.Int(1024),\n\t\t\t\t\tMemoryPerUnit: pulumi.Int(512),\n\t\t\t\t\tGpuPerUnit: pulumi.Int(0),\n\t\t\t\t\tNumOfUnits: pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t},\n\t\t\tLabels: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"env\"),\n\t\t\t\t\"value\": pulumi.Any(\"test\"),\n\t\t\t},\n\t\t\tMinCount: pulumi.Int(1),\n\t\t\tMaxCount: pulumi.Int(100),\n\t\t\tMaxPodsPerNode: pulumi.Int(30),\n\t\t\tEnableNodePublicIp: pulumi.Bool(true),\n\t\t\tOsDiskSizeGb: pulumi.Int(30),\n\t\t\tOsDiskType: pulumi.String(\"Managed\"),\n\t\t\tOsType: pulumi.String(\"Linux\"),\n\t\t\tOsSku: pulumi.String(\"Ubuntu\"),\n\t\t\tKubernetesVersion: pulumi.String(\"1.26\"),\n\t\t\tPodSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"),\n\t\t\t},\n\t\t\tVnetSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"),\n\t\t\t},\n\t\t\tSpotPercentage: pulumi.Int(50),\n\t\t\tFallbackToOndemand: pulumi.Bool(true),\n\t\t\tTaints: azure.OceanNpVirtualNodeGroupTaintArray{\n\t\t\t\t\u0026azure.OceanNpVirtualNodeGroupTaintArgs{\n\t\t\t\t\tKey: pulumi.String(\"taintKey\"),\n\t\t\t\t\tValue: pulumi.String(\"taintValue\"),\n\t\t\t\t\tEffect: pulumi.String(\"NoSchedule\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.Map{\n\t\t\t\t\"tagKey\": pulumi.Any(\"env\"),\n\t\t\t\t\"tagValue\": pulumi.Any(\"staging\"),\n\t\t\t},\n\t\t\tFilters: \u0026azure.OceanNpVirtualNodeGroupFiltersArgs{\n\t\t\t\tMinVcpu: pulumi.Int(2),\n\t\t\t\tMaxVcpu: pulumi.Int(16),\n\t\t\t\tMinMemoryGib: pulumi.Float64(8),\n\t\t\t\tMaxMemoryGib: pulumi.Float64(128),\n\t\t\t\tArchitectures: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"x86_64\"),\n\t\t\t\t\tpulumi.String(\"arm64\"),\n\t\t\t\t},\n\t\t\t\tSeries: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"D v3\"),\n\t\t\t\t\tpulumi.String(\"Dds_v4\"),\n\t\t\t\t\tpulumi.String(\"Dsv2\"),\n\t\t\t\t},\n\t\t\t\tExcludeSeries: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Av2\"),\n\t\t\t\t\tpulumi.String(\"A\"),\n\t\t\t\t\tpulumi.String(\"Bs\"),\n\t\t\t\t\tpulumi.String(\"D\"),\n\t\t\t\t\tpulumi.String(\"E\"),\n\t\t\t\t},\n\t\t\t\tAcceleratedNetworking: pulumi.String(\"Enabled\"),\n\t\t\t\tDiskPerformance: pulumi.String(\"Premium\"),\n\t\t\t\tMinGpu: pulumi.Float64(1),\n\t\t\t\tMaxGpu: pulumi.Float64(2),\n\t\t\t\tMinNics: pulumi.Int(1),\n\t\t\t\tVmTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"generalPurpose\"),\n\t\t\t\t\tpulumi.String(\"GPU\"),\n\t\t\t\t},\n\t\t\t\tMinDisk: pulumi.Int(1),\n\t\t\t\tGpuTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"nvidia-tesla-t4\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.azure.OceanNpVirtualNodeGroup;\nimport com.pulumi.spotinst.azure.OceanNpVirtualNodeGroupArgs;\nimport com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupHeadroomArgs;\nimport com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupTaintArgs;\nimport com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupFiltersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OceanNpVirtualNodeGroup(\"example\", OceanNpVirtualNodeGroupArgs.builder() \n .name(\"testVng\")\n .oceanId(\"o-134abcd\")\n .headrooms(OceanNpVirtualNodeGroupHeadroomArgs.builder()\n .cpuPerUnit(1024)\n .memoryPerUnit(512)\n .gpuPerUnit(0)\n .numOfUnits(2)\n .build())\n .availabilityZones( \n \"1\",\n \"2\",\n \"3\")\n .labels(Map.ofEntries(\n Map.entry(\"key\", \"env\"),\n Map.entry(\"value\", \"test\")\n ))\n .minCount(1)\n .maxCount(100)\n .maxPodsPerNode(30)\n .enableNodePublicIp(true)\n .osDiskSizeGb(30)\n .osDiskType(\"Managed\")\n .osType(\"Linux\")\n .osSku(\"Ubuntu\")\n .kubernetesVersion(\"1.26\")\n .podSubnetIds(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\")\n .vnetSubnetIds(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\")\n .spotPercentage(50)\n .fallbackToOndemand(true)\n .taints(OceanNpVirtualNodeGroupTaintArgs.builder()\n .key(\"taintKey\")\n .value(\"taintValue\")\n .effect(\"NoSchedule\")\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"tagKey\", \"env\"),\n Map.entry(\"tagValue\", \"staging\")\n ))\n .filters(OceanNpVirtualNodeGroupFiltersArgs.builder()\n .minVcpu(2)\n .maxVcpu(16)\n .minMemoryGib(8)\n .maxMemoryGib(128)\n .architectures( \n \"x86_64\",\n \"arm64\")\n .series( \n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\")\n .excludeSeries( \n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\")\n .acceleratedNetworking(\"Enabled\")\n .diskPerformance(\"Premium\")\n .minGpu(1)\n .maxGpu(2)\n .minNics(1)\n .vmTypes( \n \"generalPurpose\",\n \"GPU\")\n .minDisk(1)\n .gpuTypes(\"nvidia-tesla-t4\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:azure:OceanNpVirtualNodeGroup\n properties:\n name: testVng\n oceanId: o-134abcd\n headrooms:\n - cpuPerUnit: 1024\n memoryPerUnit: 512\n gpuPerUnit: 0\n numOfUnits: 2\n availabilityZones:\n - '1'\n - '2'\n - '3'\n labels:\n key: env\n value: test\n minCount: 1\n maxCount: 100 # --- nodePoolProperties --------------------------------------------------\n maxPodsPerNode: 30\n enableNodePublicIp: true\n osDiskSizeGb: 30\n osDiskType: Managed\n osType: Linux\n osSku: Ubuntu\n kubernetesVersion: '1.26'\n podSubnetIds:\n - /subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\n vnetSubnetIds:\n - /subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\n spotPercentage: 50\n fallbackToOndemand: true # ---------------------------------------------------------------------------\n taints:\n - key: taintKey\n value: taintValue\n effect: NoSchedule\n tags:\n tagKey: env\n tagValue: staging\n filters:\n minVcpu: 2\n maxVcpu: 16\n minMemoryGib: 8\n maxMemoryGib: 128\n architectures:\n - x86_64\n - arm64\n series:\n - D v3\n - Dds_v4\n - Dsv2\n excludeSeries:\n - Av2\n - A\n - Bs\n - D\n - E\n acceleratedNetworking: Enabled\n diskPerformance: Premium\n minGpu: 1\n maxGpu: 2\n minNics: 1\n vmTypes:\n - generalPurpose\n - GPU\n minDisk: 1\n gpuTypes:\n - nvidia-tesla-t4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n```\noutput \"vng_id\" {\n value = spotinst_ocean_aks_np_virtual_node_group.example.id\n}\n```\n\n", "properties": { "availabilityZones": { "type": "array", "items": { "type": "string" - } + }, + "description": "An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.\n" }, "enableNodePublicIp": { - "type": "boolean" + "type": "boolean", + "description": "Enable node public IP.\n" }, "fallbackToOndemand": { - "type": "boolean" + "type": "boolean", + "description": "If no spot instance markets are available, enable Ocean to launch on-demand instances instead.\n" }, "filters": { - "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupFilters:OceanNpVirtualNodeGroupFilters" + "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupFilters:OceanNpVirtualNodeGroupFilters", + "description": "Filters for the VM sizes that can be launched from the virtual node group.\n" }, "headrooms": { "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupHeadroom:OceanNpVirtualNodeGroupHeadroom" - } + }, + "description": "Specify the custom headroom per VNG. Provide a list of headroom objects.\n" }, "kubernetesVersion": { - "type": "string" + "type": "string", + "description": "The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.\n" }, "labels": { "type": "object", "additionalProperties": { "$ref": "pulumi.json#/Any" - } + }, + "description": "An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels.\n" }, "maxCount": { - "type": "integer" + "type": "integer", + "description": "Maximum node count limit.\n" }, "maxPodsPerNode": { - "type": "integer" + "type": "integer", + "description": "The maximum number of pods per node in the node pools.\n" }, "minCount": { - "type": "integer" + "type": "integer", + "description": "Minimum node count limit.\n" }, "name": { - "type": "string" + "type": "string", + "description": "Enter a name for the virtual node group.\n" }, "oceanId": { - "type": "string" + "type": "string", + "description": "The Ocean cluster identifier. Required for Launch Spec creation.\n" }, "osDiskSizeGb": { - "type": "integer" + "type": "integer", + "description": "The size of the OS disk in GB.\n" }, "osDiskType": { - "type": "string" + "type": "string", + "description": "The type of the OS disk.\n" }, "osSku": { - "type": "string" + "type": "string", + "description": "The OS SKU of the OS type. Must correlate with the os type.\n" }, "osType": { - "type": "string" + "type": "string", + "description": "The OS type of the OS disk. Can't be modified once set.\n" }, "podSubnetIds": { "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).\n" }, "spotPercentage": { - "type": "integer" + "type": "integer", + "description": "Percentage of spot VMs to maintain.\n" }, "tags": { "type": "object", @@ -13814,7 +13129,8 @@ "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupTaint:OceanNpVirtualNodeGroupTaint" - } + }, + "description": "Add taints to a virtual node group.\n" }, "updatePolicy": { "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupUpdatePolicy:OceanNpVirtualNodeGroupUpdatePolicy" @@ -13823,7 +13139,8 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).\n" } }, "required": [ @@ -13835,67 +13152,85 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.\n" }, "enableNodePublicIp": { - "type": "boolean" + "type": "boolean", + "description": "Enable node public IP.\n" }, "fallbackToOndemand": { - "type": "boolean" + "type": "boolean", + "description": "If no spot instance markets are available, enable Ocean to launch on-demand instances instead.\n" }, "filters": { - "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupFilters:OceanNpVirtualNodeGroupFilters" + "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupFilters:OceanNpVirtualNodeGroupFilters", + "description": "Filters for the VM sizes that can be launched from the virtual node group.\n" }, "headrooms": { "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupHeadroom:OceanNpVirtualNodeGroupHeadroom" - } + }, + "description": "Specify the custom headroom per VNG. Provide a list of headroom objects.\n" }, "kubernetesVersion": { - "type": "string" + "type": "string", + "description": "The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.\n" }, "labels": { "type": "object", "additionalProperties": { "$ref": "pulumi.json#/Any" - } + }, + "description": "An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels.\n" }, "maxCount": { - "type": "integer" + "type": "integer", + "description": "Maximum node count limit.\n" }, "maxPodsPerNode": { - "type": "integer" + "type": "integer", + "description": "The maximum number of pods per node in the node pools.\n" }, "minCount": { - "type": "integer" + "type": "integer", + "description": "Minimum node count limit.\n" }, "name": { - "type": "string" + "type": "string", + "description": "Enter a name for the virtual node group.\n" }, "oceanId": { - "type": "string" + "type": "string", + "description": "The Ocean cluster identifier. Required for Launch Spec creation.\n" }, "osDiskSizeGb": { - "type": "integer" + "type": "integer", + "description": "The size of the OS disk in GB.\n" }, "osDiskType": { - "type": "string" + "type": "string", + "description": "The type of the OS disk.\n" }, "osSku": { - "type": "string" + "type": "string", + "description": "The OS SKU of the OS type. Must correlate with the os type.\n" }, "osType": { - "type": "string" + "type": "string", + "description": "The OS type of the OS disk. Can't be modified once set.\n" }, "podSubnetIds": { "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).\n" }, "spotPercentage": { - "type": "integer" + "type": "integer", + "description": "Percentage of spot VMs to maintain.\n" }, "tags": { "type": "object", @@ -13907,7 +13242,8 @@ "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupTaint:OceanNpVirtualNodeGroupTaint" - } + }, + "description": "Add taints to a virtual node group.\n" }, "updatePolicy": { "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupUpdatePolicy:OceanNpVirtualNodeGroupUpdatePolicy" @@ -13916,7 +13252,8 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).\n" } }, "requiredInputs": [ @@ -13929,67 +13266,85 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.\n" }, "enableNodePublicIp": { - "type": "boolean" + "type": "boolean", + "description": "Enable node public IP.\n" }, "fallbackToOndemand": { - "type": "boolean" + "type": "boolean", + "description": "If no spot instance markets are available, enable Ocean to launch on-demand instances instead.\n" }, "filters": { - "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupFilters:OceanNpVirtualNodeGroupFilters" + "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupFilters:OceanNpVirtualNodeGroupFilters", + "description": "Filters for the VM sizes that can be launched from the virtual node group.\n" }, "headrooms": { "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupHeadroom:OceanNpVirtualNodeGroupHeadroom" - } + }, + "description": "Specify the custom headroom per VNG. Provide a list of headroom objects.\n" }, "kubernetesVersion": { - "type": "string" + "type": "string", + "description": "The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.\n" }, "labels": { "type": "object", "additionalProperties": { "$ref": "pulumi.json#/Any" - } + }, + "description": "An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels.\n" }, "maxCount": { - "type": "integer" + "type": "integer", + "description": "Maximum node count limit.\n" }, "maxPodsPerNode": { - "type": "integer" + "type": "integer", + "description": "The maximum number of pods per node in the node pools.\n" }, "minCount": { - "type": "integer" + "type": "integer", + "description": "Minimum node count limit.\n" }, "name": { - "type": "string" + "type": "string", + "description": "Enter a name for the virtual node group.\n" }, "oceanId": { - "type": "string" + "type": "string", + "description": "The Ocean cluster identifier. Required for Launch Spec creation.\n" }, "osDiskSizeGb": { - "type": "integer" + "type": "integer", + "description": "The size of the OS disk in GB.\n" }, "osDiskType": { - "type": "string" + "type": "string", + "description": "The type of the OS disk.\n" }, "osSku": { - "type": "string" + "type": "string", + "description": "The OS SKU of the OS type. Must correlate with the os type.\n" }, "osType": { - "type": "string" + "type": "string", + "description": "The OS type of the OS disk. Can't be modified once set.\n" }, "podSubnetIds": { "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).\n" }, "spotPercentage": { - "type": "integer" + "type": "integer", + "description": "Percentage of spot VMs to maintain.\n" }, "tags": { "type": "object", @@ -14001,7 +13356,8 @@ "type": "array", "items": { "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupTaint:OceanNpVirtualNodeGroupTaint" - } + }, + "description": "Add taints to a virtual node group.\n" }, "updatePolicy": { "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupUpdatePolicy:OceanNpVirtualNodeGroupUpdatePolicy" @@ -14010,7 +13366,8 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).\n" } }, "type": "object" diff --git a/provider/go.mod b/provider/go.mod index b4a54baf..79bc73fc 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -205,7 +205,7 @@ require ( github.com/spf13/cast v1.5.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spotinst/spotinst-sdk-go v1.341.0 // indirect + github.com/spotinst/spotinst-sdk-go v1.342.0 // indirect github.com/stretchr/testify v1.9.0 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect diff --git a/provider/go.sum b/provider/go.sum index c13ab275..efed882e 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -2956,8 +2956,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spotinst/spotinst-sdk-go v1.341.0 h1:rEjnc5EKD6zW65AWObp/mf40TK/np8ypAqcYRH4D0hY= -github.com/spotinst/spotinst-sdk-go v1.341.0/go.mod h1:cPpdCFZ4K3PWCbZdQB2wxNfEUVuz+KecJCSbqqesoMM= +github.com/spotinst/spotinst-sdk-go v1.342.0 h1:YzOZVcnLKs18vJLKSKjrOaJDUBHRV+uQD0UW+8cpgGE= +github.com/spotinst/spotinst-sdk-go v1.342.0/go.mod h1:Tn4/eb0SFY6IXmxz71CClujvbD/PuT+EO6Ta8v6AML4= github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= diff --git a/provider/resources.go b/provider/resources.go index 487294b2..d8f02fc5 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -16,7 +16,7 @@ package spotinst import ( "fmt" - "path/filepath" + "path" "strings" "unicode" @@ -98,8 +98,7 @@ func Provider() tfbridge.ProviderInfo { Tok: makeResource(awsMod, "ManagedInstance"), Docs: noUpstreamDocs, }, - "spotinst_elastigroup_azure": {Tok: makeResource(azureMod, "Elastigroup")}, - "spotinst_ocean_aks": {Tok: makeResource(azureMod, "Ocean")}, + "spotinst_ocean_aks": {Tok: makeResource(azureMod, "Ocean")}, "spotinst_ocean_aks_np_virtual_node_group": { Tok: makeResource(azureMod, "OceanNpVirtualNodeGroup"), Docs: noUpstreamDocs, @@ -142,7 +141,6 @@ func Provider() tfbridge.ProviderInfo { "spotinst_data_integration": {Tok: makeResource(mainMod, "DataIntegration")}, "spotinst_stateful_node_azure": {Tok: makeResource(mainMod, "StatefulNodeAzure")}, }, - DataSources: map[string]*tfbridge.DataSourceInfo{}, JavaScript: &tfbridge.JavaScriptInfo{ // List any npm dependencies and their versions Dependencies: map[string]string{ @@ -153,17 +151,14 @@ func Provider() tfbridge.ProviderInfo { "@types/mime": "^2.0.0", }, }, - Python: (func() *tfbridge.PythonInfo { - i := &tfbridge.PythonInfo{ - Requires: map[string]string{ - "pulumi": ">=3.0.0,<4.0.0", - }} - i.PyProject.Enabled = true - return i - })(), - + Python: &tfbridge.PythonInfo{ + Requires: map[string]string{ + "pulumi": ">=3.0.0,<4.0.0", + }, + PyProject: struct{ Enabled bool }{true}, + }, Golang: &tfbridge.GolangInfo{ - ImportBasePath: filepath.Join( + ImportBasePath: path.Join( fmt.Sprintf("github.com/pulumi/pulumi-%[1]s/sdk/", mainPkg), tfbridge.GetModuleMajorVersion(version.Version), "go", @@ -191,9 +186,7 @@ func Provider() tfbridge.ProviderInfo { return prov } -var noUpstreamDocs = &tfbridge.DocInfo{ - Markdown: []byte(" "), -} +var noUpstreamDocs = &tfbridge.DocInfo{AllowMissing: true} //go:embed cmd/pulumi-resource-spotinst/bridge-metadata.json var metadata []byte diff --git a/sdk/dotnet/Azure/Elastigroup.cs b/sdk/dotnet/Azure/Elastigroup.cs deleted file mode 100644 index c7575124..00000000 --- a/sdk/dotnet/Azure/Elastigroup.cs +++ /dev/null @@ -1,575 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure -{ - /// - /// Provides a Spotinst elastigroup Azure resource. - /// - /// ## Example Usage - /// - /// ```csharp - /// using System.Collections.Generic; - /// using System.Linq; - /// using Pulumi; - /// using SpotInst = Pulumi.SpotInst; - /// - /// return await Deployment.RunAsync(() => - /// { - /// var testAzureGroup = new SpotInst.ElastigroupAzureV3("test_azure_group", new() - /// { - /// Name = "example_elastigroup_azure", - /// ResourceGroupName = "spotinst-azure", - /// Region = "eastus", - /// Os = "Linux", - /// MinSize = 0, - /// MaxSize = 1, - /// DesiredCapacity = 1, - /// OdSizes = new[] - /// { - /// "standard_a1_v1", - /// "standard_a1_v2", - /// }, - /// SpotSizes = new[] - /// { - /// "standard_a1_v1", - /// "standard_a1_v2", - /// }, - /// CustomData = "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=", - /// ManagedServiceIdentities = new[] - /// { - /// new SpotInst.Inputs.ElastigroupAzureV3ManagedServiceIdentityArgs - /// { - /// ResourceGroupName = "MC_ocean-westus-dev_ocean-westus-dev-aks_westus", - /// Name = "ocean-westus-dev-aks-agentpool", - /// }, - /// }, - /// Tags = new[] - /// { - /// new SpotInst.Inputs.ElastigroupAzureV3TagArgs - /// { - /// Key = "key1", - /// Value = "value1", - /// }, - /// new SpotInst.Inputs.ElastigroupAzureV3TagArgs - /// { - /// Key = "key2", - /// Value = "value2", - /// }, - /// }, - /// Images = new[] - /// { - /// new SpotInst.Inputs.ElastigroupAzureV3ImageArgs - /// { - /// Marketplaces = new[] - /// { - /// new SpotInst.Inputs.ElastigroupAzureV3ImageMarketplaceArgs - /// { - /// Publisher = "Canonical", - /// Offer = "UbuntuServer", - /// Sku = "18.04-LTS", - /// Version = "latest", - /// }, - /// }, - /// }, - /// }, - /// SpotPercentage = 65, - /// DrainingTimeout = 300, - /// FallbackToOnDemand = true, - /// Network = new SpotInst.Inputs.ElastigroupAzureV3NetworkArgs - /// { - /// VirtualNetworkName = "VirtualNetworkName", - /// ResourceGroupName = "ResourceGroup", - /// NetworkInterfaces = new[] - /// { - /// new SpotInst.Inputs.ElastigroupAzureV3NetworkNetworkInterfaceArgs - /// { - /// SubnetName = "default", - /// AssignPublicIp = false, - /// IsPrimary = true, - /// AdditionalIpConfigs = new[] - /// { - /// new SpotInst.Inputs.ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArgs - /// { - /// Name = "SecondaryIPConfig", - /// PrivateIPVersion = "IPv4", - /// }, - /// }, - /// ApplicationSecurityGroups = new[] - /// { - /// new SpotInst.Inputs.ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArgs - /// { - /// Name = "ApplicationSecurityGroupName", - /// ResourceGroupName = "ResourceGroup", - /// }, - /// }, - /// }, - /// }, - /// }, - /// Login = new SpotInst.Inputs.ElastigroupAzureV3LoginArgs - /// { - /// UserName = "admin", - /// SshPublicKey = "33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==", - /// }, - /// }); - /// - /// }); - /// ``` - /// - /// ## Strategy - /// - /// * `spot_percentage` - (Optional) Percentage of Spot-VMs to maintain. Required if `on_demand_count` is not specified. - /// * `on_demand_count` - (Optional) Number of On-Demand VMs to maintain. Required if `spot_percentage` is not specified. - /// * `fallback_to_on_demand` - - /// * `draining_timeout` - (Optional, Default `120`) Time (seconds) to allow the instance to be drained from incoming TCP connections and detached from MLB before terminating it during a scale-down operation. - /// - /// <a id="image"></a> - /// - [SpotInstResourceType("spotinst:azure/elastigroup:Elastigroup")] - public partial class Elastigroup : global::Pulumi.CustomResource - { - /// - /// Custom init script file or text in Base64 encoded format. - /// - [Output("customData")] - public Output CustomData { get; private set; } = null!; - - /// - /// The desired number of instances the group should have at any time. - /// - [Output("desiredCapacity")] - public Output DesiredCapacity { get; private set; } = null!; - - [Output("healthCheck")] - public Output HealthCheck { get; private set; } = null!; - - [Output("images")] - public Output> Images { get; private set; } = null!; - - [Output("integrationKubernetes")] - public Output IntegrationKubernetes { get; private set; } = null!; - - [Output("integrationMultaiRuntime")] - public Output IntegrationMultaiRuntime { get; private set; } = null!; - - [Output("loadBalancers")] - public Output> LoadBalancers { get; private set; } = null!; - - [Output("login")] - public Output Login { get; private set; } = null!; - - [Output("lowPrioritySizes")] - public Output> LowPrioritySizes { get; private set; } = null!; - - [Output("managedServiceIdentities")] - public Output> ManagedServiceIdentities { get; private set; } = null!; - - /// - /// The maximum number of instances the group should have at any time. - /// - [Output("maxSize")] - public Output MaxSize { get; private set; } = null!; - - /// - /// The minimum number of instances the group should have at any time. - /// - [Output("minSize")] - public Output MinSize { get; private set; } = null!; - - /// - /// The group name. - /// - [Output("name")] - public Output Name { get; private set; } = null!; - - [Output("network")] - public Output Network { get; private set; } = null!; - - /// - /// Available On-Demand sizes - /// - [Output("odSizes")] - public Output> OdSizes { get; private set; } = null!; - - [Output("product")] - public Output Product { get; private set; } = null!; - - /// - /// The region your Azure group will be created in. - /// - [Output("region")] - public Output Region { get; private set; } = null!; - - /// - /// Name of the Resource Group for Elastigroup. - /// - [Output("resourceGroupName")] - public Output ResourceGroupName { get; private set; } = null!; - - [Output("scalingDownPolicies")] - public Output> ScalingDownPolicies { get; private set; } = null!; - - [Output("scalingUpPolicies")] - public Output> ScalingUpPolicies { get; private set; } = null!; - - [Output("scheduledTasks")] - public Output> ScheduledTasks { get; private set; } = null!; - - [Output("shutdownScript")] - public Output ShutdownScript { get; private set; } = null!; - - [Output("strategy")] - public Output Strategy { get; private set; } = null!; - - [Output("updatePolicy")] - public Output UpdatePolicy { get; private set; } = null!; - - [Output("userData")] - public Output UserData { get; private set; } = null!; - - - /// - /// Create a Elastigroup resource with the given unique name, arguments, and options. - /// - /// - /// The unique name of the resource - /// The arguments used to populate this resource's properties - /// A bag of options that control this resource's behavior - public Elastigroup(string name, ElastigroupArgs args, CustomResourceOptions? options = null) - : base("spotinst:azure/elastigroup:Elastigroup", name, args ?? new ElastigroupArgs(), MakeResourceOptions(options, "")) - { - } - - private Elastigroup(string name, Input id, ElastigroupState? state = null, CustomResourceOptions? options = null) - : base("spotinst:azure/elastigroup:Elastigroup", name, state, MakeResourceOptions(options, id)) - { - } - - private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) - { - var defaultOptions = new CustomResourceOptions - { - Version = Utilities.Version, - }; - var merged = CustomResourceOptions.Merge(defaultOptions, options); - // Override the ID if one was specified for consistency with other language SDKs. - merged.Id = id ?? merged.Id; - return merged; - } - /// - /// Get an existing Elastigroup resource's state with the given name, ID, and optional extra - /// properties used to qualify the lookup. - /// - /// - /// The unique name of the resulting resource. - /// The unique provider ID of the resource to lookup. - /// Any extra arguments used during the lookup. - /// A bag of options that control this resource's behavior - public static Elastigroup Get(string name, Input id, ElastigroupState? state = null, CustomResourceOptions? options = null) - { - return new Elastigroup(name, id, state, options); - } - } - - public sealed class ElastigroupArgs : global::Pulumi.ResourceArgs - { - /// - /// Custom init script file or text in Base64 encoded format. - /// - [Input("customData")] - public Input? CustomData { get; set; } - - /// - /// The desired number of instances the group should have at any time. - /// - [Input("desiredCapacity")] - public Input? DesiredCapacity { get; set; } - - [Input("healthCheck")] - public Input? HealthCheck { get; set; } - - [Input("images")] - private InputList? _images; - public InputList Images - { - get => _images ?? (_images = new InputList()); - set => _images = value; - } - - [Input("integrationKubernetes")] - public Input? IntegrationKubernetes { get; set; } - - [Input("integrationMultaiRuntime")] - public Input? IntegrationMultaiRuntime { get; set; } - - [Input("loadBalancers")] - private InputList? _loadBalancers; - public InputList LoadBalancers - { - get => _loadBalancers ?? (_loadBalancers = new InputList()); - set => _loadBalancers = value; - } - - [Input("login")] - public Input? Login { get; set; } - - [Input("lowPrioritySizes", required: true)] - private InputList? _lowPrioritySizes; - public InputList LowPrioritySizes - { - get => _lowPrioritySizes ?? (_lowPrioritySizes = new InputList()); - set => _lowPrioritySizes = value; - } - - [Input("managedServiceIdentities")] - private InputList? _managedServiceIdentities; - public InputList ManagedServiceIdentities - { - get => _managedServiceIdentities ?? (_managedServiceIdentities = new InputList()); - set => _managedServiceIdentities = value; - } - - /// - /// The maximum number of instances the group should have at any time. - /// - [Input("maxSize")] - public Input? MaxSize { get; set; } - - /// - /// The minimum number of instances the group should have at any time. - /// - [Input("minSize")] - public Input? MinSize { get; set; } - - /// - /// The group name. - /// - [Input("name")] - public Input? Name { get; set; } - - [Input("network", required: true)] - public Input Network { get; set; } = null!; - - [Input("odSizes", required: true)] - private InputList? _odSizes; - - /// - /// Available On-Demand sizes - /// - public InputList OdSizes - { - get => _odSizes ?? (_odSizes = new InputList()); - set => _odSizes = value; - } - - [Input("product", required: true)] - public Input Product { get; set; } = null!; - - /// - /// The region your Azure group will be created in. - /// - [Input("region", required: true)] - public Input Region { get; set; } = null!; - - /// - /// Name of the Resource Group for Elastigroup. - /// - [Input("resourceGroupName", required: true)] - public Input ResourceGroupName { get; set; } = null!; - - [Input("scalingDownPolicies")] - private InputList? _scalingDownPolicies; - public InputList ScalingDownPolicies - { - get => _scalingDownPolicies ?? (_scalingDownPolicies = new InputList()); - set => _scalingDownPolicies = value; - } - - [Input("scalingUpPolicies")] - private InputList? _scalingUpPolicies; - public InputList ScalingUpPolicies - { - get => _scalingUpPolicies ?? (_scalingUpPolicies = new InputList()); - set => _scalingUpPolicies = value; - } - - [Input("scheduledTasks")] - private InputList? _scheduledTasks; - public InputList ScheduledTasks - { - get => _scheduledTasks ?? (_scheduledTasks = new InputList()); - set => _scheduledTasks = value; - } - - [Input("shutdownScript")] - public Input? ShutdownScript { get; set; } - - [Input("strategy", required: true)] - public Input Strategy { get; set; } = null!; - - [Input("updatePolicy")] - public Input? UpdatePolicy { get; set; } - - [Input("userData")] - public Input? UserData { get; set; } - - public ElastigroupArgs() - { - } - public static new ElastigroupArgs Empty => new ElastigroupArgs(); - } - - public sealed class ElastigroupState : global::Pulumi.ResourceArgs - { - /// - /// Custom init script file or text in Base64 encoded format. - /// - [Input("customData")] - public Input? CustomData { get; set; } - - /// - /// The desired number of instances the group should have at any time. - /// - [Input("desiredCapacity")] - public Input? DesiredCapacity { get; set; } - - [Input("healthCheck")] - public Input? HealthCheck { get; set; } - - [Input("images")] - private InputList? _images; - public InputList Images - { - get => _images ?? (_images = new InputList()); - set => _images = value; - } - - [Input("integrationKubernetes")] - public Input? IntegrationKubernetes { get; set; } - - [Input("integrationMultaiRuntime")] - public Input? IntegrationMultaiRuntime { get; set; } - - [Input("loadBalancers")] - private InputList? _loadBalancers; - public InputList LoadBalancers - { - get => _loadBalancers ?? (_loadBalancers = new InputList()); - set => _loadBalancers = value; - } - - [Input("login")] - public Input? Login { get; set; } - - [Input("lowPrioritySizes")] - private InputList? _lowPrioritySizes; - public InputList LowPrioritySizes - { - get => _lowPrioritySizes ?? (_lowPrioritySizes = new InputList()); - set => _lowPrioritySizes = value; - } - - [Input("managedServiceIdentities")] - private InputList? _managedServiceIdentities; - public InputList ManagedServiceIdentities - { - get => _managedServiceIdentities ?? (_managedServiceIdentities = new InputList()); - set => _managedServiceIdentities = value; - } - - /// - /// The maximum number of instances the group should have at any time. - /// - [Input("maxSize")] - public Input? MaxSize { get; set; } - - /// - /// The minimum number of instances the group should have at any time. - /// - [Input("minSize")] - public Input? MinSize { get; set; } - - /// - /// The group name. - /// - [Input("name")] - public Input? Name { get; set; } - - [Input("network")] - public Input? Network { get; set; } - - [Input("odSizes")] - private InputList? _odSizes; - - /// - /// Available On-Demand sizes - /// - public InputList OdSizes - { - get => _odSizes ?? (_odSizes = new InputList()); - set => _odSizes = value; - } - - [Input("product")] - public Input? Product { get; set; } - - /// - /// The region your Azure group will be created in. - /// - [Input("region")] - public Input? Region { get; set; } - - /// - /// Name of the Resource Group for Elastigroup. - /// - [Input("resourceGroupName")] - public Input? ResourceGroupName { get; set; } - - [Input("scalingDownPolicies")] - private InputList? _scalingDownPolicies; - public InputList ScalingDownPolicies - { - get => _scalingDownPolicies ?? (_scalingDownPolicies = new InputList()); - set => _scalingDownPolicies = value; - } - - [Input("scalingUpPolicies")] - private InputList? _scalingUpPolicies; - public InputList ScalingUpPolicies - { - get => _scalingUpPolicies ?? (_scalingUpPolicies = new InputList()); - set => _scalingUpPolicies = value; - } - - [Input("scheduledTasks")] - private InputList? _scheduledTasks; - public InputList ScheduledTasks - { - get => _scheduledTasks ?? (_scheduledTasks = new InputList()); - set => _scheduledTasks = value; - } - - [Input("shutdownScript")] - public Input? ShutdownScript { get; set; } - - [Input("strategy")] - public Input? Strategy { get; set; } - - [Input("updatePolicy")] - public Input? UpdatePolicy { get; set; } - - [Input("userData")] - public Input? UserData { get; set; } - - public ElastigroupState() - { - } - public static new ElastigroupState Empty => new ElastigroupState(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupHealthCheckArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupHealthCheckArgs.cs deleted file mode 100644 index fe692d52..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupHealthCheckArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupHealthCheckArgs : global::Pulumi.ResourceArgs - { - [Input("autoHealing")] - public Input? AutoHealing { get; set; } - - [Input("gracePeriod")] - public Input? GracePeriod { get; set; } - - [Input("healthCheckType", required: true)] - public Input HealthCheckType { get; set; } = null!; - - public ElastigroupHealthCheckArgs() - { - } - public static new ElastigroupHealthCheckArgs Empty => new ElastigroupHealthCheckArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupHealthCheckGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupHealthCheckGetArgs.cs deleted file mode 100644 index d6a6a5e6..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupHealthCheckGetArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupHealthCheckGetArgs : global::Pulumi.ResourceArgs - { - [Input("autoHealing")] - public Input? AutoHealing { get; set; } - - [Input("gracePeriod")] - public Input? GracePeriod { get; set; } - - [Input("healthCheckType", required: true)] - public Input HealthCheckType { get; set; } = null!; - - public ElastigroupHealthCheckGetArgs() - { - } - public static new ElastigroupHealthCheckGetArgs Empty => new ElastigroupHealthCheckGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupImageArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupImageArgs.cs deleted file mode 100644 index 04dbc80d..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupImageArgs.cs +++ /dev/null @@ -1,36 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupImageArgs : global::Pulumi.ResourceArgs - { - [Input("customs")] - private InputList? _customs; - public InputList Customs - { - get => _customs ?? (_customs = new InputList()); - set => _customs = value; - } - - [Input("marketplaces")] - private InputList? _marketplaces; - public InputList Marketplaces - { - get => _marketplaces ?? (_marketplaces = new InputList()); - set => _marketplaces = value; - } - - public ElastigroupImageArgs() - { - } - public static new ElastigroupImageArgs Empty => new ElastigroupImageArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupImageCustomArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupImageCustomArgs.cs deleted file mode 100644 index d6f3d624..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupImageCustomArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupImageCustomArgs : global::Pulumi.ResourceArgs - { - [Input("imageName", required: true)] - public Input ImageName { get; set; } = null!; - - /// - /// Name of the Resource Group for Elastigroup. - /// - [Input("resourceGroupName", required: true)] - public Input ResourceGroupName { get; set; } = null!; - - public ElastigroupImageCustomArgs() - { - } - public static new ElastigroupImageCustomArgs Empty => new ElastigroupImageCustomArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupImageCustomGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupImageCustomGetArgs.cs deleted file mode 100644 index 400d2b2d..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupImageCustomGetArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupImageCustomGetArgs : global::Pulumi.ResourceArgs - { - [Input("imageName", required: true)] - public Input ImageName { get; set; } = null!; - - /// - /// Name of the Resource Group for Elastigroup. - /// - [Input("resourceGroupName", required: true)] - public Input ResourceGroupName { get; set; } = null!; - - public ElastigroupImageCustomGetArgs() - { - } - public static new ElastigroupImageCustomGetArgs Empty => new ElastigroupImageCustomGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupImageGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupImageGetArgs.cs deleted file mode 100644 index 44999311..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupImageGetArgs.cs +++ /dev/null @@ -1,36 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupImageGetArgs : global::Pulumi.ResourceArgs - { - [Input("customs")] - private InputList? _customs; - public InputList Customs - { - get => _customs ?? (_customs = new InputList()); - set => _customs = value; - } - - [Input("marketplaces")] - private InputList? _marketplaces; - public InputList Marketplaces - { - get => _marketplaces ?? (_marketplaces = new InputList()); - set => _marketplaces = value; - } - - public ElastigroupImageGetArgs() - { - } - public static new ElastigroupImageGetArgs Empty => new ElastigroupImageGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupImageMarketplaceArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupImageMarketplaceArgs.cs deleted file mode 100644 index f4b92d65..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupImageMarketplaceArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupImageMarketplaceArgs : global::Pulumi.ResourceArgs - { - [Input("offer", required: true)] - public Input Offer { get; set; } = null!; - - [Input("publisher", required: true)] - public Input Publisher { get; set; } = null!; - - [Input("sku", required: true)] - public Input Sku { get; set; } = null!; - - public ElastigroupImageMarketplaceArgs() - { - } - public static new ElastigroupImageMarketplaceArgs Empty => new ElastigroupImageMarketplaceArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupImageMarketplaceGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupImageMarketplaceGetArgs.cs deleted file mode 100644 index 9e3a1c58..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupImageMarketplaceGetArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupImageMarketplaceGetArgs : global::Pulumi.ResourceArgs - { - [Input("offer", required: true)] - public Input Offer { get; set; } = null!; - - [Input("publisher", required: true)] - public Input Publisher { get; set; } = null!; - - [Input("sku", required: true)] - public Input Sku { get; set; } = null!; - - public ElastigroupImageMarketplaceGetArgs() - { - } - public static new ElastigroupImageMarketplaceGetArgs Empty => new ElastigroupImageMarketplaceGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationKubernetesArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationKubernetesArgs.cs deleted file mode 100644 index 65242097..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationKubernetesArgs.cs +++ /dev/null @@ -1,23 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupIntegrationKubernetesArgs : global::Pulumi.ResourceArgs - { - [Input("clusterIdentifier", required: true)] - public Input ClusterIdentifier { get; set; } = null!; - - public ElastigroupIntegrationKubernetesArgs() - { - } - public static new ElastigroupIntegrationKubernetesArgs Empty => new ElastigroupIntegrationKubernetesArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationKubernetesGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationKubernetesGetArgs.cs deleted file mode 100644 index da442ed0..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationKubernetesGetArgs.cs +++ /dev/null @@ -1,23 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupIntegrationKubernetesGetArgs : global::Pulumi.ResourceArgs - { - [Input("clusterIdentifier", required: true)] - public Input ClusterIdentifier { get; set; } = null!; - - public ElastigroupIntegrationKubernetesGetArgs() - { - } - public static new ElastigroupIntegrationKubernetesGetArgs Empty => new ElastigroupIntegrationKubernetesGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationMultaiRuntimeArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationMultaiRuntimeArgs.cs deleted file mode 100644 index 63065785..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationMultaiRuntimeArgs.cs +++ /dev/null @@ -1,23 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupIntegrationMultaiRuntimeArgs : global::Pulumi.ResourceArgs - { - [Input("deploymentId", required: true)] - public Input DeploymentId { get; set; } = null!; - - public ElastigroupIntegrationMultaiRuntimeArgs() - { - } - public static new ElastigroupIntegrationMultaiRuntimeArgs Empty => new ElastigroupIntegrationMultaiRuntimeArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationMultaiRuntimeGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationMultaiRuntimeGetArgs.cs deleted file mode 100644 index 546229a7..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupIntegrationMultaiRuntimeGetArgs.cs +++ /dev/null @@ -1,23 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupIntegrationMultaiRuntimeGetArgs : global::Pulumi.ResourceArgs - { - [Input("deploymentId", required: true)] - public Input DeploymentId { get; set; } = null!; - - public ElastigroupIntegrationMultaiRuntimeGetArgs() - { - } - public static new ElastigroupIntegrationMultaiRuntimeGetArgs Empty => new ElastigroupIntegrationMultaiRuntimeGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupLoadBalancerArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupLoadBalancerArgs.cs deleted file mode 100644 index d387041a..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupLoadBalancerArgs.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupLoadBalancerArgs : global::Pulumi.ResourceArgs - { - [Input("autoWeight")] - public Input? AutoWeight { get; set; } - - [Input("balancerId")] - public Input? BalancerId { get; set; } - - [Input("targetSetId")] - public Input? TargetSetId { get; set; } - - [Input("type", required: true)] - public Input Type { get; set; } = null!; - - public ElastigroupLoadBalancerArgs() - { - } - public static new ElastigroupLoadBalancerArgs Empty => new ElastigroupLoadBalancerArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupLoadBalancerGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupLoadBalancerGetArgs.cs deleted file mode 100644 index be0b2a6e..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupLoadBalancerGetArgs.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupLoadBalancerGetArgs : global::Pulumi.ResourceArgs - { - [Input("autoWeight")] - public Input? AutoWeight { get; set; } - - [Input("balancerId")] - public Input? BalancerId { get; set; } - - [Input("targetSetId")] - public Input? TargetSetId { get; set; } - - [Input("type", required: true)] - public Input Type { get; set; } = null!; - - public ElastigroupLoadBalancerGetArgs() - { - } - public static new ElastigroupLoadBalancerGetArgs Empty => new ElastigroupLoadBalancerGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupLoginArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupLoginArgs.cs deleted file mode 100644 index 5c244d65..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupLoginArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupLoginArgs : global::Pulumi.ResourceArgs - { - [Input("password")] - public Input? Password { get; set; } - - [Input("sshPublicKey")] - public Input? SshPublicKey { get; set; } - - [Input("userName", required: true)] - public Input UserName { get; set; } = null!; - - public ElastigroupLoginArgs() - { - } - public static new ElastigroupLoginArgs Empty => new ElastigroupLoginArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupLoginGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupLoginGetArgs.cs deleted file mode 100644 index 843344b1..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupLoginGetArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupLoginGetArgs : global::Pulumi.ResourceArgs - { - [Input("password")] - public Input? Password { get; set; } - - [Input("sshPublicKey")] - public Input? SshPublicKey { get; set; } - - [Input("userName", required: true)] - public Input UserName { get; set; } = null!; - - public ElastigroupLoginGetArgs() - { - } - public static new ElastigroupLoginGetArgs Empty => new ElastigroupLoginGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupManagedServiceIdentityArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupManagedServiceIdentityArgs.cs deleted file mode 100644 index 62216bfe..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupManagedServiceIdentityArgs.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupManagedServiceIdentityArgs : global::Pulumi.ResourceArgs - { - /// - /// The group name. - /// - [Input("name", required: true)] - public Input Name { get; set; } = null!; - - /// - /// Name of the Resource Group for Elastigroup. - /// - [Input("resourceGroupName", required: true)] - public Input ResourceGroupName { get; set; } = null!; - - public ElastigroupManagedServiceIdentityArgs() - { - } - public static new ElastigroupManagedServiceIdentityArgs Empty => new ElastigroupManagedServiceIdentityArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupManagedServiceIdentityGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupManagedServiceIdentityGetArgs.cs deleted file mode 100644 index 11455ab2..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupManagedServiceIdentityGetArgs.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupManagedServiceIdentityGetArgs : global::Pulumi.ResourceArgs - { - /// - /// The group name. - /// - [Input("name", required: true)] - public Input Name { get; set; } = null!; - - /// - /// Name of the Resource Group for Elastigroup. - /// - [Input("resourceGroupName", required: true)] - public Input ResourceGroupName { get; set; } = null!; - - public ElastigroupManagedServiceIdentityGetArgs() - { - } - public static new ElastigroupManagedServiceIdentityGetArgs Empty => new ElastigroupManagedServiceIdentityGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupNetworkAdditionalIpConfigArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupNetworkAdditionalIpConfigArgs.cs deleted file mode 100644 index 48d5d59d..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupNetworkAdditionalIpConfigArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupNetworkAdditionalIpConfigArgs : global::Pulumi.ResourceArgs - { - /// - /// The group name. - /// - [Input("name", required: true)] - public Input Name { get; set; } = null!; - - [Input("privateIpVersion")] - public Input? PrivateIpVersion { get; set; } - - public ElastigroupNetworkAdditionalIpConfigArgs() - { - } - public static new ElastigroupNetworkAdditionalIpConfigArgs Empty => new ElastigroupNetworkAdditionalIpConfigArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupNetworkAdditionalIpConfigGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupNetworkAdditionalIpConfigGetArgs.cs deleted file mode 100644 index 8545f67f..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupNetworkAdditionalIpConfigGetArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupNetworkAdditionalIpConfigGetArgs : global::Pulumi.ResourceArgs - { - /// - /// The group name. - /// - [Input("name", required: true)] - public Input Name { get; set; } = null!; - - [Input("privateIpVersion")] - public Input? PrivateIpVersion { get; set; } - - public ElastigroupNetworkAdditionalIpConfigGetArgs() - { - } - public static new ElastigroupNetworkAdditionalIpConfigGetArgs Empty => new ElastigroupNetworkAdditionalIpConfigGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupNetworkArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupNetworkArgs.cs deleted file mode 100644 index 0032b738..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupNetworkArgs.cs +++ /dev/null @@ -1,43 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupNetworkArgs : global::Pulumi.ResourceArgs - { - [Input("additionalIpConfigs")] - private InputList? _additionalIpConfigs; - public InputList AdditionalIpConfigs - { - get => _additionalIpConfigs ?? (_additionalIpConfigs = new InputList()); - set => _additionalIpConfigs = value; - } - - [Input("assignPublicIp")] - public Input? AssignPublicIp { get; set; } - - /// - /// Name of the Resource Group for Elastigroup. - /// - [Input("resourceGroupName", required: true)] - public Input ResourceGroupName { get; set; } = null!; - - [Input("subnetName", required: true)] - public Input SubnetName { get; set; } = null!; - - [Input("virtualNetworkName", required: true)] - public Input VirtualNetworkName { get; set; } = null!; - - public ElastigroupNetworkArgs() - { - } - public static new ElastigroupNetworkArgs Empty => new ElastigroupNetworkArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupNetworkGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupNetworkGetArgs.cs deleted file mode 100644 index 2780e96e..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupNetworkGetArgs.cs +++ /dev/null @@ -1,43 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupNetworkGetArgs : global::Pulumi.ResourceArgs - { - [Input("additionalIpConfigs")] - private InputList? _additionalIpConfigs; - public InputList AdditionalIpConfigs - { - get => _additionalIpConfigs ?? (_additionalIpConfigs = new InputList()); - set => _additionalIpConfigs = value; - } - - [Input("assignPublicIp")] - public Input? AssignPublicIp { get; set; } - - /// - /// Name of the Resource Group for Elastigroup. - /// - [Input("resourceGroupName", required: true)] - public Input ResourceGroupName { get; set; } = null!; - - [Input("subnetName", required: true)] - public Input SubnetName { get; set; } = null!; - - [Input("virtualNetworkName", required: true)] - public Input VirtualNetworkName { get; set; } = null!; - - public ElastigroupNetworkGetArgs() - { - } - public static new ElastigroupNetworkGetArgs Empty => new ElastigroupNetworkGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyArgs.cs deleted file mode 100644 index dc524b5a..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyArgs.cs +++ /dev/null @@ -1,79 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupScalingDownPolicyArgs : global::Pulumi.ResourceArgs - { - [Input("actionType")] - public Input? ActionType { get; set; } - - [Input("adjustment")] - public Input? Adjustment { get; set; } - - [Input("cooldown")] - public Input? Cooldown { get; set; } - - [Input("dimensions")] - private InputList? _dimensions; - public InputList Dimensions - { - get => _dimensions ?? (_dimensions = new InputList()); - set => _dimensions = value; - } - - [Input("evaluationPeriods")] - public Input? EvaluationPeriods { get; set; } - - [Input("maxTargetCapacity")] - public Input? MaxTargetCapacity { get; set; } - - [Input("maximum")] - public Input? Maximum { get; set; } - - [Input("metricName", required: true)] - public Input MetricName { get; set; } = null!; - - [Input("minTargetCapacity")] - public Input? MinTargetCapacity { get; set; } - - [Input("minimum")] - public Input? Minimum { get; set; } - - [Input("namespace", required: true)] - public Input Namespace { get; set; } = null!; - - [Input("operator")] - public Input? Operator { get; set; } - - [Input("period")] - public Input? Period { get; set; } - - [Input("policyName", required: true)] - public Input PolicyName { get; set; } = null!; - - [Input("statistic")] - public Input? Statistic { get; set; } - - [Input("target")] - public Input? Target { get; set; } - - [Input("threshold", required: true)] - public Input Threshold { get; set; } = null!; - - [Input("unit")] - public Input? Unit { get; set; } - - public ElastigroupScalingDownPolicyArgs() - { - } - public static new ElastigroupScalingDownPolicyArgs Empty => new ElastigroupScalingDownPolicyArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyDimensionArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyDimensionArgs.cs deleted file mode 100644 index 60981608..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyDimensionArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupScalingDownPolicyDimensionArgs : global::Pulumi.ResourceArgs - { - /// - /// The group name. - /// - [Input("name", required: true)] - public Input Name { get; set; } = null!; - - [Input("value")] - public Input? Value { get; set; } - - public ElastigroupScalingDownPolicyDimensionArgs() - { - } - public static new ElastigroupScalingDownPolicyDimensionArgs Empty => new ElastigroupScalingDownPolicyDimensionArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyDimensionGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyDimensionGetArgs.cs deleted file mode 100644 index 01395b1d..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyDimensionGetArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupScalingDownPolicyDimensionGetArgs : global::Pulumi.ResourceArgs - { - /// - /// The group name. - /// - [Input("name", required: true)] - public Input Name { get; set; } = null!; - - [Input("value")] - public Input? Value { get; set; } - - public ElastigroupScalingDownPolicyDimensionGetArgs() - { - } - public static new ElastigroupScalingDownPolicyDimensionGetArgs Empty => new ElastigroupScalingDownPolicyDimensionGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyGetArgs.cs deleted file mode 100644 index 6a6fbf46..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupScalingDownPolicyGetArgs.cs +++ /dev/null @@ -1,79 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupScalingDownPolicyGetArgs : global::Pulumi.ResourceArgs - { - [Input("actionType")] - public Input? ActionType { get; set; } - - [Input("adjustment")] - public Input? Adjustment { get; set; } - - [Input("cooldown")] - public Input? Cooldown { get; set; } - - [Input("dimensions")] - private InputList? _dimensions; - public InputList Dimensions - { - get => _dimensions ?? (_dimensions = new InputList()); - set => _dimensions = value; - } - - [Input("evaluationPeriods")] - public Input? EvaluationPeriods { get; set; } - - [Input("maxTargetCapacity")] - public Input? MaxTargetCapacity { get; set; } - - [Input("maximum")] - public Input? Maximum { get; set; } - - [Input("metricName", required: true)] - public Input MetricName { get; set; } = null!; - - [Input("minTargetCapacity")] - public Input? MinTargetCapacity { get; set; } - - [Input("minimum")] - public Input? Minimum { get; set; } - - [Input("namespace", required: true)] - public Input Namespace { get; set; } = null!; - - [Input("operator")] - public Input? Operator { get; set; } - - [Input("period")] - public Input? Period { get; set; } - - [Input("policyName", required: true)] - public Input PolicyName { get; set; } = null!; - - [Input("statistic")] - public Input? Statistic { get; set; } - - [Input("target")] - public Input? Target { get; set; } - - [Input("threshold", required: true)] - public Input Threshold { get; set; } = null!; - - [Input("unit")] - public Input? Unit { get; set; } - - public ElastigroupScalingDownPolicyGetArgs() - { - } - public static new ElastigroupScalingDownPolicyGetArgs Empty => new ElastigroupScalingDownPolicyGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyArgs.cs deleted file mode 100644 index df39f504..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyArgs.cs +++ /dev/null @@ -1,79 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupScalingUpPolicyArgs : global::Pulumi.ResourceArgs - { - [Input("actionType")] - public Input? ActionType { get; set; } - - [Input("adjustment")] - public Input? Adjustment { get; set; } - - [Input("cooldown")] - public Input? Cooldown { get; set; } - - [Input("dimensions")] - private InputList? _dimensions; - public InputList Dimensions - { - get => _dimensions ?? (_dimensions = new InputList()); - set => _dimensions = value; - } - - [Input("evaluationPeriods")] - public Input? EvaluationPeriods { get; set; } - - [Input("maxTargetCapacity")] - public Input? MaxTargetCapacity { get; set; } - - [Input("maximum")] - public Input? Maximum { get; set; } - - [Input("metricName", required: true)] - public Input MetricName { get; set; } = null!; - - [Input("minTargetCapacity")] - public Input? MinTargetCapacity { get; set; } - - [Input("minimum")] - public Input? Minimum { get; set; } - - [Input("namespace", required: true)] - public Input Namespace { get; set; } = null!; - - [Input("operator")] - public Input? Operator { get; set; } - - [Input("period")] - public Input? Period { get; set; } - - [Input("policyName", required: true)] - public Input PolicyName { get; set; } = null!; - - [Input("statistic")] - public Input? Statistic { get; set; } - - [Input("target")] - public Input? Target { get; set; } - - [Input("threshold", required: true)] - public Input Threshold { get; set; } = null!; - - [Input("unit")] - public Input? Unit { get; set; } - - public ElastigroupScalingUpPolicyArgs() - { - } - public static new ElastigroupScalingUpPolicyArgs Empty => new ElastigroupScalingUpPolicyArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyDimensionArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyDimensionArgs.cs deleted file mode 100644 index 639ef496..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyDimensionArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupScalingUpPolicyDimensionArgs : global::Pulumi.ResourceArgs - { - /// - /// The group name. - /// - [Input("name", required: true)] - public Input Name { get; set; } = null!; - - [Input("value")] - public Input? Value { get; set; } - - public ElastigroupScalingUpPolicyDimensionArgs() - { - } - public static new ElastigroupScalingUpPolicyDimensionArgs Empty => new ElastigroupScalingUpPolicyDimensionArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyDimensionGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyDimensionGetArgs.cs deleted file mode 100644 index f5bf88dd..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyDimensionGetArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupScalingUpPolicyDimensionGetArgs : global::Pulumi.ResourceArgs - { - /// - /// The group name. - /// - [Input("name", required: true)] - public Input Name { get; set; } = null!; - - [Input("value")] - public Input? Value { get; set; } - - public ElastigroupScalingUpPolicyDimensionGetArgs() - { - } - public static new ElastigroupScalingUpPolicyDimensionGetArgs Empty => new ElastigroupScalingUpPolicyDimensionGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyGetArgs.cs deleted file mode 100644 index 7672c378..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupScalingUpPolicyGetArgs.cs +++ /dev/null @@ -1,79 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupScalingUpPolicyGetArgs : global::Pulumi.ResourceArgs - { - [Input("actionType")] - public Input? ActionType { get; set; } - - [Input("adjustment")] - public Input? Adjustment { get; set; } - - [Input("cooldown")] - public Input? Cooldown { get; set; } - - [Input("dimensions")] - private InputList? _dimensions; - public InputList Dimensions - { - get => _dimensions ?? (_dimensions = new InputList()); - set => _dimensions = value; - } - - [Input("evaluationPeriods")] - public Input? EvaluationPeriods { get; set; } - - [Input("maxTargetCapacity")] - public Input? MaxTargetCapacity { get; set; } - - [Input("maximum")] - public Input? Maximum { get; set; } - - [Input("metricName", required: true)] - public Input MetricName { get; set; } = null!; - - [Input("minTargetCapacity")] - public Input? MinTargetCapacity { get; set; } - - [Input("minimum")] - public Input? Minimum { get; set; } - - [Input("namespace", required: true)] - public Input Namespace { get; set; } = null!; - - [Input("operator")] - public Input? Operator { get; set; } - - [Input("period")] - public Input? Period { get; set; } - - [Input("policyName", required: true)] - public Input PolicyName { get; set; } = null!; - - [Input("statistic")] - public Input? Statistic { get; set; } - - [Input("target")] - public Input? Target { get; set; } - - [Input("threshold", required: true)] - public Input Threshold { get; set; } = null!; - - [Input("unit")] - public Input? Unit { get; set; } - - public ElastigroupScalingUpPolicyGetArgs() - { - } - public static new ElastigroupScalingUpPolicyGetArgs Empty => new ElastigroupScalingUpPolicyGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupScheduledTaskArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupScheduledTaskArgs.cs deleted file mode 100644 index cca37dba..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupScheduledTaskArgs.cs +++ /dev/null @@ -1,50 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupScheduledTaskArgs : global::Pulumi.ResourceArgs - { - [Input("adjustment")] - public Input? Adjustment { get; set; } - - [Input("adjustmentPercentage")] - public Input? AdjustmentPercentage { get; set; } - - [Input("batchSizePercentage")] - public Input? BatchSizePercentage { get; set; } - - [Input("cronExpression", required: true)] - public Input CronExpression { get; set; } = null!; - - [Input("gracePeriod")] - public Input? GracePeriod { get; set; } - - [Input("isEnabled")] - public Input? IsEnabled { get; set; } - - [Input("scaleMaxCapacity")] - public Input? ScaleMaxCapacity { get; set; } - - [Input("scaleMinCapacity")] - public Input? ScaleMinCapacity { get; set; } - - [Input("scaleTargetCapacity")] - public Input? ScaleTargetCapacity { get; set; } - - [Input("taskType", required: true)] - public Input TaskType { get; set; } = null!; - - public ElastigroupScheduledTaskArgs() - { - } - public static new ElastigroupScheduledTaskArgs Empty => new ElastigroupScheduledTaskArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupScheduledTaskGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupScheduledTaskGetArgs.cs deleted file mode 100644 index 57e029d4..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupScheduledTaskGetArgs.cs +++ /dev/null @@ -1,50 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupScheduledTaskGetArgs : global::Pulumi.ResourceArgs - { - [Input("adjustment")] - public Input? Adjustment { get; set; } - - [Input("adjustmentPercentage")] - public Input? AdjustmentPercentage { get; set; } - - [Input("batchSizePercentage")] - public Input? BatchSizePercentage { get; set; } - - [Input("cronExpression", required: true)] - public Input CronExpression { get; set; } = null!; - - [Input("gracePeriod")] - public Input? GracePeriod { get; set; } - - [Input("isEnabled")] - public Input? IsEnabled { get; set; } - - [Input("scaleMaxCapacity")] - public Input? ScaleMaxCapacity { get; set; } - - [Input("scaleMinCapacity")] - public Input? ScaleMinCapacity { get; set; } - - [Input("scaleTargetCapacity")] - public Input? ScaleTargetCapacity { get; set; } - - [Input("taskType", required: true)] - public Input TaskType { get; set; } = null!; - - public ElastigroupScheduledTaskGetArgs() - { - } - public static new ElastigroupScheduledTaskGetArgs Empty => new ElastigroupScheduledTaskGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupStrategyArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupStrategyArgs.cs deleted file mode 100644 index b21a0474..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupStrategyArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupStrategyArgs : global::Pulumi.ResourceArgs - { - [Input("drainingTimeout")] - public Input? DrainingTimeout { get; set; } - - [Input("lowPriorityPercentage")] - public Input? LowPriorityPercentage { get; set; } - - [Input("odCount")] - public Input? OdCount { get; set; } - - public ElastigroupStrategyArgs() - { - } - public static new ElastigroupStrategyArgs Empty => new ElastigroupStrategyArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupStrategyGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupStrategyGetArgs.cs deleted file mode 100644 index fec92cdf..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupStrategyGetArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupStrategyGetArgs : global::Pulumi.ResourceArgs - { - [Input("drainingTimeout")] - public Input? DrainingTimeout { get; set; } - - [Input("lowPriorityPercentage")] - public Input? LowPriorityPercentage { get; set; } - - [Input("odCount")] - public Input? OdCount { get; set; } - - public ElastigroupStrategyGetArgs() - { - } - public static new ElastigroupStrategyGetArgs Empty => new ElastigroupStrategyGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyArgs.cs deleted file mode 100644 index 72dd6181..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyArgs.cs +++ /dev/null @@ -1,26 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupUpdatePolicyArgs : global::Pulumi.ResourceArgs - { - [Input("rollConfig")] - public Input? RollConfig { get; set; } - - [Input("shouldRoll", required: true)] - public Input ShouldRoll { get; set; } = null!; - - public ElastigroupUpdatePolicyArgs() - { - } - public static new ElastigroupUpdatePolicyArgs Empty => new ElastigroupUpdatePolicyArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyGetArgs.cs deleted file mode 100644 index e9a561f3..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyGetArgs.cs +++ /dev/null @@ -1,26 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupUpdatePolicyGetArgs : global::Pulumi.ResourceArgs - { - [Input("rollConfig")] - public Input? RollConfig { get; set; } - - [Input("shouldRoll", required: true)] - public Input ShouldRoll { get; set; } = null!; - - public ElastigroupUpdatePolicyGetArgs() - { - } - public static new ElastigroupUpdatePolicyGetArgs Empty => new ElastigroupUpdatePolicyGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyRollConfigArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyRollConfigArgs.cs deleted file mode 100644 index 06b24af1..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyRollConfigArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupUpdatePolicyRollConfigArgs : global::Pulumi.ResourceArgs - { - [Input("batchSizePercentage", required: true)] - public Input BatchSizePercentage { get; set; } = null!; - - [Input("gracePeriod")] - public Input? GracePeriod { get; set; } - - [Input("healthCheckType")] - public Input? HealthCheckType { get; set; } - - public ElastigroupUpdatePolicyRollConfigArgs() - { - } - public static new ElastigroupUpdatePolicyRollConfigArgs Empty => new ElastigroupUpdatePolicyRollConfigArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyRollConfigGetArgs.cs b/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyRollConfigGetArgs.cs deleted file mode 100644 index 49eb92bf..00000000 --- a/sdk/dotnet/Azure/Inputs/ElastigroupUpdatePolicyRollConfigGetArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Inputs -{ - - public sealed class ElastigroupUpdatePolicyRollConfigGetArgs : global::Pulumi.ResourceArgs - { - [Input("batchSizePercentage", required: true)] - public Input BatchSizePercentage { get; set; } = null!; - - [Input("gracePeriod")] - public Input? GracePeriod { get; set; } - - [Input("healthCheckType")] - public Input? HealthCheckType { get; set; } - - public ElastigroupUpdatePolicyRollConfigGetArgs() - { - } - public static new ElastigroupUpdatePolicyRollConfigGetArgs Empty => new ElastigroupUpdatePolicyRollConfigGetArgs(); - } -} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpAutoscalerArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpAutoscalerArgs.cs index e9631748..9339b4b8 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpAutoscalerArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpAutoscalerArgs.cs @@ -12,15 +12,27 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpAutoscalerArgs : global::Pulumi.ResourceArgs { + /// + /// Auto Scaling scale down operations. + /// [Input("autoscaleDown")] public Input? AutoscaleDown { get; set; } + /// + /// Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + /// [Input("autoscaleHeadroom")] public Input? AutoscaleHeadroom { get; set; } + /// + /// Enable the Ocean Kubernetes Autoscaler. + /// [Input("autoscaleIsEnabled")] public Input? AutoscaleIsEnabled { get; set; } + /// + /// Optionally set upper and lower bounds on the resource usage of the cluster. + /// [Input("resourceLimits")] public Input? ResourceLimits { get; set; } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpAutoscalerGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpAutoscalerGetArgs.cs index 587ca4ff..31deb26f 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpAutoscalerGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpAutoscalerGetArgs.cs @@ -12,15 +12,27 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpAutoscalerGetArgs : global::Pulumi.ResourceArgs { + /// + /// Auto Scaling scale down operations. + /// [Input("autoscaleDown")] public Input? AutoscaleDown { get; set; } + /// + /// Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + /// [Input("autoscaleHeadroom")] public Input? AutoscaleHeadroom { get; set; } + /// + /// Enable the Ocean Kubernetes Autoscaler. + /// [Input("autoscaleIsEnabled")] public Input? AutoscaleIsEnabled { get; set; } + /// + /// Optionally set upper and lower bounds on the resource usage of the cluster. + /// [Input("resourceLimits")] public Input? ResourceLimits { get; set; } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpFiltersArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpFiltersArgs.cs index 5ebf1af5..555ee74f 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpFiltersArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpFiltersArgs.cs @@ -12,22 +12,36 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpFiltersArgs : global::Pulumi.ResourceArgs { + /// + /// In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + /// [Input("acceleratedNetworking")] public Input? AcceleratedNetworking { get; set; } [Input("architectures")] private InputList? _architectures; + + /// + /// The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + /// public InputList Architectures { get => _architectures ?? (_architectures = new InputList()); set => _architectures = value; } + /// + /// The filtered vm sizes will support at least one of the classes from this list. + /// [Input("diskPerformance")] public Input? DiskPerformance { get; set; } [Input("excludeSeries")] private InputList? _excludeSeries; + + /// + /// Vm sizes belonging to a series from the list will not be available for scaling + /// public InputList ExcludeSeries { get => _excludeSeries ?? (_excludeSeries = new InputList()); @@ -36,38 +50,72 @@ public InputList ExcludeSeries [Input("gpuTypes")] private InputList? _gpuTypes; + + /// + /// The filtered gpu types will belong to one of the gpu types from this list. + /// + /// <a id="update-policy"></a> + /// public InputList GpuTypes { get => _gpuTypes ?? (_gpuTypes = new InputList()); set => _gpuTypes = value; } + /// + /// Maximum number of GPUs available. + /// [Input("maxGpu")] public Input? MaxGpu { get; set; } + /// + /// Maximum amount of Memory (GiB). + /// [Input("maxMemoryGib")] public Input? MaxMemoryGib { get; set; } + /// + /// Maximum number of vcpus available. + /// [Input("maxVcpu")] public Input? MaxVcpu { get; set; } + /// + /// Minimum number of data disks available. + /// [Input("minDisk")] public Input? MinDisk { get; set; } + /// + /// Minimum number of GPUs available. + /// [Input("minGpu")] public Input? MinGpu { get; set; } + /// + /// Minimum amount of Memory (GiB). + /// [Input("minMemoryGib")] public Input? MinMemoryGib { get; set; } + /// + /// Minimum number of network interfaces. + /// [Input("minNics")] public Input? MinNics { get; set; } + /// + /// Minimum number of vcpus available. + /// [Input("minVcpu")] public Input? MinVcpu { get; set; } [Input("series")] private InputList? _series; + + /// + /// Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + /// public InputList Series { get => _series ?? (_series = new InputList()); @@ -76,6 +124,10 @@ public InputList Series [Input("vmTypes")] private InputList? _vmTypes; + + /// + /// The filtered vm types will belong to one of the vm types from this list. + /// public InputList VmTypes { get => _vmTypes ?? (_vmTypes = new InputList()); diff --git a/sdk/dotnet/Azure/Inputs/OceanNpFiltersGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpFiltersGetArgs.cs index 8a1cfe26..f6a0bbfd 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpFiltersGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpFiltersGetArgs.cs @@ -12,22 +12,36 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpFiltersGetArgs : global::Pulumi.ResourceArgs { + /// + /// In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + /// [Input("acceleratedNetworking")] public Input? AcceleratedNetworking { get; set; } [Input("architectures")] private InputList? _architectures; + + /// + /// The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + /// public InputList Architectures { get => _architectures ?? (_architectures = new InputList()); set => _architectures = value; } + /// + /// The filtered vm sizes will support at least one of the classes from this list. + /// [Input("diskPerformance")] public Input? DiskPerformance { get; set; } [Input("excludeSeries")] private InputList? _excludeSeries; + + /// + /// Vm sizes belonging to a series from the list will not be available for scaling + /// public InputList ExcludeSeries { get => _excludeSeries ?? (_excludeSeries = new InputList()); @@ -36,38 +50,72 @@ public InputList ExcludeSeries [Input("gpuTypes")] private InputList? _gpuTypes; + + /// + /// The filtered gpu types will belong to one of the gpu types from this list. + /// + /// <a id="update-policy"></a> + /// public InputList GpuTypes { get => _gpuTypes ?? (_gpuTypes = new InputList()); set => _gpuTypes = value; } + /// + /// Maximum number of GPUs available. + /// [Input("maxGpu")] public Input? MaxGpu { get; set; } + /// + /// Maximum amount of Memory (GiB). + /// [Input("maxMemoryGib")] public Input? MaxMemoryGib { get; set; } + /// + /// Maximum number of vcpus available. + /// [Input("maxVcpu")] public Input? MaxVcpu { get; set; } + /// + /// Minimum number of data disks available. + /// [Input("minDisk")] public Input? MinDisk { get; set; } + /// + /// Minimum number of GPUs available. + /// [Input("minGpu")] public Input? MinGpu { get; set; } + /// + /// Minimum amount of Memory (GiB). + /// [Input("minMemoryGib")] public Input? MinMemoryGib { get; set; } + /// + /// Minimum number of network interfaces. + /// [Input("minNics")] public Input? MinNics { get; set; } + /// + /// Minimum number of vcpus available. + /// [Input("minVcpu")] public Input? MinVcpu { get; set; } [Input("series")] private InputList? _series; + + /// + /// Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + /// public InputList Series { get => _series ?? (_series = new InputList()); @@ -76,6 +124,10 @@ public InputList Series [Input("vmTypes")] private InputList? _vmTypes; + + /// + /// The filtered vm types will belong to one of the vm types from this list. + /// public InputList VmTypes { get => _vmTypes ?? (_vmTypes = new InputList()); diff --git a/sdk/dotnet/Azure/Inputs/OceanNpHeadroomArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpHeadroomArgs.cs index 812f2bb2..a548c160 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpHeadroomArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpHeadroomArgs.cs @@ -12,15 +12,27 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpHeadroomArgs : global::Pulumi.ResourceArgs { + /// + /// Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + /// [Input("cpuPerUnit")] public Input? CpuPerUnit { get; set; } + /// + /// Amount of GPU to allocate for headroom unit. + /// [Input("gpuPerUnit")] public Input? GpuPerUnit { get; set; } + /// + /// Configure the amount of memory (MiB) to allocate the headroom. + /// [Input("memoryPerUnit")] public Input? MemoryPerUnit { get; set; } + /// + /// The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + /// [Input("numOfUnits")] public Input? NumOfUnits { get; set; } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpHeadroomGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpHeadroomGetArgs.cs index 7d8d4525..bcacec00 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpHeadroomGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpHeadroomGetArgs.cs @@ -12,15 +12,27 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpHeadroomGetArgs : global::Pulumi.ResourceArgs { + /// + /// Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + /// [Input("cpuPerUnit")] public Input? CpuPerUnit { get; set; } + /// + /// Amount of GPU to allocate for headroom unit. + /// [Input("gpuPerUnit")] public Input? GpuPerUnit { get; set; } + /// + /// Configure the amount of memory (MiB) to allocate the headroom. + /// [Input("memoryPerUnit")] public Input? MemoryPerUnit { get; set; } + /// + /// The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + /// [Input("numOfUnits")] public Input? NumOfUnits { get; set; } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpHealthArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpHealthArgs.cs index 484030b6..d4233d88 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpHealthArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpHealthArgs.cs @@ -12,6 +12,9 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpHealthArgs : global::Pulumi.ResourceArgs { + /// + /// The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + /// [Input("gracePeriod")] public Input? GracePeriod { get; set; } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpHealthGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpHealthGetArgs.cs index b7151b2e..87beb219 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpHealthGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpHealthGetArgs.cs @@ -12,6 +12,9 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpHealthGetArgs : global::Pulumi.ResourceArgs { + /// + /// The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + /// [Input("gracePeriod")] public Input? GracePeriod { get; set; } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingArgs.cs index a4e6dc28..d0e3c28d 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingArgs.cs @@ -12,6 +12,9 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpSchedulingArgs : global::Pulumi.ResourceArgs { + /// + /// [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + /// [Input("shutdownHours")] public Input? ShutdownHours { get; set; } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingGetArgs.cs index f9abec91..3bbdc265 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingGetArgs.cs @@ -12,6 +12,9 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpSchedulingGetArgs : global::Pulumi.ResourceArgs { + /// + /// [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + /// [Input("shutdownHours")] public Input? ShutdownHours { get; set; } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpTaintArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpTaintArgs.cs index c04d16c4..24c579cd 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpTaintArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpTaintArgs.cs @@ -12,12 +12,21 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpTaintArgs : global::Pulumi.ResourceArgs { + /// + /// Set taint effect. + /// [Input("effect", required: true)] public Input Effect { get; set; } = null!; + /// + /// Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + /// [Input("key", required: true)] public Input Key { get; set; } = null!; + /// + /// Set taint value. + /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Azure/Inputs/OceanNpTaintGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpTaintGetArgs.cs index 75296f4d..04e37bdf 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpTaintGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpTaintGetArgs.cs @@ -12,12 +12,21 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpTaintGetArgs : global::Pulumi.ResourceArgs { + /// + /// Set taint effect. + /// [Input("effect", required: true)] public Input Effect { get; set; } = null!; + /// + /// Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + /// [Input("key", required: true)] public Input Key { get; set; } = null!; + /// + /// Set taint value. + /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupFiltersArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupFiltersArgs.cs index f3b16913..11063c7b 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupFiltersArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupFiltersArgs.cs @@ -12,22 +12,36 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpVirtualNodeGroupFiltersArgs : global::Pulumi.ResourceArgs { + /// + /// In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + /// [Input("acceleratedNetworking")] public Input? AcceleratedNetworking { get; set; } [Input("architectures")] private InputList? _architectures; + + /// + /// The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + /// public InputList Architectures { get => _architectures ?? (_architectures = new InputList()); set => _architectures = value; } + /// + /// The filtered vm sizes will support at least one of the classes from this list. + /// [Input("diskPerformance")] public Input? DiskPerformance { get; set; } [Input("excludeSeries")] private InputList? _excludeSeries; + + /// + /// Vm sizes belonging to a series from the list will not be available for scaling. + /// public InputList ExcludeSeries { get => _excludeSeries ?? (_excludeSeries = new InputList()); @@ -36,38 +50,71 @@ public InputList ExcludeSeries [Input("gpuTypes")] private InputList? _gpuTypes; + + /// + /// The filtered gpu types will belong to one of the gpu types from this list. + /// <a id="update-policy"></a> + /// public InputList GpuTypes { get => _gpuTypes ?? (_gpuTypes = new InputList()); set => _gpuTypes = value; } + /// + /// Maximum number of GPUs available. + /// [Input("maxGpu")] public Input? MaxGpu { get; set; } + /// + /// Maximum amount of Memory (GiB). + /// [Input("maxMemoryGib")] public Input? MaxMemoryGib { get; set; } + /// + /// Maximum number of vcpus available. + /// [Input("maxVcpu")] public Input? MaxVcpu { get; set; } + /// + /// Minimum number of data disks available. + /// [Input("minDisk")] public Input? MinDisk { get; set; } + /// + /// Minimum number of GPUs available. + /// [Input("minGpu")] public Input? MinGpu { get; set; } + /// + /// Minimum amount of Memory (GiB). + /// [Input("minMemoryGib")] public Input? MinMemoryGib { get; set; } + /// + /// Minimum number of network interfaces. + /// [Input("minNics")] public Input? MinNics { get; set; } + /// + /// Minimum number of vcpus available. + /// [Input("minVcpu")] public Input? MinVcpu { get; set; } [Input("series")] private InputList? _series; + + /// + /// Vm sizes belonging to a series from the list will be available for scaling. + /// public InputList Series { get => _series ?? (_series = new InputList()); @@ -76,6 +123,10 @@ public InputList Series [Input("vmTypes")] private InputList? _vmTypes; + + /// + /// The filtered vm types will belong to one of the vm types from this list. + /// public InputList VmTypes { get => _vmTypes ?? (_vmTypes = new InputList()); diff --git a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupFiltersGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupFiltersGetArgs.cs index 8a6cc3dd..114f2b7b 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupFiltersGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupFiltersGetArgs.cs @@ -12,22 +12,36 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpVirtualNodeGroupFiltersGetArgs : global::Pulumi.ResourceArgs { + /// + /// In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + /// [Input("acceleratedNetworking")] public Input? AcceleratedNetworking { get; set; } [Input("architectures")] private InputList? _architectures; + + /// + /// The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + /// public InputList Architectures { get => _architectures ?? (_architectures = new InputList()); set => _architectures = value; } + /// + /// The filtered vm sizes will support at least one of the classes from this list. + /// [Input("diskPerformance")] public Input? DiskPerformance { get; set; } [Input("excludeSeries")] private InputList? _excludeSeries; + + /// + /// Vm sizes belonging to a series from the list will not be available for scaling. + /// public InputList ExcludeSeries { get => _excludeSeries ?? (_excludeSeries = new InputList()); @@ -36,38 +50,71 @@ public InputList ExcludeSeries [Input("gpuTypes")] private InputList? _gpuTypes; + + /// + /// The filtered gpu types will belong to one of the gpu types from this list. + /// <a id="update-policy"></a> + /// public InputList GpuTypes { get => _gpuTypes ?? (_gpuTypes = new InputList()); set => _gpuTypes = value; } + /// + /// Maximum number of GPUs available. + /// [Input("maxGpu")] public Input? MaxGpu { get; set; } + /// + /// Maximum amount of Memory (GiB). + /// [Input("maxMemoryGib")] public Input? MaxMemoryGib { get; set; } + /// + /// Maximum number of vcpus available. + /// [Input("maxVcpu")] public Input? MaxVcpu { get; set; } + /// + /// Minimum number of data disks available. + /// [Input("minDisk")] public Input? MinDisk { get; set; } + /// + /// Minimum number of GPUs available. + /// [Input("minGpu")] public Input? MinGpu { get; set; } + /// + /// Minimum amount of Memory (GiB). + /// [Input("minMemoryGib")] public Input? MinMemoryGib { get; set; } + /// + /// Minimum number of network interfaces. + /// [Input("minNics")] public Input? MinNics { get; set; } + /// + /// Minimum number of vcpus available. + /// [Input("minVcpu")] public Input? MinVcpu { get; set; } [Input("series")] private InputList? _series; + + /// + /// Vm sizes belonging to a series from the list will be available for scaling. + /// public InputList Series { get => _series ?? (_series = new InputList()); @@ -76,6 +123,10 @@ public InputList Series [Input("vmTypes")] private InputList? _vmTypes; + + /// + /// The filtered vm types will belong to one of the vm types from this list. + /// public InputList VmTypes { get => _vmTypes ?? (_vmTypes = new InputList()); diff --git a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupHeadroomArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupHeadroomArgs.cs index 7ec8f59f..c8eb0303 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupHeadroomArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupHeadroomArgs.cs @@ -12,15 +12,27 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpVirtualNodeGroupHeadroomArgs : global::Pulumi.ResourceArgs { + /// + /// Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + /// [Input("cpuPerUnit")] public Input? CpuPerUnit { get; set; } + /// + /// Amount of GPU to allocate for headroom unit. + /// [Input("gpuPerUnit")] public Input? GpuPerUnit { get; set; } + /// + /// Configure the amount of memory (MiB) to allocate the headroom. + /// [Input("memoryPerUnit")] public Input? MemoryPerUnit { get; set; } + /// + /// The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + /// [Input("numOfUnits")] public Input? NumOfUnits { get; set; } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupHeadroomGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupHeadroomGetArgs.cs index b5965e7e..d931d72c 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupHeadroomGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupHeadroomGetArgs.cs @@ -12,15 +12,27 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpVirtualNodeGroupHeadroomGetArgs : global::Pulumi.ResourceArgs { + /// + /// Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + /// [Input("cpuPerUnit")] public Input? CpuPerUnit { get; set; } + /// + /// Amount of GPU to allocate for headroom unit. + /// [Input("gpuPerUnit")] public Input? GpuPerUnit { get; set; } + /// + /// Configure the amount of memory (MiB) to allocate the headroom. + /// [Input("memoryPerUnit")] public Input? MemoryPerUnit { get; set; } + /// + /// The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + /// [Input("numOfUnits")] public Input? NumOfUnits { get; set; } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupTaintArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupTaintArgs.cs index e66d2e42..3ee4db81 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupTaintArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupTaintArgs.cs @@ -12,12 +12,21 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpVirtualNodeGroupTaintArgs : global::Pulumi.ResourceArgs { + /// + /// Set taint effect. + /// [Input("effect", required: true)] public Input Effect { get; set; } = null!; + /// + /// Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + /// [Input("key", required: true)] public Input Key { get; set; } = null!; + /// + /// Set taint value. + /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupTaintGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupTaintGetArgs.cs index 6a7bc2c1..1b45714d 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupTaintGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupTaintGetArgs.cs @@ -12,12 +12,21 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpVirtualNodeGroupTaintGetArgs : global::Pulumi.ResourceArgs { + /// + /// Set taint effect. + /// [Input("effect", required: true)] public Input Effect { get; set; } = null!; + /// + /// Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + /// [Input("key", required: true)] public Input Key { get; set; } = null!; + /// + /// Set taint value. + /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Azure/OceanNp.cs b/sdk/dotnet/Azure/OceanNp.cs index b94ca6bf..c5167b07 100644 --- a/sdk/dotnet/Azure/OceanNp.cs +++ b/sdk/dotnet/Azure/OceanNp.cs @@ -9,6 +9,40 @@ namespace Pulumi.SpotInst.Azure { + /// + /// Manages a Spotinst Ocean AKS resource. + /// + /// ## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using SpotInst = Pulumi.SpotInst; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new SpotInst.Azure.OceanNp("example", new() + /// { + /// Name = "test", + /// AksRegion = "eastus", + /// AksClusterName = "test-cluster", + /// AksInfrastructureResourceGroupName = "MC_TestResourceGroup_test-cluster_eastus", + /// AksResourceGroupName = "TestResourceGroup", + /// ControllerClusterId = "test-123124", + /// AvailabilityZones = new[] + /// { + /// "1", + /// "2", + /// "3", + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values + /// [SpotInstResourceType("spotinst:azure/oceanNp:OceanNp")] public partial class OceanNp : global::Pulumi.CustomResource { @@ -24,78 +58,147 @@ public partial class OceanNp : global::Pulumi.CustomResource [Output("aksResourceGroupName")] public Output AksResourceGroupName { get; private set; } = null!; + /// + /// The Ocean Kubernetes Autoscaler object. + /// [Output("autoscaler")] public Output Autoscaler { get; private set; } = null!; + /// + /// An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + /// [Output("availabilityZones")] public Output> AvailabilityZones { get; private set; } = null!; + /// + /// Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + /// [Output("controllerClusterId")] public Output ControllerClusterId { get; private set; } = null!; + /// + /// Enable node public IP. + /// [Output("enableNodePublicIp")] public Output EnableNodePublicIp { get; private set; } = null!; + /// + /// If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + /// [Output("fallbackToOndemand")] public Output FallbackToOndemand { get; private set; } = null!; + /// + /// Filters for the VM sizes that can be launched from the virtual node group. + /// [Output("filters")] public Output Filters { get; private set; } = null!; + /// + /// Specify the custom headroom per VNG. Provide a list of headroom objects. + /// [Output("headrooms")] public Output> Headrooms { get; private set; } = null!; + /// + /// The Ocean AKS Health object. + /// [Output("health")] public Output Health { get; private set; } = null!; + /// + /// The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + /// [Output("kubernetesVersion")] public Output KubernetesVersion { get; private set; } = null!; + /// + /// An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + /// [Output("labels")] public Output?> Labels { get; private set; } = null!; + /// + /// Maximum node count limit. + /// [Output("maxCount")] public Output MaxCount { get; private set; } = null!; + /// + /// The maximum number of pods per node in the node pools. + /// [Output("maxPodsPerNode")] public Output MaxPodsPerNode { get; private set; } = null!; + /// + /// Minimum node count limit. + /// [Output("minCount")] public Output MinCount { get; private set; } = null!; + /// + /// Add a name for the Ocean cluster. + /// [Output("name")] public Output Name { get; private set; } = null!; + /// + /// The size of the OS disk in GB. + /// [Output("osDiskSizeGb")] public Output OsDiskSizeGb { get; private set; } = null!; + /// + /// The type of the OS disk. + /// [Output("osDiskType")] public Output OsDiskType { get; private set; } = null!; + /// + /// The OS SKU of the OS type. Must correlate with the os type. + /// [Output("osSku")] public Output OsSku { get; private set; } = null!; + /// + /// The OS type of the OS disk. Can't be modified once set. + /// [Output("osType")] public Output OsType { get; private set; } = null!; + /// + /// The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + /// [Output("podSubnetIds")] public Output> PodSubnetIds { get; private set; } = null!; + /// + /// An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + /// [Output("scheduling")] public Output Scheduling { get; private set; } = null!; + /// + /// Percentage of spot VMs to maintain. + /// [Output("spotPercentage")] public Output SpotPercentage { get; private set; } = null!; [Output("tags")] public Output?> Tags { get; private set; } = null!; + /// + /// Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + /// [Output("taints")] public Output> Taints { get; private set; } = null!; [Output("updatePolicy")] public Output UpdatePolicy { get; private set; } = null!; + /// + /// The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + /// [Output("vnetSubnetIds")] public Output> VnetSubnetIds { get; private set; } = null!; @@ -157,86 +260,153 @@ public sealed class OceanNpArgs : global::Pulumi.ResourceArgs [Input("aksResourceGroupName", required: true)] public Input AksResourceGroupName { get; set; } = null!; + /// + /// The Ocean Kubernetes Autoscaler object. + /// [Input("autoscaler")] public Input? Autoscaler { get; set; } [Input("availabilityZones", required: true)] private InputList? _availabilityZones; + + /// + /// An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + /// public InputList AvailabilityZones { get => _availabilityZones ?? (_availabilityZones = new InputList()); set => _availabilityZones = value; } + /// + /// Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + /// [Input("controllerClusterId", required: true)] public Input ControllerClusterId { get; set; } = null!; + /// + /// Enable node public IP. + /// [Input("enableNodePublicIp")] public Input? EnableNodePublicIp { get; set; } + /// + /// If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + /// [Input("fallbackToOndemand")] public Input? FallbackToOndemand { get; set; } + /// + /// Filters for the VM sizes that can be launched from the virtual node group. + /// [Input("filters")] public Input? Filters { get; set; } [Input("headrooms")] private InputList? _headrooms; + + /// + /// Specify the custom headroom per VNG. Provide a list of headroom objects. + /// public InputList Headrooms { get => _headrooms ?? (_headrooms = new InputList()); set => _headrooms = value; } + /// + /// The Ocean AKS Health object. + /// [Input("health")] public Input? Health { get; set; } + /// + /// The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + /// [Input("kubernetesVersion")] public Input? KubernetesVersion { get; set; } [Input("labels")] private InputMap? _labels; + + /// + /// An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + /// public InputMap Labels { get => _labels ?? (_labels = new InputMap()); set => _labels = value; } + /// + /// Maximum node count limit. + /// [Input("maxCount")] public Input? MaxCount { get; set; } + /// + /// The maximum number of pods per node in the node pools. + /// [Input("maxPodsPerNode")] public Input? MaxPodsPerNode { get; set; } + /// + /// Minimum node count limit. + /// [Input("minCount")] public Input? MinCount { get; set; } + /// + /// Add a name for the Ocean cluster. + /// [Input("name")] public Input? Name { get; set; } + /// + /// The size of the OS disk in GB. + /// [Input("osDiskSizeGb")] public Input? OsDiskSizeGb { get; set; } + /// + /// The type of the OS disk. + /// [Input("osDiskType")] public Input? OsDiskType { get; set; } + /// + /// The OS SKU of the OS type. Must correlate with the os type. + /// [Input("osSku")] public Input? OsSku { get; set; } + /// + /// The OS type of the OS disk. Can't be modified once set. + /// [Input("osType")] public Input? OsType { get; set; } [Input("podSubnetIds")] private InputList? _podSubnetIds; + + /// + /// The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + /// public InputList PodSubnetIds { get => _podSubnetIds ?? (_podSubnetIds = new InputList()); set => _podSubnetIds = value; } + /// + /// An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + /// [Input("scheduling")] public Input? Scheduling { get; set; } + /// + /// Percentage of spot VMs to maintain. + /// [Input("spotPercentage")] public Input? SpotPercentage { get; set; } @@ -250,6 +420,10 @@ public InputMap Tags [Input("taints")] private InputList? _taints; + + /// + /// Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + /// public InputList Taints { get => _taints ?? (_taints = new InputList()); @@ -261,6 +435,10 @@ public InputList Taints [Input("vnetSubnetIds")] private InputList? _vnetSubnetIds; + + /// + /// The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + /// public InputList VnetSubnetIds { get => _vnetSubnetIds ?? (_vnetSubnetIds = new InputList()); @@ -287,86 +465,153 @@ public sealed class OceanNpState : global::Pulumi.ResourceArgs [Input("aksResourceGroupName")] public Input? AksResourceGroupName { get; set; } + /// + /// The Ocean Kubernetes Autoscaler object. + /// [Input("autoscaler")] public Input? Autoscaler { get; set; } [Input("availabilityZones")] private InputList? _availabilityZones; + + /// + /// An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + /// public InputList AvailabilityZones { get => _availabilityZones ?? (_availabilityZones = new InputList()); set => _availabilityZones = value; } + /// + /// Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + /// [Input("controllerClusterId")] public Input? ControllerClusterId { get; set; } + /// + /// Enable node public IP. + /// [Input("enableNodePublicIp")] public Input? EnableNodePublicIp { get; set; } + /// + /// If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + /// [Input("fallbackToOndemand")] public Input? FallbackToOndemand { get; set; } + /// + /// Filters for the VM sizes that can be launched from the virtual node group. + /// [Input("filters")] public Input? Filters { get; set; } [Input("headrooms")] private InputList? _headrooms; + + /// + /// Specify the custom headroom per VNG. Provide a list of headroom objects. + /// public InputList Headrooms { get => _headrooms ?? (_headrooms = new InputList()); set => _headrooms = value; } + /// + /// The Ocean AKS Health object. + /// [Input("health")] public Input? Health { get; set; } + /// + /// The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + /// [Input("kubernetesVersion")] public Input? KubernetesVersion { get; set; } [Input("labels")] private InputMap? _labels; + + /// + /// An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + /// public InputMap Labels { get => _labels ?? (_labels = new InputMap()); set => _labels = value; } + /// + /// Maximum node count limit. + /// [Input("maxCount")] public Input? MaxCount { get; set; } + /// + /// The maximum number of pods per node in the node pools. + /// [Input("maxPodsPerNode")] public Input? MaxPodsPerNode { get; set; } + /// + /// Minimum node count limit. + /// [Input("minCount")] public Input? MinCount { get; set; } + /// + /// Add a name for the Ocean cluster. + /// [Input("name")] public Input? Name { get; set; } + /// + /// The size of the OS disk in GB. + /// [Input("osDiskSizeGb")] public Input? OsDiskSizeGb { get; set; } + /// + /// The type of the OS disk. + /// [Input("osDiskType")] public Input? OsDiskType { get; set; } + /// + /// The OS SKU of the OS type. Must correlate with the os type. + /// [Input("osSku")] public Input? OsSku { get; set; } + /// + /// The OS type of the OS disk. Can't be modified once set. + /// [Input("osType")] public Input? OsType { get; set; } [Input("podSubnetIds")] private InputList? _podSubnetIds; + + /// + /// The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + /// public InputList PodSubnetIds { get => _podSubnetIds ?? (_podSubnetIds = new InputList()); set => _podSubnetIds = value; } + /// + /// An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + /// [Input("scheduling")] public Input? Scheduling { get; set; } + /// + /// Percentage of spot VMs to maintain. + /// [Input("spotPercentage")] public Input? SpotPercentage { get; set; } @@ -380,6 +625,10 @@ public InputMap Tags [Input("taints")] private InputList? _taints; + + /// + /// Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + /// public InputList Taints { get => _taints ?? (_taints = new InputList()); @@ -391,6 +640,10 @@ public InputList Taints [Input("vnetSubnetIds")] private InputList? _vnetSubnetIds; + + /// + /// The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + /// public InputList VnetSubnetIds { get => _vnetSubnetIds ?? (_vnetSubnetIds = new InputList()); diff --git a/sdk/dotnet/Azure/OceanNpVirtualNodeGroup.cs b/sdk/dotnet/Azure/OceanNpVirtualNodeGroup.cs index 650729d8..5a712bb7 100644 --- a/sdk/dotnet/Azure/OceanNpVirtualNodeGroup.cs +++ b/sdk/dotnet/Azure/OceanNpVirtualNodeGroup.cs @@ -9,72 +9,249 @@ namespace Pulumi.SpotInst.Azure { + /// + /// Manages a Spotinst Ocean AKS Virtual Node Groups resource. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using SpotInst = Pulumi.SpotInst; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new SpotInst.Azure.OceanNpVirtualNodeGroup("example", new() + /// { + /// Name = "testVng", + /// OceanId = "o-134abcd", + /// Headrooms = new[] + /// { + /// new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupHeadroomArgs + /// { + /// CpuPerUnit = 1024, + /// MemoryPerUnit = 512, + /// GpuPerUnit = 0, + /// NumOfUnits = 2, + /// }, + /// }, + /// AvailabilityZones = new[] + /// { + /// "1", + /// "2", + /// "3", + /// }, + /// Labels = + /// { + /// { "key", "env" }, + /// { "value", "test" }, + /// }, + /// MinCount = 1, + /// MaxCount = 100, + /// MaxPodsPerNode = 30, + /// EnableNodePublicIp = true, + /// OsDiskSizeGb = 30, + /// OsDiskType = "Managed", + /// OsType = "Linux", + /// OsSku = "Ubuntu", + /// KubernetesVersion = "1.26", + /// PodSubnetIds = new[] + /// { + /// "/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default", + /// }, + /// VnetSubnetIds = new[] + /// { + /// "/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default", + /// }, + /// SpotPercentage = 50, + /// FallbackToOndemand = true, + /// Taints = new[] + /// { + /// new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupTaintArgs + /// { + /// Key = "taintKey", + /// Value = "taintValue", + /// Effect = "NoSchedule", + /// }, + /// }, + /// Tags = + /// { + /// { "tagKey", "env" }, + /// { "tagValue", "staging" }, + /// }, + /// Filters = new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupFiltersArgs + /// { + /// MinVcpu = 2, + /// MaxVcpu = 16, + /// MinMemoryGib = 8, + /// MaxMemoryGib = 128, + /// Architectures = new[] + /// { + /// "x86_64", + /// "arm64", + /// }, + /// Series = new[] + /// { + /// "D v3", + /// "Dds_v4", + /// "Dsv2", + /// }, + /// ExcludeSeries = new[] + /// { + /// "Av2", + /// "A", + /// "Bs", + /// "D", + /// "E", + /// }, + /// AcceleratedNetworking = "Enabled", + /// DiskPerformance = "Premium", + /// MinGpu = 1, + /// MaxGpu = 2, + /// MinNics = 1, + /// VmTypes = new[] + /// { + /// "generalPurpose", + /// "GPU", + /// }, + /// MinDisk = 1, + /// GpuTypes = new[] + /// { + /// "nvidia-tesla-t4", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// [SpotInstResourceType("spotinst:azure/oceanNpVirtualNodeGroup:OceanNpVirtualNodeGroup")] public partial class OceanNpVirtualNodeGroup : global::Pulumi.CustomResource { + /// + /// An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + /// [Output("availabilityZones")] public Output> AvailabilityZones { get; private set; } = null!; + /// + /// Enable node public IP. + /// [Output("enableNodePublicIp")] public Output EnableNodePublicIp { get; private set; } = null!; + /// + /// If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + /// [Output("fallbackToOndemand")] public Output FallbackToOndemand { get; private set; } = null!; + /// + /// Filters for the VM sizes that can be launched from the virtual node group. + /// [Output("filters")] public Output Filters { get; private set; } = null!; + /// + /// Specify the custom headroom per VNG. Provide a list of headroom objects. + /// [Output("headrooms")] public Output> Headrooms { get; private set; } = null!; + /// + /// The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + /// [Output("kubernetesVersion")] public Output KubernetesVersion { get; private set; } = null!; + /// + /// An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + /// [Output("labels")] public Output?> Labels { get; private set; } = null!; + /// + /// Maximum node count limit. + /// [Output("maxCount")] public Output MaxCount { get; private set; } = null!; + /// + /// The maximum number of pods per node in the node pools. + /// [Output("maxPodsPerNode")] public Output MaxPodsPerNode { get; private set; } = null!; + /// + /// Minimum node count limit. + /// [Output("minCount")] public Output MinCount { get; private set; } = null!; + /// + /// Enter a name for the virtual node group. + /// [Output("name")] public Output Name { get; private set; } = null!; + /// + /// The Ocean cluster identifier. Required for Launch Spec creation. + /// [Output("oceanId")] public Output OceanId { get; private set; } = null!; + /// + /// The size of the OS disk in GB. + /// [Output("osDiskSizeGb")] public Output OsDiskSizeGb { get; private set; } = null!; + /// + /// The type of the OS disk. + /// [Output("osDiskType")] public Output OsDiskType { get; private set; } = null!; + /// + /// The OS SKU of the OS type. Must correlate with the os type. + /// [Output("osSku")] public Output OsSku { get; private set; } = null!; + /// + /// The OS type of the OS disk. Can't be modified once set. + /// [Output("osType")] public Output OsType { get; private set; } = null!; + /// + /// The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + /// [Output("podSubnetIds")] public Output> PodSubnetIds { get; private set; } = null!; + /// + /// Percentage of spot VMs to maintain. + /// [Output("spotPercentage")] public Output SpotPercentage { get; private set; } = null!; [Output("tags")] public Output?> Tags { get; private set; } = null!; + /// + /// Add taints to a virtual node group. + /// [Output("taints")] public Output> Taints { get; private set; } = null!; [Output("updatePolicy")] public Output UpdatePolicy { get; private set; } = null!; + /// + /// The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + /// [Output("vnetSubnetIds")] public Output> VnetSubnetIds { get; private set; } = null!; @@ -126,75 +303,133 @@ public sealed class OceanNpVirtualNodeGroupArgs : global::Pulumi.ResourceArgs { [Input("availabilityZones")] private InputList? _availabilityZones; + + /// + /// An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + /// public InputList AvailabilityZones { get => _availabilityZones ?? (_availabilityZones = new InputList()); set => _availabilityZones = value; } + /// + /// Enable node public IP. + /// [Input("enableNodePublicIp")] public Input? EnableNodePublicIp { get; set; } + /// + /// If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + /// [Input("fallbackToOndemand")] public Input? FallbackToOndemand { get; set; } + /// + /// Filters for the VM sizes that can be launched from the virtual node group. + /// [Input("filters")] public Input? Filters { get; set; } [Input("headrooms")] private InputList? _headrooms; + + /// + /// Specify the custom headroom per VNG. Provide a list of headroom objects. + /// public InputList Headrooms { get => _headrooms ?? (_headrooms = new InputList()); set => _headrooms = value; } + /// + /// The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + /// [Input("kubernetesVersion")] public Input? KubernetesVersion { get; set; } [Input("labels")] private InputMap? _labels; + + /// + /// An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + /// public InputMap Labels { get => _labels ?? (_labels = new InputMap()); set => _labels = value; } + /// + /// Maximum node count limit. + /// [Input("maxCount")] public Input? MaxCount { get; set; } + /// + /// The maximum number of pods per node in the node pools. + /// [Input("maxPodsPerNode")] public Input? MaxPodsPerNode { get; set; } + /// + /// Minimum node count limit. + /// [Input("minCount")] public Input? MinCount { get; set; } + /// + /// Enter a name for the virtual node group. + /// [Input("name")] public Input? Name { get; set; } + /// + /// The Ocean cluster identifier. Required for Launch Spec creation. + /// [Input("oceanId", required: true)] public Input OceanId { get; set; } = null!; + /// + /// The size of the OS disk in GB. + /// [Input("osDiskSizeGb")] public Input? OsDiskSizeGb { get; set; } + /// + /// The type of the OS disk. + /// [Input("osDiskType")] public Input? OsDiskType { get; set; } + /// + /// The OS SKU of the OS type. Must correlate with the os type. + /// [Input("osSku")] public Input? OsSku { get; set; } + /// + /// The OS type of the OS disk. Can't be modified once set. + /// [Input("osType")] public Input? OsType { get; set; } [Input("podSubnetIds")] private InputList? _podSubnetIds; + + /// + /// The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + /// public InputList PodSubnetIds { get => _podSubnetIds ?? (_podSubnetIds = new InputList()); set => _podSubnetIds = value; } + /// + /// Percentage of spot VMs to maintain. + /// [Input("spotPercentage")] public Input? SpotPercentage { get; set; } @@ -208,6 +443,10 @@ public InputMap Tags [Input("taints")] private InputList? _taints; + + /// + /// Add taints to a virtual node group. + /// public InputList Taints { get => _taints ?? (_taints = new InputList()); @@ -219,6 +458,10 @@ public InputList Taints [Input("vnetSubnetIds")] private InputList? _vnetSubnetIds; + + /// + /// The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + /// public InputList VnetSubnetIds { get => _vnetSubnetIds ?? (_vnetSubnetIds = new InputList()); @@ -235,75 +478,133 @@ public sealed class OceanNpVirtualNodeGroupState : global::Pulumi.ResourceArgs { [Input("availabilityZones")] private InputList? _availabilityZones; + + /// + /// An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + /// public InputList AvailabilityZones { get => _availabilityZones ?? (_availabilityZones = new InputList()); set => _availabilityZones = value; } + /// + /// Enable node public IP. + /// [Input("enableNodePublicIp")] public Input? EnableNodePublicIp { get; set; } + /// + /// If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + /// [Input("fallbackToOndemand")] public Input? FallbackToOndemand { get; set; } + /// + /// Filters for the VM sizes that can be launched from the virtual node group. + /// [Input("filters")] public Input? Filters { get; set; } [Input("headrooms")] private InputList? _headrooms; + + /// + /// Specify the custom headroom per VNG. Provide a list of headroom objects. + /// public InputList Headrooms { get => _headrooms ?? (_headrooms = new InputList()); set => _headrooms = value; } + /// + /// The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + /// [Input("kubernetesVersion")] public Input? KubernetesVersion { get; set; } [Input("labels")] private InputMap? _labels; + + /// + /// An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + /// public InputMap Labels { get => _labels ?? (_labels = new InputMap()); set => _labels = value; } + /// + /// Maximum node count limit. + /// [Input("maxCount")] public Input? MaxCount { get; set; } + /// + /// The maximum number of pods per node in the node pools. + /// [Input("maxPodsPerNode")] public Input? MaxPodsPerNode { get; set; } + /// + /// Minimum node count limit. + /// [Input("minCount")] public Input? MinCount { get; set; } + /// + /// Enter a name for the virtual node group. + /// [Input("name")] public Input? Name { get; set; } + /// + /// The Ocean cluster identifier. Required for Launch Spec creation. + /// [Input("oceanId")] public Input? OceanId { get; set; } + /// + /// The size of the OS disk in GB. + /// [Input("osDiskSizeGb")] public Input? OsDiskSizeGb { get; set; } + /// + /// The type of the OS disk. + /// [Input("osDiskType")] public Input? OsDiskType { get; set; } + /// + /// The OS SKU of the OS type. Must correlate with the os type. + /// [Input("osSku")] public Input? OsSku { get; set; } + /// + /// The OS type of the OS disk. Can't be modified once set. + /// [Input("osType")] public Input? OsType { get; set; } [Input("podSubnetIds")] private InputList? _podSubnetIds; + + /// + /// The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + /// public InputList PodSubnetIds { get => _podSubnetIds ?? (_podSubnetIds = new InputList()); set => _podSubnetIds = value; } + /// + /// Percentage of spot VMs to maintain. + /// [Input("spotPercentage")] public Input? SpotPercentage { get; set; } @@ -317,6 +618,10 @@ public InputMap Tags [Input("taints")] private InputList? _taints; + + /// + /// Add taints to a virtual node group. + /// public InputList Taints { get => _taints ?? (_taints = new InputList()); @@ -328,6 +633,10 @@ public InputList Taints [Input("vnetSubnetIds")] private InputList? _vnetSubnetIds; + + /// + /// The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + /// public InputList VnetSubnetIds { get => _vnetSubnetIds ?? (_vnetSubnetIds = new InputList()); diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupHealthCheck.cs b/sdk/dotnet/Azure/Outputs/ElastigroupHealthCheck.cs deleted file mode 100644 index 4783a7da..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupHealthCheck.cs +++ /dev/null @@ -1,33 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupHealthCheck - { - public readonly bool? AutoHealing; - public readonly int? GracePeriod; - public readonly string HealthCheckType; - - [OutputConstructor] - private ElastigroupHealthCheck( - bool? autoHealing, - - int? gracePeriod, - - string healthCheckType) - { - AutoHealing = autoHealing; - GracePeriod = gracePeriod; - HealthCheckType = healthCheckType; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupImage.cs b/sdk/dotnet/Azure/Outputs/ElastigroupImage.cs deleted file mode 100644 index 0ab18d18..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupImage.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupImage - { - public readonly ImmutableArray Customs; - public readonly ImmutableArray Marketplaces; - - [OutputConstructor] - private ElastigroupImage( - ImmutableArray customs, - - ImmutableArray marketplaces) - { - Customs = customs; - Marketplaces = marketplaces; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupImageCustom.cs b/sdk/dotnet/Azure/Outputs/ElastigroupImageCustom.cs deleted file mode 100644 index 653426ef..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupImageCustom.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupImageCustom - { - public readonly string ImageName; - /// - /// Name of the Resource Group for Elastigroup. - /// - public readonly string ResourceGroupName; - - [OutputConstructor] - private ElastigroupImageCustom( - string imageName, - - string resourceGroupName) - { - ImageName = imageName; - ResourceGroupName = resourceGroupName; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupImageMarketplace.cs b/sdk/dotnet/Azure/Outputs/ElastigroupImageMarketplace.cs deleted file mode 100644 index 420432d3..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupImageMarketplace.cs +++ /dev/null @@ -1,33 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupImageMarketplace - { - public readonly string Offer; - public readonly string Publisher; - public readonly string Sku; - - [OutputConstructor] - private ElastigroupImageMarketplace( - string offer, - - string publisher, - - string sku) - { - Offer = offer; - Publisher = publisher; - Sku = sku; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupIntegrationKubernetes.cs b/sdk/dotnet/Azure/Outputs/ElastigroupIntegrationKubernetes.cs deleted file mode 100644 index 5defcdf7..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupIntegrationKubernetes.cs +++ /dev/null @@ -1,24 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupIntegrationKubernetes - { - public readonly string ClusterIdentifier; - - [OutputConstructor] - private ElastigroupIntegrationKubernetes(string clusterIdentifier) - { - ClusterIdentifier = clusterIdentifier; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupIntegrationMultaiRuntime.cs b/sdk/dotnet/Azure/Outputs/ElastigroupIntegrationMultaiRuntime.cs deleted file mode 100644 index d1a24dc1..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupIntegrationMultaiRuntime.cs +++ /dev/null @@ -1,24 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupIntegrationMultaiRuntime - { - public readonly string DeploymentId; - - [OutputConstructor] - private ElastigroupIntegrationMultaiRuntime(string deploymentId) - { - DeploymentId = deploymentId; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupLoadBalancer.cs b/sdk/dotnet/Azure/Outputs/ElastigroupLoadBalancer.cs deleted file mode 100644 index 91dc45d1..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupLoadBalancer.cs +++ /dev/null @@ -1,37 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupLoadBalancer - { - public readonly bool? AutoWeight; - public readonly string? BalancerId; - public readonly string? TargetSetId; - public readonly string Type; - - [OutputConstructor] - private ElastigroupLoadBalancer( - bool? autoWeight, - - string? balancerId, - - string? targetSetId, - - string type) - { - AutoWeight = autoWeight; - BalancerId = balancerId; - TargetSetId = targetSetId; - Type = type; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupLogin.cs b/sdk/dotnet/Azure/Outputs/ElastigroupLogin.cs deleted file mode 100644 index 173b2434..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupLogin.cs +++ /dev/null @@ -1,33 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupLogin - { - public readonly string? Password; - public readonly string? SshPublicKey; - public readonly string UserName; - - [OutputConstructor] - private ElastigroupLogin( - string? password, - - string? sshPublicKey, - - string userName) - { - Password = password; - SshPublicKey = sshPublicKey; - UserName = userName; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupManagedServiceIdentity.cs b/sdk/dotnet/Azure/Outputs/ElastigroupManagedServiceIdentity.cs deleted file mode 100644 index 1cab6c8a..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupManagedServiceIdentity.cs +++ /dev/null @@ -1,35 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupManagedServiceIdentity - { - /// - /// The group name. - /// - public readonly string Name; - /// - /// Name of the Resource Group for Elastigroup. - /// - public readonly string ResourceGroupName; - - [OutputConstructor] - private ElastigroupManagedServiceIdentity( - string name, - - string resourceGroupName) - { - Name = name; - ResourceGroupName = resourceGroupName; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupNetwork.cs b/sdk/dotnet/Azure/Outputs/ElastigroupNetwork.cs deleted file mode 100644 index 4c0a8cd3..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupNetwork.cs +++ /dev/null @@ -1,44 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupNetwork - { - public readonly ImmutableArray AdditionalIpConfigs; - public readonly bool? AssignPublicIp; - /// - /// Name of the Resource Group for Elastigroup. - /// - public readonly string ResourceGroupName; - public readonly string SubnetName; - public readonly string VirtualNetworkName; - - [OutputConstructor] - private ElastigroupNetwork( - ImmutableArray additionalIpConfigs, - - bool? assignPublicIp, - - string resourceGroupName, - - string subnetName, - - string virtualNetworkName) - { - AdditionalIpConfigs = additionalIpConfigs; - AssignPublicIp = assignPublicIp; - ResourceGroupName = resourceGroupName; - SubnetName = subnetName; - VirtualNetworkName = virtualNetworkName; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupNetworkAdditionalIpConfig.cs b/sdk/dotnet/Azure/Outputs/ElastigroupNetworkAdditionalIpConfig.cs deleted file mode 100644 index 82cceaee..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupNetworkAdditionalIpConfig.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupNetworkAdditionalIpConfig - { - /// - /// The group name. - /// - public readonly string Name; - public readonly string? PrivateIpVersion; - - [OutputConstructor] - private ElastigroupNetworkAdditionalIpConfig( - string name, - - string? privateIpVersion) - { - Name = name; - PrivateIpVersion = privateIpVersion; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupScalingDownPolicy.cs b/sdk/dotnet/Azure/Outputs/ElastigroupScalingDownPolicy.cs deleted file mode 100644 index 1a48d93f..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupScalingDownPolicy.cs +++ /dev/null @@ -1,93 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupScalingDownPolicy - { - public readonly string? ActionType; - public readonly string? Adjustment; - public readonly int? Cooldown; - public readonly ImmutableArray Dimensions; - public readonly int? EvaluationPeriods; - public readonly string? MaxTargetCapacity; - public readonly string? Maximum; - public readonly string MetricName; - public readonly string? MinTargetCapacity; - public readonly string? Minimum; - public readonly string Namespace; - public readonly string? Operator; - public readonly int? Period; - public readonly string PolicyName; - public readonly string? Statistic; - public readonly string? Target; - public readonly double Threshold; - public readonly string? Unit; - - [OutputConstructor] - private ElastigroupScalingDownPolicy( - string? actionType, - - string? adjustment, - - int? cooldown, - - ImmutableArray dimensions, - - int? evaluationPeriods, - - string? maxTargetCapacity, - - string? maximum, - - string metricName, - - string? minTargetCapacity, - - string? minimum, - - string @namespace, - - string? @operator, - - int? period, - - string policyName, - - string? statistic, - - string? target, - - double threshold, - - string? unit) - { - ActionType = actionType; - Adjustment = adjustment; - Cooldown = cooldown; - Dimensions = dimensions; - EvaluationPeriods = evaluationPeriods; - MaxTargetCapacity = maxTargetCapacity; - Maximum = maximum; - MetricName = metricName; - MinTargetCapacity = minTargetCapacity; - Minimum = minimum; - Namespace = @namespace; - Operator = @operator; - Period = period; - PolicyName = policyName; - Statistic = statistic; - Target = target; - Threshold = threshold; - Unit = unit; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupScalingDownPolicyDimension.cs b/sdk/dotnet/Azure/Outputs/ElastigroupScalingDownPolicyDimension.cs deleted file mode 100644 index 320be60b..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupScalingDownPolicyDimension.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupScalingDownPolicyDimension - { - /// - /// The group name. - /// - public readonly string Name; - public readonly string? Value; - - [OutputConstructor] - private ElastigroupScalingDownPolicyDimension( - string name, - - string? value) - { - Name = name; - Value = value; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupScalingUpPolicy.cs b/sdk/dotnet/Azure/Outputs/ElastigroupScalingUpPolicy.cs deleted file mode 100644 index dcdbc4ef..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupScalingUpPolicy.cs +++ /dev/null @@ -1,93 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupScalingUpPolicy - { - public readonly string? ActionType; - public readonly string? Adjustment; - public readonly int? Cooldown; - public readonly ImmutableArray Dimensions; - public readonly int? EvaluationPeriods; - public readonly string? MaxTargetCapacity; - public readonly string? Maximum; - public readonly string MetricName; - public readonly string? MinTargetCapacity; - public readonly string? Minimum; - public readonly string Namespace; - public readonly string? Operator; - public readonly int? Period; - public readonly string PolicyName; - public readonly string? Statistic; - public readonly string? Target; - public readonly double Threshold; - public readonly string? Unit; - - [OutputConstructor] - private ElastigroupScalingUpPolicy( - string? actionType, - - string? adjustment, - - int? cooldown, - - ImmutableArray dimensions, - - int? evaluationPeriods, - - string? maxTargetCapacity, - - string? maximum, - - string metricName, - - string? minTargetCapacity, - - string? minimum, - - string @namespace, - - string? @operator, - - int? period, - - string policyName, - - string? statistic, - - string? target, - - double threshold, - - string? unit) - { - ActionType = actionType; - Adjustment = adjustment; - Cooldown = cooldown; - Dimensions = dimensions; - EvaluationPeriods = evaluationPeriods; - MaxTargetCapacity = maxTargetCapacity; - Maximum = maximum; - MetricName = metricName; - MinTargetCapacity = minTargetCapacity; - Minimum = minimum; - Namespace = @namespace; - Operator = @operator; - Period = period; - PolicyName = policyName; - Statistic = statistic; - Target = target; - Threshold = threshold; - Unit = unit; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupScalingUpPolicyDimension.cs b/sdk/dotnet/Azure/Outputs/ElastigroupScalingUpPolicyDimension.cs deleted file mode 100644 index aa960603..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupScalingUpPolicyDimension.cs +++ /dev/null @@ -1,32 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupScalingUpPolicyDimension - { - /// - /// The group name. - /// - public readonly string Name; - public readonly string? Value; - - [OutputConstructor] - private ElastigroupScalingUpPolicyDimension( - string name, - - string? value) - { - Name = name; - Value = value; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupScheduledTask.cs b/sdk/dotnet/Azure/Outputs/ElastigroupScheduledTask.cs deleted file mode 100644 index 692d3357..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupScheduledTask.cs +++ /dev/null @@ -1,61 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupScheduledTask - { - public readonly string? Adjustment; - public readonly string? AdjustmentPercentage; - public readonly string? BatchSizePercentage; - public readonly string CronExpression; - public readonly string? GracePeriod; - public readonly bool? IsEnabled; - public readonly string? ScaleMaxCapacity; - public readonly string? ScaleMinCapacity; - public readonly string? ScaleTargetCapacity; - public readonly string TaskType; - - [OutputConstructor] - private ElastigroupScheduledTask( - string? adjustment, - - string? adjustmentPercentage, - - string? batchSizePercentage, - - string cronExpression, - - string? gracePeriod, - - bool? isEnabled, - - string? scaleMaxCapacity, - - string? scaleMinCapacity, - - string? scaleTargetCapacity, - - string taskType) - { - Adjustment = adjustment; - AdjustmentPercentage = adjustmentPercentage; - BatchSizePercentage = batchSizePercentage; - CronExpression = cronExpression; - GracePeriod = gracePeriod; - IsEnabled = isEnabled; - ScaleMaxCapacity = scaleMaxCapacity; - ScaleMinCapacity = scaleMinCapacity; - ScaleTargetCapacity = scaleTargetCapacity; - TaskType = taskType; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupStrategy.cs b/sdk/dotnet/Azure/Outputs/ElastigroupStrategy.cs deleted file mode 100644 index 06bb6c53..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupStrategy.cs +++ /dev/null @@ -1,33 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupStrategy - { - public readonly int? DrainingTimeout; - public readonly int? LowPriorityPercentage; - public readonly int? OdCount; - - [OutputConstructor] - private ElastigroupStrategy( - int? drainingTimeout, - - int? lowPriorityPercentage, - - int? odCount) - { - DrainingTimeout = drainingTimeout; - LowPriorityPercentage = lowPriorityPercentage; - OdCount = odCount; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupUpdatePolicy.cs b/sdk/dotnet/Azure/Outputs/ElastigroupUpdatePolicy.cs deleted file mode 100644 index 6b931279..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupUpdatePolicy.cs +++ /dev/null @@ -1,29 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupUpdatePolicy - { - public readonly Outputs.ElastigroupUpdatePolicyRollConfig? RollConfig; - public readonly bool ShouldRoll; - - [OutputConstructor] - private ElastigroupUpdatePolicy( - Outputs.ElastigroupUpdatePolicyRollConfig? rollConfig, - - bool shouldRoll) - { - RollConfig = rollConfig; - ShouldRoll = shouldRoll; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/ElastigroupUpdatePolicyRollConfig.cs b/sdk/dotnet/Azure/Outputs/ElastigroupUpdatePolicyRollConfig.cs deleted file mode 100644 index d72de6d6..00000000 --- a/sdk/dotnet/Azure/Outputs/ElastigroupUpdatePolicyRollConfig.cs +++ /dev/null @@ -1,33 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Threading.Tasks; -using Pulumi.Serialization; - -namespace Pulumi.SpotInst.Azure.Outputs -{ - - [OutputType] - public sealed class ElastigroupUpdatePolicyRollConfig - { - public readonly int BatchSizePercentage; - public readonly int? GracePeriod; - public readonly string? HealthCheckType; - - [OutputConstructor] - private ElastigroupUpdatePolicyRollConfig( - int batchSizePercentage, - - int? gracePeriod, - - string? healthCheckType) - { - BatchSizePercentage = batchSizePercentage; - GracePeriod = gracePeriod; - HealthCheckType = healthCheckType; - } - } -} diff --git a/sdk/dotnet/Azure/Outputs/OceanNpAutoscaler.cs b/sdk/dotnet/Azure/Outputs/OceanNpAutoscaler.cs index 6120140b..f6c6ac04 100644 --- a/sdk/dotnet/Azure/Outputs/OceanNpAutoscaler.cs +++ b/sdk/dotnet/Azure/Outputs/OceanNpAutoscaler.cs @@ -13,9 +13,21 @@ namespace Pulumi.SpotInst.Azure.Outputs [OutputType] public sealed class OceanNpAutoscaler { + /// + /// Auto Scaling scale down operations. + /// public readonly Outputs.OceanNpAutoscalerAutoscaleDown? AutoscaleDown; + /// + /// Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + /// public readonly Outputs.OceanNpAutoscalerAutoscaleHeadroom? AutoscaleHeadroom; + /// + /// Enable the Ocean Kubernetes Autoscaler. + /// public readonly bool? AutoscaleIsEnabled; + /// + /// Optionally set upper and lower bounds on the resource usage of the cluster. + /// public readonly Outputs.OceanNpAutoscalerResourceLimits? ResourceLimits; [OutputConstructor] diff --git a/sdk/dotnet/Azure/Outputs/OceanNpFilters.cs b/sdk/dotnet/Azure/Outputs/OceanNpFilters.cs index c121e498..5d4e3fd5 100644 --- a/sdk/dotnet/Azure/Outputs/OceanNpFilters.cs +++ b/sdk/dotnet/Azure/Outputs/OceanNpFilters.cs @@ -13,20 +13,67 @@ namespace Pulumi.SpotInst.Azure.Outputs [OutputType] public sealed class OceanNpFilters { + /// + /// In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + /// public readonly string? AcceleratedNetworking; + /// + /// The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + /// public readonly ImmutableArray Architectures; + /// + /// The filtered vm sizes will support at least one of the classes from this list. + /// public readonly string? DiskPerformance; + /// + /// Vm sizes belonging to a series from the list will not be available for scaling + /// public readonly ImmutableArray ExcludeSeries; + /// + /// The filtered gpu types will belong to one of the gpu types from this list. + /// + /// <a id="update-policy"></a> + /// public readonly ImmutableArray GpuTypes; + /// + /// Maximum number of GPUs available. + /// public readonly double? MaxGpu; + /// + /// Maximum amount of Memory (GiB). + /// public readonly double? MaxMemoryGib; + /// + /// Maximum number of vcpus available. + /// public readonly int? MaxVcpu; + /// + /// Minimum number of data disks available. + /// public readonly int? MinDisk; + /// + /// Minimum number of GPUs available. + /// public readonly double? MinGpu; + /// + /// Minimum amount of Memory (GiB). + /// public readonly double? MinMemoryGib; + /// + /// Minimum number of network interfaces. + /// public readonly int? MinNics; + /// + /// Minimum number of vcpus available. + /// public readonly int? MinVcpu; + /// + /// Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + /// public readonly ImmutableArray Series; + /// + /// The filtered vm types will belong to one of the vm types from this list. + /// public readonly ImmutableArray VmTypes; [OutputConstructor] diff --git a/sdk/dotnet/Azure/Outputs/OceanNpHeadroom.cs b/sdk/dotnet/Azure/Outputs/OceanNpHeadroom.cs index dddf0025..1f84cd30 100644 --- a/sdk/dotnet/Azure/Outputs/OceanNpHeadroom.cs +++ b/sdk/dotnet/Azure/Outputs/OceanNpHeadroom.cs @@ -13,9 +13,21 @@ namespace Pulumi.SpotInst.Azure.Outputs [OutputType] public sealed class OceanNpHeadroom { + /// + /// Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + /// public readonly int? CpuPerUnit; + /// + /// Amount of GPU to allocate for headroom unit. + /// public readonly int? GpuPerUnit; + /// + /// Configure the amount of memory (MiB) to allocate the headroom. + /// public readonly int? MemoryPerUnit; + /// + /// The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + /// public readonly int? NumOfUnits; [OutputConstructor] diff --git a/sdk/dotnet/Azure/Outputs/OceanNpHealth.cs b/sdk/dotnet/Azure/Outputs/OceanNpHealth.cs index 4bb9ef04..44773836 100644 --- a/sdk/dotnet/Azure/Outputs/OceanNpHealth.cs +++ b/sdk/dotnet/Azure/Outputs/OceanNpHealth.cs @@ -13,6 +13,9 @@ namespace Pulumi.SpotInst.Azure.Outputs [OutputType] public sealed class OceanNpHealth { + /// + /// The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + /// public readonly int? GracePeriod; [OutputConstructor] diff --git a/sdk/dotnet/Azure/Outputs/OceanNpScheduling.cs b/sdk/dotnet/Azure/Outputs/OceanNpScheduling.cs index 5fd54991..600ad918 100644 --- a/sdk/dotnet/Azure/Outputs/OceanNpScheduling.cs +++ b/sdk/dotnet/Azure/Outputs/OceanNpScheduling.cs @@ -13,6 +13,9 @@ namespace Pulumi.SpotInst.Azure.Outputs [OutputType] public sealed class OceanNpScheduling { + /// + /// [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + /// public readonly Outputs.OceanNpSchedulingShutdownHours? ShutdownHours; [OutputConstructor] diff --git a/sdk/dotnet/Azure/Outputs/OceanNpTaint.cs b/sdk/dotnet/Azure/Outputs/OceanNpTaint.cs index 92ba7e89..44f799b4 100644 --- a/sdk/dotnet/Azure/Outputs/OceanNpTaint.cs +++ b/sdk/dotnet/Azure/Outputs/OceanNpTaint.cs @@ -13,8 +13,17 @@ namespace Pulumi.SpotInst.Azure.Outputs [OutputType] public sealed class OceanNpTaint { + /// + /// Set taint effect. + /// public readonly string Effect; + /// + /// Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + /// public readonly string Key; + /// + /// Set taint value. + /// public readonly string Value; [OutputConstructor] diff --git a/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupFilters.cs b/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupFilters.cs index efebf48b..4eafd2ce 100644 --- a/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupFilters.cs +++ b/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupFilters.cs @@ -13,20 +13,66 @@ namespace Pulumi.SpotInst.Azure.Outputs [OutputType] public sealed class OceanNpVirtualNodeGroupFilters { + /// + /// In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + /// public readonly string? AcceleratedNetworking; + /// + /// The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + /// public readonly ImmutableArray Architectures; + /// + /// The filtered vm sizes will support at least one of the classes from this list. + /// public readonly string? DiskPerformance; + /// + /// Vm sizes belonging to a series from the list will not be available for scaling. + /// public readonly ImmutableArray ExcludeSeries; + /// + /// The filtered gpu types will belong to one of the gpu types from this list. + /// <a id="update-policy"></a> + /// public readonly ImmutableArray GpuTypes; + /// + /// Maximum number of GPUs available. + /// public readonly double? MaxGpu; + /// + /// Maximum amount of Memory (GiB). + /// public readonly double? MaxMemoryGib; + /// + /// Maximum number of vcpus available. + /// public readonly int? MaxVcpu; + /// + /// Minimum number of data disks available. + /// public readonly int? MinDisk; + /// + /// Minimum number of GPUs available. + /// public readonly double? MinGpu; + /// + /// Minimum amount of Memory (GiB). + /// public readonly double? MinMemoryGib; + /// + /// Minimum number of network interfaces. + /// public readonly int? MinNics; + /// + /// Minimum number of vcpus available. + /// public readonly int? MinVcpu; + /// + /// Vm sizes belonging to a series from the list will be available for scaling. + /// public readonly ImmutableArray Series; + /// + /// The filtered vm types will belong to one of the vm types from this list. + /// public readonly ImmutableArray VmTypes; [OutputConstructor] diff --git a/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupHeadroom.cs b/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupHeadroom.cs index db564384..af840822 100644 --- a/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupHeadroom.cs +++ b/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupHeadroom.cs @@ -13,9 +13,21 @@ namespace Pulumi.SpotInst.Azure.Outputs [OutputType] public sealed class OceanNpVirtualNodeGroupHeadroom { + /// + /// Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + /// public readonly int? CpuPerUnit; + /// + /// Amount of GPU to allocate for headroom unit. + /// public readonly int? GpuPerUnit; + /// + /// Configure the amount of memory (MiB) to allocate the headroom. + /// public readonly int? MemoryPerUnit; + /// + /// The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + /// public readonly int? NumOfUnits; [OutputConstructor] diff --git a/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupTaint.cs b/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupTaint.cs index 517d6ff0..4185b6a3 100644 --- a/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupTaint.cs +++ b/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupTaint.cs @@ -13,8 +13,17 @@ namespace Pulumi.SpotInst.Azure.Outputs [OutputType] public sealed class OceanNpVirtualNodeGroupTaint { + /// + /// Set taint effect. + /// public readonly string Effect; + /// + /// Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + /// public readonly string Key; + /// + /// Set taint value. + /// public readonly string Value; [OutputConstructor] diff --git a/sdk/go/spotinst/azure/elastigroup.go b/sdk/go/spotinst/azure/elastigroup.go deleted file mode 100644 index f9aa8462..00000000 --- a/sdk/go/spotinst/azure/elastigroup.go +++ /dev/null @@ -1,603 +0,0 @@ -// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package azure - -import ( - "context" - "reflect" - - "errors" - "github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/internal" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -// Provides a Spotinst elastigroup Azure resource. -// -// ## Example Usage -// -// ```go -// package main -// -// import ( -// -// "github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst" -// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -// -// ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// _, err := spotinst.NewElastigroupAzureV3(ctx, "test_azure_group", &spotinst.ElastigroupAzureV3Args{ -// Name: pulumi.String("example_elastigroup_azure"), -// ResourceGroupName: pulumi.String("spotinst-azure"), -// Region: pulumi.String("eastus"), -// Os: pulumi.String("Linux"), -// MinSize: pulumi.Int(0), -// MaxSize: pulumi.Int(1), -// DesiredCapacity: pulumi.Int(1), -// OdSizes: pulumi.StringArray{ -// pulumi.String("standard_a1_v1"), -// pulumi.String("standard_a1_v2"), -// }, -// SpotSizes: pulumi.StringArray{ -// pulumi.String("standard_a1_v1"), -// pulumi.String("standard_a1_v2"), -// }, -// CustomData: pulumi.String("IyEvYmluL2Jhc2gKZWNobyAidGVzdCI="), -// ManagedServiceIdentities: spotinst.ElastigroupAzureV3ManagedServiceIdentityArray{ -// &spotinst.ElastigroupAzureV3ManagedServiceIdentityArgs{ -// ResourceGroupName: pulumi.String("MC_ocean-westus-dev_ocean-westus-dev-aks_westus"), -// Name: pulumi.String("ocean-westus-dev-aks-agentpool"), -// }, -// }, -// Tags: spotinst.ElastigroupAzureV3TagArray{ -// &spotinst.ElastigroupAzureV3TagArgs{ -// Key: pulumi.String("key1"), -// Value: pulumi.String("value1"), -// }, -// &spotinst.ElastigroupAzureV3TagArgs{ -// Key: pulumi.String("key2"), -// Value: pulumi.String("value2"), -// }, -// }, -// Images: spotinst.ElastigroupAzureV3ImageArray{ -// &spotinst.ElastigroupAzureV3ImageArgs{ -// Marketplaces: spotinst.ElastigroupAzureV3ImageMarketplaceArray{ -// &spotinst.ElastigroupAzureV3ImageMarketplaceArgs{ -// Publisher: pulumi.String("Canonical"), -// Offer: pulumi.String("UbuntuServer"), -// Sku: pulumi.String("18.04-LTS"), -// Version: pulumi.String("latest"), -// }, -// }, -// }, -// }, -// SpotPercentage: pulumi.Int(65), -// DrainingTimeout: pulumi.Int(300), -// FallbackToOnDemand: pulumi.Bool(true), -// Network: &spotinst.ElastigroupAzureV3NetworkArgs{ -// VirtualNetworkName: pulumi.String("VirtualNetworkName"), -// ResourceGroupName: pulumi.String("ResourceGroup"), -// NetworkInterfaces: spotinst.ElastigroupAzureV3NetworkNetworkInterfaceArray{ -// &spotinst.ElastigroupAzureV3NetworkNetworkInterfaceArgs{ -// SubnetName: pulumi.String("default"), -// AssignPublicIp: pulumi.Bool(false), -// IsPrimary: pulumi.Bool(true), -// AdditionalIpConfigs: spotinst.ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArray{ -// &spotinst.ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArgs{ -// Name: pulumi.String("SecondaryIPConfig"), -// PrivateIPVersion: pulumi.String("IPv4"), -// }, -// }, -// ApplicationSecurityGroups: spotinst.ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArray{ -// &spotinst.ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArgs{ -// Name: pulumi.String("ApplicationSecurityGroupName"), -// ResourceGroupName: pulumi.String("ResourceGroup"), -// }, -// }, -// }, -// }, -// }, -// Login: &spotinst.ElastigroupAzureV3LoginArgs{ -// UserName: pulumi.String("admin"), -// SshPublicKey: pulumi.String("33a2s1f3g5a1df5g1ad3f2g1adfg56dfg=="), -// }, -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// ``` -// -// ## Strategy -// -// * `spotPercentage` - (Optional) Percentage of Spot-VMs to maintain. Required if `onDemandCount` is not specified. -// * `onDemandCount` - (Optional) Number of On-Demand VMs to maintain. Required if `spotPercentage` is not specified. -// * `fallbackToOnDemand` - -// * `drainingTimeout` - (Optional, Default `120`) Time (seconds) to allow the instance to be drained from incoming TCP connections and detached from MLB before terminating it during a scale-down operation. -// -// -type Elastigroup struct { - pulumi.CustomResourceState - - // Custom init script file or text in Base64 encoded format. - CustomData pulumi.StringPtrOutput `pulumi:"customData"` - // The desired number of instances the group should have at any time. - DesiredCapacity pulumi.IntPtrOutput `pulumi:"desiredCapacity"` - HealthCheck ElastigroupHealthCheckPtrOutput `pulumi:"healthCheck"` - Images ElastigroupImageArrayOutput `pulumi:"images"` - IntegrationKubernetes ElastigroupIntegrationKubernetesPtrOutput `pulumi:"integrationKubernetes"` - IntegrationMultaiRuntime ElastigroupIntegrationMultaiRuntimePtrOutput `pulumi:"integrationMultaiRuntime"` - LoadBalancers ElastigroupLoadBalancerArrayOutput `pulumi:"loadBalancers"` - Login ElastigroupLoginPtrOutput `pulumi:"login"` - LowPrioritySizes pulumi.StringArrayOutput `pulumi:"lowPrioritySizes"` - ManagedServiceIdentities ElastigroupManagedServiceIdentityArrayOutput `pulumi:"managedServiceIdentities"` - // The maximum number of instances the group should have at any time. - MaxSize pulumi.IntOutput `pulumi:"maxSize"` - // The minimum number of instances the group should have at any time. - MinSize pulumi.IntOutput `pulumi:"minSize"` - // The group name. - Name pulumi.StringOutput `pulumi:"name"` - Network ElastigroupNetworkOutput `pulumi:"network"` - // Available On-Demand sizes - OdSizes pulumi.StringArrayOutput `pulumi:"odSizes"` - Product pulumi.StringOutput `pulumi:"product"` - // The region your Azure group will be created in. - Region pulumi.StringOutput `pulumi:"region"` - // Name of the Resource Group for Elastigroup. - ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"` - ScalingDownPolicies ElastigroupScalingDownPolicyArrayOutput `pulumi:"scalingDownPolicies"` - ScalingUpPolicies ElastigroupScalingUpPolicyArrayOutput `pulumi:"scalingUpPolicies"` - ScheduledTasks ElastigroupScheduledTaskArrayOutput `pulumi:"scheduledTasks"` - ShutdownScript pulumi.StringPtrOutput `pulumi:"shutdownScript"` - Strategy ElastigroupStrategyOutput `pulumi:"strategy"` - UpdatePolicy ElastigroupUpdatePolicyPtrOutput `pulumi:"updatePolicy"` - UserData pulumi.StringPtrOutput `pulumi:"userData"` -} - -// NewElastigroup registers a new resource with the given unique name, arguments, and options. -func NewElastigroup(ctx *pulumi.Context, - name string, args *ElastigroupArgs, opts ...pulumi.ResourceOption) (*Elastigroup, error) { - if args == nil { - return nil, errors.New("missing one or more required arguments") - } - - if args.LowPrioritySizes == nil { - return nil, errors.New("invalid value for required argument 'LowPrioritySizes'") - } - if args.Network == nil { - return nil, errors.New("invalid value for required argument 'Network'") - } - if args.OdSizes == nil { - return nil, errors.New("invalid value for required argument 'OdSizes'") - } - if args.Product == nil { - return nil, errors.New("invalid value for required argument 'Product'") - } - if args.Region == nil { - return nil, errors.New("invalid value for required argument 'Region'") - } - if args.ResourceGroupName == nil { - return nil, errors.New("invalid value for required argument 'ResourceGroupName'") - } - if args.Strategy == nil { - return nil, errors.New("invalid value for required argument 'Strategy'") - } - opts = internal.PkgResourceDefaultOpts(opts) - var resource Elastigroup - err := ctx.RegisterResource("spotinst:azure/elastigroup:Elastigroup", name, args, &resource, opts...) - if err != nil { - return nil, err - } - return &resource, nil -} - -// GetElastigroup gets an existing Elastigroup resource's state with the given name, ID, and optional -// state properties that are used to uniquely qualify the lookup (nil if not required). -func GetElastigroup(ctx *pulumi.Context, - name string, id pulumi.IDInput, state *ElastigroupState, opts ...pulumi.ResourceOption) (*Elastigroup, error) { - var resource Elastigroup - err := ctx.ReadResource("spotinst:azure/elastigroup:Elastigroup", name, id, state, &resource, opts...) - if err != nil { - return nil, err - } - return &resource, nil -} - -// Input properties used for looking up and filtering Elastigroup resources. -type elastigroupState struct { - // Custom init script file or text in Base64 encoded format. - CustomData *string `pulumi:"customData"` - // The desired number of instances the group should have at any time. - DesiredCapacity *int `pulumi:"desiredCapacity"` - HealthCheck *ElastigroupHealthCheck `pulumi:"healthCheck"` - Images []ElastigroupImage `pulumi:"images"` - IntegrationKubernetes *ElastigroupIntegrationKubernetes `pulumi:"integrationKubernetes"` - IntegrationMultaiRuntime *ElastigroupIntegrationMultaiRuntime `pulumi:"integrationMultaiRuntime"` - LoadBalancers []ElastigroupLoadBalancer `pulumi:"loadBalancers"` - Login *ElastigroupLogin `pulumi:"login"` - LowPrioritySizes []string `pulumi:"lowPrioritySizes"` - ManagedServiceIdentities []ElastigroupManagedServiceIdentity `pulumi:"managedServiceIdentities"` - // The maximum number of instances the group should have at any time. - MaxSize *int `pulumi:"maxSize"` - // The minimum number of instances the group should have at any time. - MinSize *int `pulumi:"minSize"` - // The group name. - Name *string `pulumi:"name"` - Network *ElastigroupNetwork `pulumi:"network"` - // Available On-Demand sizes - OdSizes []string `pulumi:"odSizes"` - Product *string `pulumi:"product"` - // The region your Azure group will be created in. - Region *string `pulumi:"region"` - // Name of the Resource Group for Elastigroup. - ResourceGroupName *string `pulumi:"resourceGroupName"` - ScalingDownPolicies []ElastigroupScalingDownPolicy `pulumi:"scalingDownPolicies"` - ScalingUpPolicies []ElastigroupScalingUpPolicy `pulumi:"scalingUpPolicies"` - ScheduledTasks []ElastigroupScheduledTask `pulumi:"scheduledTasks"` - ShutdownScript *string `pulumi:"shutdownScript"` - Strategy *ElastigroupStrategy `pulumi:"strategy"` - UpdatePolicy *ElastigroupUpdatePolicy `pulumi:"updatePolicy"` - UserData *string `pulumi:"userData"` -} - -type ElastigroupState struct { - // Custom init script file or text in Base64 encoded format. - CustomData pulumi.StringPtrInput - // The desired number of instances the group should have at any time. - DesiredCapacity pulumi.IntPtrInput - HealthCheck ElastigroupHealthCheckPtrInput - Images ElastigroupImageArrayInput - IntegrationKubernetes ElastigroupIntegrationKubernetesPtrInput - IntegrationMultaiRuntime ElastigroupIntegrationMultaiRuntimePtrInput - LoadBalancers ElastigroupLoadBalancerArrayInput - Login ElastigroupLoginPtrInput - LowPrioritySizes pulumi.StringArrayInput - ManagedServiceIdentities ElastigroupManagedServiceIdentityArrayInput - // The maximum number of instances the group should have at any time. - MaxSize pulumi.IntPtrInput - // The minimum number of instances the group should have at any time. - MinSize pulumi.IntPtrInput - // The group name. - Name pulumi.StringPtrInput - Network ElastigroupNetworkPtrInput - // Available On-Demand sizes - OdSizes pulumi.StringArrayInput - Product pulumi.StringPtrInput - // The region your Azure group will be created in. - Region pulumi.StringPtrInput - // Name of the Resource Group for Elastigroup. - ResourceGroupName pulumi.StringPtrInput - ScalingDownPolicies ElastigroupScalingDownPolicyArrayInput - ScalingUpPolicies ElastigroupScalingUpPolicyArrayInput - ScheduledTasks ElastigroupScheduledTaskArrayInput - ShutdownScript pulumi.StringPtrInput - Strategy ElastigroupStrategyPtrInput - UpdatePolicy ElastigroupUpdatePolicyPtrInput - UserData pulumi.StringPtrInput -} - -func (ElastigroupState) ElementType() reflect.Type { - return reflect.TypeOf((*elastigroupState)(nil)).Elem() -} - -type elastigroupArgs struct { - // Custom init script file or text in Base64 encoded format. - CustomData *string `pulumi:"customData"` - // The desired number of instances the group should have at any time. - DesiredCapacity *int `pulumi:"desiredCapacity"` - HealthCheck *ElastigroupHealthCheck `pulumi:"healthCheck"` - Images []ElastigroupImage `pulumi:"images"` - IntegrationKubernetes *ElastigroupIntegrationKubernetes `pulumi:"integrationKubernetes"` - IntegrationMultaiRuntime *ElastigroupIntegrationMultaiRuntime `pulumi:"integrationMultaiRuntime"` - LoadBalancers []ElastigroupLoadBalancer `pulumi:"loadBalancers"` - Login *ElastigroupLogin `pulumi:"login"` - LowPrioritySizes []string `pulumi:"lowPrioritySizes"` - ManagedServiceIdentities []ElastigroupManagedServiceIdentity `pulumi:"managedServiceIdentities"` - // The maximum number of instances the group should have at any time. - MaxSize *int `pulumi:"maxSize"` - // The minimum number of instances the group should have at any time. - MinSize *int `pulumi:"minSize"` - // The group name. - Name *string `pulumi:"name"` - Network ElastigroupNetwork `pulumi:"network"` - // Available On-Demand sizes - OdSizes []string `pulumi:"odSizes"` - Product string `pulumi:"product"` - // The region your Azure group will be created in. - Region string `pulumi:"region"` - // Name of the Resource Group for Elastigroup. - ResourceGroupName string `pulumi:"resourceGroupName"` - ScalingDownPolicies []ElastigroupScalingDownPolicy `pulumi:"scalingDownPolicies"` - ScalingUpPolicies []ElastigroupScalingUpPolicy `pulumi:"scalingUpPolicies"` - ScheduledTasks []ElastigroupScheduledTask `pulumi:"scheduledTasks"` - ShutdownScript *string `pulumi:"shutdownScript"` - Strategy ElastigroupStrategy `pulumi:"strategy"` - UpdatePolicy *ElastigroupUpdatePolicy `pulumi:"updatePolicy"` - UserData *string `pulumi:"userData"` -} - -// The set of arguments for constructing a Elastigroup resource. -type ElastigroupArgs struct { - // Custom init script file or text in Base64 encoded format. - CustomData pulumi.StringPtrInput - // The desired number of instances the group should have at any time. - DesiredCapacity pulumi.IntPtrInput - HealthCheck ElastigroupHealthCheckPtrInput - Images ElastigroupImageArrayInput - IntegrationKubernetes ElastigroupIntegrationKubernetesPtrInput - IntegrationMultaiRuntime ElastigroupIntegrationMultaiRuntimePtrInput - LoadBalancers ElastigroupLoadBalancerArrayInput - Login ElastigroupLoginPtrInput - LowPrioritySizes pulumi.StringArrayInput - ManagedServiceIdentities ElastigroupManagedServiceIdentityArrayInput - // The maximum number of instances the group should have at any time. - MaxSize pulumi.IntPtrInput - // The minimum number of instances the group should have at any time. - MinSize pulumi.IntPtrInput - // The group name. - Name pulumi.StringPtrInput - Network ElastigroupNetworkInput - // Available On-Demand sizes - OdSizes pulumi.StringArrayInput - Product pulumi.StringInput - // The region your Azure group will be created in. - Region pulumi.StringInput - // Name of the Resource Group for Elastigroup. - ResourceGroupName pulumi.StringInput - ScalingDownPolicies ElastigroupScalingDownPolicyArrayInput - ScalingUpPolicies ElastigroupScalingUpPolicyArrayInput - ScheduledTasks ElastigroupScheduledTaskArrayInput - ShutdownScript pulumi.StringPtrInput - Strategy ElastigroupStrategyInput - UpdatePolicy ElastigroupUpdatePolicyPtrInput - UserData pulumi.StringPtrInput -} - -func (ElastigroupArgs) ElementType() reflect.Type { - return reflect.TypeOf((*elastigroupArgs)(nil)).Elem() -} - -type ElastigroupInput interface { - pulumi.Input - - ToElastigroupOutput() ElastigroupOutput - ToElastigroupOutputWithContext(ctx context.Context) ElastigroupOutput -} - -func (*Elastigroup) ElementType() reflect.Type { - return reflect.TypeOf((**Elastigroup)(nil)).Elem() -} - -func (i *Elastigroup) ToElastigroupOutput() ElastigroupOutput { - return i.ToElastigroupOutputWithContext(context.Background()) -} - -func (i *Elastigroup) ToElastigroupOutputWithContext(ctx context.Context) ElastigroupOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupOutput) -} - -// ElastigroupArrayInput is an input type that accepts ElastigroupArray and ElastigroupArrayOutput values. -// You can construct a concrete instance of `ElastigroupArrayInput` via: -// -// ElastigroupArray{ ElastigroupArgs{...} } -type ElastigroupArrayInput interface { - pulumi.Input - - ToElastigroupArrayOutput() ElastigroupArrayOutput - ToElastigroupArrayOutputWithContext(context.Context) ElastigroupArrayOutput -} - -type ElastigroupArray []ElastigroupInput - -func (ElastigroupArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]*Elastigroup)(nil)).Elem() -} - -func (i ElastigroupArray) ToElastigroupArrayOutput() ElastigroupArrayOutput { - return i.ToElastigroupArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupArray) ToElastigroupArrayOutputWithContext(ctx context.Context) ElastigroupArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupArrayOutput) -} - -// ElastigroupMapInput is an input type that accepts ElastigroupMap and ElastigroupMapOutput values. -// You can construct a concrete instance of `ElastigroupMapInput` via: -// -// ElastigroupMap{ "key": ElastigroupArgs{...} } -type ElastigroupMapInput interface { - pulumi.Input - - ToElastigroupMapOutput() ElastigroupMapOutput - ToElastigroupMapOutputWithContext(context.Context) ElastigroupMapOutput -} - -type ElastigroupMap map[string]ElastigroupInput - -func (ElastigroupMap) ElementType() reflect.Type { - return reflect.TypeOf((*map[string]*Elastigroup)(nil)).Elem() -} - -func (i ElastigroupMap) ToElastigroupMapOutput() ElastigroupMapOutput { - return i.ToElastigroupMapOutputWithContext(context.Background()) -} - -func (i ElastigroupMap) ToElastigroupMapOutputWithContext(ctx context.Context) ElastigroupMapOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupMapOutput) -} - -type ElastigroupOutput struct{ *pulumi.OutputState } - -func (ElastigroupOutput) ElementType() reflect.Type { - return reflect.TypeOf((**Elastigroup)(nil)).Elem() -} - -func (o ElastigroupOutput) ToElastigroupOutput() ElastigroupOutput { - return o -} - -func (o ElastigroupOutput) ToElastigroupOutputWithContext(ctx context.Context) ElastigroupOutput { - return o -} - -// Custom init script file or text in Base64 encoded format. -func (o ElastigroupOutput) CustomData() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.StringPtrOutput { return v.CustomData }).(pulumi.StringPtrOutput) -} - -// The desired number of instances the group should have at any time. -func (o ElastigroupOutput) DesiredCapacity() pulumi.IntPtrOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.IntPtrOutput { return v.DesiredCapacity }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupOutput) HealthCheck() ElastigroupHealthCheckPtrOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupHealthCheckPtrOutput { return v.HealthCheck }).(ElastigroupHealthCheckPtrOutput) -} - -func (o ElastigroupOutput) Images() ElastigroupImageArrayOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupImageArrayOutput { return v.Images }).(ElastigroupImageArrayOutput) -} - -func (o ElastigroupOutput) IntegrationKubernetes() ElastigroupIntegrationKubernetesPtrOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupIntegrationKubernetesPtrOutput { return v.IntegrationKubernetes }).(ElastigroupIntegrationKubernetesPtrOutput) -} - -func (o ElastigroupOutput) IntegrationMultaiRuntime() ElastigroupIntegrationMultaiRuntimePtrOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupIntegrationMultaiRuntimePtrOutput { return v.IntegrationMultaiRuntime }).(ElastigroupIntegrationMultaiRuntimePtrOutput) -} - -func (o ElastigroupOutput) LoadBalancers() ElastigroupLoadBalancerArrayOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupLoadBalancerArrayOutput { return v.LoadBalancers }).(ElastigroupLoadBalancerArrayOutput) -} - -func (o ElastigroupOutput) Login() ElastigroupLoginPtrOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupLoginPtrOutput { return v.Login }).(ElastigroupLoginPtrOutput) -} - -func (o ElastigroupOutput) LowPrioritySizes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.StringArrayOutput { return v.LowPrioritySizes }).(pulumi.StringArrayOutput) -} - -func (o ElastigroupOutput) ManagedServiceIdentities() ElastigroupManagedServiceIdentityArrayOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupManagedServiceIdentityArrayOutput { return v.ManagedServiceIdentities }).(ElastigroupManagedServiceIdentityArrayOutput) -} - -// The maximum number of instances the group should have at any time. -func (o ElastigroupOutput) MaxSize() pulumi.IntOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.IntOutput { return v.MaxSize }).(pulumi.IntOutput) -} - -// The minimum number of instances the group should have at any time. -func (o ElastigroupOutput) MinSize() pulumi.IntOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.IntOutput { return v.MinSize }).(pulumi.IntOutput) -} - -// The group name. -func (o ElastigroupOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) -} - -func (o ElastigroupOutput) Network() ElastigroupNetworkOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupNetworkOutput { return v.Network }).(ElastigroupNetworkOutput) -} - -// Available On-Demand sizes -func (o ElastigroupOutput) OdSizes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.StringArrayOutput { return v.OdSizes }).(pulumi.StringArrayOutput) -} - -func (o ElastigroupOutput) Product() pulumi.StringOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.StringOutput { return v.Product }).(pulumi.StringOutput) -} - -// The region your Azure group will be created in. -func (o ElastigroupOutput) Region() pulumi.StringOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) -} - -// Name of the Resource Group for Elastigroup. -func (o ElastigroupOutput) ResourceGroupName() pulumi.StringOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.StringOutput { return v.ResourceGroupName }).(pulumi.StringOutput) -} - -func (o ElastigroupOutput) ScalingDownPolicies() ElastigroupScalingDownPolicyArrayOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupScalingDownPolicyArrayOutput { return v.ScalingDownPolicies }).(ElastigroupScalingDownPolicyArrayOutput) -} - -func (o ElastigroupOutput) ScalingUpPolicies() ElastigroupScalingUpPolicyArrayOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupScalingUpPolicyArrayOutput { return v.ScalingUpPolicies }).(ElastigroupScalingUpPolicyArrayOutput) -} - -func (o ElastigroupOutput) ScheduledTasks() ElastigroupScheduledTaskArrayOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupScheduledTaskArrayOutput { return v.ScheduledTasks }).(ElastigroupScheduledTaskArrayOutput) -} - -func (o ElastigroupOutput) ShutdownScript() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.StringPtrOutput { return v.ShutdownScript }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupOutput) Strategy() ElastigroupStrategyOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupStrategyOutput { return v.Strategy }).(ElastigroupStrategyOutput) -} - -func (o ElastigroupOutput) UpdatePolicy() ElastigroupUpdatePolicyPtrOutput { - return o.ApplyT(func(v *Elastigroup) ElastigroupUpdatePolicyPtrOutput { return v.UpdatePolicy }).(ElastigroupUpdatePolicyPtrOutput) -} - -func (o ElastigroupOutput) UserData() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Elastigroup) pulumi.StringPtrOutput { return v.UserData }).(pulumi.StringPtrOutput) -} - -type ElastigroupArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]*Elastigroup)(nil)).Elem() -} - -func (o ElastigroupArrayOutput) ToElastigroupArrayOutput() ElastigroupArrayOutput { - return o -} - -func (o ElastigroupArrayOutput) ToElastigroupArrayOutputWithContext(ctx context.Context) ElastigroupArrayOutput { - return o -} - -func (o ElastigroupArrayOutput) Index(i pulumi.IntInput) ElastigroupOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Elastigroup { - return vs[0].([]*Elastigroup)[vs[1].(int)] - }).(ElastigroupOutput) -} - -type ElastigroupMapOutput struct{ *pulumi.OutputState } - -func (ElastigroupMapOutput) ElementType() reflect.Type { - return reflect.TypeOf((*map[string]*Elastigroup)(nil)).Elem() -} - -func (o ElastigroupMapOutput) ToElastigroupMapOutput() ElastigroupMapOutput { - return o -} - -func (o ElastigroupMapOutput) ToElastigroupMapOutputWithContext(ctx context.Context) ElastigroupMapOutput { - return o -} - -func (o ElastigroupMapOutput) MapIndex(k pulumi.StringInput) ElastigroupOutput { - return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Elastigroup { - return vs[0].(map[string]*Elastigroup)[vs[1].(string)] - }).(ElastigroupOutput) -} - -func init() { - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupInput)(nil)).Elem(), &Elastigroup{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupArrayInput)(nil)).Elem(), ElastigroupArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupMapInput)(nil)).Elem(), ElastigroupMap{}) - pulumi.RegisterOutputType(ElastigroupOutput{}) - pulumi.RegisterOutputType(ElastigroupArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupMapOutput{}) -} diff --git a/sdk/go/spotinst/azure/init.go b/sdk/go/spotinst/azure/init.go index 558ceab1..a4848ed2 100644 --- a/sdk/go/spotinst/azure/init.go +++ b/sdk/go/spotinst/azure/init.go @@ -21,8 +21,6 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { - case "spotinst:azure/elastigroup:Elastigroup": - r = &Elastigroup{} case "spotinst:azure/ocean:Ocean": r = &Ocean{} case "spotinst:azure/oceanNp:OceanNp": @@ -44,11 +42,6 @@ func init() { if err != nil { version = semver.Version{Major: 1} } - pulumi.RegisterResourceModule( - "spotinst", - "azure/elastigroup", - &module{version}, - ) pulumi.RegisterResourceModule( "spotinst", "azure/ocean", diff --git a/sdk/go/spotinst/azure/oceanNp.go b/sdk/go/spotinst/azure/oceanNp.go index 10b992e6..4a2cf6d3 100644 --- a/sdk/go/spotinst/azure/oceanNp.go +++ b/sdk/go/spotinst/azure/oceanNp.go @@ -12,38 +12,100 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Manages a Spotinst Ocean AKS resource. +// +// ## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/azure" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := azure.NewOceanNp(ctx, "example", &azure.OceanNpArgs{ +// Name: pulumi.String("test"), +// AksRegion: pulumi.String("eastus"), +// AksClusterName: pulumi.String("test-cluster"), +// AksInfrastructureResourceGroupName: pulumi.String("MC_TestResourceGroup_test-cluster_eastus"), +// AksResourceGroupName: pulumi.String("TestResourceGroup"), +// ControllerClusterId: pulumi.String("test-123124"), +// AvailabilityZones: pulumi.StringArray{ +// pulumi.String("1"), +// pulumi.String("2"), +// pulumi.String("3"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values type OceanNp struct { pulumi.CustomResourceState - AksClusterName pulumi.StringOutput `pulumi:"aksClusterName"` - AksInfrastructureResourceGroupName pulumi.StringOutput `pulumi:"aksInfrastructureResourceGroupName"` - AksRegion pulumi.StringOutput `pulumi:"aksRegion"` - AksResourceGroupName pulumi.StringOutput `pulumi:"aksResourceGroupName"` - Autoscaler OceanNpAutoscalerPtrOutput `pulumi:"autoscaler"` - AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"` - ControllerClusterId pulumi.StringOutput `pulumi:"controllerClusterId"` - EnableNodePublicIp pulumi.BoolPtrOutput `pulumi:"enableNodePublicIp"` - FallbackToOndemand pulumi.BoolPtrOutput `pulumi:"fallbackToOndemand"` - Filters OceanNpFiltersPtrOutput `pulumi:"filters"` - Headrooms OceanNpHeadroomArrayOutput `pulumi:"headrooms"` - Health OceanNpHealthPtrOutput `pulumi:"health"` - KubernetesVersion pulumi.StringPtrOutput `pulumi:"kubernetesVersion"` - Labels pulumi.MapOutput `pulumi:"labels"` - MaxCount pulumi.IntPtrOutput `pulumi:"maxCount"` - MaxPodsPerNode pulumi.IntPtrOutput `pulumi:"maxPodsPerNode"` - MinCount pulumi.IntPtrOutput `pulumi:"minCount"` - Name pulumi.StringOutput `pulumi:"name"` - OsDiskSizeGb pulumi.IntPtrOutput `pulumi:"osDiskSizeGb"` - OsDiskType pulumi.StringPtrOutput `pulumi:"osDiskType"` - OsSku pulumi.StringPtrOutput `pulumi:"osSku"` - OsType pulumi.StringPtrOutput `pulumi:"osType"` - PodSubnetIds pulumi.StringArrayOutput `pulumi:"podSubnetIds"` - Scheduling OceanNpSchedulingPtrOutput `pulumi:"scheduling"` - SpotPercentage pulumi.IntPtrOutput `pulumi:"spotPercentage"` - Tags pulumi.MapOutput `pulumi:"tags"` - Taints OceanNpTaintArrayOutput `pulumi:"taints"` - UpdatePolicy OceanNpUpdatePolicyPtrOutput `pulumi:"updatePolicy"` - VnetSubnetIds pulumi.StringArrayOutput `pulumi:"vnetSubnetIds"` + AksClusterName pulumi.StringOutput `pulumi:"aksClusterName"` + AksInfrastructureResourceGroupName pulumi.StringOutput `pulumi:"aksInfrastructureResourceGroupName"` + AksRegion pulumi.StringOutput `pulumi:"aksRegion"` + AksResourceGroupName pulumi.StringOutput `pulumi:"aksResourceGroupName"` + // The Ocean Kubernetes Autoscaler object. + Autoscaler OceanNpAutoscalerPtrOutput `pulumi:"autoscaler"` + // An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"` + // Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + ControllerClusterId pulumi.StringOutput `pulumi:"controllerClusterId"` + // Enable node public IP. + EnableNodePublicIp pulumi.BoolPtrOutput `pulumi:"enableNodePublicIp"` + // If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + FallbackToOndemand pulumi.BoolPtrOutput `pulumi:"fallbackToOndemand"` + // Filters for the VM sizes that can be launched from the virtual node group. + Filters OceanNpFiltersPtrOutput `pulumi:"filters"` + // Specify the custom headroom per VNG. Provide a list of headroom objects. + Headrooms OceanNpHeadroomArrayOutput `pulumi:"headrooms"` + // The Ocean AKS Health object. + Health OceanNpHealthPtrOutput `pulumi:"health"` + // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + KubernetesVersion pulumi.StringPtrOutput `pulumi:"kubernetesVersion"` + // An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + Labels pulumi.MapOutput `pulumi:"labels"` + // Maximum node count limit. + MaxCount pulumi.IntPtrOutput `pulumi:"maxCount"` + // The maximum number of pods per node in the node pools. + MaxPodsPerNode pulumi.IntPtrOutput `pulumi:"maxPodsPerNode"` + // Minimum node count limit. + MinCount pulumi.IntPtrOutput `pulumi:"minCount"` + // Add a name for the Ocean cluster. + Name pulumi.StringOutput `pulumi:"name"` + // The size of the OS disk in GB. + OsDiskSizeGb pulumi.IntPtrOutput `pulumi:"osDiskSizeGb"` + // The type of the OS disk. + OsDiskType pulumi.StringPtrOutput `pulumi:"osDiskType"` + // The OS SKU of the OS type. Must correlate with the os type. + OsSku pulumi.StringPtrOutput `pulumi:"osSku"` + // The OS type of the OS disk. Can't be modified once set. + OsType pulumi.StringPtrOutput `pulumi:"osType"` + // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + PodSubnetIds pulumi.StringArrayOutput `pulumi:"podSubnetIds"` + // An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + Scheduling OceanNpSchedulingPtrOutput `pulumi:"scheduling"` + // Percentage of spot VMs to maintain. + SpotPercentage pulumi.IntPtrOutput `pulumi:"spotPercentage"` + Tags pulumi.MapOutput `pulumi:"tags"` + // Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + Taints OceanNpTaintArrayOutput `pulumi:"taints"` + UpdatePolicy OceanNpUpdatePolicyPtrOutput `pulumi:"updatePolicy"` + // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + VnetSubnetIds pulumi.StringArrayOutput `pulumi:"vnetSubnetIds"` } // NewOceanNp registers a new resource with the given unique name, arguments, and options. @@ -94,35 +156,58 @@ func GetOceanNp(ctx *pulumi.Context, // Input properties used for looking up and filtering OceanNp resources. type oceanNpState struct { - AksClusterName *string `pulumi:"aksClusterName"` - AksInfrastructureResourceGroupName *string `pulumi:"aksInfrastructureResourceGroupName"` - AksRegion *string `pulumi:"aksRegion"` - AksResourceGroupName *string `pulumi:"aksResourceGroupName"` - Autoscaler *OceanNpAutoscaler `pulumi:"autoscaler"` - AvailabilityZones []string `pulumi:"availabilityZones"` - ControllerClusterId *string `pulumi:"controllerClusterId"` - EnableNodePublicIp *bool `pulumi:"enableNodePublicIp"` - FallbackToOndemand *bool `pulumi:"fallbackToOndemand"` - Filters *OceanNpFilters `pulumi:"filters"` - Headrooms []OceanNpHeadroom `pulumi:"headrooms"` - Health *OceanNpHealth `pulumi:"health"` - KubernetesVersion *string `pulumi:"kubernetesVersion"` - Labels map[string]interface{} `pulumi:"labels"` - MaxCount *int `pulumi:"maxCount"` - MaxPodsPerNode *int `pulumi:"maxPodsPerNode"` - MinCount *int `pulumi:"minCount"` - Name *string `pulumi:"name"` - OsDiskSizeGb *int `pulumi:"osDiskSizeGb"` - OsDiskType *string `pulumi:"osDiskType"` - OsSku *string `pulumi:"osSku"` - OsType *string `pulumi:"osType"` - PodSubnetIds []string `pulumi:"podSubnetIds"` - Scheduling *OceanNpScheduling `pulumi:"scheduling"` - SpotPercentage *int `pulumi:"spotPercentage"` - Tags map[string]interface{} `pulumi:"tags"` - Taints []OceanNpTaint `pulumi:"taints"` - UpdatePolicy *OceanNpUpdatePolicy `pulumi:"updatePolicy"` - VnetSubnetIds []string `pulumi:"vnetSubnetIds"` + AksClusterName *string `pulumi:"aksClusterName"` + AksInfrastructureResourceGroupName *string `pulumi:"aksInfrastructureResourceGroupName"` + AksRegion *string `pulumi:"aksRegion"` + AksResourceGroupName *string `pulumi:"aksResourceGroupName"` + // The Ocean Kubernetes Autoscaler object. + Autoscaler *OceanNpAutoscaler `pulumi:"autoscaler"` + // An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + AvailabilityZones []string `pulumi:"availabilityZones"` + // Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + ControllerClusterId *string `pulumi:"controllerClusterId"` + // Enable node public IP. + EnableNodePublicIp *bool `pulumi:"enableNodePublicIp"` + // If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + FallbackToOndemand *bool `pulumi:"fallbackToOndemand"` + // Filters for the VM sizes that can be launched from the virtual node group. + Filters *OceanNpFilters `pulumi:"filters"` + // Specify the custom headroom per VNG. Provide a list of headroom objects. + Headrooms []OceanNpHeadroom `pulumi:"headrooms"` + // The Ocean AKS Health object. + Health *OceanNpHealth `pulumi:"health"` + // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + KubernetesVersion *string `pulumi:"kubernetesVersion"` + // An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + Labels map[string]interface{} `pulumi:"labels"` + // Maximum node count limit. + MaxCount *int `pulumi:"maxCount"` + // The maximum number of pods per node in the node pools. + MaxPodsPerNode *int `pulumi:"maxPodsPerNode"` + // Minimum node count limit. + MinCount *int `pulumi:"minCount"` + // Add a name for the Ocean cluster. + Name *string `pulumi:"name"` + // The size of the OS disk in GB. + OsDiskSizeGb *int `pulumi:"osDiskSizeGb"` + // The type of the OS disk. + OsDiskType *string `pulumi:"osDiskType"` + // The OS SKU of the OS type. Must correlate with the os type. + OsSku *string `pulumi:"osSku"` + // The OS type of the OS disk. Can't be modified once set. + OsType *string `pulumi:"osType"` + // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + PodSubnetIds []string `pulumi:"podSubnetIds"` + // An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + Scheduling *OceanNpScheduling `pulumi:"scheduling"` + // Percentage of spot VMs to maintain. + SpotPercentage *int `pulumi:"spotPercentage"` + Tags map[string]interface{} `pulumi:"tags"` + // Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + Taints []OceanNpTaint `pulumi:"taints"` + UpdatePolicy *OceanNpUpdatePolicy `pulumi:"updatePolicy"` + // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + VnetSubnetIds []string `pulumi:"vnetSubnetIds"` } type OceanNpState struct { @@ -130,31 +215,54 @@ type OceanNpState struct { AksInfrastructureResourceGroupName pulumi.StringPtrInput AksRegion pulumi.StringPtrInput AksResourceGroupName pulumi.StringPtrInput - Autoscaler OceanNpAutoscalerPtrInput - AvailabilityZones pulumi.StringArrayInput - ControllerClusterId pulumi.StringPtrInput - EnableNodePublicIp pulumi.BoolPtrInput - FallbackToOndemand pulumi.BoolPtrInput - Filters OceanNpFiltersPtrInput - Headrooms OceanNpHeadroomArrayInput - Health OceanNpHealthPtrInput - KubernetesVersion pulumi.StringPtrInput - Labels pulumi.MapInput - MaxCount pulumi.IntPtrInput - MaxPodsPerNode pulumi.IntPtrInput - MinCount pulumi.IntPtrInput - Name pulumi.StringPtrInput - OsDiskSizeGb pulumi.IntPtrInput - OsDiskType pulumi.StringPtrInput - OsSku pulumi.StringPtrInput - OsType pulumi.StringPtrInput - PodSubnetIds pulumi.StringArrayInput - Scheduling OceanNpSchedulingPtrInput - SpotPercentage pulumi.IntPtrInput - Tags pulumi.MapInput - Taints OceanNpTaintArrayInput - UpdatePolicy OceanNpUpdatePolicyPtrInput - VnetSubnetIds pulumi.StringArrayInput + // The Ocean Kubernetes Autoscaler object. + Autoscaler OceanNpAutoscalerPtrInput + // An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + AvailabilityZones pulumi.StringArrayInput + // Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + ControllerClusterId pulumi.StringPtrInput + // Enable node public IP. + EnableNodePublicIp pulumi.BoolPtrInput + // If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + FallbackToOndemand pulumi.BoolPtrInput + // Filters for the VM sizes that can be launched from the virtual node group. + Filters OceanNpFiltersPtrInput + // Specify the custom headroom per VNG. Provide a list of headroom objects. + Headrooms OceanNpHeadroomArrayInput + // The Ocean AKS Health object. + Health OceanNpHealthPtrInput + // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + KubernetesVersion pulumi.StringPtrInput + // An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + Labels pulumi.MapInput + // Maximum node count limit. + MaxCount pulumi.IntPtrInput + // The maximum number of pods per node in the node pools. + MaxPodsPerNode pulumi.IntPtrInput + // Minimum node count limit. + MinCount pulumi.IntPtrInput + // Add a name for the Ocean cluster. + Name pulumi.StringPtrInput + // The size of the OS disk in GB. + OsDiskSizeGb pulumi.IntPtrInput + // The type of the OS disk. + OsDiskType pulumi.StringPtrInput + // The OS SKU of the OS type. Must correlate with the os type. + OsSku pulumi.StringPtrInput + // The OS type of the OS disk. Can't be modified once set. + OsType pulumi.StringPtrInput + // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + PodSubnetIds pulumi.StringArrayInput + // An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + Scheduling OceanNpSchedulingPtrInput + // Percentage of spot VMs to maintain. + SpotPercentage pulumi.IntPtrInput + Tags pulumi.MapInput + // Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + Taints OceanNpTaintArrayInput + UpdatePolicy OceanNpUpdatePolicyPtrInput + // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + VnetSubnetIds pulumi.StringArrayInput } func (OceanNpState) ElementType() reflect.Type { @@ -162,35 +270,58 @@ func (OceanNpState) ElementType() reflect.Type { } type oceanNpArgs struct { - AksClusterName string `pulumi:"aksClusterName"` - AksInfrastructureResourceGroupName string `pulumi:"aksInfrastructureResourceGroupName"` - AksRegion string `pulumi:"aksRegion"` - AksResourceGroupName string `pulumi:"aksResourceGroupName"` - Autoscaler *OceanNpAutoscaler `pulumi:"autoscaler"` - AvailabilityZones []string `pulumi:"availabilityZones"` - ControllerClusterId string `pulumi:"controllerClusterId"` - EnableNodePublicIp *bool `pulumi:"enableNodePublicIp"` - FallbackToOndemand *bool `pulumi:"fallbackToOndemand"` - Filters *OceanNpFilters `pulumi:"filters"` - Headrooms []OceanNpHeadroom `pulumi:"headrooms"` - Health *OceanNpHealth `pulumi:"health"` - KubernetesVersion *string `pulumi:"kubernetesVersion"` - Labels map[string]interface{} `pulumi:"labels"` - MaxCount *int `pulumi:"maxCount"` - MaxPodsPerNode *int `pulumi:"maxPodsPerNode"` - MinCount *int `pulumi:"minCount"` - Name *string `pulumi:"name"` - OsDiskSizeGb *int `pulumi:"osDiskSizeGb"` - OsDiskType *string `pulumi:"osDiskType"` - OsSku *string `pulumi:"osSku"` - OsType *string `pulumi:"osType"` - PodSubnetIds []string `pulumi:"podSubnetIds"` - Scheduling *OceanNpScheduling `pulumi:"scheduling"` - SpotPercentage *int `pulumi:"spotPercentage"` - Tags map[string]interface{} `pulumi:"tags"` - Taints []OceanNpTaint `pulumi:"taints"` - UpdatePolicy *OceanNpUpdatePolicy `pulumi:"updatePolicy"` - VnetSubnetIds []string `pulumi:"vnetSubnetIds"` + AksClusterName string `pulumi:"aksClusterName"` + AksInfrastructureResourceGroupName string `pulumi:"aksInfrastructureResourceGroupName"` + AksRegion string `pulumi:"aksRegion"` + AksResourceGroupName string `pulumi:"aksResourceGroupName"` + // The Ocean Kubernetes Autoscaler object. + Autoscaler *OceanNpAutoscaler `pulumi:"autoscaler"` + // An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + AvailabilityZones []string `pulumi:"availabilityZones"` + // Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + ControllerClusterId string `pulumi:"controllerClusterId"` + // Enable node public IP. + EnableNodePublicIp *bool `pulumi:"enableNodePublicIp"` + // If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + FallbackToOndemand *bool `pulumi:"fallbackToOndemand"` + // Filters for the VM sizes that can be launched from the virtual node group. + Filters *OceanNpFilters `pulumi:"filters"` + // Specify the custom headroom per VNG. Provide a list of headroom objects. + Headrooms []OceanNpHeadroom `pulumi:"headrooms"` + // The Ocean AKS Health object. + Health *OceanNpHealth `pulumi:"health"` + // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + KubernetesVersion *string `pulumi:"kubernetesVersion"` + // An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + Labels map[string]interface{} `pulumi:"labels"` + // Maximum node count limit. + MaxCount *int `pulumi:"maxCount"` + // The maximum number of pods per node in the node pools. + MaxPodsPerNode *int `pulumi:"maxPodsPerNode"` + // Minimum node count limit. + MinCount *int `pulumi:"minCount"` + // Add a name for the Ocean cluster. + Name *string `pulumi:"name"` + // The size of the OS disk in GB. + OsDiskSizeGb *int `pulumi:"osDiskSizeGb"` + // The type of the OS disk. + OsDiskType *string `pulumi:"osDiskType"` + // The OS SKU of the OS type. Must correlate with the os type. + OsSku *string `pulumi:"osSku"` + // The OS type of the OS disk. Can't be modified once set. + OsType *string `pulumi:"osType"` + // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + PodSubnetIds []string `pulumi:"podSubnetIds"` + // An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + Scheduling *OceanNpScheduling `pulumi:"scheduling"` + // Percentage of spot VMs to maintain. + SpotPercentage *int `pulumi:"spotPercentage"` + Tags map[string]interface{} `pulumi:"tags"` + // Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + Taints []OceanNpTaint `pulumi:"taints"` + UpdatePolicy *OceanNpUpdatePolicy `pulumi:"updatePolicy"` + // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + VnetSubnetIds []string `pulumi:"vnetSubnetIds"` } // The set of arguments for constructing a OceanNp resource. @@ -199,31 +330,54 @@ type OceanNpArgs struct { AksInfrastructureResourceGroupName pulumi.StringInput AksRegion pulumi.StringInput AksResourceGroupName pulumi.StringInput - Autoscaler OceanNpAutoscalerPtrInput - AvailabilityZones pulumi.StringArrayInput - ControllerClusterId pulumi.StringInput - EnableNodePublicIp pulumi.BoolPtrInput - FallbackToOndemand pulumi.BoolPtrInput - Filters OceanNpFiltersPtrInput - Headrooms OceanNpHeadroomArrayInput - Health OceanNpHealthPtrInput - KubernetesVersion pulumi.StringPtrInput - Labels pulumi.MapInput - MaxCount pulumi.IntPtrInput - MaxPodsPerNode pulumi.IntPtrInput - MinCount pulumi.IntPtrInput - Name pulumi.StringPtrInput - OsDiskSizeGb pulumi.IntPtrInput - OsDiskType pulumi.StringPtrInput - OsSku pulumi.StringPtrInput - OsType pulumi.StringPtrInput - PodSubnetIds pulumi.StringArrayInput - Scheduling OceanNpSchedulingPtrInput - SpotPercentage pulumi.IntPtrInput - Tags pulumi.MapInput - Taints OceanNpTaintArrayInput - UpdatePolicy OceanNpUpdatePolicyPtrInput - VnetSubnetIds pulumi.StringArrayInput + // The Ocean Kubernetes Autoscaler object. + Autoscaler OceanNpAutoscalerPtrInput + // An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + AvailabilityZones pulumi.StringArrayInput + // Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + ControllerClusterId pulumi.StringInput + // Enable node public IP. + EnableNodePublicIp pulumi.BoolPtrInput + // If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + FallbackToOndemand pulumi.BoolPtrInput + // Filters for the VM sizes that can be launched from the virtual node group. + Filters OceanNpFiltersPtrInput + // Specify the custom headroom per VNG. Provide a list of headroom objects. + Headrooms OceanNpHeadroomArrayInput + // The Ocean AKS Health object. + Health OceanNpHealthPtrInput + // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + KubernetesVersion pulumi.StringPtrInput + // An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + Labels pulumi.MapInput + // Maximum node count limit. + MaxCount pulumi.IntPtrInput + // The maximum number of pods per node in the node pools. + MaxPodsPerNode pulumi.IntPtrInput + // Minimum node count limit. + MinCount pulumi.IntPtrInput + // Add a name for the Ocean cluster. + Name pulumi.StringPtrInput + // The size of the OS disk in GB. + OsDiskSizeGb pulumi.IntPtrInput + // The type of the OS disk. + OsDiskType pulumi.StringPtrInput + // The OS SKU of the OS type. Must correlate with the os type. + OsSku pulumi.StringPtrInput + // The OS type of the OS disk. Can't be modified once set. + OsType pulumi.StringPtrInput + // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + PodSubnetIds pulumi.StringArrayInput + // An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + Scheduling OceanNpSchedulingPtrInput + // Percentage of spot VMs to maintain. + SpotPercentage pulumi.IntPtrInput + Tags pulumi.MapInput + // Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + Taints OceanNpTaintArrayInput + UpdatePolicy OceanNpUpdatePolicyPtrInput + // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + VnetSubnetIds pulumi.StringArrayInput } func (OceanNpArgs) ElementType() reflect.Type { @@ -329,86 +483,107 @@ func (o OceanNpOutput) AksResourceGroupName() pulumi.StringOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringOutput { return v.AksResourceGroupName }).(pulumi.StringOutput) } +// The Ocean Kubernetes Autoscaler object. func (o OceanNpOutput) Autoscaler() OceanNpAutoscalerPtrOutput { return o.ApplyT(func(v *OceanNp) OceanNpAutoscalerPtrOutput { return v.Autoscaler }).(OceanNpAutoscalerPtrOutput) } +// An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. func (o OceanNpOutput) AvailabilityZones() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringArrayOutput { return v.AvailabilityZones }).(pulumi.StringArrayOutput) } +// Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. func (o OceanNpOutput) ControllerClusterId() pulumi.StringOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringOutput { return v.ControllerClusterId }).(pulumi.StringOutput) } +// Enable node public IP. func (o OceanNpOutput) EnableNodePublicIp() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.BoolPtrOutput { return v.EnableNodePublicIp }).(pulumi.BoolPtrOutput) } +// If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. func (o OceanNpOutput) FallbackToOndemand() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.BoolPtrOutput { return v.FallbackToOndemand }).(pulumi.BoolPtrOutput) } +// Filters for the VM sizes that can be launched from the virtual node group. func (o OceanNpOutput) Filters() OceanNpFiltersPtrOutput { return o.ApplyT(func(v *OceanNp) OceanNpFiltersPtrOutput { return v.Filters }).(OceanNpFiltersPtrOutput) } +// Specify the custom headroom per VNG. Provide a list of headroom objects. func (o OceanNpOutput) Headrooms() OceanNpHeadroomArrayOutput { return o.ApplyT(func(v *OceanNp) OceanNpHeadroomArrayOutput { return v.Headrooms }).(OceanNpHeadroomArrayOutput) } +// The Ocean AKS Health object. func (o OceanNpOutput) Health() OceanNpHealthPtrOutput { return o.ApplyT(func(v *OceanNp) OceanNpHealthPtrOutput { return v.Health }).(OceanNpHealthPtrOutput) } +// The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. func (o OceanNpOutput) KubernetesVersion() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringPtrOutput { return v.KubernetesVersion }).(pulumi.StringPtrOutput) } +// An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). func (o OceanNpOutput) Labels() pulumi.MapOutput { return o.ApplyT(func(v *OceanNp) pulumi.MapOutput { return v.Labels }).(pulumi.MapOutput) } +// Maximum node count limit. func (o OceanNpOutput) MaxCount() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.IntPtrOutput { return v.MaxCount }).(pulumi.IntPtrOutput) } +// The maximum number of pods per node in the node pools. func (o OceanNpOutput) MaxPodsPerNode() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.IntPtrOutput { return v.MaxPodsPerNode }).(pulumi.IntPtrOutput) } +// Minimum node count limit. func (o OceanNpOutput) MinCount() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.IntPtrOutput { return v.MinCount }).(pulumi.IntPtrOutput) } +// Add a name for the Ocean cluster. func (o OceanNpOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } +// The size of the OS disk in GB. func (o OceanNpOutput) OsDiskSizeGb() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.IntPtrOutput { return v.OsDiskSizeGb }).(pulumi.IntPtrOutput) } +// The type of the OS disk. func (o OceanNpOutput) OsDiskType() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringPtrOutput { return v.OsDiskType }).(pulumi.StringPtrOutput) } +// The OS SKU of the OS type. Must correlate with the os type. func (o OceanNpOutput) OsSku() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringPtrOutput { return v.OsSku }).(pulumi.StringPtrOutput) } +// The OS type of the OS disk. Can't be modified once set. func (o OceanNpOutput) OsType() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringPtrOutput { return v.OsType }).(pulumi.StringPtrOutput) } +// The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). func (o OceanNpOutput) PodSubnetIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringArrayOutput { return v.PodSubnetIds }).(pulumi.StringArrayOutput) } +// An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. func (o OceanNpOutput) Scheduling() OceanNpSchedulingPtrOutput { return o.ApplyT(func(v *OceanNp) OceanNpSchedulingPtrOutput { return v.Scheduling }).(OceanNpSchedulingPtrOutput) } +// Percentage of spot VMs to maintain. func (o OceanNpOutput) SpotPercentage() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.IntPtrOutput { return v.SpotPercentage }).(pulumi.IntPtrOutput) } @@ -417,6 +592,7 @@ func (o OceanNpOutput) Tags() pulumi.MapOutput { return o.ApplyT(func(v *OceanNp) pulumi.MapOutput { return v.Tags }).(pulumi.MapOutput) } +// Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. func (o OceanNpOutput) Taints() OceanNpTaintArrayOutput { return o.ApplyT(func(v *OceanNp) OceanNpTaintArrayOutput { return v.Taints }).(OceanNpTaintArrayOutput) } @@ -425,6 +601,7 @@ func (o OceanNpOutput) UpdatePolicy() OceanNpUpdatePolicyPtrOutput { return o.ApplyT(func(v *OceanNp) OceanNpUpdatePolicyPtrOutput { return v.UpdatePolicy }).(OceanNpUpdatePolicyPtrOutput) } +// The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). func (o OceanNpOutput) VnetSubnetIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringArrayOutput { return v.VnetSubnetIds }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/spotinst/azure/oceanNpVirtualNodeGroup.go b/sdk/go/spotinst/azure/oceanNpVirtualNodeGroup.go index 83e11b94..a055bb9d 100644 --- a/sdk/go/spotinst/azure/oceanNpVirtualNodeGroup.go +++ b/sdk/go/spotinst/azure/oceanNpVirtualNodeGroup.go @@ -12,31 +12,159 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Manages a Spotinst Ocean AKS Virtual Node Groups resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/azure" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := azure.NewOceanNpVirtualNodeGroup(ctx, "example", &azure.OceanNpVirtualNodeGroupArgs{ +// Name: pulumi.String("testVng"), +// OceanId: pulumi.String("o-134abcd"), +// Headrooms: azure.OceanNpVirtualNodeGroupHeadroomArray{ +// &azure.OceanNpVirtualNodeGroupHeadroomArgs{ +// CpuPerUnit: pulumi.Int(1024), +// MemoryPerUnit: pulumi.Int(512), +// GpuPerUnit: pulumi.Int(0), +// NumOfUnits: pulumi.Int(2), +// }, +// }, +// AvailabilityZones: pulumi.StringArray{ +// pulumi.String("1"), +// pulumi.String("2"), +// pulumi.String("3"), +// }, +// Labels: pulumi.Map{ +// "key": pulumi.Any("env"), +// "value": pulumi.Any("test"), +// }, +// MinCount: pulumi.Int(1), +// MaxCount: pulumi.Int(100), +// MaxPodsPerNode: pulumi.Int(30), +// EnableNodePublicIp: pulumi.Bool(true), +// OsDiskSizeGb: pulumi.Int(30), +// OsDiskType: pulumi.String("Managed"), +// OsType: pulumi.String("Linux"), +// OsSku: pulumi.String("Ubuntu"), +// KubernetesVersion: pulumi.String("1.26"), +// PodSubnetIds: pulumi.StringArray{ +// pulumi.String("/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"), +// }, +// VnetSubnetIds: pulumi.StringArray{ +// pulumi.String("/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"), +// }, +// SpotPercentage: pulumi.Int(50), +// FallbackToOndemand: pulumi.Bool(true), +// Taints: azure.OceanNpVirtualNodeGroupTaintArray{ +// &azure.OceanNpVirtualNodeGroupTaintArgs{ +// Key: pulumi.String("taintKey"), +// Value: pulumi.String("taintValue"), +// Effect: pulumi.String("NoSchedule"), +// }, +// }, +// Tags: pulumi.Map{ +// "tagKey": pulumi.Any("env"), +// "tagValue": pulumi.Any("staging"), +// }, +// Filters: &azure.OceanNpVirtualNodeGroupFiltersArgs{ +// MinVcpu: pulumi.Int(2), +// MaxVcpu: pulumi.Int(16), +// MinMemoryGib: pulumi.Float64(8), +// MaxMemoryGib: pulumi.Float64(128), +// Architectures: pulumi.StringArray{ +// pulumi.String("x86_64"), +// pulumi.String("arm64"), +// }, +// Series: pulumi.StringArray{ +// pulumi.String("D v3"), +// pulumi.String("Dds_v4"), +// pulumi.String("Dsv2"), +// }, +// ExcludeSeries: pulumi.StringArray{ +// pulumi.String("Av2"), +// pulumi.String("A"), +// pulumi.String("Bs"), +// pulumi.String("D"), +// pulumi.String("E"), +// }, +// AcceleratedNetworking: pulumi.String("Enabled"), +// DiskPerformance: pulumi.String("Premium"), +// MinGpu: pulumi.Float64(1), +// MaxGpu: pulumi.Float64(2), +// MinNics: pulumi.Int(1), +// VmTypes: pulumi.StringArray{ +// pulumi.String("generalPurpose"), +// pulumi.String("GPU"), +// }, +// MinDisk: pulumi.Int(1), +// GpuTypes: pulumi.StringArray{ +// pulumi.String("nvidia-tesla-t4"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` type OceanNpVirtualNodeGroup struct { pulumi.CustomResourceState - AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"` - EnableNodePublicIp pulumi.BoolPtrOutput `pulumi:"enableNodePublicIp"` - FallbackToOndemand pulumi.BoolPtrOutput `pulumi:"fallbackToOndemand"` - Filters OceanNpVirtualNodeGroupFiltersPtrOutput `pulumi:"filters"` - Headrooms OceanNpVirtualNodeGroupHeadroomArrayOutput `pulumi:"headrooms"` - KubernetesVersion pulumi.StringPtrOutput `pulumi:"kubernetesVersion"` - Labels pulumi.MapOutput `pulumi:"labels"` - MaxCount pulumi.IntPtrOutput `pulumi:"maxCount"` - MaxPodsPerNode pulumi.IntPtrOutput `pulumi:"maxPodsPerNode"` - MinCount pulumi.IntPtrOutput `pulumi:"minCount"` - Name pulumi.StringOutput `pulumi:"name"` - OceanId pulumi.StringOutput `pulumi:"oceanId"` - OsDiskSizeGb pulumi.IntPtrOutput `pulumi:"osDiskSizeGb"` - OsDiskType pulumi.StringPtrOutput `pulumi:"osDiskType"` - OsSku pulumi.StringPtrOutput `pulumi:"osSku"` - OsType pulumi.StringPtrOutput `pulumi:"osType"` - PodSubnetIds pulumi.StringArrayOutput `pulumi:"podSubnetIds"` - SpotPercentage pulumi.IntPtrOutput `pulumi:"spotPercentage"` - Tags pulumi.MapOutput `pulumi:"tags"` - Taints OceanNpVirtualNodeGroupTaintArrayOutput `pulumi:"taints"` - UpdatePolicy OceanNpVirtualNodeGroupUpdatePolicyPtrOutput `pulumi:"updatePolicy"` - VnetSubnetIds pulumi.StringArrayOutput `pulumi:"vnetSubnetIds"` + // An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"` + // Enable node public IP. + EnableNodePublicIp pulumi.BoolPtrOutput `pulumi:"enableNodePublicIp"` + // If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + FallbackToOndemand pulumi.BoolPtrOutput `pulumi:"fallbackToOndemand"` + // Filters for the VM sizes that can be launched from the virtual node group. + Filters OceanNpVirtualNodeGroupFiltersPtrOutput `pulumi:"filters"` + // Specify the custom headroom per VNG. Provide a list of headroom objects. + Headrooms OceanNpVirtualNodeGroupHeadroomArrayOutput `pulumi:"headrooms"` + // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + KubernetesVersion pulumi.StringPtrOutput `pulumi:"kubernetesVersion"` + // An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + Labels pulumi.MapOutput `pulumi:"labels"` + // Maximum node count limit. + MaxCount pulumi.IntPtrOutput `pulumi:"maxCount"` + // The maximum number of pods per node in the node pools. + MaxPodsPerNode pulumi.IntPtrOutput `pulumi:"maxPodsPerNode"` + // Minimum node count limit. + MinCount pulumi.IntPtrOutput `pulumi:"minCount"` + // Enter a name for the virtual node group. + Name pulumi.StringOutput `pulumi:"name"` + // The Ocean cluster identifier. Required for Launch Spec creation. + OceanId pulumi.StringOutput `pulumi:"oceanId"` + // The size of the OS disk in GB. + OsDiskSizeGb pulumi.IntPtrOutput `pulumi:"osDiskSizeGb"` + // The type of the OS disk. + OsDiskType pulumi.StringPtrOutput `pulumi:"osDiskType"` + // The OS SKU of the OS type. Must correlate with the os type. + OsSku pulumi.StringPtrOutput `pulumi:"osSku"` + // The OS type of the OS disk. Can't be modified once set. + OsType pulumi.StringPtrOutput `pulumi:"osType"` + // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + PodSubnetIds pulumi.StringArrayOutput `pulumi:"podSubnetIds"` + // Percentage of spot VMs to maintain. + SpotPercentage pulumi.IntPtrOutput `pulumi:"spotPercentage"` + Tags pulumi.MapOutput `pulumi:"tags"` + // Add taints to a virtual node group. + Taints OceanNpVirtualNodeGroupTaintArrayOutput `pulumi:"taints"` + UpdatePolicy OceanNpVirtualNodeGroupUpdatePolicyPtrOutput `pulumi:"updatePolicy"` + // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + VnetSubnetIds pulumi.StringArrayOutput `pulumi:"vnetSubnetIds"` } // NewOceanNpVirtualNodeGroup registers a new resource with the given unique name, arguments, and options. @@ -72,53 +200,93 @@ func GetOceanNpVirtualNodeGroup(ctx *pulumi.Context, // Input properties used for looking up and filtering OceanNpVirtualNodeGroup resources. type oceanNpVirtualNodeGroupState struct { - AvailabilityZones []string `pulumi:"availabilityZones"` - EnableNodePublicIp *bool `pulumi:"enableNodePublicIp"` - FallbackToOndemand *bool `pulumi:"fallbackToOndemand"` - Filters *OceanNpVirtualNodeGroupFilters `pulumi:"filters"` - Headrooms []OceanNpVirtualNodeGroupHeadroom `pulumi:"headrooms"` - KubernetesVersion *string `pulumi:"kubernetesVersion"` - Labels map[string]interface{} `pulumi:"labels"` - MaxCount *int `pulumi:"maxCount"` - MaxPodsPerNode *int `pulumi:"maxPodsPerNode"` - MinCount *int `pulumi:"minCount"` - Name *string `pulumi:"name"` - OceanId *string `pulumi:"oceanId"` - OsDiskSizeGb *int `pulumi:"osDiskSizeGb"` - OsDiskType *string `pulumi:"osDiskType"` - OsSku *string `pulumi:"osSku"` - OsType *string `pulumi:"osType"` - PodSubnetIds []string `pulumi:"podSubnetIds"` - SpotPercentage *int `pulumi:"spotPercentage"` - Tags map[string]interface{} `pulumi:"tags"` - Taints []OceanNpVirtualNodeGroupTaint `pulumi:"taints"` - UpdatePolicy *OceanNpVirtualNodeGroupUpdatePolicy `pulumi:"updatePolicy"` - VnetSubnetIds []string `pulumi:"vnetSubnetIds"` + // An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + AvailabilityZones []string `pulumi:"availabilityZones"` + // Enable node public IP. + EnableNodePublicIp *bool `pulumi:"enableNodePublicIp"` + // If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + FallbackToOndemand *bool `pulumi:"fallbackToOndemand"` + // Filters for the VM sizes that can be launched from the virtual node group. + Filters *OceanNpVirtualNodeGroupFilters `pulumi:"filters"` + // Specify the custom headroom per VNG. Provide a list of headroom objects. + Headrooms []OceanNpVirtualNodeGroupHeadroom `pulumi:"headrooms"` + // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + KubernetesVersion *string `pulumi:"kubernetesVersion"` + // An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + Labels map[string]interface{} `pulumi:"labels"` + // Maximum node count limit. + MaxCount *int `pulumi:"maxCount"` + // The maximum number of pods per node in the node pools. + MaxPodsPerNode *int `pulumi:"maxPodsPerNode"` + // Minimum node count limit. + MinCount *int `pulumi:"minCount"` + // Enter a name for the virtual node group. + Name *string `pulumi:"name"` + // The Ocean cluster identifier. Required for Launch Spec creation. + OceanId *string `pulumi:"oceanId"` + // The size of the OS disk in GB. + OsDiskSizeGb *int `pulumi:"osDiskSizeGb"` + // The type of the OS disk. + OsDiskType *string `pulumi:"osDiskType"` + // The OS SKU of the OS type. Must correlate with the os type. + OsSku *string `pulumi:"osSku"` + // The OS type of the OS disk. Can't be modified once set. + OsType *string `pulumi:"osType"` + // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + PodSubnetIds []string `pulumi:"podSubnetIds"` + // Percentage of spot VMs to maintain. + SpotPercentage *int `pulumi:"spotPercentage"` + Tags map[string]interface{} `pulumi:"tags"` + // Add taints to a virtual node group. + Taints []OceanNpVirtualNodeGroupTaint `pulumi:"taints"` + UpdatePolicy *OceanNpVirtualNodeGroupUpdatePolicy `pulumi:"updatePolicy"` + // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + VnetSubnetIds []string `pulumi:"vnetSubnetIds"` } type OceanNpVirtualNodeGroupState struct { - AvailabilityZones pulumi.StringArrayInput + // An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + AvailabilityZones pulumi.StringArrayInput + // Enable node public IP. EnableNodePublicIp pulumi.BoolPtrInput + // If no spot instance markets are available, enable Ocean to launch on-demand instances instead. FallbackToOndemand pulumi.BoolPtrInput - Filters OceanNpVirtualNodeGroupFiltersPtrInput - Headrooms OceanNpVirtualNodeGroupHeadroomArrayInput - KubernetesVersion pulumi.StringPtrInput - Labels pulumi.MapInput - MaxCount pulumi.IntPtrInput - MaxPodsPerNode pulumi.IntPtrInput - MinCount pulumi.IntPtrInput - Name pulumi.StringPtrInput - OceanId pulumi.StringPtrInput - OsDiskSizeGb pulumi.IntPtrInput - OsDiskType pulumi.StringPtrInput - OsSku pulumi.StringPtrInput - OsType pulumi.StringPtrInput - PodSubnetIds pulumi.StringArrayInput - SpotPercentage pulumi.IntPtrInput - Tags pulumi.MapInput - Taints OceanNpVirtualNodeGroupTaintArrayInput - UpdatePolicy OceanNpVirtualNodeGroupUpdatePolicyPtrInput - VnetSubnetIds pulumi.StringArrayInput + // Filters for the VM sizes that can be launched from the virtual node group. + Filters OceanNpVirtualNodeGroupFiltersPtrInput + // Specify the custom headroom per VNG. Provide a list of headroom objects. + Headrooms OceanNpVirtualNodeGroupHeadroomArrayInput + // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + KubernetesVersion pulumi.StringPtrInput + // An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + Labels pulumi.MapInput + // Maximum node count limit. + MaxCount pulumi.IntPtrInput + // The maximum number of pods per node in the node pools. + MaxPodsPerNode pulumi.IntPtrInput + // Minimum node count limit. + MinCount pulumi.IntPtrInput + // Enter a name for the virtual node group. + Name pulumi.StringPtrInput + // The Ocean cluster identifier. Required for Launch Spec creation. + OceanId pulumi.StringPtrInput + // The size of the OS disk in GB. + OsDiskSizeGb pulumi.IntPtrInput + // The type of the OS disk. + OsDiskType pulumi.StringPtrInput + // The OS SKU of the OS type. Must correlate with the os type. + OsSku pulumi.StringPtrInput + // The OS type of the OS disk. Can't be modified once set. + OsType pulumi.StringPtrInput + // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + PodSubnetIds pulumi.StringArrayInput + // Percentage of spot VMs to maintain. + SpotPercentage pulumi.IntPtrInput + Tags pulumi.MapInput + // Add taints to a virtual node group. + Taints OceanNpVirtualNodeGroupTaintArrayInput + UpdatePolicy OceanNpVirtualNodeGroupUpdatePolicyPtrInput + // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + VnetSubnetIds pulumi.StringArrayInput } func (OceanNpVirtualNodeGroupState) ElementType() reflect.Type { @@ -126,54 +294,94 @@ func (OceanNpVirtualNodeGroupState) ElementType() reflect.Type { } type oceanNpVirtualNodeGroupArgs struct { - AvailabilityZones []string `pulumi:"availabilityZones"` - EnableNodePublicIp *bool `pulumi:"enableNodePublicIp"` - FallbackToOndemand *bool `pulumi:"fallbackToOndemand"` - Filters *OceanNpVirtualNodeGroupFilters `pulumi:"filters"` - Headrooms []OceanNpVirtualNodeGroupHeadroom `pulumi:"headrooms"` - KubernetesVersion *string `pulumi:"kubernetesVersion"` - Labels map[string]interface{} `pulumi:"labels"` - MaxCount *int `pulumi:"maxCount"` - MaxPodsPerNode *int `pulumi:"maxPodsPerNode"` - MinCount *int `pulumi:"minCount"` - Name *string `pulumi:"name"` - OceanId string `pulumi:"oceanId"` - OsDiskSizeGb *int `pulumi:"osDiskSizeGb"` - OsDiskType *string `pulumi:"osDiskType"` - OsSku *string `pulumi:"osSku"` - OsType *string `pulumi:"osType"` - PodSubnetIds []string `pulumi:"podSubnetIds"` - SpotPercentage *int `pulumi:"spotPercentage"` - Tags map[string]interface{} `pulumi:"tags"` - Taints []OceanNpVirtualNodeGroupTaint `pulumi:"taints"` - UpdatePolicy *OceanNpVirtualNodeGroupUpdatePolicy `pulumi:"updatePolicy"` - VnetSubnetIds []string `pulumi:"vnetSubnetIds"` + // An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + AvailabilityZones []string `pulumi:"availabilityZones"` + // Enable node public IP. + EnableNodePublicIp *bool `pulumi:"enableNodePublicIp"` + // If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + FallbackToOndemand *bool `pulumi:"fallbackToOndemand"` + // Filters for the VM sizes that can be launched from the virtual node group. + Filters *OceanNpVirtualNodeGroupFilters `pulumi:"filters"` + // Specify the custom headroom per VNG. Provide a list of headroom objects. + Headrooms []OceanNpVirtualNodeGroupHeadroom `pulumi:"headrooms"` + // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + KubernetesVersion *string `pulumi:"kubernetesVersion"` + // An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + Labels map[string]interface{} `pulumi:"labels"` + // Maximum node count limit. + MaxCount *int `pulumi:"maxCount"` + // The maximum number of pods per node in the node pools. + MaxPodsPerNode *int `pulumi:"maxPodsPerNode"` + // Minimum node count limit. + MinCount *int `pulumi:"minCount"` + // Enter a name for the virtual node group. + Name *string `pulumi:"name"` + // The Ocean cluster identifier. Required for Launch Spec creation. + OceanId string `pulumi:"oceanId"` + // The size of the OS disk in GB. + OsDiskSizeGb *int `pulumi:"osDiskSizeGb"` + // The type of the OS disk. + OsDiskType *string `pulumi:"osDiskType"` + // The OS SKU of the OS type. Must correlate with the os type. + OsSku *string `pulumi:"osSku"` + // The OS type of the OS disk. Can't be modified once set. + OsType *string `pulumi:"osType"` + // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + PodSubnetIds []string `pulumi:"podSubnetIds"` + // Percentage of spot VMs to maintain. + SpotPercentage *int `pulumi:"spotPercentage"` + Tags map[string]interface{} `pulumi:"tags"` + // Add taints to a virtual node group. + Taints []OceanNpVirtualNodeGroupTaint `pulumi:"taints"` + UpdatePolicy *OceanNpVirtualNodeGroupUpdatePolicy `pulumi:"updatePolicy"` + // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + VnetSubnetIds []string `pulumi:"vnetSubnetIds"` } // The set of arguments for constructing a OceanNpVirtualNodeGroup resource. type OceanNpVirtualNodeGroupArgs struct { - AvailabilityZones pulumi.StringArrayInput + // An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + AvailabilityZones pulumi.StringArrayInput + // Enable node public IP. EnableNodePublicIp pulumi.BoolPtrInput + // If no spot instance markets are available, enable Ocean to launch on-demand instances instead. FallbackToOndemand pulumi.BoolPtrInput - Filters OceanNpVirtualNodeGroupFiltersPtrInput - Headrooms OceanNpVirtualNodeGroupHeadroomArrayInput - KubernetesVersion pulumi.StringPtrInput - Labels pulumi.MapInput - MaxCount pulumi.IntPtrInput - MaxPodsPerNode pulumi.IntPtrInput - MinCount pulumi.IntPtrInput - Name pulumi.StringPtrInput - OceanId pulumi.StringInput - OsDiskSizeGb pulumi.IntPtrInput - OsDiskType pulumi.StringPtrInput - OsSku pulumi.StringPtrInput - OsType pulumi.StringPtrInput - PodSubnetIds pulumi.StringArrayInput - SpotPercentage pulumi.IntPtrInput - Tags pulumi.MapInput - Taints OceanNpVirtualNodeGroupTaintArrayInput - UpdatePolicy OceanNpVirtualNodeGroupUpdatePolicyPtrInput - VnetSubnetIds pulumi.StringArrayInput + // Filters for the VM sizes that can be launched from the virtual node group. + Filters OceanNpVirtualNodeGroupFiltersPtrInput + // Specify the custom headroom per VNG. Provide a list of headroom objects. + Headrooms OceanNpVirtualNodeGroupHeadroomArrayInput + // The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + KubernetesVersion pulumi.StringPtrInput + // An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + Labels pulumi.MapInput + // Maximum node count limit. + MaxCount pulumi.IntPtrInput + // The maximum number of pods per node in the node pools. + MaxPodsPerNode pulumi.IntPtrInput + // Minimum node count limit. + MinCount pulumi.IntPtrInput + // Enter a name for the virtual node group. + Name pulumi.StringPtrInput + // The Ocean cluster identifier. Required for Launch Spec creation. + OceanId pulumi.StringInput + // The size of the OS disk in GB. + OsDiskSizeGb pulumi.IntPtrInput + // The type of the OS disk. + OsDiskType pulumi.StringPtrInput + // The OS SKU of the OS type. Must correlate with the os type. + OsSku pulumi.StringPtrInput + // The OS type of the OS disk. Can't be modified once set. + OsType pulumi.StringPtrInput + // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + PodSubnetIds pulumi.StringArrayInput + // Percentage of spot VMs to maintain. + SpotPercentage pulumi.IntPtrInput + Tags pulumi.MapInput + // Add taints to a virtual node group. + Taints OceanNpVirtualNodeGroupTaintArrayInput + UpdatePolicy OceanNpVirtualNodeGroupUpdatePolicyPtrInput + // The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + VnetSubnetIds pulumi.StringArrayInput } func (OceanNpVirtualNodeGroupArgs) ElementType() reflect.Type { @@ -263,74 +471,92 @@ func (o OceanNpVirtualNodeGroupOutput) ToOceanNpVirtualNodeGroupOutputWithContex return o } +// An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. func (o OceanNpVirtualNodeGroupOutput) AvailabilityZones() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.StringArrayOutput { return v.AvailabilityZones }).(pulumi.StringArrayOutput) } +// Enable node public IP. func (o OceanNpVirtualNodeGroupOutput) EnableNodePublicIp() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.BoolPtrOutput { return v.EnableNodePublicIp }).(pulumi.BoolPtrOutput) } +// If no spot instance markets are available, enable Ocean to launch on-demand instances instead. func (o OceanNpVirtualNodeGroupOutput) FallbackToOndemand() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.BoolPtrOutput { return v.FallbackToOndemand }).(pulumi.BoolPtrOutput) } +// Filters for the VM sizes that can be launched from the virtual node group. func (o OceanNpVirtualNodeGroupOutput) Filters() OceanNpVirtualNodeGroupFiltersPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) OceanNpVirtualNodeGroupFiltersPtrOutput { return v.Filters }).(OceanNpVirtualNodeGroupFiltersPtrOutput) } +// Specify the custom headroom per VNG. Provide a list of headroom objects. func (o OceanNpVirtualNodeGroupOutput) Headrooms() OceanNpVirtualNodeGroupHeadroomArrayOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) OceanNpVirtualNodeGroupHeadroomArrayOutput { return v.Headrooms }).(OceanNpVirtualNodeGroupHeadroomArrayOutput) } +// The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. func (o OceanNpVirtualNodeGroupOutput) KubernetesVersion() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.StringPtrOutput { return v.KubernetesVersion }).(pulumi.StringPtrOutput) } +// An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. func (o OceanNpVirtualNodeGroupOutput) Labels() pulumi.MapOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.MapOutput { return v.Labels }).(pulumi.MapOutput) } +// Maximum node count limit. func (o OceanNpVirtualNodeGroupOutput) MaxCount() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.IntPtrOutput { return v.MaxCount }).(pulumi.IntPtrOutput) } +// The maximum number of pods per node in the node pools. func (o OceanNpVirtualNodeGroupOutput) MaxPodsPerNode() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.IntPtrOutput { return v.MaxPodsPerNode }).(pulumi.IntPtrOutput) } +// Minimum node count limit. func (o OceanNpVirtualNodeGroupOutput) MinCount() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.IntPtrOutput { return v.MinCount }).(pulumi.IntPtrOutput) } +// Enter a name for the virtual node group. func (o OceanNpVirtualNodeGroupOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } +// The Ocean cluster identifier. Required for Launch Spec creation. func (o OceanNpVirtualNodeGroupOutput) OceanId() pulumi.StringOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.StringOutput { return v.OceanId }).(pulumi.StringOutput) } +// The size of the OS disk in GB. func (o OceanNpVirtualNodeGroupOutput) OsDiskSizeGb() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.IntPtrOutput { return v.OsDiskSizeGb }).(pulumi.IntPtrOutput) } +// The type of the OS disk. func (o OceanNpVirtualNodeGroupOutput) OsDiskType() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.StringPtrOutput { return v.OsDiskType }).(pulumi.StringPtrOutput) } +// The OS SKU of the OS type. Must correlate with the os type. func (o OceanNpVirtualNodeGroupOutput) OsSku() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.StringPtrOutput { return v.OsSku }).(pulumi.StringPtrOutput) } +// The OS type of the OS disk. Can't be modified once set. func (o OceanNpVirtualNodeGroupOutput) OsType() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.StringPtrOutput { return v.OsType }).(pulumi.StringPtrOutput) } +// The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). func (o OceanNpVirtualNodeGroupOutput) PodSubnetIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.StringArrayOutput { return v.PodSubnetIds }).(pulumi.StringArrayOutput) } +// Percentage of spot VMs to maintain. func (o OceanNpVirtualNodeGroupOutput) SpotPercentage() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.IntPtrOutput { return v.SpotPercentage }).(pulumi.IntPtrOutput) } @@ -339,6 +565,7 @@ func (o OceanNpVirtualNodeGroupOutput) Tags() pulumi.MapOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.MapOutput { return v.Tags }).(pulumi.MapOutput) } +// Add taints to a virtual node group. func (o OceanNpVirtualNodeGroupOutput) Taints() OceanNpVirtualNodeGroupTaintArrayOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) OceanNpVirtualNodeGroupTaintArrayOutput { return v.Taints }).(OceanNpVirtualNodeGroupTaintArrayOutput) } @@ -347,6 +574,7 @@ func (o OceanNpVirtualNodeGroupOutput) UpdatePolicy() OceanNpVirtualNodeGroupUpd return o.ApplyT(func(v *OceanNpVirtualNodeGroup) OceanNpVirtualNodeGroupUpdatePolicyPtrOutput { return v.UpdatePolicy }).(OceanNpVirtualNodeGroupUpdatePolicyPtrOutput) } +// The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). func (o OceanNpVirtualNodeGroupOutput) VnetSubnetIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.StringArrayOutput { return v.VnetSubnetIds }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/spotinst/azure/pulumiTypes.go b/sdk/go/spotinst/azure/pulumiTypes.go index dc7e9bcd..c40a2bca 100644 --- a/sdk/go/spotinst/azure/pulumiTypes.go +++ b/sdk/go/spotinst/azure/pulumiTypes.go @@ -13,2645 +13,6 @@ import ( var _ = internal.GetEnvOrDefault -type ElastigroupHealthCheck struct { - AutoHealing *bool `pulumi:"autoHealing"` - GracePeriod *int `pulumi:"gracePeriod"` - HealthCheckType string `pulumi:"healthCheckType"` -} - -// ElastigroupHealthCheckInput is an input type that accepts ElastigroupHealthCheckArgs and ElastigroupHealthCheckOutput values. -// You can construct a concrete instance of `ElastigroupHealthCheckInput` via: -// -// ElastigroupHealthCheckArgs{...} -type ElastigroupHealthCheckInput interface { - pulumi.Input - - ToElastigroupHealthCheckOutput() ElastigroupHealthCheckOutput - ToElastigroupHealthCheckOutputWithContext(context.Context) ElastigroupHealthCheckOutput -} - -type ElastigroupHealthCheckArgs struct { - AutoHealing pulumi.BoolPtrInput `pulumi:"autoHealing"` - GracePeriod pulumi.IntPtrInput `pulumi:"gracePeriod"` - HealthCheckType pulumi.StringInput `pulumi:"healthCheckType"` -} - -func (ElastigroupHealthCheckArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupHealthCheck)(nil)).Elem() -} - -func (i ElastigroupHealthCheckArgs) ToElastigroupHealthCheckOutput() ElastigroupHealthCheckOutput { - return i.ToElastigroupHealthCheckOutputWithContext(context.Background()) -} - -func (i ElastigroupHealthCheckArgs) ToElastigroupHealthCheckOutputWithContext(ctx context.Context) ElastigroupHealthCheckOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupHealthCheckOutput) -} - -func (i ElastigroupHealthCheckArgs) ToElastigroupHealthCheckPtrOutput() ElastigroupHealthCheckPtrOutput { - return i.ToElastigroupHealthCheckPtrOutputWithContext(context.Background()) -} - -func (i ElastigroupHealthCheckArgs) ToElastigroupHealthCheckPtrOutputWithContext(ctx context.Context) ElastigroupHealthCheckPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupHealthCheckOutput).ToElastigroupHealthCheckPtrOutputWithContext(ctx) -} - -// ElastigroupHealthCheckPtrInput is an input type that accepts ElastigroupHealthCheckArgs, ElastigroupHealthCheckPtr and ElastigroupHealthCheckPtrOutput values. -// You can construct a concrete instance of `ElastigroupHealthCheckPtrInput` via: -// -// ElastigroupHealthCheckArgs{...} -// -// or: -// -// nil -type ElastigroupHealthCheckPtrInput interface { - pulumi.Input - - ToElastigroupHealthCheckPtrOutput() ElastigroupHealthCheckPtrOutput - ToElastigroupHealthCheckPtrOutputWithContext(context.Context) ElastigroupHealthCheckPtrOutput -} - -type elastigroupHealthCheckPtrType ElastigroupHealthCheckArgs - -func ElastigroupHealthCheckPtr(v *ElastigroupHealthCheckArgs) ElastigroupHealthCheckPtrInput { - return (*elastigroupHealthCheckPtrType)(v) -} - -func (*elastigroupHealthCheckPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupHealthCheck)(nil)).Elem() -} - -func (i *elastigroupHealthCheckPtrType) ToElastigroupHealthCheckPtrOutput() ElastigroupHealthCheckPtrOutput { - return i.ToElastigroupHealthCheckPtrOutputWithContext(context.Background()) -} - -func (i *elastigroupHealthCheckPtrType) ToElastigroupHealthCheckPtrOutputWithContext(ctx context.Context) ElastigroupHealthCheckPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupHealthCheckPtrOutput) -} - -type ElastigroupHealthCheckOutput struct{ *pulumi.OutputState } - -func (ElastigroupHealthCheckOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupHealthCheck)(nil)).Elem() -} - -func (o ElastigroupHealthCheckOutput) ToElastigroupHealthCheckOutput() ElastigroupHealthCheckOutput { - return o -} - -func (o ElastigroupHealthCheckOutput) ToElastigroupHealthCheckOutputWithContext(ctx context.Context) ElastigroupHealthCheckOutput { - return o -} - -func (o ElastigroupHealthCheckOutput) ToElastigroupHealthCheckPtrOutput() ElastigroupHealthCheckPtrOutput { - return o.ToElastigroupHealthCheckPtrOutputWithContext(context.Background()) -} - -func (o ElastigroupHealthCheckOutput) ToElastigroupHealthCheckPtrOutputWithContext(ctx context.Context) ElastigroupHealthCheckPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ElastigroupHealthCheck) *ElastigroupHealthCheck { - return &v - }).(ElastigroupHealthCheckPtrOutput) -} - -func (o ElastigroupHealthCheckOutput) AutoHealing() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ElastigroupHealthCheck) *bool { return v.AutoHealing }).(pulumi.BoolPtrOutput) -} - -func (o ElastigroupHealthCheckOutput) GracePeriod() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupHealthCheck) *int { return v.GracePeriod }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupHealthCheckOutput) HealthCheckType() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupHealthCheck) string { return v.HealthCheckType }).(pulumi.StringOutput) -} - -type ElastigroupHealthCheckPtrOutput struct{ *pulumi.OutputState } - -func (ElastigroupHealthCheckPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupHealthCheck)(nil)).Elem() -} - -func (o ElastigroupHealthCheckPtrOutput) ToElastigroupHealthCheckPtrOutput() ElastigroupHealthCheckPtrOutput { - return o -} - -func (o ElastigroupHealthCheckPtrOutput) ToElastigroupHealthCheckPtrOutputWithContext(ctx context.Context) ElastigroupHealthCheckPtrOutput { - return o -} - -func (o ElastigroupHealthCheckPtrOutput) Elem() ElastigroupHealthCheckOutput { - return o.ApplyT(func(v *ElastigroupHealthCheck) ElastigroupHealthCheck { - if v != nil { - return *v - } - var ret ElastigroupHealthCheck - return ret - }).(ElastigroupHealthCheckOutput) -} - -func (o ElastigroupHealthCheckPtrOutput) AutoHealing() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ElastigroupHealthCheck) *bool { - if v == nil { - return nil - } - return v.AutoHealing - }).(pulumi.BoolPtrOutput) -} - -func (o ElastigroupHealthCheckPtrOutput) GracePeriod() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ElastigroupHealthCheck) *int { - if v == nil { - return nil - } - return v.GracePeriod - }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupHealthCheckPtrOutput) HealthCheckType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ElastigroupHealthCheck) *string { - if v == nil { - return nil - } - return &v.HealthCheckType - }).(pulumi.StringPtrOutput) -} - -type ElastigroupImage struct { - Customs []ElastigroupImageCustom `pulumi:"customs"` - Marketplaces []ElastigroupImageMarketplace `pulumi:"marketplaces"` -} - -// ElastigroupImageInput is an input type that accepts ElastigroupImageArgs and ElastigroupImageOutput values. -// You can construct a concrete instance of `ElastigroupImageInput` via: -// -// ElastigroupImageArgs{...} -type ElastigroupImageInput interface { - pulumi.Input - - ToElastigroupImageOutput() ElastigroupImageOutput - ToElastigroupImageOutputWithContext(context.Context) ElastigroupImageOutput -} - -type ElastigroupImageArgs struct { - Customs ElastigroupImageCustomArrayInput `pulumi:"customs"` - Marketplaces ElastigroupImageMarketplaceArrayInput `pulumi:"marketplaces"` -} - -func (ElastigroupImageArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupImage)(nil)).Elem() -} - -func (i ElastigroupImageArgs) ToElastigroupImageOutput() ElastigroupImageOutput { - return i.ToElastigroupImageOutputWithContext(context.Background()) -} - -func (i ElastigroupImageArgs) ToElastigroupImageOutputWithContext(ctx context.Context) ElastigroupImageOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupImageOutput) -} - -// ElastigroupImageArrayInput is an input type that accepts ElastigroupImageArray and ElastigroupImageArrayOutput values. -// You can construct a concrete instance of `ElastigroupImageArrayInput` via: -// -// ElastigroupImageArray{ ElastigroupImageArgs{...} } -type ElastigroupImageArrayInput interface { - pulumi.Input - - ToElastigroupImageArrayOutput() ElastigroupImageArrayOutput - ToElastigroupImageArrayOutputWithContext(context.Context) ElastigroupImageArrayOutput -} - -type ElastigroupImageArray []ElastigroupImageInput - -func (ElastigroupImageArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupImage)(nil)).Elem() -} - -func (i ElastigroupImageArray) ToElastigroupImageArrayOutput() ElastigroupImageArrayOutput { - return i.ToElastigroupImageArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupImageArray) ToElastigroupImageArrayOutputWithContext(ctx context.Context) ElastigroupImageArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupImageArrayOutput) -} - -type ElastigroupImageOutput struct{ *pulumi.OutputState } - -func (ElastigroupImageOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupImage)(nil)).Elem() -} - -func (o ElastigroupImageOutput) ToElastigroupImageOutput() ElastigroupImageOutput { - return o -} - -func (o ElastigroupImageOutput) ToElastigroupImageOutputWithContext(ctx context.Context) ElastigroupImageOutput { - return o -} - -func (o ElastigroupImageOutput) Customs() ElastigroupImageCustomArrayOutput { - return o.ApplyT(func(v ElastigroupImage) []ElastigroupImageCustom { return v.Customs }).(ElastigroupImageCustomArrayOutput) -} - -func (o ElastigroupImageOutput) Marketplaces() ElastigroupImageMarketplaceArrayOutput { - return o.ApplyT(func(v ElastigroupImage) []ElastigroupImageMarketplace { return v.Marketplaces }).(ElastigroupImageMarketplaceArrayOutput) -} - -type ElastigroupImageArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupImageArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupImage)(nil)).Elem() -} - -func (o ElastigroupImageArrayOutput) ToElastigroupImageArrayOutput() ElastigroupImageArrayOutput { - return o -} - -func (o ElastigroupImageArrayOutput) ToElastigroupImageArrayOutputWithContext(ctx context.Context) ElastigroupImageArrayOutput { - return o -} - -func (o ElastigroupImageArrayOutput) Index(i pulumi.IntInput) ElastigroupImageOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupImage { - return vs[0].([]ElastigroupImage)[vs[1].(int)] - }).(ElastigroupImageOutput) -} - -type ElastigroupImageCustom struct { - ImageName string `pulumi:"imageName"` - // Name of the Resource Group for Elastigroup. - ResourceGroupName string `pulumi:"resourceGroupName"` -} - -// ElastigroupImageCustomInput is an input type that accepts ElastigroupImageCustomArgs and ElastigroupImageCustomOutput values. -// You can construct a concrete instance of `ElastigroupImageCustomInput` via: -// -// ElastigroupImageCustomArgs{...} -type ElastigroupImageCustomInput interface { - pulumi.Input - - ToElastigroupImageCustomOutput() ElastigroupImageCustomOutput - ToElastigroupImageCustomOutputWithContext(context.Context) ElastigroupImageCustomOutput -} - -type ElastigroupImageCustomArgs struct { - ImageName pulumi.StringInput `pulumi:"imageName"` - // Name of the Resource Group for Elastigroup. - ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` -} - -func (ElastigroupImageCustomArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupImageCustom)(nil)).Elem() -} - -func (i ElastigroupImageCustomArgs) ToElastigroupImageCustomOutput() ElastigroupImageCustomOutput { - return i.ToElastigroupImageCustomOutputWithContext(context.Background()) -} - -func (i ElastigroupImageCustomArgs) ToElastigroupImageCustomOutputWithContext(ctx context.Context) ElastigroupImageCustomOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupImageCustomOutput) -} - -// ElastigroupImageCustomArrayInput is an input type that accepts ElastigroupImageCustomArray and ElastigroupImageCustomArrayOutput values. -// You can construct a concrete instance of `ElastigroupImageCustomArrayInput` via: -// -// ElastigroupImageCustomArray{ ElastigroupImageCustomArgs{...} } -type ElastigroupImageCustomArrayInput interface { - pulumi.Input - - ToElastigroupImageCustomArrayOutput() ElastigroupImageCustomArrayOutput - ToElastigroupImageCustomArrayOutputWithContext(context.Context) ElastigroupImageCustomArrayOutput -} - -type ElastigroupImageCustomArray []ElastigroupImageCustomInput - -func (ElastigroupImageCustomArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupImageCustom)(nil)).Elem() -} - -func (i ElastigroupImageCustomArray) ToElastigroupImageCustomArrayOutput() ElastigroupImageCustomArrayOutput { - return i.ToElastigroupImageCustomArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupImageCustomArray) ToElastigroupImageCustomArrayOutputWithContext(ctx context.Context) ElastigroupImageCustomArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupImageCustomArrayOutput) -} - -type ElastigroupImageCustomOutput struct{ *pulumi.OutputState } - -func (ElastigroupImageCustomOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupImageCustom)(nil)).Elem() -} - -func (o ElastigroupImageCustomOutput) ToElastigroupImageCustomOutput() ElastigroupImageCustomOutput { - return o -} - -func (o ElastigroupImageCustomOutput) ToElastigroupImageCustomOutputWithContext(ctx context.Context) ElastigroupImageCustomOutput { - return o -} - -func (o ElastigroupImageCustomOutput) ImageName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupImageCustom) string { return v.ImageName }).(pulumi.StringOutput) -} - -// Name of the Resource Group for Elastigroup. -func (o ElastigroupImageCustomOutput) ResourceGroupName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupImageCustom) string { return v.ResourceGroupName }).(pulumi.StringOutput) -} - -type ElastigroupImageCustomArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupImageCustomArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupImageCustom)(nil)).Elem() -} - -func (o ElastigroupImageCustomArrayOutput) ToElastigroupImageCustomArrayOutput() ElastigroupImageCustomArrayOutput { - return o -} - -func (o ElastigroupImageCustomArrayOutput) ToElastigroupImageCustomArrayOutputWithContext(ctx context.Context) ElastigroupImageCustomArrayOutput { - return o -} - -func (o ElastigroupImageCustomArrayOutput) Index(i pulumi.IntInput) ElastigroupImageCustomOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupImageCustom { - return vs[0].([]ElastigroupImageCustom)[vs[1].(int)] - }).(ElastigroupImageCustomOutput) -} - -type ElastigroupImageMarketplace struct { - Offer string `pulumi:"offer"` - Publisher string `pulumi:"publisher"` - Sku string `pulumi:"sku"` -} - -// ElastigroupImageMarketplaceInput is an input type that accepts ElastigroupImageMarketplaceArgs and ElastigroupImageMarketplaceOutput values. -// You can construct a concrete instance of `ElastigroupImageMarketplaceInput` via: -// -// ElastigroupImageMarketplaceArgs{...} -type ElastigroupImageMarketplaceInput interface { - pulumi.Input - - ToElastigroupImageMarketplaceOutput() ElastigroupImageMarketplaceOutput - ToElastigroupImageMarketplaceOutputWithContext(context.Context) ElastigroupImageMarketplaceOutput -} - -type ElastigroupImageMarketplaceArgs struct { - Offer pulumi.StringInput `pulumi:"offer"` - Publisher pulumi.StringInput `pulumi:"publisher"` - Sku pulumi.StringInput `pulumi:"sku"` -} - -func (ElastigroupImageMarketplaceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupImageMarketplace)(nil)).Elem() -} - -func (i ElastigroupImageMarketplaceArgs) ToElastigroupImageMarketplaceOutput() ElastigroupImageMarketplaceOutput { - return i.ToElastigroupImageMarketplaceOutputWithContext(context.Background()) -} - -func (i ElastigroupImageMarketplaceArgs) ToElastigroupImageMarketplaceOutputWithContext(ctx context.Context) ElastigroupImageMarketplaceOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupImageMarketplaceOutput) -} - -// ElastigroupImageMarketplaceArrayInput is an input type that accepts ElastigroupImageMarketplaceArray and ElastigroupImageMarketplaceArrayOutput values. -// You can construct a concrete instance of `ElastigroupImageMarketplaceArrayInput` via: -// -// ElastigroupImageMarketplaceArray{ ElastigroupImageMarketplaceArgs{...} } -type ElastigroupImageMarketplaceArrayInput interface { - pulumi.Input - - ToElastigroupImageMarketplaceArrayOutput() ElastigroupImageMarketplaceArrayOutput - ToElastigroupImageMarketplaceArrayOutputWithContext(context.Context) ElastigroupImageMarketplaceArrayOutput -} - -type ElastigroupImageMarketplaceArray []ElastigroupImageMarketplaceInput - -func (ElastigroupImageMarketplaceArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupImageMarketplace)(nil)).Elem() -} - -func (i ElastigroupImageMarketplaceArray) ToElastigroupImageMarketplaceArrayOutput() ElastigroupImageMarketplaceArrayOutput { - return i.ToElastigroupImageMarketplaceArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupImageMarketplaceArray) ToElastigroupImageMarketplaceArrayOutputWithContext(ctx context.Context) ElastigroupImageMarketplaceArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupImageMarketplaceArrayOutput) -} - -type ElastigroupImageMarketplaceOutput struct{ *pulumi.OutputState } - -func (ElastigroupImageMarketplaceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupImageMarketplace)(nil)).Elem() -} - -func (o ElastigroupImageMarketplaceOutput) ToElastigroupImageMarketplaceOutput() ElastigroupImageMarketplaceOutput { - return o -} - -func (o ElastigroupImageMarketplaceOutput) ToElastigroupImageMarketplaceOutputWithContext(ctx context.Context) ElastigroupImageMarketplaceOutput { - return o -} - -func (o ElastigroupImageMarketplaceOutput) Offer() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupImageMarketplace) string { return v.Offer }).(pulumi.StringOutput) -} - -func (o ElastigroupImageMarketplaceOutput) Publisher() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupImageMarketplace) string { return v.Publisher }).(pulumi.StringOutput) -} - -func (o ElastigroupImageMarketplaceOutput) Sku() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupImageMarketplace) string { return v.Sku }).(pulumi.StringOutput) -} - -type ElastigroupImageMarketplaceArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupImageMarketplaceArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupImageMarketplace)(nil)).Elem() -} - -func (o ElastigroupImageMarketplaceArrayOutput) ToElastigroupImageMarketplaceArrayOutput() ElastigroupImageMarketplaceArrayOutput { - return o -} - -func (o ElastigroupImageMarketplaceArrayOutput) ToElastigroupImageMarketplaceArrayOutputWithContext(ctx context.Context) ElastigroupImageMarketplaceArrayOutput { - return o -} - -func (o ElastigroupImageMarketplaceArrayOutput) Index(i pulumi.IntInput) ElastigroupImageMarketplaceOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupImageMarketplace { - return vs[0].([]ElastigroupImageMarketplace)[vs[1].(int)] - }).(ElastigroupImageMarketplaceOutput) -} - -type ElastigroupIntegrationKubernetes struct { - ClusterIdentifier string `pulumi:"clusterIdentifier"` -} - -// ElastigroupIntegrationKubernetesInput is an input type that accepts ElastigroupIntegrationKubernetesArgs and ElastigroupIntegrationKubernetesOutput values. -// You can construct a concrete instance of `ElastigroupIntegrationKubernetesInput` via: -// -// ElastigroupIntegrationKubernetesArgs{...} -type ElastigroupIntegrationKubernetesInput interface { - pulumi.Input - - ToElastigroupIntegrationKubernetesOutput() ElastigroupIntegrationKubernetesOutput - ToElastigroupIntegrationKubernetesOutputWithContext(context.Context) ElastigroupIntegrationKubernetesOutput -} - -type ElastigroupIntegrationKubernetesArgs struct { - ClusterIdentifier pulumi.StringInput `pulumi:"clusterIdentifier"` -} - -func (ElastigroupIntegrationKubernetesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupIntegrationKubernetes)(nil)).Elem() -} - -func (i ElastigroupIntegrationKubernetesArgs) ToElastigroupIntegrationKubernetesOutput() ElastigroupIntegrationKubernetesOutput { - return i.ToElastigroupIntegrationKubernetesOutputWithContext(context.Background()) -} - -func (i ElastigroupIntegrationKubernetesArgs) ToElastigroupIntegrationKubernetesOutputWithContext(ctx context.Context) ElastigroupIntegrationKubernetesOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupIntegrationKubernetesOutput) -} - -func (i ElastigroupIntegrationKubernetesArgs) ToElastigroupIntegrationKubernetesPtrOutput() ElastigroupIntegrationKubernetesPtrOutput { - return i.ToElastigroupIntegrationKubernetesPtrOutputWithContext(context.Background()) -} - -func (i ElastigroupIntegrationKubernetesArgs) ToElastigroupIntegrationKubernetesPtrOutputWithContext(ctx context.Context) ElastigroupIntegrationKubernetesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupIntegrationKubernetesOutput).ToElastigroupIntegrationKubernetesPtrOutputWithContext(ctx) -} - -// ElastigroupIntegrationKubernetesPtrInput is an input type that accepts ElastigroupIntegrationKubernetesArgs, ElastigroupIntegrationKubernetesPtr and ElastigroupIntegrationKubernetesPtrOutput values. -// You can construct a concrete instance of `ElastigroupIntegrationKubernetesPtrInput` via: -// -// ElastigroupIntegrationKubernetesArgs{...} -// -// or: -// -// nil -type ElastigroupIntegrationKubernetesPtrInput interface { - pulumi.Input - - ToElastigroupIntegrationKubernetesPtrOutput() ElastigroupIntegrationKubernetesPtrOutput - ToElastigroupIntegrationKubernetesPtrOutputWithContext(context.Context) ElastigroupIntegrationKubernetesPtrOutput -} - -type elastigroupIntegrationKubernetesPtrType ElastigroupIntegrationKubernetesArgs - -func ElastigroupIntegrationKubernetesPtr(v *ElastigroupIntegrationKubernetesArgs) ElastigroupIntegrationKubernetesPtrInput { - return (*elastigroupIntegrationKubernetesPtrType)(v) -} - -func (*elastigroupIntegrationKubernetesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupIntegrationKubernetes)(nil)).Elem() -} - -func (i *elastigroupIntegrationKubernetesPtrType) ToElastigroupIntegrationKubernetesPtrOutput() ElastigroupIntegrationKubernetesPtrOutput { - return i.ToElastigroupIntegrationKubernetesPtrOutputWithContext(context.Background()) -} - -func (i *elastigroupIntegrationKubernetesPtrType) ToElastigroupIntegrationKubernetesPtrOutputWithContext(ctx context.Context) ElastigroupIntegrationKubernetesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupIntegrationKubernetesPtrOutput) -} - -type ElastigroupIntegrationKubernetesOutput struct{ *pulumi.OutputState } - -func (ElastigroupIntegrationKubernetesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupIntegrationKubernetes)(nil)).Elem() -} - -func (o ElastigroupIntegrationKubernetesOutput) ToElastigroupIntegrationKubernetesOutput() ElastigroupIntegrationKubernetesOutput { - return o -} - -func (o ElastigroupIntegrationKubernetesOutput) ToElastigroupIntegrationKubernetesOutputWithContext(ctx context.Context) ElastigroupIntegrationKubernetesOutput { - return o -} - -func (o ElastigroupIntegrationKubernetesOutput) ToElastigroupIntegrationKubernetesPtrOutput() ElastigroupIntegrationKubernetesPtrOutput { - return o.ToElastigroupIntegrationKubernetesPtrOutputWithContext(context.Background()) -} - -func (o ElastigroupIntegrationKubernetesOutput) ToElastigroupIntegrationKubernetesPtrOutputWithContext(ctx context.Context) ElastigroupIntegrationKubernetesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ElastigroupIntegrationKubernetes) *ElastigroupIntegrationKubernetes { - return &v - }).(ElastigroupIntegrationKubernetesPtrOutput) -} - -func (o ElastigroupIntegrationKubernetesOutput) ClusterIdentifier() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupIntegrationKubernetes) string { return v.ClusterIdentifier }).(pulumi.StringOutput) -} - -type ElastigroupIntegrationKubernetesPtrOutput struct{ *pulumi.OutputState } - -func (ElastigroupIntegrationKubernetesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupIntegrationKubernetes)(nil)).Elem() -} - -func (o ElastigroupIntegrationKubernetesPtrOutput) ToElastigroupIntegrationKubernetesPtrOutput() ElastigroupIntegrationKubernetesPtrOutput { - return o -} - -func (o ElastigroupIntegrationKubernetesPtrOutput) ToElastigroupIntegrationKubernetesPtrOutputWithContext(ctx context.Context) ElastigroupIntegrationKubernetesPtrOutput { - return o -} - -func (o ElastigroupIntegrationKubernetesPtrOutput) Elem() ElastigroupIntegrationKubernetesOutput { - return o.ApplyT(func(v *ElastigroupIntegrationKubernetes) ElastigroupIntegrationKubernetes { - if v != nil { - return *v - } - var ret ElastigroupIntegrationKubernetes - return ret - }).(ElastigroupIntegrationKubernetesOutput) -} - -func (o ElastigroupIntegrationKubernetesPtrOutput) ClusterIdentifier() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ElastigroupIntegrationKubernetes) *string { - if v == nil { - return nil - } - return &v.ClusterIdentifier - }).(pulumi.StringPtrOutput) -} - -type ElastigroupIntegrationMultaiRuntime struct { - DeploymentId string `pulumi:"deploymentId"` -} - -// ElastigroupIntegrationMultaiRuntimeInput is an input type that accepts ElastigroupIntegrationMultaiRuntimeArgs and ElastigroupIntegrationMultaiRuntimeOutput values. -// You can construct a concrete instance of `ElastigroupIntegrationMultaiRuntimeInput` via: -// -// ElastigroupIntegrationMultaiRuntimeArgs{...} -type ElastigroupIntegrationMultaiRuntimeInput interface { - pulumi.Input - - ToElastigroupIntegrationMultaiRuntimeOutput() ElastigroupIntegrationMultaiRuntimeOutput - ToElastigroupIntegrationMultaiRuntimeOutputWithContext(context.Context) ElastigroupIntegrationMultaiRuntimeOutput -} - -type ElastigroupIntegrationMultaiRuntimeArgs struct { - DeploymentId pulumi.StringInput `pulumi:"deploymentId"` -} - -func (ElastigroupIntegrationMultaiRuntimeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupIntegrationMultaiRuntime)(nil)).Elem() -} - -func (i ElastigroupIntegrationMultaiRuntimeArgs) ToElastigroupIntegrationMultaiRuntimeOutput() ElastigroupIntegrationMultaiRuntimeOutput { - return i.ToElastigroupIntegrationMultaiRuntimeOutputWithContext(context.Background()) -} - -func (i ElastigroupIntegrationMultaiRuntimeArgs) ToElastigroupIntegrationMultaiRuntimeOutputWithContext(ctx context.Context) ElastigroupIntegrationMultaiRuntimeOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupIntegrationMultaiRuntimeOutput) -} - -func (i ElastigroupIntegrationMultaiRuntimeArgs) ToElastigroupIntegrationMultaiRuntimePtrOutput() ElastigroupIntegrationMultaiRuntimePtrOutput { - return i.ToElastigroupIntegrationMultaiRuntimePtrOutputWithContext(context.Background()) -} - -func (i ElastigroupIntegrationMultaiRuntimeArgs) ToElastigroupIntegrationMultaiRuntimePtrOutputWithContext(ctx context.Context) ElastigroupIntegrationMultaiRuntimePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupIntegrationMultaiRuntimeOutput).ToElastigroupIntegrationMultaiRuntimePtrOutputWithContext(ctx) -} - -// ElastigroupIntegrationMultaiRuntimePtrInput is an input type that accepts ElastigroupIntegrationMultaiRuntimeArgs, ElastigroupIntegrationMultaiRuntimePtr and ElastigroupIntegrationMultaiRuntimePtrOutput values. -// You can construct a concrete instance of `ElastigroupIntegrationMultaiRuntimePtrInput` via: -// -// ElastigroupIntegrationMultaiRuntimeArgs{...} -// -// or: -// -// nil -type ElastigroupIntegrationMultaiRuntimePtrInput interface { - pulumi.Input - - ToElastigroupIntegrationMultaiRuntimePtrOutput() ElastigroupIntegrationMultaiRuntimePtrOutput - ToElastigroupIntegrationMultaiRuntimePtrOutputWithContext(context.Context) ElastigroupIntegrationMultaiRuntimePtrOutput -} - -type elastigroupIntegrationMultaiRuntimePtrType ElastigroupIntegrationMultaiRuntimeArgs - -func ElastigroupIntegrationMultaiRuntimePtr(v *ElastigroupIntegrationMultaiRuntimeArgs) ElastigroupIntegrationMultaiRuntimePtrInput { - return (*elastigroupIntegrationMultaiRuntimePtrType)(v) -} - -func (*elastigroupIntegrationMultaiRuntimePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupIntegrationMultaiRuntime)(nil)).Elem() -} - -func (i *elastigroupIntegrationMultaiRuntimePtrType) ToElastigroupIntegrationMultaiRuntimePtrOutput() ElastigroupIntegrationMultaiRuntimePtrOutput { - return i.ToElastigroupIntegrationMultaiRuntimePtrOutputWithContext(context.Background()) -} - -func (i *elastigroupIntegrationMultaiRuntimePtrType) ToElastigroupIntegrationMultaiRuntimePtrOutputWithContext(ctx context.Context) ElastigroupIntegrationMultaiRuntimePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupIntegrationMultaiRuntimePtrOutput) -} - -type ElastigroupIntegrationMultaiRuntimeOutput struct{ *pulumi.OutputState } - -func (ElastigroupIntegrationMultaiRuntimeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupIntegrationMultaiRuntime)(nil)).Elem() -} - -func (o ElastigroupIntegrationMultaiRuntimeOutput) ToElastigroupIntegrationMultaiRuntimeOutput() ElastigroupIntegrationMultaiRuntimeOutput { - return o -} - -func (o ElastigroupIntegrationMultaiRuntimeOutput) ToElastigroupIntegrationMultaiRuntimeOutputWithContext(ctx context.Context) ElastigroupIntegrationMultaiRuntimeOutput { - return o -} - -func (o ElastigroupIntegrationMultaiRuntimeOutput) ToElastigroupIntegrationMultaiRuntimePtrOutput() ElastigroupIntegrationMultaiRuntimePtrOutput { - return o.ToElastigroupIntegrationMultaiRuntimePtrOutputWithContext(context.Background()) -} - -func (o ElastigroupIntegrationMultaiRuntimeOutput) ToElastigroupIntegrationMultaiRuntimePtrOutputWithContext(ctx context.Context) ElastigroupIntegrationMultaiRuntimePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ElastigroupIntegrationMultaiRuntime) *ElastigroupIntegrationMultaiRuntime { - return &v - }).(ElastigroupIntegrationMultaiRuntimePtrOutput) -} - -func (o ElastigroupIntegrationMultaiRuntimeOutput) DeploymentId() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupIntegrationMultaiRuntime) string { return v.DeploymentId }).(pulumi.StringOutput) -} - -type ElastigroupIntegrationMultaiRuntimePtrOutput struct{ *pulumi.OutputState } - -func (ElastigroupIntegrationMultaiRuntimePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupIntegrationMultaiRuntime)(nil)).Elem() -} - -func (o ElastigroupIntegrationMultaiRuntimePtrOutput) ToElastigroupIntegrationMultaiRuntimePtrOutput() ElastigroupIntegrationMultaiRuntimePtrOutput { - return o -} - -func (o ElastigroupIntegrationMultaiRuntimePtrOutput) ToElastigroupIntegrationMultaiRuntimePtrOutputWithContext(ctx context.Context) ElastigroupIntegrationMultaiRuntimePtrOutput { - return o -} - -func (o ElastigroupIntegrationMultaiRuntimePtrOutput) Elem() ElastigroupIntegrationMultaiRuntimeOutput { - return o.ApplyT(func(v *ElastigroupIntegrationMultaiRuntime) ElastigroupIntegrationMultaiRuntime { - if v != nil { - return *v - } - var ret ElastigroupIntegrationMultaiRuntime - return ret - }).(ElastigroupIntegrationMultaiRuntimeOutput) -} - -func (o ElastigroupIntegrationMultaiRuntimePtrOutput) DeploymentId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ElastigroupIntegrationMultaiRuntime) *string { - if v == nil { - return nil - } - return &v.DeploymentId - }).(pulumi.StringPtrOutput) -} - -type ElastigroupLoadBalancer struct { - AutoWeight *bool `pulumi:"autoWeight"` - BalancerId *string `pulumi:"balancerId"` - TargetSetId *string `pulumi:"targetSetId"` - Type string `pulumi:"type"` -} - -// ElastigroupLoadBalancerInput is an input type that accepts ElastigroupLoadBalancerArgs and ElastigroupLoadBalancerOutput values. -// You can construct a concrete instance of `ElastigroupLoadBalancerInput` via: -// -// ElastigroupLoadBalancerArgs{...} -type ElastigroupLoadBalancerInput interface { - pulumi.Input - - ToElastigroupLoadBalancerOutput() ElastigroupLoadBalancerOutput - ToElastigroupLoadBalancerOutputWithContext(context.Context) ElastigroupLoadBalancerOutput -} - -type ElastigroupLoadBalancerArgs struct { - AutoWeight pulumi.BoolPtrInput `pulumi:"autoWeight"` - BalancerId pulumi.StringPtrInput `pulumi:"balancerId"` - TargetSetId pulumi.StringPtrInput `pulumi:"targetSetId"` - Type pulumi.StringInput `pulumi:"type"` -} - -func (ElastigroupLoadBalancerArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupLoadBalancer)(nil)).Elem() -} - -func (i ElastigroupLoadBalancerArgs) ToElastigroupLoadBalancerOutput() ElastigroupLoadBalancerOutput { - return i.ToElastigroupLoadBalancerOutputWithContext(context.Background()) -} - -func (i ElastigroupLoadBalancerArgs) ToElastigroupLoadBalancerOutputWithContext(ctx context.Context) ElastigroupLoadBalancerOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupLoadBalancerOutput) -} - -// ElastigroupLoadBalancerArrayInput is an input type that accepts ElastigroupLoadBalancerArray and ElastigroupLoadBalancerArrayOutput values. -// You can construct a concrete instance of `ElastigroupLoadBalancerArrayInput` via: -// -// ElastigroupLoadBalancerArray{ ElastigroupLoadBalancerArgs{...} } -type ElastigroupLoadBalancerArrayInput interface { - pulumi.Input - - ToElastigroupLoadBalancerArrayOutput() ElastigroupLoadBalancerArrayOutput - ToElastigroupLoadBalancerArrayOutputWithContext(context.Context) ElastigroupLoadBalancerArrayOutput -} - -type ElastigroupLoadBalancerArray []ElastigroupLoadBalancerInput - -func (ElastigroupLoadBalancerArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupLoadBalancer)(nil)).Elem() -} - -func (i ElastigroupLoadBalancerArray) ToElastigroupLoadBalancerArrayOutput() ElastigroupLoadBalancerArrayOutput { - return i.ToElastigroupLoadBalancerArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupLoadBalancerArray) ToElastigroupLoadBalancerArrayOutputWithContext(ctx context.Context) ElastigroupLoadBalancerArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupLoadBalancerArrayOutput) -} - -type ElastigroupLoadBalancerOutput struct{ *pulumi.OutputState } - -func (ElastigroupLoadBalancerOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupLoadBalancer)(nil)).Elem() -} - -func (o ElastigroupLoadBalancerOutput) ToElastigroupLoadBalancerOutput() ElastigroupLoadBalancerOutput { - return o -} - -func (o ElastigroupLoadBalancerOutput) ToElastigroupLoadBalancerOutputWithContext(ctx context.Context) ElastigroupLoadBalancerOutput { - return o -} - -func (o ElastigroupLoadBalancerOutput) AutoWeight() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ElastigroupLoadBalancer) *bool { return v.AutoWeight }).(pulumi.BoolPtrOutput) -} - -func (o ElastigroupLoadBalancerOutput) BalancerId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupLoadBalancer) *string { return v.BalancerId }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupLoadBalancerOutput) TargetSetId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupLoadBalancer) *string { return v.TargetSetId }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupLoadBalancerOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupLoadBalancer) string { return v.Type }).(pulumi.StringOutput) -} - -type ElastigroupLoadBalancerArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupLoadBalancerArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupLoadBalancer)(nil)).Elem() -} - -func (o ElastigroupLoadBalancerArrayOutput) ToElastigroupLoadBalancerArrayOutput() ElastigroupLoadBalancerArrayOutput { - return o -} - -func (o ElastigroupLoadBalancerArrayOutput) ToElastigroupLoadBalancerArrayOutputWithContext(ctx context.Context) ElastigroupLoadBalancerArrayOutput { - return o -} - -func (o ElastigroupLoadBalancerArrayOutput) Index(i pulumi.IntInput) ElastigroupLoadBalancerOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupLoadBalancer { - return vs[0].([]ElastigroupLoadBalancer)[vs[1].(int)] - }).(ElastigroupLoadBalancerOutput) -} - -type ElastigroupLogin struct { - Password *string `pulumi:"password"` - SshPublicKey *string `pulumi:"sshPublicKey"` - UserName string `pulumi:"userName"` -} - -// ElastigroupLoginInput is an input type that accepts ElastigroupLoginArgs and ElastigroupLoginOutput values. -// You can construct a concrete instance of `ElastigroupLoginInput` via: -// -// ElastigroupLoginArgs{...} -type ElastigroupLoginInput interface { - pulumi.Input - - ToElastigroupLoginOutput() ElastigroupLoginOutput - ToElastigroupLoginOutputWithContext(context.Context) ElastigroupLoginOutput -} - -type ElastigroupLoginArgs struct { - Password pulumi.StringPtrInput `pulumi:"password"` - SshPublicKey pulumi.StringPtrInput `pulumi:"sshPublicKey"` - UserName pulumi.StringInput `pulumi:"userName"` -} - -func (ElastigroupLoginArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupLogin)(nil)).Elem() -} - -func (i ElastigroupLoginArgs) ToElastigroupLoginOutput() ElastigroupLoginOutput { - return i.ToElastigroupLoginOutputWithContext(context.Background()) -} - -func (i ElastigroupLoginArgs) ToElastigroupLoginOutputWithContext(ctx context.Context) ElastigroupLoginOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupLoginOutput) -} - -func (i ElastigroupLoginArgs) ToElastigroupLoginPtrOutput() ElastigroupLoginPtrOutput { - return i.ToElastigroupLoginPtrOutputWithContext(context.Background()) -} - -func (i ElastigroupLoginArgs) ToElastigroupLoginPtrOutputWithContext(ctx context.Context) ElastigroupLoginPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupLoginOutput).ToElastigroupLoginPtrOutputWithContext(ctx) -} - -// ElastigroupLoginPtrInput is an input type that accepts ElastigroupLoginArgs, ElastigroupLoginPtr and ElastigroupLoginPtrOutput values. -// You can construct a concrete instance of `ElastigroupLoginPtrInput` via: -// -// ElastigroupLoginArgs{...} -// -// or: -// -// nil -type ElastigroupLoginPtrInput interface { - pulumi.Input - - ToElastigroupLoginPtrOutput() ElastigroupLoginPtrOutput - ToElastigroupLoginPtrOutputWithContext(context.Context) ElastigroupLoginPtrOutput -} - -type elastigroupLoginPtrType ElastigroupLoginArgs - -func ElastigroupLoginPtr(v *ElastigroupLoginArgs) ElastigroupLoginPtrInput { - return (*elastigroupLoginPtrType)(v) -} - -func (*elastigroupLoginPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupLogin)(nil)).Elem() -} - -func (i *elastigroupLoginPtrType) ToElastigroupLoginPtrOutput() ElastigroupLoginPtrOutput { - return i.ToElastigroupLoginPtrOutputWithContext(context.Background()) -} - -func (i *elastigroupLoginPtrType) ToElastigroupLoginPtrOutputWithContext(ctx context.Context) ElastigroupLoginPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupLoginPtrOutput) -} - -type ElastigroupLoginOutput struct{ *pulumi.OutputState } - -func (ElastigroupLoginOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupLogin)(nil)).Elem() -} - -func (o ElastigroupLoginOutput) ToElastigroupLoginOutput() ElastigroupLoginOutput { - return o -} - -func (o ElastigroupLoginOutput) ToElastigroupLoginOutputWithContext(ctx context.Context) ElastigroupLoginOutput { - return o -} - -func (o ElastigroupLoginOutput) ToElastigroupLoginPtrOutput() ElastigroupLoginPtrOutput { - return o.ToElastigroupLoginPtrOutputWithContext(context.Background()) -} - -func (o ElastigroupLoginOutput) ToElastigroupLoginPtrOutputWithContext(ctx context.Context) ElastigroupLoginPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ElastigroupLogin) *ElastigroupLogin { - return &v - }).(ElastigroupLoginPtrOutput) -} - -func (o ElastigroupLoginOutput) Password() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupLogin) *string { return v.Password }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupLoginOutput) SshPublicKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupLogin) *string { return v.SshPublicKey }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupLoginOutput) UserName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupLogin) string { return v.UserName }).(pulumi.StringOutput) -} - -type ElastigroupLoginPtrOutput struct{ *pulumi.OutputState } - -func (ElastigroupLoginPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupLogin)(nil)).Elem() -} - -func (o ElastigroupLoginPtrOutput) ToElastigroupLoginPtrOutput() ElastigroupLoginPtrOutput { - return o -} - -func (o ElastigroupLoginPtrOutput) ToElastigroupLoginPtrOutputWithContext(ctx context.Context) ElastigroupLoginPtrOutput { - return o -} - -func (o ElastigroupLoginPtrOutput) Elem() ElastigroupLoginOutput { - return o.ApplyT(func(v *ElastigroupLogin) ElastigroupLogin { - if v != nil { - return *v - } - var ret ElastigroupLogin - return ret - }).(ElastigroupLoginOutput) -} - -func (o ElastigroupLoginPtrOutput) Password() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ElastigroupLogin) *string { - if v == nil { - return nil - } - return v.Password - }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupLoginPtrOutput) SshPublicKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ElastigroupLogin) *string { - if v == nil { - return nil - } - return v.SshPublicKey - }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupLoginPtrOutput) UserName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ElastigroupLogin) *string { - if v == nil { - return nil - } - return &v.UserName - }).(pulumi.StringPtrOutput) -} - -type ElastigroupManagedServiceIdentity struct { - // The group name. - Name string `pulumi:"name"` - // Name of the Resource Group for Elastigroup. - ResourceGroupName string `pulumi:"resourceGroupName"` -} - -// ElastigroupManagedServiceIdentityInput is an input type that accepts ElastigroupManagedServiceIdentityArgs and ElastigroupManagedServiceIdentityOutput values. -// You can construct a concrete instance of `ElastigroupManagedServiceIdentityInput` via: -// -// ElastigroupManagedServiceIdentityArgs{...} -type ElastigroupManagedServiceIdentityInput interface { - pulumi.Input - - ToElastigroupManagedServiceIdentityOutput() ElastigroupManagedServiceIdentityOutput - ToElastigroupManagedServiceIdentityOutputWithContext(context.Context) ElastigroupManagedServiceIdentityOutput -} - -type ElastigroupManagedServiceIdentityArgs struct { - // The group name. - Name pulumi.StringInput `pulumi:"name"` - // Name of the Resource Group for Elastigroup. - ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` -} - -func (ElastigroupManagedServiceIdentityArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupManagedServiceIdentity)(nil)).Elem() -} - -func (i ElastigroupManagedServiceIdentityArgs) ToElastigroupManagedServiceIdentityOutput() ElastigroupManagedServiceIdentityOutput { - return i.ToElastigroupManagedServiceIdentityOutputWithContext(context.Background()) -} - -func (i ElastigroupManagedServiceIdentityArgs) ToElastigroupManagedServiceIdentityOutputWithContext(ctx context.Context) ElastigroupManagedServiceIdentityOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupManagedServiceIdentityOutput) -} - -// ElastigroupManagedServiceIdentityArrayInput is an input type that accepts ElastigroupManagedServiceIdentityArray and ElastigroupManagedServiceIdentityArrayOutput values. -// You can construct a concrete instance of `ElastigroupManagedServiceIdentityArrayInput` via: -// -// ElastigroupManagedServiceIdentityArray{ ElastigroupManagedServiceIdentityArgs{...} } -type ElastigroupManagedServiceIdentityArrayInput interface { - pulumi.Input - - ToElastigroupManagedServiceIdentityArrayOutput() ElastigroupManagedServiceIdentityArrayOutput - ToElastigroupManagedServiceIdentityArrayOutputWithContext(context.Context) ElastigroupManagedServiceIdentityArrayOutput -} - -type ElastigroupManagedServiceIdentityArray []ElastigroupManagedServiceIdentityInput - -func (ElastigroupManagedServiceIdentityArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupManagedServiceIdentity)(nil)).Elem() -} - -func (i ElastigroupManagedServiceIdentityArray) ToElastigroupManagedServiceIdentityArrayOutput() ElastigroupManagedServiceIdentityArrayOutput { - return i.ToElastigroupManagedServiceIdentityArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupManagedServiceIdentityArray) ToElastigroupManagedServiceIdentityArrayOutputWithContext(ctx context.Context) ElastigroupManagedServiceIdentityArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupManagedServiceIdentityArrayOutput) -} - -type ElastigroupManagedServiceIdentityOutput struct{ *pulumi.OutputState } - -func (ElastigroupManagedServiceIdentityOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupManagedServiceIdentity)(nil)).Elem() -} - -func (o ElastigroupManagedServiceIdentityOutput) ToElastigroupManagedServiceIdentityOutput() ElastigroupManagedServiceIdentityOutput { - return o -} - -func (o ElastigroupManagedServiceIdentityOutput) ToElastigroupManagedServiceIdentityOutputWithContext(ctx context.Context) ElastigroupManagedServiceIdentityOutput { - return o -} - -// The group name. -func (o ElastigroupManagedServiceIdentityOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupManagedServiceIdentity) string { return v.Name }).(pulumi.StringOutput) -} - -// Name of the Resource Group for Elastigroup. -func (o ElastigroupManagedServiceIdentityOutput) ResourceGroupName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupManagedServiceIdentity) string { return v.ResourceGroupName }).(pulumi.StringOutput) -} - -type ElastigroupManagedServiceIdentityArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupManagedServiceIdentityArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupManagedServiceIdentity)(nil)).Elem() -} - -func (o ElastigroupManagedServiceIdentityArrayOutput) ToElastigroupManagedServiceIdentityArrayOutput() ElastigroupManagedServiceIdentityArrayOutput { - return o -} - -func (o ElastigroupManagedServiceIdentityArrayOutput) ToElastigroupManagedServiceIdentityArrayOutputWithContext(ctx context.Context) ElastigroupManagedServiceIdentityArrayOutput { - return o -} - -func (o ElastigroupManagedServiceIdentityArrayOutput) Index(i pulumi.IntInput) ElastigroupManagedServiceIdentityOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupManagedServiceIdentity { - return vs[0].([]ElastigroupManagedServiceIdentity)[vs[1].(int)] - }).(ElastigroupManagedServiceIdentityOutput) -} - -type ElastigroupNetwork struct { - AdditionalIpConfigs []ElastigroupNetworkAdditionalIpConfig `pulumi:"additionalIpConfigs"` - AssignPublicIp *bool `pulumi:"assignPublicIp"` - // Name of the Resource Group for Elastigroup. - ResourceGroupName string `pulumi:"resourceGroupName"` - SubnetName string `pulumi:"subnetName"` - VirtualNetworkName string `pulumi:"virtualNetworkName"` -} - -// ElastigroupNetworkInput is an input type that accepts ElastigroupNetworkArgs and ElastigroupNetworkOutput values. -// You can construct a concrete instance of `ElastigroupNetworkInput` via: -// -// ElastigroupNetworkArgs{...} -type ElastigroupNetworkInput interface { - pulumi.Input - - ToElastigroupNetworkOutput() ElastigroupNetworkOutput - ToElastigroupNetworkOutputWithContext(context.Context) ElastigroupNetworkOutput -} - -type ElastigroupNetworkArgs struct { - AdditionalIpConfigs ElastigroupNetworkAdditionalIpConfigArrayInput `pulumi:"additionalIpConfigs"` - AssignPublicIp pulumi.BoolPtrInput `pulumi:"assignPublicIp"` - // Name of the Resource Group for Elastigroup. - ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` - SubnetName pulumi.StringInput `pulumi:"subnetName"` - VirtualNetworkName pulumi.StringInput `pulumi:"virtualNetworkName"` -} - -func (ElastigroupNetworkArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupNetwork)(nil)).Elem() -} - -func (i ElastigroupNetworkArgs) ToElastigroupNetworkOutput() ElastigroupNetworkOutput { - return i.ToElastigroupNetworkOutputWithContext(context.Background()) -} - -func (i ElastigroupNetworkArgs) ToElastigroupNetworkOutputWithContext(ctx context.Context) ElastigroupNetworkOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupNetworkOutput) -} - -func (i ElastigroupNetworkArgs) ToElastigroupNetworkPtrOutput() ElastigroupNetworkPtrOutput { - return i.ToElastigroupNetworkPtrOutputWithContext(context.Background()) -} - -func (i ElastigroupNetworkArgs) ToElastigroupNetworkPtrOutputWithContext(ctx context.Context) ElastigroupNetworkPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupNetworkOutput).ToElastigroupNetworkPtrOutputWithContext(ctx) -} - -// ElastigroupNetworkPtrInput is an input type that accepts ElastigroupNetworkArgs, ElastigroupNetworkPtr and ElastigroupNetworkPtrOutput values. -// You can construct a concrete instance of `ElastigroupNetworkPtrInput` via: -// -// ElastigroupNetworkArgs{...} -// -// or: -// -// nil -type ElastigroupNetworkPtrInput interface { - pulumi.Input - - ToElastigroupNetworkPtrOutput() ElastigroupNetworkPtrOutput - ToElastigroupNetworkPtrOutputWithContext(context.Context) ElastigroupNetworkPtrOutput -} - -type elastigroupNetworkPtrType ElastigroupNetworkArgs - -func ElastigroupNetworkPtr(v *ElastigroupNetworkArgs) ElastigroupNetworkPtrInput { - return (*elastigroupNetworkPtrType)(v) -} - -func (*elastigroupNetworkPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupNetwork)(nil)).Elem() -} - -func (i *elastigroupNetworkPtrType) ToElastigroupNetworkPtrOutput() ElastigroupNetworkPtrOutput { - return i.ToElastigroupNetworkPtrOutputWithContext(context.Background()) -} - -func (i *elastigroupNetworkPtrType) ToElastigroupNetworkPtrOutputWithContext(ctx context.Context) ElastigroupNetworkPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupNetworkPtrOutput) -} - -type ElastigroupNetworkOutput struct{ *pulumi.OutputState } - -func (ElastigroupNetworkOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupNetwork)(nil)).Elem() -} - -func (o ElastigroupNetworkOutput) ToElastigroupNetworkOutput() ElastigroupNetworkOutput { - return o -} - -func (o ElastigroupNetworkOutput) ToElastigroupNetworkOutputWithContext(ctx context.Context) ElastigroupNetworkOutput { - return o -} - -func (o ElastigroupNetworkOutput) ToElastigroupNetworkPtrOutput() ElastigroupNetworkPtrOutput { - return o.ToElastigroupNetworkPtrOutputWithContext(context.Background()) -} - -func (o ElastigroupNetworkOutput) ToElastigroupNetworkPtrOutputWithContext(ctx context.Context) ElastigroupNetworkPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ElastigroupNetwork) *ElastigroupNetwork { - return &v - }).(ElastigroupNetworkPtrOutput) -} - -func (o ElastigroupNetworkOutput) AdditionalIpConfigs() ElastigroupNetworkAdditionalIpConfigArrayOutput { - return o.ApplyT(func(v ElastigroupNetwork) []ElastigroupNetworkAdditionalIpConfig { return v.AdditionalIpConfigs }).(ElastigroupNetworkAdditionalIpConfigArrayOutput) -} - -func (o ElastigroupNetworkOutput) AssignPublicIp() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ElastigroupNetwork) *bool { return v.AssignPublicIp }).(pulumi.BoolPtrOutput) -} - -// Name of the Resource Group for Elastigroup. -func (o ElastigroupNetworkOutput) ResourceGroupName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupNetwork) string { return v.ResourceGroupName }).(pulumi.StringOutput) -} - -func (o ElastigroupNetworkOutput) SubnetName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupNetwork) string { return v.SubnetName }).(pulumi.StringOutput) -} - -func (o ElastigroupNetworkOutput) VirtualNetworkName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupNetwork) string { return v.VirtualNetworkName }).(pulumi.StringOutput) -} - -type ElastigroupNetworkPtrOutput struct{ *pulumi.OutputState } - -func (ElastigroupNetworkPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupNetwork)(nil)).Elem() -} - -func (o ElastigroupNetworkPtrOutput) ToElastigroupNetworkPtrOutput() ElastigroupNetworkPtrOutput { - return o -} - -func (o ElastigroupNetworkPtrOutput) ToElastigroupNetworkPtrOutputWithContext(ctx context.Context) ElastigroupNetworkPtrOutput { - return o -} - -func (o ElastigroupNetworkPtrOutput) Elem() ElastigroupNetworkOutput { - return o.ApplyT(func(v *ElastigroupNetwork) ElastigroupNetwork { - if v != nil { - return *v - } - var ret ElastigroupNetwork - return ret - }).(ElastigroupNetworkOutput) -} - -func (o ElastigroupNetworkPtrOutput) AdditionalIpConfigs() ElastigroupNetworkAdditionalIpConfigArrayOutput { - return o.ApplyT(func(v *ElastigroupNetwork) []ElastigroupNetworkAdditionalIpConfig { - if v == nil { - return nil - } - return v.AdditionalIpConfigs - }).(ElastigroupNetworkAdditionalIpConfigArrayOutput) -} - -func (o ElastigroupNetworkPtrOutput) AssignPublicIp() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ElastigroupNetwork) *bool { - if v == nil { - return nil - } - return v.AssignPublicIp - }).(pulumi.BoolPtrOutput) -} - -// Name of the Resource Group for Elastigroup. -func (o ElastigroupNetworkPtrOutput) ResourceGroupName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ElastigroupNetwork) *string { - if v == nil { - return nil - } - return &v.ResourceGroupName - }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupNetworkPtrOutput) SubnetName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ElastigroupNetwork) *string { - if v == nil { - return nil - } - return &v.SubnetName - }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupNetworkPtrOutput) VirtualNetworkName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ElastigroupNetwork) *string { - if v == nil { - return nil - } - return &v.VirtualNetworkName - }).(pulumi.StringPtrOutput) -} - -type ElastigroupNetworkAdditionalIpConfig struct { - // The group name. - Name string `pulumi:"name"` - PrivateIpVersion *string `pulumi:"privateIpVersion"` -} - -// ElastigroupNetworkAdditionalIpConfigInput is an input type that accepts ElastigroupNetworkAdditionalIpConfigArgs and ElastigroupNetworkAdditionalIpConfigOutput values. -// You can construct a concrete instance of `ElastigroupNetworkAdditionalIpConfigInput` via: -// -// ElastigroupNetworkAdditionalIpConfigArgs{...} -type ElastigroupNetworkAdditionalIpConfigInput interface { - pulumi.Input - - ToElastigroupNetworkAdditionalIpConfigOutput() ElastigroupNetworkAdditionalIpConfigOutput - ToElastigroupNetworkAdditionalIpConfigOutputWithContext(context.Context) ElastigroupNetworkAdditionalIpConfigOutput -} - -type ElastigroupNetworkAdditionalIpConfigArgs struct { - // The group name. - Name pulumi.StringInput `pulumi:"name"` - PrivateIpVersion pulumi.StringPtrInput `pulumi:"privateIpVersion"` -} - -func (ElastigroupNetworkAdditionalIpConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupNetworkAdditionalIpConfig)(nil)).Elem() -} - -func (i ElastigroupNetworkAdditionalIpConfigArgs) ToElastigroupNetworkAdditionalIpConfigOutput() ElastigroupNetworkAdditionalIpConfigOutput { - return i.ToElastigroupNetworkAdditionalIpConfigOutputWithContext(context.Background()) -} - -func (i ElastigroupNetworkAdditionalIpConfigArgs) ToElastigroupNetworkAdditionalIpConfigOutputWithContext(ctx context.Context) ElastigroupNetworkAdditionalIpConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupNetworkAdditionalIpConfigOutput) -} - -// ElastigroupNetworkAdditionalIpConfigArrayInput is an input type that accepts ElastigroupNetworkAdditionalIpConfigArray and ElastigroupNetworkAdditionalIpConfigArrayOutput values. -// You can construct a concrete instance of `ElastigroupNetworkAdditionalIpConfigArrayInput` via: -// -// ElastigroupNetworkAdditionalIpConfigArray{ ElastigroupNetworkAdditionalIpConfigArgs{...} } -type ElastigroupNetworkAdditionalIpConfigArrayInput interface { - pulumi.Input - - ToElastigroupNetworkAdditionalIpConfigArrayOutput() ElastigroupNetworkAdditionalIpConfigArrayOutput - ToElastigroupNetworkAdditionalIpConfigArrayOutputWithContext(context.Context) ElastigroupNetworkAdditionalIpConfigArrayOutput -} - -type ElastigroupNetworkAdditionalIpConfigArray []ElastigroupNetworkAdditionalIpConfigInput - -func (ElastigroupNetworkAdditionalIpConfigArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupNetworkAdditionalIpConfig)(nil)).Elem() -} - -func (i ElastigroupNetworkAdditionalIpConfigArray) ToElastigroupNetworkAdditionalIpConfigArrayOutput() ElastigroupNetworkAdditionalIpConfigArrayOutput { - return i.ToElastigroupNetworkAdditionalIpConfigArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupNetworkAdditionalIpConfigArray) ToElastigroupNetworkAdditionalIpConfigArrayOutputWithContext(ctx context.Context) ElastigroupNetworkAdditionalIpConfigArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupNetworkAdditionalIpConfigArrayOutput) -} - -type ElastigroupNetworkAdditionalIpConfigOutput struct{ *pulumi.OutputState } - -func (ElastigroupNetworkAdditionalIpConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupNetworkAdditionalIpConfig)(nil)).Elem() -} - -func (o ElastigroupNetworkAdditionalIpConfigOutput) ToElastigroupNetworkAdditionalIpConfigOutput() ElastigroupNetworkAdditionalIpConfigOutput { - return o -} - -func (o ElastigroupNetworkAdditionalIpConfigOutput) ToElastigroupNetworkAdditionalIpConfigOutputWithContext(ctx context.Context) ElastigroupNetworkAdditionalIpConfigOutput { - return o -} - -// The group name. -func (o ElastigroupNetworkAdditionalIpConfigOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupNetworkAdditionalIpConfig) string { return v.Name }).(pulumi.StringOutput) -} - -func (o ElastigroupNetworkAdditionalIpConfigOutput) PrivateIpVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupNetworkAdditionalIpConfig) *string { return v.PrivateIpVersion }).(pulumi.StringPtrOutput) -} - -type ElastigroupNetworkAdditionalIpConfigArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupNetworkAdditionalIpConfigArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupNetworkAdditionalIpConfig)(nil)).Elem() -} - -func (o ElastigroupNetworkAdditionalIpConfigArrayOutput) ToElastigroupNetworkAdditionalIpConfigArrayOutput() ElastigroupNetworkAdditionalIpConfigArrayOutput { - return o -} - -func (o ElastigroupNetworkAdditionalIpConfigArrayOutput) ToElastigroupNetworkAdditionalIpConfigArrayOutputWithContext(ctx context.Context) ElastigroupNetworkAdditionalIpConfigArrayOutput { - return o -} - -func (o ElastigroupNetworkAdditionalIpConfigArrayOutput) Index(i pulumi.IntInput) ElastigroupNetworkAdditionalIpConfigOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupNetworkAdditionalIpConfig { - return vs[0].([]ElastigroupNetworkAdditionalIpConfig)[vs[1].(int)] - }).(ElastigroupNetworkAdditionalIpConfigOutput) -} - -type ElastigroupScalingDownPolicy struct { - ActionType *string `pulumi:"actionType"` - Adjustment *string `pulumi:"adjustment"` - Cooldown *int `pulumi:"cooldown"` - Dimensions []ElastigroupScalingDownPolicyDimension `pulumi:"dimensions"` - EvaluationPeriods *int `pulumi:"evaluationPeriods"` - MaxTargetCapacity *string `pulumi:"maxTargetCapacity"` - Maximum *string `pulumi:"maximum"` - MetricName string `pulumi:"metricName"` - MinTargetCapacity *string `pulumi:"minTargetCapacity"` - Minimum *string `pulumi:"minimum"` - Namespace string `pulumi:"namespace"` - Operator *string `pulumi:"operator"` - Period *int `pulumi:"period"` - PolicyName string `pulumi:"policyName"` - Statistic *string `pulumi:"statistic"` - Target *string `pulumi:"target"` - Threshold float64 `pulumi:"threshold"` - Unit *string `pulumi:"unit"` -} - -// ElastigroupScalingDownPolicyInput is an input type that accepts ElastigroupScalingDownPolicyArgs and ElastigroupScalingDownPolicyOutput values. -// You can construct a concrete instance of `ElastigroupScalingDownPolicyInput` via: -// -// ElastigroupScalingDownPolicyArgs{...} -type ElastigroupScalingDownPolicyInput interface { - pulumi.Input - - ToElastigroupScalingDownPolicyOutput() ElastigroupScalingDownPolicyOutput - ToElastigroupScalingDownPolicyOutputWithContext(context.Context) ElastigroupScalingDownPolicyOutput -} - -type ElastigroupScalingDownPolicyArgs struct { - ActionType pulumi.StringPtrInput `pulumi:"actionType"` - Adjustment pulumi.StringPtrInput `pulumi:"adjustment"` - Cooldown pulumi.IntPtrInput `pulumi:"cooldown"` - Dimensions ElastigroupScalingDownPolicyDimensionArrayInput `pulumi:"dimensions"` - EvaluationPeriods pulumi.IntPtrInput `pulumi:"evaluationPeriods"` - MaxTargetCapacity pulumi.StringPtrInput `pulumi:"maxTargetCapacity"` - Maximum pulumi.StringPtrInput `pulumi:"maximum"` - MetricName pulumi.StringInput `pulumi:"metricName"` - MinTargetCapacity pulumi.StringPtrInput `pulumi:"minTargetCapacity"` - Minimum pulumi.StringPtrInput `pulumi:"minimum"` - Namespace pulumi.StringInput `pulumi:"namespace"` - Operator pulumi.StringPtrInput `pulumi:"operator"` - Period pulumi.IntPtrInput `pulumi:"period"` - PolicyName pulumi.StringInput `pulumi:"policyName"` - Statistic pulumi.StringPtrInput `pulumi:"statistic"` - Target pulumi.StringPtrInput `pulumi:"target"` - Threshold pulumi.Float64Input `pulumi:"threshold"` - Unit pulumi.StringPtrInput `pulumi:"unit"` -} - -func (ElastigroupScalingDownPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupScalingDownPolicy)(nil)).Elem() -} - -func (i ElastigroupScalingDownPolicyArgs) ToElastigroupScalingDownPolicyOutput() ElastigroupScalingDownPolicyOutput { - return i.ToElastigroupScalingDownPolicyOutputWithContext(context.Background()) -} - -func (i ElastigroupScalingDownPolicyArgs) ToElastigroupScalingDownPolicyOutputWithContext(ctx context.Context) ElastigroupScalingDownPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupScalingDownPolicyOutput) -} - -// ElastigroupScalingDownPolicyArrayInput is an input type that accepts ElastigroupScalingDownPolicyArray and ElastigroupScalingDownPolicyArrayOutput values. -// You can construct a concrete instance of `ElastigroupScalingDownPolicyArrayInput` via: -// -// ElastigroupScalingDownPolicyArray{ ElastigroupScalingDownPolicyArgs{...} } -type ElastigroupScalingDownPolicyArrayInput interface { - pulumi.Input - - ToElastigroupScalingDownPolicyArrayOutput() ElastigroupScalingDownPolicyArrayOutput - ToElastigroupScalingDownPolicyArrayOutputWithContext(context.Context) ElastigroupScalingDownPolicyArrayOutput -} - -type ElastigroupScalingDownPolicyArray []ElastigroupScalingDownPolicyInput - -func (ElastigroupScalingDownPolicyArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupScalingDownPolicy)(nil)).Elem() -} - -func (i ElastigroupScalingDownPolicyArray) ToElastigroupScalingDownPolicyArrayOutput() ElastigroupScalingDownPolicyArrayOutput { - return i.ToElastigroupScalingDownPolicyArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupScalingDownPolicyArray) ToElastigroupScalingDownPolicyArrayOutputWithContext(ctx context.Context) ElastigroupScalingDownPolicyArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupScalingDownPolicyArrayOutput) -} - -type ElastigroupScalingDownPolicyOutput struct{ *pulumi.OutputState } - -func (ElastigroupScalingDownPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupScalingDownPolicy)(nil)).Elem() -} - -func (o ElastigroupScalingDownPolicyOutput) ToElastigroupScalingDownPolicyOutput() ElastigroupScalingDownPolicyOutput { - return o -} - -func (o ElastigroupScalingDownPolicyOutput) ToElastigroupScalingDownPolicyOutputWithContext(ctx context.Context) ElastigroupScalingDownPolicyOutput { - return o -} - -func (o ElastigroupScalingDownPolicyOutput) ActionType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *string { return v.ActionType }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Adjustment() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *string { return v.Adjustment }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Cooldown() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *int { return v.Cooldown }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Dimensions() ElastigroupScalingDownPolicyDimensionArrayOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) []ElastigroupScalingDownPolicyDimension { return v.Dimensions }).(ElastigroupScalingDownPolicyDimensionArrayOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) EvaluationPeriods() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *int { return v.EvaluationPeriods }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) MaxTargetCapacity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *string { return v.MaxTargetCapacity }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Maximum() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *string { return v.Maximum }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) MetricName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) string { return v.MetricName }).(pulumi.StringOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) MinTargetCapacity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *string { return v.MinTargetCapacity }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Minimum() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *string { return v.Minimum }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Namespace() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) string { return v.Namespace }).(pulumi.StringOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Operator() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *string { return v.Operator }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Period() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *int { return v.Period }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) PolicyName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) string { return v.PolicyName }).(pulumi.StringOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Statistic() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *string { return v.Statistic }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *string { return v.Target }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingDownPolicyOutput) Threshold() pulumi.Float64Output { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) float64 { return v.Threshold }).(pulumi.Float64Output) -} - -func (o ElastigroupScalingDownPolicyOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicy) *string { return v.Unit }).(pulumi.StringPtrOutput) -} - -type ElastigroupScalingDownPolicyArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupScalingDownPolicyArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupScalingDownPolicy)(nil)).Elem() -} - -func (o ElastigroupScalingDownPolicyArrayOutput) ToElastigroupScalingDownPolicyArrayOutput() ElastigroupScalingDownPolicyArrayOutput { - return o -} - -func (o ElastigroupScalingDownPolicyArrayOutput) ToElastigroupScalingDownPolicyArrayOutputWithContext(ctx context.Context) ElastigroupScalingDownPolicyArrayOutput { - return o -} - -func (o ElastigroupScalingDownPolicyArrayOutput) Index(i pulumi.IntInput) ElastigroupScalingDownPolicyOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupScalingDownPolicy { - return vs[0].([]ElastigroupScalingDownPolicy)[vs[1].(int)] - }).(ElastigroupScalingDownPolicyOutput) -} - -type ElastigroupScalingDownPolicyDimension struct { - // The group name. - Name string `pulumi:"name"` - Value *string `pulumi:"value"` -} - -// ElastigroupScalingDownPolicyDimensionInput is an input type that accepts ElastigroupScalingDownPolicyDimensionArgs and ElastigroupScalingDownPolicyDimensionOutput values. -// You can construct a concrete instance of `ElastigroupScalingDownPolicyDimensionInput` via: -// -// ElastigroupScalingDownPolicyDimensionArgs{...} -type ElastigroupScalingDownPolicyDimensionInput interface { - pulumi.Input - - ToElastigroupScalingDownPolicyDimensionOutput() ElastigroupScalingDownPolicyDimensionOutput - ToElastigroupScalingDownPolicyDimensionOutputWithContext(context.Context) ElastigroupScalingDownPolicyDimensionOutput -} - -type ElastigroupScalingDownPolicyDimensionArgs struct { - // The group name. - Name pulumi.StringInput `pulumi:"name"` - Value pulumi.StringPtrInput `pulumi:"value"` -} - -func (ElastigroupScalingDownPolicyDimensionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupScalingDownPolicyDimension)(nil)).Elem() -} - -func (i ElastigroupScalingDownPolicyDimensionArgs) ToElastigroupScalingDownPolicyDimensionOutput() ElastigroupScalingDownPolicyDimensionOutput { - return i.ToElastigroupScalingDownPolicyDimensionOutputWithContext(context.Background()) -} - -func (i ElastigroupScalingDownPolicyDimensionArgs) ToElastigroupScalingDownPolicyDimensionOutputWithContext(ctx context.Context) ElastigroupScalingDownPolicyDimensionOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupScalingDownPolicyDimensionOutput) -} - -// ElastigroupScalingDownPolicyDimensionArrayInput is an input type that accepts ElastigroupScalingDownPolicyDimensionArray and ElastigroupScalingDownPolicyDimensionArrayOutput values. -// You can construct a concrete instance of `ElastigroupScalingDownPolicyDimensionArrayInput` via: -// -// ElastigroupScalingDownPolicyDimensionArray{ ElastigroupScalingDownPolicyDimensionArgs{...} } -type ElastigroupScalingDownPolicyDimensionArrayInput interface { - pulumi.Input - - ToElastigroupScalingDownPolicyDimensionArrayOutput() ElastigroupScalingDownPolicyDimensionArrayOutput - ToElastigroupScalingDownPolicyDimensionArrayOutputWithContext(context.Context) ElastigroupScalingDownPolicyDimensionArrayOutput -} - -type ElastigroupScalingDownPolicyDimensionArray []ElastigroupScalingDownPolicyDimensionInput - -func (ElastigroupScalingDownPolicyDimensionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupScalingDownPolicyDimension)(nil)).Elem() -} - -func (i ElastigroupScalingDownPolicyDimensionArray) ToElastigroupScalingDownPolicyDimensionArrayOutput() ElastigroupScalingDownPolicyDimensionArrayOutput { - return i.ToElastigroupScalingDownPolicyDimensionArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupScalingDownPolicyDimensionArray) ToElastigroupScalingDownPolicyDimensionArrayOutputWithContext(ctx context.Context) ElastigroupScalingDownPolicyDimensionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupScalingDownPolicyDimensionArrayOutput) -} - -type ElastigroupScalingDownPolicyDimensionOutput struct{ *pulumi.OutputState } - -func (ElastigroupScalingDownPolicyDimensionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupScalingDownPolicyDimension)(nil)).Elem() -} - -func (o ElastigroupScalingDownPolicyDimensionOutput) ToElastigroupScalingDownPolicyDimensionOutput() ElastigroupScalingDownPolicyDimensionOutput { - return o -} - -func (o ElastigroupScalingDownPolicyDimensionOutput) ToElastigroupScalingDownPolicyDimensionOutputWithContext(ctx context.Context) ElastigroupScalingDownPolicyDimensionOutput { - return o -} - -// The group name. -func (o ElastigroupScalingDownPolicyDimensionOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicyDimension) string { return v.Name }).(pulumi.StringOutput) -} - -func (o ElastigroupScalingDownPolicyDimensionOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingDownPolicyDimension) *string { return v.Value }).(pulumi.StringPtrOutput) -} - -type ElastigroupScalingDownPolicyDimensionArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupScalingDownPolicyDimensionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupScalingDownPolicyDimension)(nil)).Elem() -} - -func (o ElastigroupScalingDownPolicyDimensionArrayOutput) ToElastigroupScalingDownPolicyDimensionArrayOutput() ElastigroupScalingDownPolicyDimensionArrayOutput { - return o -} - -func (o ElastigroupScalingDownPolicyDimensionArrayOutput) ToElastigroupScalingDownPolicyDimensionArrayOutputWithContext(ctx context.Context) ElastigroupScalingDownPolicyDimensionArrayOutput { - return o -} - -func (o ElastigroupScalingDownPolicyDimensionArrayOutput) Index(i pulumi.IntInput) ElastigroupScalingDownPolicyDimensionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupScalingDownPolicyDimension { - return vs[0].([]ElastigroupScalingDownPolicyDimension)[vs[1].(int)] - }).(ElastigroupScalingDownPolicyDimensionOutput) -} - -type ElastigroupScalingUpPolicy struct { - ActionType *string `pulumi:"actionType"` - Adjustment *string `pulumi:"adjustment"` - Cooldown *int `pulumi:"cooldown"` - Dimensions []ElastigroupScalingUpPolicyDimension `pulumi:"dimensions"` - EvaluationPeriods *int `pulumi:"evaluationPeriods"` - MaxTargetCapacity *string `pulumi:"maxTargetCapacity"` - Maximum *string `pulumi:"maximum"` - MetricName string `pulumi:"metricName"` - MinTargetCapacity *string `pulumi:"minTargetCapacity"` - Minimum *string `pulumi:"minimum"` - Namespace string `pulumi:"namespace"` - Operator *string `pulumi:"operator"` - Period *int `pulumi:"period"` - PolicyName string `pulumi:"policyName"` - Statistic *string `pulumi:"statistic"` - Target *string `pulumi:"target"` - Threshold float64 `pulumi:"threshold"` - Unit *string `pulumi:"unit"` -} - -// ElastigroupScalingUpPolicyInput is an input type that accepts ElastigroupScalingUpPolicyArgs and ElastigroupScalingUpPolicyOutput values. -// You can construct a concrete instance of `ElastigroupScalingUpPolicyInput` via: -// -// ElastigroupScalingUpPolicyArgs{...} -type ElastigroupScalingUpPolicyInput interface { - pulumi.Input - - ToElastigroupScalingUpPolicyOutput() ElastigroupScalingUpPolicyOutput - ToElastigroupScalingUpPolicyOutputWithContext(context.Context) ElastigroupScalingUpPolicyOutput -} - -type ElastigroupScalingUpPolicyArgs struct { - ActionType pulumi.StringPtrInput `pulumi:"actionType"` - Adjustment pulumi.StringPtrInput `pulumi:"adjustment"` - Cooldown pulumi.IntPtrInput `pulumi:"cooldown"` - Dimensions ElastigroupScalingUpPolicyDimensionArrayInput `pulumi:"dimensions"` - EvaluationPeriods pulumi.IntPtrInput `pulumi:"evaluationPeriods"` - MaxTargetCapacity pulumi.StringPtrInput `pulumi:"maxTargetCapacity"` - Maximum pulumi.StringPtrInput `pulumi:"maximum"` - MetricName pulumi.StringInput `pulumi:"metricName"` - MinTargetCapacity pulumi.StringPtrInput `pulumi:"minTargetCapacity"` - Minimum pulumi.StringPtrInput `pulumi:"minimum"` - Namespace pulumi.StringInput `pulumi:"namespace"` - Operator pulumi.StringPtrInput `pulumi:"operator"` - Period pulumi.IntPtrInput `pulumi:"period"` - PolicyName pulumi.StringInput `pulumi:"policyName"` - Statistic pulumi.StringPtrInput `pulumi:"statistic"` - Target pulumi.StringPtrInput `pulumi:"target"` - Threshold pulumi.Float64Input `pulumi:"threshold"` - Unit pulumi.StringPtrInput `pulumi:"unit"` -} - -func (ElastigroupScalingUpPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupScalingUpPolicy)(nil)).Elem() -} - -func (i ElastigroupScalingUpPolicyArgs) ToElastigroupScalingUpPolicyOutput() ElastigroupScalingUpPolicyOutput { - return i.ToElastigroupScalingUpPolicyOutputWithContext(context.Background()) -} - -func (i ElastigroupScalingUpPolicyArgs) ToElastigroupScalingUpPolicyOutputWithContext(ctx context.Context) ElastigroupScalingUpPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupScalingUpPolicyOutput) -} - -// ElastigroupScalingUpPolicyArrayInput is an input type that accepts ElastigroupScalingUpPolicyArray and ElastigroupScalingUpPolicyArrayOutput values. -// You can construct a concrete instance of `ElastigroupScalingUpPolicyArrayInput` via: -// -// ElastigroupScalingUpPolicyArray{ ElastigroupScalingUpPolicyArgs{...} } -type ElastigroupScalingUpPolicyArrayInput interface { - pulumi.Input - - ToElastigroupScalingUpPolicyArrayOutput() ElastigroupScalingUpPolicyArrayOutput - ToElastigroupScalingUpPolicyArrayOutputWithContext(context.Context) ElastigroupScalingUpPolicyArrayOutput -} - -type ElastigroupScalingUpPolicyArray []ElastigroupScalingUpPolicyInput - -func (ElastigroupScalingUpPolicyArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupScalingUpPolicy)(nil)).Elem() -} - -func (i ElastigroupScalingUpPolicyArray) ToElastigroupScalingUpPolicyArrayOutput() ElastigroupScalingUpPolicyArrayOutput { - return i.ToElastigroupScalingUpPolicyArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupScalingUpPolicyArray) ToElastigroupScalingUpPolicyArrayOutputWithContext(ctx context.Context) ElastigroupScalingUpPolicyArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupScalingUpPolicyArrayOutput) -} - -type ElastigroupScalingUpPolicyOutput struct{ *pulumi.OutputState } - -func (ElastigroupScalingUpPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupScalingUpPolicy)(nil)).Elem() -} - -func (o ElastigroupScalingUpPolicyOutput) ToElastigroupScalingUpPolicyOutput() ElastigroupScalingUpPolicyOutput { - return o -} - -func (o ElastigroupScalingUpPolicyOutput) ToElastigroupScalingUpPolicyOutputWithContext(ctx context.Context) ElastigroupScalingUpPolicyOutput { - return o -} - -func (o ElastigroupScalingUpPolicyOutput) ActionType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *string { return v.ActionType }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Adjustment() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *string { return v.Adjustment }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Cooldown() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *int { return v.Cooldown }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Dimensions() ElastigroupScalingUpPolicyDimensionArrayOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) []ElastigroupScalingUpPolicyDimension { return v.Dimensions }).(ElastigroupScalingUpPolicyDimensionArrayOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) EvaluationPeriods() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *int { return v.EvaluationPeriods }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) MaxTargetCapacity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *string { return v.MaxTargetCapacity }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Maximum() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *string { return v.Maximum }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) MetricName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) string { return v.MetricName }).(pulumi.StringOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) MinTargetCapacity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *string { return v.MinTargetCapacity }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Minimum() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *string { return v.Minimum }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Namespace() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) string { return v.Namespace }).(pulumi.StringOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Operator() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *string { return v.Operator }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Period() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *int { return v.Period }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) PolicyName() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) string { return v.PolicyName }).(pulumi.StringOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Statistic() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *string { return v.Statistic }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *string { return v.Target }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScalingUpPolicyOutput) Threshold() pulumi.Float64Output { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) float64 { return v.Threshold }).(pulumi.Float64Output) -} - -func (o ElastigroupScalingUpPolicyOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicy) *string { return v.Unit }).(pulumi.StringPtrOutput) -} - -type ElastigroupScalingUpPolicyArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupScalingUpPolicyArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupScalingUpPolicy)(nil)).Elem() -} - -func (o ElastigroupScalingUpPolicyArrayOutput) ToElastigroupScalingUpPolicyArrayOutput() ElastigroupScalingUpPolicyArrayOutput { - return o -} - -func (o ElastigroupScalingUpPolicyArrayOutput) ToElastigroupScalingUpPolicyArrayOutputWithContext(ctx context.Context) ElastigroupScalingUpPolicyArrayOutput { - return o -} - -func (o ElastigroupScalingUpPolicyArrayOutput) Index(i pulumi.IntInput) ElastigroupScalingUpPolicyOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupScalingUpPolicy { - return vs[0].([]ElastigroupScalingUpPolicy)[vs[1].(int)] - }).(ElastigroupScalingUpPolicyOutput) -} - -type ElastigroupScalingUpPolicyDimension struct { - // The group name. - Name string `pulumi:"name"` - Value *string `pulumi:"value"` -} - -// ElastigroupScalingUpPolicyDimensionInput is an input type that accepts ElastigroupScalingUpPolicyDimensionArgs and ElastigroupScalingUpPolicyDimensionOutput values. -// You can construct a concrete instance of `ElastigroupScalingUpPolicyDimensionInput` via: -// -// ElastigroupScalingUpPolicyDimensionArgs{...} -type ElastigroupScalingUpPolicyDimensionInput interface { - pulumi.Input - - ToElastigroupScalingUpPolicyDimensionOutput() ElastigroupScalingUpPolicyDimensionOutput - ToElastigroupScalingUpPolicyDimensionOutputWithContext(context.Context) ElastigroupScalingUpPolicyDimensionOutput -} - -type ElastigroupScalingUpPolicyDimensionArgs struct { - // The group name. - Name pulumi.StringInput `pulumi:"name"` - Value pulumi.StringPtrInput `pulumi:"value"` -} - -func (ElastigroupScalingUpPolicyDimensionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupScalingUpPolicyDimension)(nil)).Elem() -} - -func (i ElastigroupScalingUpPolicyDimensionArgs) ToElastigroupScalingUpPolicyDimensionOutput() ElastigroupScalingUpPolicyDimensionOutput { - return i.ToElastigroupScalingUpPolicyDimensionOutputWithContext(context.Background()) -} - -func (i ElastigroupScalingUpPolicyDimensionArgs) ToElastigroupScalingUpPolicyDimensionOutputWithContext(ctx context.Context) ElastigroupScalingUpPolicyDimensionOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupScalingUpPolicyDimensionOutput) -} - -// ElastigroupScalingUpPolicyDimensionArrayInput is an input type that accepts ElastigroupScalingUpPolicyDimensionArray and ElastigroupScalingUpPolicyDimensionArrayOutput values. -// You can construct a concrete instance of `ElastigroupScalingUpPolicyDimensionArrayInput` via: -// -// ElastigroupScalingUpPolicyDimensionArray{ ElastigroupScalingUpPolicyDimensionArgs{...} } -type ElastigroupScalingUpPolicyDimensionArrayInput interface { - pulumi.Input - - ToElastigroupScalingUpPolicyDimensionArrayOutput() ElastigroupScalingUpPolicyDimensionArrayOutput - ToElastigroupScalingUpPolicyDimensionArrayOutputWithContext(context.Context) ElastigroupScalingUpPolicyDimensionArrayOutput -} - -type ElastigroupScalingUpPolicyDimensionArray []ElastigroupScalingUpPolicyDimensionInput - -func (ElastigroupScalingUpPolicyDimensionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupScalingUpPolicyDimension)(nil)).Elem() -} - -func (i ElastigroupScalingUpPolicyDimensionArray) ToElastigroupScalingUpPolicyDimensionArrayOutput() ElastigroupScalingUpPolicyDimensionArrayOutput { - return i.ToElastigroupScalingUpPolicyDimensionArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupScalingUpPolicyDimensionArray) ToElastigroupScalingUpPolicyDimensionArrayOutputWithContext(ctx context.Context) ElastigroupScalingUpPolicyDimensionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupScalingUpPolicyDimensionArrayOutput) -} - -type ElastigroupScalingUpPolicyDimensionOutput struct{ *pulumi.OutputState } - -func (ElastigroupScalingUpPolicyDimensionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupScalingUpPolicyDimension)(nil)).Elem() -} - -func (o ElastigroupScalingUpPolicyDimensionOutput) ToElastigroupScalingUpPolicyDimensionOutput() ElastigroupScalingUpPolicyDimensionOutput { - return o -} - -func (o ElastigroupScalingUpPolicyDimensionOutput) ToElastigroupScalingUpPolicyDimensionOutputWithContext(ctx context.Context) ElastigroupScalingUpPolicyDimensionOutput { - return o -} - -// The group name. -func (o ElastigroupScalingUpPolicyDimensionOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicyDimension) string { return v.Name }).(pulumi.StringOutput) -} - -func (o ElastigroupScalingUpPolicyDimensionOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScalingUpPolicyDimension) *string { return v.Value }).(pulumi.StringPtrOutput) -} - -type ElastigroupScalingUpPolicyDimensionArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupScalingUpPolicyDimensionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupScalingUpPolicyDimension)(nil)).Elem() -} - -func (o ElastigroupScalingUpPolicyDimensionArrayOutput) ToElastigroupScalingUpPolicyDimensionArrayOutput() ElastigroupScalingUpPolicyDimensionArrayOutput { - return o -} - -func (o ElastigroupScalingUpPolicyDimensionArrayOutput) ToElastigroupScalingUpPolicyDimensionArrayOutputWithContext(ctx context.Context) ElastigroupScalingUpPolicyDimensionArrayOutput { - return o -} - -func (o ElastigroupScalingUpPolicyDimensionArrayOutput) Index(i pulumi.IntInput) ElastigroupScalingUpPolicyDimensionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupScalingUpPolicyDimension { - return vs[0].([]ElastigroupScalingUpPolicyDimension)[vs[1].(int)] - }).(ElastigroupScalingUpPolicyDimensionOutput) -} - -type ElastigroupScheduledTask struct { - Adjustment *string `pulumi:"adjustment"` - AdjustmentPercentage *string `pulumi:"adjustmentPercentage"` - BatchSizePercentage *string `pulumi:"batchSizePercentage"` - CronExpression string `pulumi:"cronExpression"` - GracePeriod *string `pulumi:"gracePeriod"` - IsEnabled *bool `pulumi:"isEnabled"` - ScaleMaxCapacity *string `pulumi:"scaleMaxCapacity"` - ScaleMinCapacity *string `pulumi:"scaleMinCapacity"` - ScaleTargetCapacity *string `pulumi:"scaleTargetCapacity"` - TaskType string `pulumi:"taskType"` -} - -// ElastigroupScheduledTaskInput is an input type that accepts ElastigroupScheduledTaskArgs and ElastigroupScheduledTaskOutput values. -// You can construct a concrete instance of `ElastigroupScheduledTaskInput` via: -// -// ElastigroupScheduledTaskArgs{...} -type ElastigroupScheduledTaskInput interface { - pulumi.Input - - ToElastigroupScheduledTaskOutput() ElastigroupScheduledTaskOutput - ToElastigroupScheduledTaskOutputWithContext(context.Context) ElastigroupScheduledTaskOutput -} - -type ElastigroupScheduledTaskArgs struct { - Adjustment pulumi.StringPtrInput `pulumi:"adjustment"` - AdjustmentPercentage pulumi.StringPtrInput `pulumi:"adjustmentPercentage"` - BatchSizePercentage pulumi.StringPtrInput `pulumi:"batchSizePercentage"` - CronExpression pulumi.StringInput `pulumi:"cronExpression"` - GracePeriod pulumi.StringPtrInput `pulumi:"gracePeriod"` - IsEnabled pulumi.BoolPtrInput `pulumi:"isEnabled"` - ScaleMaxCapacity pulumi.StringPtrInput `pulumi:"scaleMaxCapacity"` - ScaleMinCapacity pulumi.StringPtrInput `pulumi:"scaleMinCapacity"` - ScaleTargetCapacity pulumi.StringPtrInput `pulumi:"scaleTargetCapacity"` - TaskType pulumi.StringInput `pulumi:"taskType"` -} - -func (ElastigroupScheduledTaskArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupScheduledTask)(nil)).Elem() -} - -func (i ElastigroupScheduledTaskArgs) ToElastigroupScheduledTaskOutput() ElastigroupScheduledTaskOutput { - return i.ToElastigroupScheduledTaskOutputWithContext(context.Background()) -} - -func (i ElastigroupScheduledTaskArgs) ToElastigroupScheduledTaskOutputWithContext(ctx context.Context) ElastigroupScheduledTaskOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupScheduledTaskOutput) -} - -// ElastigroupScheduledTaskArrayInput is an input type that accepts ElastigroupScheduledTaskArray and ElastigroupScheduledTaskArrayOutput values. -// You can construct a concrete instance of `ElastigroupScheduledTaskArrayInput` via: -// -// ElastigroupScheduledTaskArray{ ElastigroupScheduledTaskArgs{...} } -type ElastigroupScheduledTaskArrayInput interface { - pulumi.Input - - ToElastigroupScheduledTaskArrayOutput() ElastigroupScheduledTaskArrayOutput - ToElastigroupScheduledTaskArrayOutputWithContext(context.Context) ElastigroupScheduledTaskArrayOutput -} - -type ElastigroupScheduledTaskArray []ElastigroupScheduledTaskInput - -func (ElastigroupScheduledTaskArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupScheduledTask)(nil)).Elem() -} - -func (i ElastigroupScheduledTaskArray) ToElastigroupScheduledTaskArrayOutput() ElastigroupScheduledTaskArrayOutput { - return i.ToElastigroupScheduledTaskArrayOutputWithContext(context.Background()) -} - -func (i ElastigroupScheduledTaskArray) ToElastigroupScheduledTaskArrayOutputWithContext(ctx context.Context) ElastigroupScheduledTaskArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupScheduledTaskArrayOutput) -} - -type ElastigroupScheduledTaskOutput struct{ *pulumi.OutputState } - -func (ElastigroupScheduledTaskOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupScheduledTask)(nil)).Elem() -} - -func (o ElastigroupScheduledTaskOutput) ToElastigroupScheduledTaskOutput() ElastigroupScheduledTaskOutput { - return o -} - -func (o ElastigroupScheduledTaskOutput) ToElastigroupScheduledTaskOutputWithContext(ctx context.Context) ElastigroupScheduledTaskOutput { - return o -} - -func (o ElastigroupScheduledTaskOutput) Adjustment() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScheduledTask) *string { return v.Adjustment }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScheduledTaskOutput) AdjustmentPercentage() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScheduledTask) *string { return v.AdjustmentPercentage }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScheduledTaskOutput) BatchSizePercentage() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScheduledTask) *string { return v.BatchSizePercentage }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScheduledTaskOutput) CronExpression() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupScheduledTask) string { return v.CronExpression }).(pulumi.StringOutput) -} - -func (o ElastigroupScheduledTaskOutput) GracePeriod() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScheduledTask) *string { return v.GracePeriod }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScheduledTaskOutput) IsEnabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ElastigroupScheduledTask) *bool { return v.IsEnabled }).(pulumi.BoolPtrOutput) -} - -func (o ElastigroupScheduledTaskOutput) ScaleMaxCapacity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScheduledTask) *string { return v.ScaleMaxCapacity }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScheduledTaskOutput) ScaleMinCapacity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScheduledTask) *string { return v.ScaleMinCapacity }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScheduledTaskOutput) ScaleTargetCapacity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupScheduledTask) *string { return v.ScaleTargetCapacity }).(pulumi.StringPtrOutput) -} - -func (o ElastigroupScheduledTaskOutput) TaskType() pulumi.StringOutput { - return o.ApplyT(func(v ElastigroupScheduledTask) string { return v.TaskType }).(pulumi.StringOutput) -} - -type ElastigroupScheduledTaskArrayOutput struct{ *pulumi.OutputState } - -func (ElastigroupScheduledTaskArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ElastigroupScheduledTask)(nil)).Elem() -} - -func (o ElastigroupScheduledTaskArrayOutput) ToElastigroupScheduledTaskArrayOutput() ElastigroupScheduledTaskArrayOutput { - return o -} - -func (o ElastigroupScheduledTaskArrayOutput) ToElastigroupScheduledTaskArrayOutputWithContext(ctx context.Context) ElastigroupScheduledTaskArrayOutput { - return o -} - -func (o ElastigroupScheduledTaskArrayOutput) Index(i pulumi.IntInput) ElastigroupScheduledTaskOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ElastigroupScheduledTask { - return vs[0].([]ElastigroupScheduledTask)[vs[1].(int)] - }).(ElastigroupScheduledTaskOutput) -} - -type ElastigroupStrategy struct { - DrainingTimeout *int `pulumi:"drainingTimeout"` - LowPriorityPercentage *int `pulumi:"lowPriorityPercentage"` - OdCount *int `pulumi:"odCount"` -} - -// ElastigroupStrategyInput is an input type that accepts ElastigroupStrategyArgs and ElastigroupStrategyOutput values. -// You can construct a concrete instance of `ElastigroupStrategyInput` via: -// -// ElastigroupStrategyArgs{...} -type ElastigroupStrategyInput interface { - pulumi.Input - - ToElastigroupStrategyOutput() ElastigroupStrategyOutput - ToElastigroupStrategyOutputWithContext(context.Context) ElastigroupStrategyOutput -} - -type ElastigroupStrategyArgs struct { - DrainingTimeout pulumi.IntPtrInput `pulumi:"drainingTimeout"` - LowPriorityPercentage pulumi.IntPtrInput `pulumi:"lowPriorityPercentage"` - OdCount pulumi.IntPtrInput `pulumi:"odCount"` -} - -func (ElastigroupStrategyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupStrategy)(nil)).Elem() -} - -func (i ElastigroupStrategyArgs) ToElastigroupStrategyOutput() ElastigroupStrategyOutput { - return i.ToElastigroupStrategyOutputWithContext(context.Background()) -} - -func (i ElastigroupStrategyArgs) ToElastigroupStrategyOutputWithContext(ctx context.Context) ElastigroupStrategyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupStrategyOutput) -} - -func (i ElastigroupStrategyArgs) ToElastigroupStrategyPtrOutput() ElastigroupStrategyPtrOutput { - return i.ToElastigroupStrategyPtrOutputWithContext(context.Background()) -} - -func (i ElastigroupStrategyArgs) ToElastigroupStrategyPtrOutputWithContext(ctx context.Context) ElastigroupStrategyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupStrategyOutput).ToElastigroupStrategyPtrOutputWithContext(ctx) -} - -// ElastigroupStrategyPtrInput is an input type that accepts ElastigroupStrategyArgs, ElastigroupStrategyPtr and ElastigroupStrategyPtrOutput values. -// You can construct a concrete instance of `ElastigroupStrategyPtrInput` via: -// -// ElastigroupStrategyArgs{...} -// -// or: -// -// nil -type ElastigroupStrategyPtrInput interface { - pulumi.Input - - ToElastigroupStrategyPtrOutput() ElastigroupStrategyPtrOutput - ToElastigroupStrategyPtrOutputWithContext(context.Context) ElastigroupStrategyPtrOutput -} - -type elastigroupStrategyPtrType ElastigroupStrategyArgs - -func ElastigroupStrategyPtr(v *ElastigroupStrategyArgs) ElastigroupStrategyPtrInput { - return (*elastigroupStrategyPtrType)(v) -} - -func (*elastigroupStrategyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupStrategy)(nil)).Elem() -} - -func (i *elastigroupStrategyPtrType) ToElastigroupStrategyPtrOutput() ElastigroupStrategyPtrOutput { - return i.ToElastigroupStrategyPtrOutputWithContext(context.Background()) -} - -func (i *elastigroupStrategyPtrType) ToElastigroupStrategyPtrOutputWithContext(ctx context.Context) ElastigroupStrategyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupStrategyPtrOutput) -} - -type ElastigroupStrategyOutput struct{ *pulumi.OutputState } - -func (ElastigroupStrategyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupStrategy)(nil)).Elem() -} - -func (o ElastigroupStrategyOutput) ToElastigroupStrategyOutput() ElastigroupStrategyOutput { - return o -} - -func (o ElastigroupStrategyOutput) ToElastigroupStrategyOutputWithContext(ctx context.Context) ElastigroupStrategyOutput { - return o -} - -func (o ElastigroupStrategyOutput) ToElastigroupStrategyPtrOutput() ElastigroupStrategyPtrOutput { - return o.ToElastigroupStrategyPtrOutputWithContext(context.Background()) -} - -func (o ElastigroupStrategyOutput) ToElastigroupStrategyPtrOutputWithContext(ctx context.Context) ElastigroupStrategyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ElastigroupStrategy) *ElastigroupStrategy { - return &v - }).(ElastigroupStrategyPtrOutput) -} - -func (o ElastigroupStrategyOutput) DrainingTimeout() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupStrategy) *int { return v.DrainingTimeout }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupStrategyOutput) LowPriorityPercentage() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupStrategy) *int { return v.LowPriorityPercentage }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupStrategyOutput) OdCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupStrategy) *int { return v.OdCount }).(pulumi.IntPtrOutput) -} - -type ElastigroupStrategyPtrOutput struct{ *pulumi.OutputState } - -func (ElastigroupStrategyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupStrategy)(nil)).Elem() -} - -func (o ElastigroupStrategyPtrOutput) ToElastigroupStrategyPtrOutput() ElastigroupStrategyPtrOutput { - return o -} - -func (o ElastigroupStrategyPtrOutput) ToElastigroupStrategyPtrOutputWithContext(ctx context.Context) ElastigroupStrategyPtrOutput { - return o -} - -func (o ElastigroupStrategyPtrOutput) Elem() ElastigroupStrategyOutput { - return o.ApplyT(func(v *ElastigroupStrategy) ElastigroupStrategy { - if v != nil { - return *v - } - var ret ElastigroupStrategy - return ret - }).(ElastigroupStrategyOutput) -} - -func (o ElastigroupStrategyPtrOutput) DrainingTimeout() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ElastigroupStrategy) *int { - if v == nil { - return nil - } - return v.DrainingTimeout - }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupStrategyPtrOutput) LowPriorityPercentage() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ElastigroupStrategy) *int { - if v == nil { - return nil - } - return v.LowPriorityPercentage - }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupStrategyPtrOutput) OdCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ElastigroupStrategy) *int { - if v == nil { - return nil - } - return v.OdCount - }).(pulumi.IntPtrOutput) -} - -type ElastigroupUpdatePolicy struct { - RollConfig *ElastigroupUpdatePolicyRollConfig `pulumi:"rollConfig"` - ShouldRoll bool `pulumi:"shouldRoll"` -} - -// ElastigroupUpdatePolicyInput is an input type that accepts ElastigroupUpdatePolicyArgs and ElastigroupUpdatePolicyOutput values. -// You can construct a concrete instance of `ElastigroupUpdatePolicyInput` via: -// -// ElastigroupUpdatePolicyArgs{...} -type ElastigroupUpdatePolicyInput interface { - pulumi.Input - - ToElastigroupUpdatePolicyOutput() ElastigroupUpdatePolicyOutput - ToElastigroupUpdatePolicyOutputWithContext(context.Context) ElastigroupUpdatePolicyOutput -} - -type ElastigroupUpdatePolicyArgs struct { - RollConfig ElastigroupUpdatePolicyRollConfigPtrInput `pulumi:"rollConfig"` - ShouldRoll pulumi.BoolInput `pulumi:"shouldRoll"` -} - -func (ElastigroupUpdatePolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupUpdatePolicy)(nil)).Elem() -} - -func (i ElastigroupUpdatePolicyArgs) ToElastigroupUpdatePolicyOutput() ElastigroupUpdatePolicyOutput { - return i.ToElastigroupUpdatePolicyOutputWithContext(context.Background()) -} - -func (i ElastigroupUpdatePolicyArgs) ToElastigroupUpdatePolicyOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupUpdatePolicyOutput) -} - -func (i ElastigroupUpdatePolicyArgs) ToElastigroupUpdatePolicyPtrOutput() ElastigroupUpdatePolicyPtrOutput { - return i.ToElastigroupUpdatePolicyPtrOutputWithContext(context.Background()) -} - -func (i ElastigroupUpdatePolicyArgs) ToElastigroupUpdatePolicyPtrOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupUpdatePolicyOutput).ToElastigroupUpdatePolicyPtrOutputWithContext(ctx) -} - -// ElastigroupUpdatePolicyPtrInput is an input type that accepts ElastigroupUpdatePolicyArgs, ElastigroupUpdatePolicyPtr and ElastigroupUpdatePolicyPtrOutput values. -// You can construct a concrete instance of `ElastigroupUpdatePolicyPtrInput` via: -// -// ElastigroupUpdatePolicyArgs{...} -// -// or: -// -// nil -type ElastigroupUpdatePolicyPtrInput interface { - pulumi.Input - - ToElastigroupUpdatePolicyPtrOutput() ElastigroupUpdatePolicyPtrOutput - ToElastigroupUpdatePolicyPtrOutputWithContext(context.Context) ElastigroupUpdatePolicyPtrOutput -} - -type elastigroupUpdatePolicyPtrType ElastigroupUpdatePolicyArgs - -func ElastigroupUpdatePolicyPtr(v *ElastigroupUpdatePolicyArgs) ElastigroupUpdatePolicyPtrInput { - return (*elastigroupUpdatePolicyPtrType)(v) -} - -func (*elastigroupUpdatePolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupUpdatePolicy)(nil)).Elem() -} - -func (i *elastigroupUpdatePolicyPtrType) ToElastigroupUpdatePolicyPtrOutput() ElastigroupUpdatePolicyPtrOutput { - return i.ToElastigroupUpdatePolicyPtrOutputWithContext(context.Background()) -} - -func (i *elastigroupUpdatePolicyPtrType) ToElastigroupUpdatePolicyPtrOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupUpdatePolicyPtrOutput) -} - -type ElastigroupUpdatePolicyOutput struct{ *pulumi.OutputState } - -func (ElastigroupUpdatePolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupUpdatePolicy)(nil)).Elem() -} - -func (o ElastigroupUpdatePolicyOutput) ToElastigroupUpdatePolicyOutput() ElastigroupUpdatePolicyOutput { - return o -} - -func (o ElastigroupUpdatePolicyOutput) ToElastigroupUpdatePolicyOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyOutput { - return o -} - -func (o ElastigroupUpdatePolicyOutput) ToElastigroupUpdatePolicyPtrOutput() ElastigroupUpdatePolicyPtrOutput { - return o.ToElastigroupUpdatePolicyPtrOutputWithContext(context.Background()) -} - -func (o ElastigroupUpdatePolicyOutput) ToElastigroupUpdatePolicyPtrOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ElastigroupUpdatePolicy) *ElastigroupUpdatePolicy { - return &v - }).(ElastigroupUpdatePolicyPtrOutput) -} - -func (o ElastigroupUpdatePolicyOutput) RollConfig() ElastigroupUpdatePolicyRollConfigPtrOutput { - return o.ApplyT(func(v ElastigroupUpdatePolicy) *ElastigroupUpdatePolicyRollConfig { return v.RollConfig }).(ElastigroupUpdatePolicyRollConfigPtrOutput) -} - -func (o ElastigroupUpdatePolicyOutput) ShouldRoll() pulumi.BoolOutput { - return o.ApplyT(func(v ElastigroupUpdatePolicy) bool { return v.ShouldRoll }).(pulumi.BoolOutput) -} - -type ElastigroupUpdatePolicyPtrOutput struct{ *pulumi.OutputState } - -func (ElastigroupUpdatePolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupUpdatePolicy)(nil)).Elem() -} - -func (o ElastigroupUpdatePolicyPtrOutput) ToElastigroupUpdatePolicyPtrOutput() ElastigroupUpdatePolicyPtrOutput { - return o -} - -func (o ElastigroupUpdatePolicyPtrOutput) ToElastigroupUpdatePolicyPtrOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyPtrOutput { - return o -} - -func (o ElastigroupUpdatePolicyPtrOutput) Elem() ElastigroupUpdatePolicyOutput { - return o.ApplyT(func(v *ElastigroupUpdatePolicy) ElastigroupUpdatePolicy { - if v != nil { - return *v - } - var ret ElastigroupUpdatePolicy - return ret - }).(ElastigroupUpdatePolicyOutput) -} - -func (o ElastigroupUpdatePolicyPtrOutput) RollConfig() ElastigroupUpdatePolicyRollConfigPtrOutput { - return o.ApplyT(func(v *ElastigroupUpdatePolicy) *ElastigroupUpdatePolicyRollConfig { - if v == nil { - return nil - } - return v.RollConfig - }).(ElastigroupUpdatePolicyRollConfigPtrOutput) -} - -func (o ElastigroupUpdatePolicyPtrOutput) ShouldRoll() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ElastigroupUpdatePolicy) *bool { - if v == nil { - return nil - } - return &v.ShouldRoll - }).(pulumi.BoolPtrOutput) -} - -type ElastigroupUpdatePolicyRollConfig struct { - BatchSizePercentage int `pulumi:"batchSizePercentage"` - GracePeriod *int `pulumi:"gracePeriod"` - HealthCheckType *string `pulumi:"healthCheckType"` -} - -// ElastigroupUpdatePolicyRollConfigInput is an input type that accepts ElastigroupUpdatePolicyRollConfigArgs and ElastigroupUpdatePolicyRollConfigOutput values. -// You can construct a concrete instance of `ElastigroupUpdatePolicyRollConfigInput` via: -// -// ElastigroupUpdatePolicyRollConfigArgs{...} -type ElastigroupUpdatePolicyRollConfigInput interface { - pulumi.Input - - ToElastigroupUpdatePolicyRollConfigOutput() ElastigroupUpdatePolicyRollConfigOutput - ToElastigroupUpdatePolicyRollConfigOutputWithContext(context.Context) ElastigroupUpdatePolicyRollConfigOutput -} - -type ElastigroupUpdatePolicyRollConfigArgs struct { - BatchSizePercentage pulumi.IntInput `pulumi:"batchSizePercentage"` - GracePeriod pulumi.IntPtrInput `pulumi:"gracePeriod"` - HealthCheckType pulumi.StringPtrInput `pulumi:"healthCheckType"` -} - -func (ElastigroupUpdatePolicyRollConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupUpdatePolicyRollConfig)(nil)).Elem() -} - -func (i ElastigroupUpdatePolicyRollConfigArgs) ToElastigroupUpdatePolicyRollConfigOutput() ElastigroupUpdatePolicyRollConfigOutput { - return i.ToElastigroupUpdatePolicyRollConfigOutputWithContext(context.Background()) -} - -func (i ElastigroupUpdatePolicyRollConfigArgs) ToElastigroupUpdatePolicyRollConfigOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyRollConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupUpdatePolicyRollConfigOutput) -} - -func (i ElastigroupUpdatePolicyRollConfigArgs) ToElastigroupUpdatePolicyRollConfigPtrOutput() ElastigroupUpdatePolicyRollConfigPtrOutput { - return i.ToElastigroupUpdatePolicyRollConfigPtrOutputWithContext(context.Background()) -} - -func (i ElastigroupUpdatePolicyRollConfigArgs) ToElastigroupUpdatePolicyRollConfigPtrOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyRollConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupUpdatePolicyRollConfigOutput).ToElastigroupUpdatePolicyRollConfigPtrOutputWithContext(ctx) -} - -// ElastigroupUpdatePolicyRollConfigPtrInput is an input type that accepts ElastigroupUpdatePolicyRollConfigArgs, ElastigroupUpdatePolicyRollConfigPtr and ElastigroupUpdatePolicyRollConfigPtrOutput values. -// You can construct a concrete instance of `ElastigroupUpdatePolicyRollConfigPtrInput` via: -// -// ElastigroupUpdatePolicyRollConfigArgs{...} -// -// or: -// -// nil -type ElastigroupUpdatePolicyRollConfigPtrInput interface { - pulumi.Input - - ToElastigroupUpdatePolicyRollConfigPtrOutput() ElastigroupUpdatePolicyRollConfigPtrOutput - ToElastigroupUpdatePolicyRollConfigPtrOutputWithContext(context.Context) ElastigroupUpdatePolicyRollConfigPtrOutput -} - -type elastigroupUpdatePolicyRollConfigPtrType ElastigroupUpdatePolicyRollConfigArgs - -func ElastigroupUpdatePolicyRollConfigPtr(v *ElastigroupUpdatePolicyRollConfigArgs) ElastigroupUpdatePolicyRollConfigPtrInput { - return (*elastigroupUpdatePolicyRollConfigPtrType)(v) -} - -func (*elastigroupUpdatePolicyRollConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupUpdatePolicyRollConfig)(nil)).Elem() -} - -func (i *elastigroupUpdatePolicyRollConfigPtrType) ToElastigroupUpdatePolicyRollConfigPtrOutput() ElastigroupUpdatePolicyRollConfigPtrOutput { - return i.ToElastigroupUpdatePolicyRollConfigPtrOutputWithContext(context.Background()) -} - -func (i *elastigroupUpdatePolicyRollConfigPtrType) ToElastigroupUpdatePolicyRollConfigPtrOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyRollConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ElastigroupUpdatePolicyRollConfigPtrOutput) -} - -type ElastigroupUpdatePolicyRollConfigOutput struct{ *pulumi.OutputState } - -func (ElastigroupUpdatePolicyRollConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ElastigroupUpdatePolicyRollConfig)(nil)).Elem() -} - -func (o ElastigroupUpdatePolicyRollConfigOutput) ToElastigroupUpdatePolicyRollConfigOutput() ElastigroupUpdatePolicyRollConfigOutput { - return o -} - -func (o ElastigroupUpdatePolicyRollConfigOutput) ToElastigroupUpdatePolicyRollConfigOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyRollConfigOutput { - return o -} - -func (o ElastigroupUpdatePolicyRollConfigOutput) ToElastigroupUpdatePolicyRollConfigPtrOutput() ElastigroupUpdatePolicyRollConfigPtrOutput { - return o.ToElastigroupUpdatePolicyRollConfigPtrOutputWithContext(context.Background()) -} - -func (o ElastigroupUpdatePolicyRollConfigOutput) ToElastigroupUpdatePolicyRollConfigPtrOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyRollConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ElastigroupUpdatePolicyRollConfig) *ElastigroupUpdatePolicyRollConfig { - return &v - }).(ElastigroupUpdatePolicyRollConfigPtrOutput) -} - -func (o ElastigroupUpdatePolicyRollConfigOutput) BatchSizePercentage() pulumi.IntOutput { - return o.ApplyT(func(v ElastigroupUpdatePolicyRollConfig) int { return v.BatchSizePercentage }).(pulumi.IntOutput) -} - -func (o ElastigroupUpdatePolicyRollConfigOutput) GracePeriod() pulumi.IntPtrOutput { - return o.ApplyT(func(v ElastigroupUpdatePolicyRollConfig) *int { return v.GracePeriod }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupUpdatePolicyRollConfigOutput) HealthCheckType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ElastigroupUpdatePolicyRollConfig) *string { return v.HealthCheckType }).(pulumi.StringPtrOutput) -} - -type ElastigroupUpdatePolicyRollConfigPtrOutput struct{ *pulumi.OutputState } - -func (ElastigroupUpdatePolicyRollConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ElastigroupUpdatePolicyRollConfig)(nil)).Elem() -} - -func (o ElastigroupUpdatePolicyRollConfigPtrOutput) ToElastigroupUpdatePolicyRollConfigPtrOutput() ElastigroupUpdatePolicyRollConfigPtrOutput { - return o -} - -func (o ElastigroupUpdatePolicyRollConfigPtrOutput) ToElastigroupUpdatePolicyRollConfigPtrOutputWithContext(ctx context.Context) ElastigroupUpdatePolicyRollConfigPtrOutput { - return o -} - -func (o ElastigroupUpdatePolicyRollConfigPtrOutput) Elem() ElastigroupUpdatePolicyRollConfigOutput { - return o.ApplyT(func(v *ElastigroupUpdatePolicyRollConfig) ElastigroupUpdatePolicyRollConfig { - if v != nil { - return *v - } - var ret ElastigroupUpdatePolicyRollConfig - return ret - }).(ElastigroupUpdatePolicyRollConfigOutput) -} - -func (o ElastigroupUpdatePolicyRollConfigPtrOutput) BatchSizePercentage() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ElastigroupUpdatePolicyRollConfig) *int { - if v == nil { - return nil - } - return &v.BatchSizePercentage - }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupUpdatePolicyRollConfigPtrOutput) GracePeriod() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ElastigroupUpdatePolicyRollConfig) *int { - if v == nil { - return nil - } - return v.GracePeriod - }).(pulumi.IntPtrOutput) -} - -func (o ElastigroupUpdatePolicyRollConfigPtrOutput) HealthCheckType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ElastigroupUpdatePolicyRollConfig) *string { - if v == nil { - return nil - } - return v.HealthCheckType - }).(pulumi.StringPtrOutput) -} - type OceanAutoscaler struct { // Auto Scaling scale down operations. AutoscaleDown *OceanAutoscalerAutoscaleDown `pulumi:"autoscaleDown"` @@ -4682,10 +2043,14 @@ func (o OceanNetworkNetworkInterfaceSecurityGroupPtrOutput) ResourceGroupName() } type OceanNpAutoscaler struct { - AutoscaleDown *OceanNpAutoscalerAutoscaleDown `pulumi:"autoscaleDown"` - AutoscaleHeadroom *OceanNpAutoscalerAutoscaleHeadroom `pulumi:"autoscaleHeadroom"` - AutoscaleIsEnabled *bool `pulumi:"autoscaleIsEnabled"` - ResourceLimits *OceanNpAutoscalerResourceLimits `pulumi:"resourceLimits"` + // Auto Scaling scale down operations. + AutoscaleDown *OceanNpAutoscalerAutoscaleDown `pulumi:"autoscaleDown"` + // Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + AutoscaleHeadroom *OceanNpAutoscalerAutoscaleHeadroom `pulumi:"autoscaleHeadroom"` + // Enable the Ocean Kubernetes Autoscaler. + AutoscaleIsEnabled *bool `pulumi:"autoscaleIsEnabled"` + // Optionally set upper and lower bounds on the resource usage of the cluster. + ResourceLimits *OceanNpAutoscalerResourceLimits `pulumi:"resourceLimits"` } // OceanNpAutoscalerInput is an input type that accepts OceanNpAutoscalerArgs and OceanNpAutoscalerOutput values. @@ -4700,10 +2065,14 @@ type OceanNpAutoscalerInput interface { } type OceanNpAutoscalerArgs struct { - AutoscaleDown OceanNpAutoscalerAutoscaleDownPtrInput `pulumi:"autoscaleDown"` - AutoscaleHeadroom OceanNpAutoscalerAutoscaleHeadroomPtrInput `pulumi:"autoscaleHeadroom"` - AutoscaleIsEnabled pulumi.BoolPtrInput `pulumi:"autoscaleIsEnabled"` - ResourceLimits OceanNpAutoscalerResourceLimitsPtrInput `pulumi:"resourceLimits"` + // Auto Scaling scale down operations. + AutoscaleDown OceanNpAutoscalerAutoscaleDownPtrInput `pulumi:"autoscaleDown"` + // Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + AutoscaleHeadroom OceanNpAutoscalerAutoscaleHeadroomPtrInput `pulumi:"autoscaleHeadroom"` + // Enable the Ocean Kubernetes Autoscaler. + AutoscaleIsEnabled pulumi.BoolPtrInput `pulumi:"autoscaleIsEnabled"` + // Optionally set upper and lower bounds on the resource usage of the cluster. + ResourceLimits OceanNpAutoscalerResourceLimitsPtrInput `pulumi:"resourceLimits"` } func (OceanNpAutoscalerArgs) ElementType() reflect.Type { @@ -4783,18 +2152,22 @@ func (o OceanNpAutoscalerOutput) ToOceanNpAutoscalerPtrOutputWithContext(ctx con }).(OceanNpAutoscalerPtrOutput) } +// Auto Scaling scale down operations. func (o OceanNpAutoscalerOutput) AutoscaleDown() OceanNpAutoscalerAutoscaleDownPtrOutput { return o.ApplyT(func(v OceanNpAutoscaler) *OceanNpAutoscalerAutoscaleDown { return v.AutoscaleDown }).(OceanNpAutoscalerAutoscaleDownPtrOutput) } +// Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. func (o OceanNpAutoscalerOutput) AutoscaleHeadroom() OceanNpAutoscalerAutoscaleHeadroomPtrOutput { return o.ApplyT(func(v OceanNpAutoscaler) *OceanNpAutoscalerAutoscaleHeadroom { return v.AutoscaleHeadroom }).(OceanNpAutoscalerAutoscaleHeadroomPtrOutput) } +// Enable the Ocean Kubernetes Autoscaler. func (o OceanNpAutoscalerOutput) AutoscaleIsEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v OceanNpAutoscaler) *bool { return v.AutoscaleIsEnabled }).(pulumi.BoolPtrOutput) } +// Optionally set upper and lower bounds on the resource usage of the cluster. func (o OceanNpAutoscalerOutput) ResourceLimits() OceanNpAutoscalerResourceLimitsPtrOutput { return o.ApplyT(func(v OceanNpAutoscaler) *OceanNpAutoscalerResourceLimits { return v.ResourceLimits }).(OceanNpAutoscalerResourceLimitsPtrOutput) } @@ -4823,6 +2196,7 @@ func (o OceanNpAutoscalerPtrOutput) Elem() OceanNpAutoscalerOutput { }).(OceanNpAutoscalerOutput) } +// Auto Scaling scale down operations. func (o OceanNpAutoscalerPtrOutput) AutoscaleDown() OceanNpAutoscalerAutoscaleDownPtrOutput { return o.ApplyT(func(v *OceanNpAutoscaler) *OceanNpAutoscalerAutoscaleDown { if v == nil { @@ -4832,6 +2206,7 @@ func (o OceanNpAutoscalerPtrOutput) AutoscaleDown() OceanNpAutoscalerAutoscaleDo }).(OceanNpAutoscalerAutoscaleDownPtrOutput) } +// Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. func (o OceanNpAutoscalerPtrOutput) AutoscaleHeadroom() OceanNpAutoscalerAutoscaleHeadroomPtrOutput { return o.ApplyT(func(v *OceanNpAutoscaler) *OceanNpAutoscalerAutoscaleHeadroom { if v == nil { @@ -4841,6 +2216,7 @@ func (o OceanNpAutoscalerPtrOutput) AutoscaleHeadroom() OceanNpAutoscalerAutosca }).(OceanNpAutoscalerAutoscaleHeadroomPtrOutput) } +// Enable the Ocean Kubernetes Autoscaler. func (o OceanNpAutoscalerPtrOutput) AutoscaleIsEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OceanNpAutoscaler) *bool { if v == nil { @@ -4850,6 +2226,7 @@ func (o OceanNpAutoscalerPtrOutput) AutoscaleIsEnabled() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } +// Optionally set upper and lower bounds on the resource usage of the cluster. func (o OceanNpAutoscalerPtrOutput) ResourceLimits() OceanNpAutoscalerResourceLimitsPtrOutput { return o.ApplyT(func(v *OceanNpAutoscaler) *OceanNpAutoscalerResourceLimits { if v == nil { @@ -5424,21 +2801,38 @@ func (o OceanNpAutoscalerResourceLimitsPtrOutput) MaxVcpu() pulumi.IntPtrOutput } type OceanNpFilters struct { - AcceleratedNetworking *string `pulumi:"acceleratedNetworking"` - Architectures []string `pulumi:"architectures"` - DiskPerformance *string `pulumi:"diskPerformance"` - ExcludeSeries []string `pulumi:"excludeSeries"` - GpuTypes []string `pulumi:"gpuTypes"` - MaxGpu *float64 `pulumi:"maxGpu"` - MaxMemoryGib *float64 `pulumi:"maxMemoryGib"` - MaxVcpu *int `pulumi:"maxVcpu"` - MinDisk *int `pulumi:"minDisk"` - MinGpu *float64 `pulumi:"minGpu"` - MinMemoryGib *float64 `pulumi:"minMemoryGib"` - MinNics *int `pulumi:"minNics"` - MinVcpu *int `pulumi:"minVcpu"` - Series []string `pulumi:"series"` - VmTypes []string `pulumi:"vmTypes"` + // In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + AcceleratedNetworking *string `pulumi:"acceleratedNetworking"` + // The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. + Architectures []string `pulumi:"architectures"` + // The filtered vm sizes will support at least one of the classes from this list. + DiskPerformance *string `pulumi:"diskPerformance"` + // Vm sizes belonging to a series from the list will not be available for scaling + ExcludeSeries []string `pulumi:"excludeSeries"` + // The filtered gpu types will belong to one of the gpu types from this list. + // + // + GpuTypes []string `pulumi:"gpuTypes"` + // Maximum number of GPUs available. + MaxGpu *float64 `pulumi:"maxGpu"` + // Maximum amount of Memory (GiB). + MaxMemoryGib *float64 `pulumi:"maxMemoryGib"` + // Maximum number of vcpus available. + MaxVcpu *int `pulumi:"maxVcpu"` + // Minimum number of data disks available. + MinDisk *int `pulumi:"minDisk"` + // Minimum number of GPUs available. + MinGpu *float64 `pulumi:"minGpu"` + // Minimum amount of Memory (GiB). + MinMemoryGib *float64 `pulumi:"minMemoryGib"` + // Minimum number of network interfaces. + MinNics *int `pulumi:"minNics"` + // Minimum number of vcpus available. + MinVcpu *int `pulumi:"minVcpu"` + // Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "dsV2" refer to same DS_v2 series. + Series []string `pulumi:"series"` + // The filtered vm types will belong to one of the vm types from this list. + VmTypes []string `pulumi:"vmTypes"` } // OceanNpFiltersInput is an input type that accepts OceanNpFiltersArgs and OceanNpFiltersOutput values. @@ -5453,21 +2847,38 @@ type OceanNpFiltersInput interface { } type OceanNpFiltersArgs struct { - AcceleratedNetworking pulumi.StringPtrInput `pulumi:"acceleratedNetworking"` - Architectures pulumi.StringArrayInput `pulumi:"architectures"` - DiskPerformance pulumi.StringPtrInput `pulumi:"diskPerformance"` - ExcludeSeries pulumi.StringArrayInput `pulumi:"excludeSeries"` - GpuTypes pulumi.StringArrayInput `pulumi:"gpuTypes"` - MaxGpu pulumi.Float64PtrInput `pulumi:"maxGpu"` - MaxMemoryGib pulumi.Float64PtrInput `pulumi:"maxMemoryGib"` - MaxVcpu pulumi.IntPtrInput `pulumi:"maxVcpu"` - MinDisk pulumi.IntPtrInput `pulumi:"minDisk"` - MinGpu pulumi.Float64PtrInput `pulumi:"minGpu"` - MinMemoryGib pulumi.Float64PtrInput `pulumi:"minMemoryGib"` - MinNics pulumi.IntPtrInput `pulumi:"minNics"` - MinVcpu pulumi.IntPtrInput `pulumi:"minVcpu"` - Series pulumi.StringArrayInput `pulumi:"series"` - VmTypes pulumi.StringArrayInput `pulumi:"vmTypes"` + // In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + AcceleratedNetworking pulumi.StringPtrInput `pulumi:"acceleratedNetworking"` + // The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. + Architectures pulumi.StringArrayInput `pulumi:"architectures"` + // The filtered vm sizes will support at least one of the classes from this list. + DiskPerformance pulumi.StringPtrInput `pulumi:"diskPerformance"` + // Vm sizes belonging to a series from the list will not be available for scaling + ExcludeSeries pulumi.StringArrayInput `pulumi:"excludeSeries"` + // The filtered gpu types will belong to one of the gpu types from this list. + // + // + GpuTypes pulumi.StringArrayInput `pulumi:"gpuTypes"` + // Maximum number of GPUs available. + MaxGpu pulumi.Float64PtrInput `pulumi:"maxGpu"` + // Maximum amount of Memory (GiB). + MaxMemoryGib pulumi.Float64PtrInput `pulumi:"maxMemoryGib"` + // Maximum number of vcpus available. + MaxVcpu pulumi.IntPtrInput `pulumi:"maxVcpu"` + // Minimum number of data disks available. + MinDisk pulumi.IntPtrInput `pulumi:"minDisk"` + // Minimum number of GPUs available. + MinGpu pulumi.Float64PtrInput `pulumi:"minGpu"` + // Minimum amount of Memory (GiB). + MinMemoryGib pulumi.Float64PtrInput `pulumi:"minMemoryGib"` + // Minimum number of network interfaces. + MinNics pulumi.IntPtrInput `pulumi:"minNics"` + // Minimum number of vcpus available. + MinVcpu pulumi.IntPtrInput `pulumi:"minVcpu"` + // Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "dsV2" refer to same DS_v2 series. + Series pulumi.StringArrayInput `pulumi:"series"` + // The filtered vm types will belong to one of the vm types from this list. + VmTypes pulumi.StringArrayInput `pulumi:"vmTypes"` } func (OceanNpFiltersArgs) ElementType() reflect.Type { @@ -5547,62 +2958,79 @@ func (o OceanNpFiltersOutput) ToOceanNpFiltersPtrOutputWithContext(ctx context.C }).(OceanNpFiltersPtrOutput) } +// In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. func (o OceanNpFiltersOutput) AcceleratedNetworking() pulumi.StringPtrOutput { return o.ApplyT(func(v OceanNpFilters) *string { return v.AcceleratedNetworking }).(pulumi.StringPtrOutput) } +// The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. func (o OceanNpFiltersOutput) Architectures() pulumi.StringArrayOutput { return o.ApplyT(func(v OceanNpFilters) []string { return v.Architectures }).(pulumi.StringArrayOutput) } +// The filtered vm sizes will support at least one of the classes from this list. func (o OceanNpFiltersOutput) DiskPerformance() pulumi.StringPtrOutput { return o.ApplyT(func(v OceanNpFilters) *string { return v.DiskPerformance }).(pulumi.StringPtrOutput) } +// Vm sizes belonging to a series from the list will not be available for scaling func (o OceanNpFiltersOutput) ExcludeSeries() pulumi.StringArrayOutput { return o.ApplyT(func(v OceanNpFilters) []string { return v.ExcludeSeries }).(pulumi.StringArrayOutput) } +// The filtered gpu types will belong to one of the gpu types from this list. +// +// func (o OceanNpFiltersOutput) GpuTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v OceanNpFilters) []string { return v.GpuTypes }).(pulumi.StringArrayOutput) } +// Maximum number of GPUs available. func (o OceanNpFiltersOutput) MaxGpu() pulumi.Float64PtrOutput { return o.ApplyT(func(v OceanNpFilters) *float64 { return v.MaxGpu }).(pulumi.Float64PtrOutput) } +// Maximum amount of Memory (GiB). func (o OceanNpFiltersOutput) MaxMemoryGib() pulumi.Float64PtrOutput { return o.ApplyT(func(v OceanNpFilters) *float64 { return v.MaxMemoryGib }).(pulumi.Float64PtrOutput) } +// Maximum number of vcpus available. func (o OceanNpFiltersOutput) MaxVcpu() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpFilters) *int { return v.MaxVcpu }).(pulumi.IntPtrOutput) } +// Minimum number of data disks available. func (o OceanNpFiltersOutput) MinDisk() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpFilters) *int { return v.MinDisk }).(pulumi.IntPtrOutput) } +// Minimum number of GPUs available. func (o OceanNpFiltersOutput) MinGpu() pulumi.Float64PtrOutput { return o.ApplyT(func(v OceanNpFilters) *float64 { return v.MinGpu }).(pulumi.Float64PtrOutput) } +// Minimum amount of Memory (GiB). func (o OceanNpFiltersOutput) MinMemoryGib() pulumi.Float64PtrOutput { return o.ApplyT(func(v OceanNpFilters) *float64 { return v.MinMemoryGib }).(pulumi.Float64PtrOutput) } +// Minimum number of network interfaces. func (o OceanNpFiltersOutput) MinNics() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpFilters) *int { return v.MinNics }).(pulumi.IntPtrOutput) } +// Minimum number of vcpus available. func (o OceanNpFiltersOutput) MinVcpu() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpFilters) *int { return v.MinVcpu }).(pulumi.IntPtrOutput) } +// Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "dsV2" refer to same DS_v2 series. func (o OceanNpFiltersOutput) Series() pulumi.StringArrayOutput { return o.ApplyT(func(v OceanNpFilters) []string { return v.Series }).(pulumi.StringArrayOutput) } +// The filtered vm types will belong to one of the vm types from this list. func (o OceanNpFiltersOutput) VmTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v OceanNpFilters) []string { return v.VmTypes }).(pulumi.StringArrayOutput) } @@ -5631,6 +3059,7 @@ func (o OceanNpFiltersPtrOutput) Elem() OceanNpFiltersOutput { }).(OceanNpFiltersOutput) } +// In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. func (o OceanNpFiltersPtrOutput) AcceleratedNetworking() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNpFilters) *string { if v == nil { @@ -5640,6 +3069,7 @@ func (o OceanNpFiltersPtrOutput) AcceleratedNetworking() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } +// The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. func (o OceanNpFiltersPtrOutput) Architectures() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpFilters) []string { if v == nil { @@ -5649,6 +3079,7 @@ func (o OceanNpFiltersPtrOutput) Architectures() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } +// The filtered vm sizes will support at least one of the classes from this list. func (o OceanNpFiltersPtrOutput) DiskPerformance() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNpFilters) *string { if v == nil { @@ -5658,6 +3089,7 @@ func (o OceanNpFiltersPtrOutput) DiskPerformance() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Vm sizes belonging to a series from the list will not be available for scaling func (o OceanNpFiltersPtrOutput) ExcludeSeries() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpFilters) []string { if v == nil { @@ -5667,6 +3099,9 @@ func (o OceanNpFiltersPtrOutput) ExcludeSeries() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } +// The filtered gpu types will belong to one of the gpu types from this list. +// +// func (o OceanNpFiltersPtrOutput) GpuTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpFilters) []string { if v == nil { @@ -5676,6 +3111,7 @@ func (o OceanNpFiltersPtrOutput) GpuTypes() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } +// Maximum number of GPUs available. func (o OceanNpFiltersPtrOutput) MaxGpu() pulumi.Float64PtrOutput { return o.ApplyT(func(v *OceanNpFilters) *float64 { if v == nil { @@ -5685,6 +3121,7 @@ func (o OceanNpFiltersPtrOutput) MaxGpu() pulumi.Float64PtrOutput { }).(pulumi.Float64PtrOutput) } +// Maximum amount of Memory (GiB). func (o OceanNpFiltersPtrOutput) MaxMemoryGib() pulumi.Float64PtrOutput { return o.ApplyT(func(v *OceanNpFilters) *float64 { if v == nil { @@ -5694,6 +3131,7 @@ func (o OceanNpFiltersPtrOutput) MaxMemoryGib() pulumi.Float64PtrOutput { }).(pulumi.Float64PtrOutput) } +// Maximum number of vcpus available. func (o OceanNpFiltersPtrOutput) MaxVcpu() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpFilters) *int { if v == nil { @@ -5703,6 +3141,7 @@ func (o OceanNpFiltersPtrOutput) MaxVcpu() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Minimum number of data disks available. func (o OceanNpFiltersPtrOutput) MinDisk() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpFilters) *int { if v == nil { @@ -5712,6 +3151,7 @@ func (o OceanNpFiltersPtrOutput) MinDisk() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Minimum number of GPUs available. func (o OceanNpFiltersPtrOutput) MinGpu() pulumi.Float64PtrOutput { return o.ApplyT(func(v *OceanNpFilters) *float64 { if v == nil { @@ -5721,6 +3161,7 @@ func (o OceanNpFiltersPtrOutput) MinGpu() pulumi.Float64PtrOutput { }).(pulumi.Float64PtrOutput) } +// Minimum amount of Memory (GiB). func (o OceanNpFiltersPtrOutput) MinMemoryGib() pulumi.Float64PtrOutput { return o.ApplyT(func(v *OceanNpFilters) *float64 { if v == nil { @@ -5730,6 +3171,7 @@ func (o OceanNpFiltersPtrOutput) MinMemoryGib() pulumi.Float64PtrOutput { }).(pulumi.Float64PtrOutput) } +// Minimum number of network interfaces. func (o OceanNpFiltersPtrOutput) MinNics() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpFilters) *int { if v == nil { @@ -5739,6 +3181,7 @@ func (o OceanNpFiltersPtrOutput) MinNics() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Minimum number of vcpus available. func (o OceanNpFiltersPtrOutput) MinVcpu() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpFilters) *int { if v == nil { @@ -5748,6 +3191,7 @@ func (o OceanNpFiltersPtrOutput) MinVcpu() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "dsV2" refer to same DS_v2 series. func (o OceanNpFiltersPtrOutput) Series() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpFilters) []string { if v == nil { @@ -5757,6 +3201,7 @@ func (o OceanNpFiltersPtrOutput) Series() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } +// The filtered vm types will belong to one of the vm types from this list. func (o OceanNpFiltersPtrOutput) VmTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpFilters) []string { if v == nil { @@ -5767,10 +3212,14 @@ func (o OceanNpFiltersPtrOutput) VmTypes() pulumi.StringArrayOutput { } type OceanNpHeadroom struct { - CpuPerUnit *int `pulumi:"cpuPerUnit"` - GpuPerUnit *int `pulumi:"gpuPerUnit"` + // Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + CpuPerUnit *int `pulumi:"cpuPerUnit"` + // Amount of GPU to allocate for headroom unit. + GpuPerUnit *int `pulumi:"gpuPerUnit"` + // Configure the amount of memory (MiB) to allocate the headroom. MemoryPerUnit *int `pulumi:"memoryPerUnit"` - NumOfUnits *int `pulumi:"numOfUnits"` + // The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + NumOfUnits *int `pulumi:"numOfUnits"` } // OceanNpHeadroomInput is an input type that accepts OceanNpHeadroomArgs and OceanNpHeadroomOutput values. @@ -5785,10 +3234,14 @@ type OceanNpHeadroomInput interface { } type OceanNpHeadroomArgs struct { - CpuPerUnit pulumi.IntPtrInput `pulumi:"cpuPerUnit"` - GpuPerUnit pulumi.IntPtrInput `pulumi:"gpuPerUnit"` + // Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + CpuPerUnit pulumi.IntPtrInput `pulumi:"cpuPerUnit"` + // Amount of GPU to allocate for headroom unit. + GpuPerUnit pulumi.IntPtrInput `pulumi:"gpuPerUnit"` + // Configure the amount of memory (MiB) to allocate the headroom. MemoryPerUnit pulumi.IntPtrInput `pulumi:"memoryPerUnit"` - NumOfUnits pulumi.IntPtrInput `pulumi:"numOfUnits"` + // The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + NumOfUnits pulumi.IntPtrInput `pulumi:"numOfUnits"` } func (OceanNpHeadroomArgs) ElementType() reflect.Type { @@ -5842,18 +3295,22 @@ func (o OceanNpHeadroomOutput) ToOceanNpHeadroomOutputWithContext(ctx context.Co return o } +// Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. func (o OceanNpHeadroomOutput) CpuPerUnit() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpHeadroom) *int { return v.CpuPerUnit }).(pulumi.IntPtrOutput) } +// Amount of GPU to allocate for headroom unit. func (o OceanNpHeadroomOutput) GpuPerUnit() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpHeadroom) *int { return v.GpuPerUnit }).(pulumi.IntPtrOutput) } +// Configure the amount of memory (MiB) to allocate the headroom. func (o OceanNpHeadroomOutput) MemoryPerUnit() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpHeadroom) *int { return v.MemoryPerUnit }).(pulumi.IntPtrOutput) } +// The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. func (o OceanNpHeadroomOutput) NumOfUnits() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpHeadroom) *int { return v.NumOfUnits }).(pulumi.IntPtrOutput) } @@ -5879,6 +3336,7 @@ func (o OceanNpHeadroomArrayOutput) Index(i pulumi.IntInput) OceanNpHeadroomOutp } type OceanNpHealth struct { + // The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. GracePeriod *int `pulumi:"gracePeriod"` } @@ -5894,6 +3352,7 @@ type OceanNpHealthInput interface { } type OceanNpHealthArgs struct { + // The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. GracePeriod pulumi.IntPtrInput `pulumi:"gracePeriod"` } @@ -5974,6 +3433,7 @@ func (o OceanNpHealthOutput) ToOceanNpHealthPtrOutputWithContext(ctx context.Con }).(OceanNpHealthPtrOutput) } +// The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. func (o OceanNpHealthOutput) GracePeriod() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpHealth) *int { return v.GracePeriod }).(pulumi.IntPtrOutput) } @@ -6002,6 +3462,7 @@ func (o OceanNpHealthPtrOutput) Elem() OceanNpHealthOutput { }).(OceanNpHealthOutput) } +// The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. func (o OceanNpHealthPtrOutput) GracePeriod() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpHealth) *int { if v == nil { @@ -6012,6 +3473,7 @@ func (o OceanNpHealthPtrOutput) GracePeriod() pulumi.IntPtrOutput { } type OceanNpScheduling struct { + // [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. ShutdownHours *OceanNpSchedulingShutdownHours `pulumi:"shutdownHours"` } @@ -6027,6 +3489,7 @@ type OceanNpSchedulingInput interface { } type OceanNpSchedulingArgs struct { + // [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. ShutdownHours OceanNpSchedulingShutdownHoursPtrInput `pulumi:"shutdownHours"` } @@ -6107,6 +3570,7 @@ func (o OceanNpSchedulingOutput) ToOceanNpSchedulingPtrOutputWithContext(ctx con }).(OceanNpSchedulingPtrOutput) } +// [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. func (o OceanNpSchedulingOutput) ShutdownHours() OceanNpSchedulingShutdownHoursPtrOutput { return o.ApplyT(func(v OceanNpScheduling) *OceanNpSchedulingShutdownHours { return v.ShutdownHours }).(OceanNpSchedulingShutdownHoursPtrOutput) } @@ -6135,6 +3599,7 @@ func (o OceanNpSchedulingPtrOutput) Elem() OceanNpSchedulingOutput { }).(OceanNpSchedulingOutput) } +// [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. func (o OceanNpSchedulingPtrOutput) ShutdownHours() OceanNpSchedulingShutdownHoursPtrOutput { return o.ApplyT(func(v *OceanNpScheduling) *OceanNpSchedulingShutdownHours { if v == nil { @@ -6293,9 +3758,12 @@ func (o OceanNpSchedulingShutdownHoursPtrOutput) TimeWindows() pulumi.StringArra } type OceanNpTaint struct { + // Set taint effect. Effect string `pulumi:"effect"` - Key string `pulumi:"key"` - Value string `pulumi:"value"` + // Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + Key string `pulumi:"key"` + // Set taint value. + Value string `pulumi:"value"` } // OceanNpTaintInput is an input type that accepts OceanNpTaintArgs and OceanNpTaintOutput values. @@ -6310,9 +3778,12 @@ type OceanNpTaintInput interface { } type OceanNpTaintArgs struct { + // Set taint effect. Effect pulumi.StringInput `pulumi:"effect"` - Key pulumi.StringInput `pulumi:"key"` - Value pulumi.StringInput `pulumi:"value"` + // Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + Key pulumi.StringInput `pulumi:"key"` + // Set taint value. + Value pulumi.StringInput `pulumi:"value"` } func (OceanNpTaintArgs) ElementType() reflect.Type { @@ -6366,14 +3837,17 @@ func (o OceanNpTaintOutput) ToOceanNpTaintOutputWithContext(ctx context.Context) return o } +// Set taint effect. func (o OceanNpTaintOutput) Effect() pulumi.StringOutput { return o.ApplyT(func(v OceanNpTaint) string { return v.Effect }).(pulumi.StringOutput) } +// Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] func (o OceanNpTaintOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v OceanNpTaint) string { return v.Key }).(pulumi.StringOutput) } +// Set taint value. func (o OceanNpTaintOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v OceanNpTaint) string { return v.Value }).(pulumi.StringOutput) } @@ -6800,21 +4274,37 @@ func (o OceanNpUpdatePolicyRollConfigPtrOutput) VngIds() pulumi.StringArrayOutpu } type OceanNpVirtualNodeGroupFilters struct { - AcceleratedNetworking *string `pulumi:"acceleratedNetworking"` - Architectures []string `pulumi:"architectures"` - DiskPerformance *string `pulumi:"diskPerformance"` - ExcludeSeries []string `pulumi:"excludeSeries"` - GpuTypes []string `pulumi:"gpuTypes"` - MaxGpu *float64 `pulumi:"maxGpu"` - MaxMemoryGib *float64 `pulumi:"maxMemoryGib"` - MaxVcpu *int `pulumi:"maxVcpu"` - MinDisk *int `pulumi:"minDisk"` - MinGpu *float64 `pulumi:"minGpu"` - MinMemoryGib *float64 `pulumi:"minMemoryGib"` - MinNics *int `pulumi:"minNics"` - MinVcpu *int `pulumi:"minVcpu"` - Series []string `pulumi:"series"` - VmTypes []string `pulumi:"vmTypes"` + // In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + AcceleratedNetworking *string `pulumi:"acceleratedNetworking"` + // The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. + Architectures []string `pulumi:"architectures"` + // The filtered vm sizes will support at least one of the classes from this list. + DiskPerformance *string `pulumi:"diskPerformance"` + // Vm sizes belonging to a series from the list will not be available for scaling. + ExcludeSeries []string `pulumi:"excludeSeries"` + // The filtered gpu types will belong to one of the gpu types from this list. + // + GpuTypes []string `pulumi:"gpuTypes"` + // Maximum number of GPUs available. + MaxGpu *float64 `pulumi:"maxGpu"` + // Maximum amount of Memory (GiB). + MaxMemoryGib *float64 `pulumi:"maxMemoryGib"` + // Maximum number of vcpus available. + MaxVcpu *int `pulumi:"maxVcpu"` + // Minimum number of data disks available. + MinDisk *int `pulumi:"minDisk"` + // Minimum number of GPUs available. + MinGpu *float64 `pulumi:"minGpu"` + // Minimum amount of Memory (GiB). + MinMemoryGib *float64 `pulumi:"minMemoryGib"` + // Minimum number of network interfaces. + MinNics *int `pulumi:"minNics"` + // Minimum number of vcpus available. + MinVcpu *int `pulumi:"minVcpu"` + // Vm sizes belonging to a series from the list will be available for scaling. + Series []string `pulumi:"series"` + // The filtered vm types will belong to one of the vm types from this list. + VmTypes []string `pulumi:"vmTypes"` } // OceanNpVirtualNodeGroupFiltersInput is an input type that accepts OceanNpVirtualNodeGroupFiltersArgs and OceanNpVirtualNodeGroupFiltersOutput values. @@ -6829,21 +4319,37 @@ type OceanNpVirtualNodeGroupFiltersInput interface { } type OceanNpVirtualNodeGroupFiltersArgs struct { - AcceleratedNetworking pulumi.StringPtrInput `pulumi:"acceleratedNetworking"` - Architectures pulumi.StringArrayInput `pulumi:"architectures"` - DiskPerformance pulumi.StringPtrInput `pulumi:"diskPerformance"` - ExcludeSeries pulumi.StringArrayInput `pulumi:"excludeSeries"` - GpuTypes pulumi.StringArrayInput `pulumi:"gpuTypes"` - MaxGpu pulumi.Float64PtrInput `pulumi:"maxGpu"` - MaxMemoryGib pulumi.Float64PtrInput `pulumi:"maxMemoryGib"` - MaxVcpu pulumi.IntPtrInput `pulumi:"maxVcpu"` - MinDisk pulumi.IntPtrInput `pulumi:"minDisk"` - MinGpu pulumi.Float64PtrInput `pulumi:"minGpu"` - MinMemoryGib pulumi.Float64PtrInput `pulumi:"minMemoryGib"` - MinNics pulumi.IntPtrInput `pulumi:"minNics"` - MinVcpu pulumi.IntPtrInput `pulumi:"minVcpu"` - Series pulumi.StringArrayInput `pulumi:"series"` - VmTypes pulumi.StringArrayInput `pulumi:"vmTypes"` + // In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + AcceleratedNetworking pulumi.StringPtrInput `pulumi:"acceleratedNetworking"` + // The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. + Architectures pulumi.StringArrayInput `pulumi:"architectures"` + // The filtered vm sizes will support at least one of the classes from this list. + DiskPerformance pulumi.StringPtrInput `pulumi:"diskPerformance"` + // Vm sizes belonging to a series from the list will not be available for scaling. + ExcludeSeries pulumi.StringArrayInput `pulumi:"excludeSeries"` + // The filtered gpu types will belong to one of the gpu types from this list. + // + GpuTypes pulumi.StringArrayInput `pulumi:"gpuTypes"` + // Maximum number of GPUs available. + MaxGpu pulumi.Float64PtrInput `pulumi:"maxGpu"` + // Maximum amount of Memory (GiB). + MaxMemoryGib pulumi.Float64PtrInput `pulumi:"maxMemoryGib"` + // Maximum number of vcpus available. + MaxVcpu pulumi.IntPtrInput `pulumi:"maxVcpu"` + // Minimum number of data disks available. + MinDisk pulumi.IntPtrInput `pulumi:"minDisk"` + // Minimum number of GPUs available. + MinGpu pulumi.Float64PtrInput `pulumi:"minGpu"` + // Minimum amount of Memory (GiB). + MinMemoryGib pulumi.Float64PtrInput `pulumi:"minMemoryGib"` + // Minimum number of network interfaces. + MinNics pulumi.IntPtrInput `pulumi:"minNics"` + // Minimum number of vcpus available. + MinVcpu pulumi.IntPtrInput `pulumi:"minVcpu"` + // Vm sizes belonging to a series from the list will be available for scaling. + Series pulumi.StringArrayInput `pulumi:"series"` + // The filtered vm types will belong to one of the vm types from this list. + VmTypes pulumi.StringArrayInput `pulumi:"vmTypes"` } func (OceanNpVirtualNodeGroupFiltersArgs) ElementType() reflect.Type { @@ -6923,62 +4429,78 @@ func (o OceanNpVirtualNodeGroupFiltersOutput) ToOceanNpVirtualNodeGroupFiltersPt }).(OceanNpVirtualNodeGroupFiltersPtrOutput) } +// In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. func (o OceanNpVirtualNodeGroupFiltersOutput) AcceleratedNetworking() pulumi.StringPtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) *string { return v.AcceleratedNetworking }).(pulumi.StringPtrOutput) } +// The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. func (o OceanNpVirtualNodeGroupFiltersOutput) Architectures() pulumi.StringArrayOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) []string { return v.Architectures }).(pulumi.StringArrayOutput) } +// The filtered vm sizes will support at least one of the classes from this list. func (o OceanNpVirtualNodeGroupFiltersOutput) DiskPerformance() pulumi.StringPtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) *string { return v.DiskPerformance }).(pulumi.StringPtrOutput) } +// Vm sizes belonging to a series from the list will not be available for scaling. func (o OceanNpVirtualNodeGroupFiltersOutput) ExcludeSeries() pulumi.StringArrayOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) []string { return v.ExcludeSeries }).(pulumi.StringArrayOutput) } +// The filtered gpu types will belong to one of the gpu types from this list. +// func (o OceanNpVirtualNodeGroupFiltersOutput) GpuTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) []string { return v.GpuTypes }).(pulumi.StringArrayOutput) } +// Maximum number of GPUs available. func (o OceanNpVirtualNodeGroupFiltersOutput) MaxGpu() pulumi.Float64PtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) *float64 { return v.MaxGpu }).(pulumi.Float64PtrOutput) } +// Maximum amount of Memory (GiB). func (o OceanNpVirtualNodeGroupFiltersOutput) MaxMemoryGib() pulumi.Float64PtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) *float64 { return v.MaxMemoryGib }).(pulumi.Float64PtrOutput) } +// Maximum number of vcpus available. func (o OceanNpVirtualNodeGroupFiltersOutput) MaxVcpu() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) *int { return v.MaxVcpu }).(pulumi.IntPtrOutput) } +// Minimum number of data disks available. func (o OceanNpVirtualNodeGroupFiltersOutput) MinDisk() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) *int { return v.MinDisk }).(pulumi.IntPtrOutput) } +// Minimum number of GPUs available. func (o OceanNpVirtualNodeGroupFiltersOutput) MinGpu() pulumi.Float64PtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) *float64 { return v.MinGpu }).(pulumi.Float64PtrOutput) } +// Minimum amount of Memory (GiB). func (o OceanNpVirtualNodeGroupFiltersOutput) MinMemoryGib() pulumi.Float64PtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) *float64 { return v.MinMemoryGib }).(pulumi.Float64PtrOutput) } +// Minimum number of network interfaces. func (o OceanNpVirtualNodeGroupFiltersOutput) MinNics() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) *int { return v.MinNics }).(pulumi.IntPtrOutput) } +// Minimum number of vcpus available. func (o OceanNpVirtualNodeGroupFiltersOutput) MinVcpu() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) *int { return v.MinVcpu }).(pulumi.IntPtrOutput) } +// Vm sizes belonging to a series from the list will be available for scaling. func (o OceanNpVirtualNodeGroupFiltersOutput) Series() pulumi.StringArrayOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) []string { return v.Series }).(pulumi.StringArrayOutput) } +// The filtered vm types will belong to one of the vm types from this list. func (o OceanNpVirtualNodeGroupFiltersOutput) VmTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupFilters) []string { return v.VmTypes }).(pulumi.StringArrayOutput) } @@ -7007,6 +4529,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) Elem() OceanNpVirtualNodeGroupF }).(OceanNpVirtualNodeGroupFiltersOutput) } +// In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) AcceleratedNetworking() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) *string { if v == nil { @@ -7016,6 +4539,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) AcceleratedNetworking() pulumi. }).(pulumi.StringPtrOutput) } +// The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) Architectures() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) []string { if v == nil { @@ -7025,6 +4549,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) Architectures() pulumi.StringAr }).(pulumi.StringArrayOutput) } +// The filtered vm sizes will support at least one of the classes from this list. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) DiskPerformance() pulumi.StringPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) *string { if v == nil { @@ -7034,6 +4559,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) DiskPerformance() pulumi.String }).(pulumi.StringPtrOutput) } +// Vm sizes belonging to a series from the list will not be available for scaling. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) ExcludeSeries() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) []string { if v == nil { @@ -7043,6 +4569,8 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) ExcludeSeries() pulumi.StringAr }).(pulumi.StringArrayOutput) } +// The filtered gpu types will belong to one of the gpu types from this list. +// func (o OceanNpVirtualNodeGroupFiltersPtrOutput) GpuTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) []string { if v == nil { @@ -7052,6 +4580,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) GpuTypes() pulumi.StringArrayOu }).(pulumi.StringArrayOutput) } +// Maximum number of GPUs available. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MaxGpu() pulumi.Float64PtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) *float64 { if v == nil { @@ -7061,6 +4590,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MaxGpu() pulumi.Float64PtrOutpu }).(pulumi.Float64PtrOutput) } +// Maximum amount of Memory (GiB). func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MaxMemoryGib() pulumi.Float64PtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) *float64 { if v == nil { @@ -7070,6 +4600,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MaxMemoryGib() pulumi.Float64Pt }).(pulumi.Float64PtrOutput) } +// Maximum number of vcpus available. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MaxVcpu() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) *int { if v == nil { @@ -7079,6 +4610,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MaxVcpu() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Minimum number of data disks available. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MinDisk() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) *int { if v == nil { @@ -7088,6 +4620,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MinDisk() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Minimum number of GPUs available. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MinGpu() pulumi.Float64PtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) *float64 { if v == nil { @@ -7097,6 +4630,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MinGpu() pulumi.Float64PtrOutpu }).(pulumi.Float64PtrOutput) } +// Minimum amount of Memory (GiB). func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MinMemoryGib() pulumi.Float64PtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) *float64 { if v == nil { @@ -7106,6 +4640,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MinMemoryGib() pulumi.Float64Pt }).(pulumi.Float64PtrOutput) } +// Minimum number of network interfaces. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MinNics() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) *int { if v == nil { @@ -7115,6 +4650,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MinNics() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Minimum number of vcpus available. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MinVcpu() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) *int { if v == nil { @@ -7124,6 +4660,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) MinVcpu() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Vm sizes belonging to a series from the list will be available for scaling. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) Series() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) []string { if v == nil { @@ -7133,6 +4670,7 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) Series() pulumi.StringArrayOutp }).(pulumi.StringArrayOutput) } +// The filtered vm types will belong to one of the vm types from this list. func (o OceanNpVirtualNodeGroupFiltersPtrOutput) VmTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroupFilters) []string { if v == nil { @@ -7143,10 +4681,14 @@ func (o OceanNpVirtualNodeGroupFiltersPtrOutput) VmTypes() pulumi.StringArrayOut } type OceanNpVirtualNodeGroupHeadroom struct { - CpuPerUnit *int `pulumi:"cpuPerUnit"` - GpuPerUnit *int `pulumi:"gpuPerUnit"` + // Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + CpuPerUnit *int `pulumi:"cpuPerUnit"` + // Amount of GPU to allocate for headroom unit. + GpuPerUnit *int `pulumi:"gpuPerUnit"` + // Configure the amount of memory (MiB) to allocate the headroom. MemoryPerUnit *int `pulumi:"memoryPerUnit"` - NumOfUnits *int `pulumi:"numOfUnits"` + // The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + NumOfUnits *int `pulumi:"numOfUnits"` } // OceanNpVirtualNodeGroupHeadroomInput is an input type that accepts OceanNpVirtualNodeGroupHeadroomArgs and OceanNpVirtualNodeGroupHeadroomOutput values. @@ -7161,10 +4703,14 @@ type OceanNpVirtualNodeGroupHeadroomInput interface { } type OceanNpVirtualNodeGroupHeadroomArgs struct { - CpuPerUnit pulumi.IntPtrInput `pulumi:"cpuPerUnit"` - GpuPerUnit pulumi.IntPtrInput `pulumi:"gpuPerUnit"` + // Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + CpuPerUnit pulumi.IntPtrInput `pulumi:"cpuPerUnit"` + // Amount of GPU to allocate for headroom unit. + GpuPerUnit pulumi.IntPtrInput `pulumi:"gpuPerUnit"` + // Configure the amount of memory (MiB) to allocate the headroom. MemoryPerUnit pulumi.IntPtrInput `pulumi:"memoryPerUnit"` - NumOfUnits pulumi.IntPtrInput `pulumi:"numOfUnits"` + // The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + NumOfUnits pulumi.IntPtrInput `pulumi:"numOfUnits"` } func (OceanNpVirtualNodeGroupHeadroomArgs) ElementType() reflect.Type { @@ -7218,18 +4764,22 @@ func (o OceanNpVirtualNodeGroupHeadroomOutput) ToOceanNpVirtualNodeGroupHeadroom return o } +// Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. func (o OceanNpVirtualNodeGroupHeadroomOutput) CpuPerUnit() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupHeadroom) *int { return v.CpuPerUnit }).(pulumi.IntPtrOutput) } +// Amount of GPU to allocate for headroom unit. func (o OceanNpVirtualNodeGroupHeadroomOutput) GpuPerUnit() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupHeadroom) *int { return v.GpuPerUnit }).(pulumi.IntPtrOutput) } +// Configure the amount of memory (MiB) to allocate the headroom. func (o OceanNpVirtualNodeGroupHeadroomOutput) MemoryPerUnit() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupHeadroom) *int { return v.MemoryPerUnit }).(pulumi.IntPtrOutput) } +// The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. func (o OceanNpVirtualNodeGroupHeadroomOutput) NumOfUnits() pulumi.IntPtrOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupHeadroom) *int { return v.NumOfUnits }).(pulumi.IntPtrOutput) } @@ -7255,9 +4805,12 @@ func (o OceanNpVirtualNodeGroupHeadroomArrayOutput) Index(i pulumi.IntInput) Oce } type OceanNpVirtualNodeGroupTaint struct { + // Set taint effect. Effect string `pulumi:"effect"` - Key string `pulumi:"key"` - Value string `pulumi:"value"` + // Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + Key string `pulumi:"key"` + // Set taint value. + Value string `pulumi:"value"` } // OceanNpVirtualNodeGroupTaintInput is an input type that accepts OceanNpVirtualNodeGroupTaintArgs and OceanNpVirtualNodeGroupTaintOutput values. @@ -7272,9 +4825,12 @@ type OceanNpVirtualNodeGroupTaintInput interface { } type OceanNpVirtualNodeGroupTaintArgs struct { + // Set taint effect. Effect pulumi.StringInput `pulumi:"effect"` - Key pulumi.StringInput `pulumi:"key"` - Value pulumi.StringInput `pulumi:"value"` + // Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + Key pulumi.StringInput `pulumi:"key"` + // Set taint value. + Value pulumi.StringInput `pulumi:"value"` } func (OceanNpVirtualNodeGroupTaintArgs) ElementType() reflect.Type { @@ -7328,14 +4884,17 @@ func (o OceanNpVirtualNodeGroupTaintOutput) ToOceanNpVirtualNodeGroupTaintOutput return o } +// Set taint effect. func (o OceanNpVirtualNodeGroupTaintOutput) Effect() pulumi.StringOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupTaint) string { return v.Effect }).(pulumi.StringOutput) } +// Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". func (o OceanNpVirtualNodeGroupTaintOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupTaint) string { return v.Key }).(pulumi.StringOutput) } +// Set taint value. func (o OceanNpVirtualNodeGroupTaintOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v OceanNpVirtualNodeGroupTaint) string { return v.Value }).(pulumi.StringOutput) } @@ -9146,44 +6705,6 @@ func (o OceanVmSizeArrayOutput) Index(i pulumi.IntInput) OceanVmSizeOutput { } func init() { - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupHealthCheckInput)(nil)).Elem(), ElastigroupHealthCheckArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupHealthCheckPtrInput)(nil)).Elem(), ElastigroupHealthCheckArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupImageInput)(nil)).Elem(), ElastigroupImageArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupImageArrayInput)(nil)).Elem(), ElastigroupImageArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupImageCustomInput)(nil)).Elem(), ElastigroupImageCustomArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupImageCustomArrayInput)(nil)).Elem(), ElastigroupImageCustomArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupImageMarketplaceInput)(nil)).Elem(), ElastigroupImageMarketplaceArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupImageMarketplaceArrayInput)(nil)).Elem(), ElastigroupImageMarketplaceArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupIntegrationKubernetesInput)(nil)).Elem(), ElastigroupIntegrationKubernetesArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupIntegrationKubernetesPtrInput)(nil)).Elem(), ElastigroupIntegrationKubernetesArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupIntegrationMultaiRuntimeInput)(nil)).Elem(), ElastigroupIntegrationMultaiRuntimeArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupIntegrationMultaiRuntimePtrInput)(nil)).Elem(), ElastigroupIntegrationMultaiRuntimeArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupLoadBalancerInput)(nil)).Elem(), ElastigroupLoadBalancerArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupLoadBalancerArrayInput)(nil)).Elem(), ElastigroupLoadBalancerArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupLoginInput)(nil)).Elem(), ElastigroupLoginArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupLoginPtrInput)(nil)).Elem(), ElastigroupLoginArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupManagedServiceIdentityInput)(nil)).Elem(), ElastigroupManagedServiceIdentityArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupManagedServiceIdentityArrayInput)(nil)).Elem(), ElastigroupManagedServiceIdentityArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupNetworkInput)(nil)).Elem(), ElastigroupNetworkArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupNetworkPtrInput)(nil)).Elem(), ElastigroupNetworkArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupNetworkAdditionalIpConfigInput)(nil)).Elem(), ElastigroupNetworkAdditionalIpConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupNetworkAdditionalIpConfigArrayInput)(nil)).Elem(), ElastigroupNetworkAdditionalIpConfigArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupScalingDownPolicyInput)(nil)).Elem(), ElastigroupScalingDownPolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupScalingDownPolicyArrayInput)(nil)).Elem(), ElastigroupScalingDownPolicyArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupScalingDownPolicyDimensionInput)(nil)).Elem(), ElastigroupScalingDownPolicyDimensionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupScalingDownPolicyDimensionArrayInput)(nil)).Elem(), ElastigroupScalingDownPolicyDimensionArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupScalingUpPolicyInput)(nil)).Elem(), ElastigroupScalingUpPolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupScalingUpPolicyArrayInput)(nil)).Elem(), ElastigroupScalingUpPolicyArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupScalingUpPolicyDimensionInput)(nil)).Elem(), ElastigroupScalingUpPolicyDimensionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupScalingUpPolicyDimensionArrayInput)(nil)).Elem(), ElastigroupScalingUpPolicyDimensionArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupScheduledTaskInput)(nil)).Elem(), ElastigroupScheduledTaskArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupScheduledTaskArrayInput)(nil)).Elem(), ElastigroupScheduledTaskArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupStrategyInput)(nil)).Elem(), ElastigroupStrategyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupStrategyPtrInput)(nil)).Elem(), ElastigroupStrategyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupUpdatePolicyInput)(nil)).Elem(), ElastigroupUpdatePolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupUpdatePolicyPtrInput)(nil)).Elem(), ElastigroupUpdatePolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupUpdatePolicyRollConfigInput)(nil)).Elem(), ElastigroupUpdatePolicyRollConfigArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ElastigroupUpdatePolicyRollConfigPtrInput)(nil)).Elem(), ElastigroupUpdatePolicyRollConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanAutoscalerInput)(nil)).Elem(), OceanAutoscalerArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanAutoscalerPtrInput)(nil)).Elem(), OceanAutoscalerArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanAutoscalerAutoscaleDownInput)(nil)).Elem(), OceanAutoscalerAutoscaleDownArgs{}) @@ -9274,44 +6795,6 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*OceanVirtualNodeGroupTaintArrayInput)(nil)).Elem(), OceanVirtualNodeGroupTaintArray{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanVmSizeInput)(nil)).Elem(), OceanVmSizeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanVmSizeArrayInput)(nil)).Elem(), OceanVmSizeArray{}) - pulumi.RegisterOutputType(ElastigroupHealthCheckOutput{}) - pulumi.RegisterOutputType(ElastigroupHealthCheckPtrOutput{}) - pulumi.RegisterOutputType(ElastigroupImageOutput{}) - pulumi.RegisterOutputType(ElastigroupImageArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupImageCustomOutput{}) - pulumi.RegisterOutputType(ElastigroupImageCustomArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupImageMarketplaceOutput{}) - pulumi.RegisterOutputType(ElastigroupImageMarketplaceArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupIntegrationKubernetesOutput{}) - pulumi.RegisterOutputType(ElastigroupIntegrationKubernetesPtrOutput{}) - pulumi.RegisterOutputType(ElastigroupIntegrationMultaiRuntimeOutput{}) - pulumi.RegisterOutputType(ElastigroupIntegrationMultaiRuntimePtrOutput{}) - pulumi.RegisterOutputType(ElastigroupLoadBalancerOutput{}) - pulumi.RegisterOutputType(ElastigroupLoadBalancerArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupLoginOutput{}) - pulumi.RegisterOutputType(ElastigroupLoginPtrOutput{}) - pulumi.RegisterOutputType(ElastigroupManagedServiceIdentityOutput{}) - pulumi.RegisterOutputType(ElastigroupManagedServiceIdentityArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupNetworkOutput{}) - pulumi.RegisterOutputType(ElastigroupNetworkPtrOutput{}) - pulumi.RegisterOutputType(ElastigroupNetworkAdditionalIpConfigOutput{}) - pulumi.RegisterOutputType(ElastigroupNetworkAdditionalIpConfigArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupScalingDownPolicyOutput{}) - pulumi.RegisterOutputType(ElastigroupScalingDownPolicyArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupScalingDownPolicyDimensionOutput{}) - pulumi.RegisterOutputType(ElastigroupScalingDownPolicyDimensionArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupScalingUpPolicyOutput{}) - pulumi.RegisterOutputType(ElastigroupScalingUpPolicyArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupScalingUpPolicyDimensionOutput{}) - pulumi.RegisterOutputType(ElastigroupScalingUpPolicyDimensionArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupScheduledTaskOutput{}) - pulumi.RegisterOutputType(ElastigroupScheduledTaskArrayOutput{}) - pulumi.RegisterOutputType(ElastigroupStrategyOutput{}) - pulumi.RegisterOutputType(ElastigroupStrategyPtrOutput{}) - pulumi.RegisterOutputType(ElastigroupUpdatePolicyOutput{}) - pulumi.RegisterOutputType(ElastigroupUpdatePolicyPtrOutput{}) - pulumi.RegisterOutputType(ElastigroupUpdatePolicyRollConfigOutput{}) - pulumi.RegisterOutputType(ElastigroupUpdatePolicyRollConfigPtrOutput{}) pulumi.RegisterOutputType(OceanAutoscalerOutput{}) pulumi.RegisterOutputType(OceanAutoscalerPtrOutput{}) pulumi.RegisterOutputType(OceanAutoscalerAutoscaleDownOutput{}) diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/Elastigroup.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/Elastigroup.java deleted file mode 100644 index 77e98ba0..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/Elastigroup.java +++ /dev/null @@ -1,406 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Export; -import com.pulumi.core.annotations.ResourceType; -import com.pulumi.core.internal.Codegen; -import com.pulumi.spotinst.Utilities; -import com.pulumi.spotinst.azure.ElastigroupArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupState; -import com.pulumi.spotinst.azure.outputs.ElastigroupHealthCheck; -import com.pulumi.spotinst.azure.outputs.ElastigroupImage; -import com.pulumi.spotinst.azure.outputs.ElastigroupIntegrationKubernetes; -import com.pulumi.spotinst.azure.outputs.ElastigroupIntegrationMultaiRuntime; -import com.pulumi.spotinst.azure.outputs.ElastigroupLoadBalancer; -import com.pulumi.spotinst.azure.outputs.ElastigroupLogin; -import com.pulumi.spotinst.azure.outputs.ElastigroupManagedServiceIdentity; -import com.pulumi.spotinst.azure.outputs.ElastigroupNetwork; -import com.pulumi.spotinst.azure.outputs.ElastigroupScalingDownPolicy; -import com.pulumi.spotinst.azure.outputs.ElastigroupScalingUpPolicy; -import com.pulumi.spotinst.azure.outputs.ElastigroupScheduledTask; -import com.pulumi.spotinst.azure.outputs.ElastigroupStrategy; -import com.pulumi.spotinst.azure.outputs.ElastigroupUpdatePolicy; -import java.lang.Integer; -import java.lang.String; -import java.util.List; -import java.util.Optional; -import javax.annotation.Nullable; - -/** - * Provides a Spotinst elastigroup Azure resource. - * - * ## Example Usage - * - * <!--Start PulumiCodeChooser --> - * ```java - * package generated_program; - * - * import com.pulumi.Context; - * import com.pulumi.Pulumi; - * import com.pulumi.core.Output; - * import com.pulumi.spotinst.ElastigroupAzureV3; - * import com.pulumi.spotinst.ElastigroupAzureV3Args; - * import com.pulumi.spotinst.inputs.ElastigroupAzureV3ManagedServiceIdentityArgs; - * import com.pulumi.spotinst.inputs.ElastigroupAzureV3TagArgs; - * import com.pulumi.spotinst.inputs.ElastigroupAzureV3ImageArgs; - * import com.pulumi.spotinst.inputs.ElastigroupAzureV3NetworkArgs; - * import com.pulumi.spotinst.inputs.ElastigroupAzureV3LoginArgs; - * import java.util.List; - * import java.util.ArrayList; - * import java.util.Map; - * import java.io.File; - * import java.nio.file.Files; - * import java.nio.file.Paths; - * - * public class App { - * public static void main(String[] args) { - * Pulumi.run(App::stack); - * } - * - * public static void stack(Context ctx) { - * var testAzureGroup = new ElastigroupAzureV3("testAzureGroup", ElastigroupAzureV3Args.builder() - * .name("example_elastigroup_azure") - * .resourceGroupName("spotinst-azure") - * .region("eastus") - * .os("Linux") - * .minSize(0) - * .maxSize(1) - * .desiredCapacity(1) - * .odSizes( - * "standard_a1_v1", - * "standard_a1_v2") - * .spotSizes( - * "standard_a1_v1", - * "standard_a1_v2") - * .customData("IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=") - * .managedServiceIdentities(ElastigroupAzureV3ManagedServiceIdentityArgs.builder() - * .resourceGroupName("MC_ocean-westus-dev_ocean-westus-dev-aks_westus") - * .name("ocean-westus-dev-aks-agentpool") - * .build()) - * .tags( - * ElastigroupAzureV3TagArgs.builder() - * .key("key1") - * .value("value1") - * .build(), - * ElastigroupAzureV3TagArgs.builder() - * .key("key2") - * .value("value2") - * .build()) - * .images(ElastigroupAzureV3ImageArgs.builder() - * .marketplaces(ElastigroupAzureV3ImageMarketplaceArgs.builder() - * .publisher("Canonical") - * .offer("UbuntuServer") - * .sku("18.04-LTS") - * .version("latest") - * .build()) - * .build()) - * .spotPercentage(65) - * .drainingTimeout(300) - * .fallbackToOnDemand(true) - * .network(ElastigroupAzureV3NetworkArgs.builder() - * .virtualNetworkName("VirtualNetworkName") - * .resourceGroupName("ResourceGroup") - * .networkInterfaces(ElastigroupAzureV3NetworkNetworkInterfaceArgs.builder() - * .subnetName("default") - * .assignPublicIp(false) - * .isPrimary(true) - * .additionalIpConfigs(ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArgs.builder() - * .name("SecondaryIPConfig") - * .privateIPVersion("IPv4") - * .build()) - * .applicationSecurityGroups(ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArgs.builder() - * .name("ApplicationSecurityGroupName") - * .resourceGroupName("ResourceGroup") - * .build()) - * .build()) - * .build()) - * .login(ElastigroupAzureV3LoginArgs.builder() - * .userName("admin") - * .sshPublicKey("33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==") - * .build()) - * .build()); - * - * } - * } - * ``` - * <!--End PulumiCodeChooser --> - * - * ## Strategy - * - * * `spot_percentage` - (Optional) Percentage of Spot-VMs to maintain. Required if `on_demand_count` is not specified. - * * `on_demand_count` - (Optional) Number of On-Demand VMs to maintain. Required if `spot_percentage` is not specified. - * * `fallback_to_on_demand` - - * * `draining_timeout` - (Optional, Default `120`) Time (seconds) to allow the instance to be drained from incoming TCP connections and detached from MLB before terminating it during a scale-down operation. - * - * <a id="image"></a> - * - */ -@ResourceType(type="spotinst:azure/elastigroup:Elastigroup") -public class Elastigroup extends com.pulumi.resources.CustomResource { - /** - * Custom init script file or text in Base64 encoded format. - * - */ - @Export(name="customData", refs={String.class}, tree="[0]") - private Output customData; - - /** - * @return Custom init script file or text in Base64 encoded format. - * - */ - public Output> customData() { - return Codegen.optional(this.customData); - } - /** - * The desired number of instances the group should have at any time. - * - */ - @Export(name="desiredCapacity", refs={Integer.class}, tree="[0]") - private Output desiredCapacity; - - /** - * @return The desired number of instances the group should have at any time. - * - */ - public Output> desiredCapacity() { - return Codegen.optional(this.desiredCapacity); - } - @Export(name="healthCheck", refs={ElastigroupHealthCheck.class}, tree="[0]") - private Output healthCheck; - - public Output> healthCheck() { - return Codegen.optional(this.healthCheck); - } - @Export(name="images", refs={List.class,ElastigroupImage.class}, tree="[0,1]") - private Output> images; - - public Output>> images() { - return Codegen.optional(this.images); - } - @Export(name="integrationKubernetes", refs={ElastigroupIntegrationKubernetes.class}, tree="[0]") - private Output integrationKubernetes; - - public Output> integrationKubernetes() { - return Codegen.optional(this.integrationKubernetes); - } - @Export(name="integrationMultaiRuntime", refs={ElastigroupIntegrationMultaiRuntime.class}, tree="[0]") - private Output integrationMultaiRuntime; - - public Output> integrationMultaiRuntime() { - return Codegen.optional(this.integrationMultaiRuntime); - } - @Export(name="loadBalancers", refs={List.class,ElastigroupLoadBalancer.class}, tree="[0,1]") - private Output> loadBalancers; - - public Output>> loadBalancers() { - return Codegen.optional(this.loadBalancers); - } - @Export(name="login", refs={ElastigroupLogin.class}, tree="[0]") - private Output login; - - public Output> login() { - return Codegen.optional(this.login); - } - @Export(name="lowPrioritySizes", refs={List.class,String.class}, tree="[0,1]") - private Output> lowPrioritySizes; - - public Output> lowPrioritySizes() { - return this.lowPrioritySizes; - } - @Export(name="managedServiceIdentities", refs={List.class,ElastigroupManagedServiceIdentity.class}, tree="[0,1]") - private Output> managedServiceIdentities; - - public Output>> managedServiceIdentities() { - return Codegen.optional(this.managedServiceIdentities); - } - /** - * The maximum number of instances the group should have at any time. - * - */ - @Export(name="maxSize", refs={Integer.class}, tree="[0]") - private Output maxSize; - - /** - * @return The maximum number of instances the group should have at any time. - * - */ - public Output maxSize() { - return this.maxSize; - } - /** - * The minimum number of instances the group should have at any time. - * - */ - @Export(name="minSize", refs={Integer.class}, tree="[0]") - private Output minSize; - - /** - * @return The minimum number of instances the group should have at any time. - * - */ - public Output minSize() { - return this.minSize; - } - /** - * The group name. - * - */ - @Export(name="name", refs={String.class}, tree="[0]") - private Output name; - - /** - * @return The group name. - * - */ - public Output name() { - return this.name; - } - @Export(name="network", refs={ElastigroupNetwork.class}, tree="[0]") - private Output network; - - public Output network() { - return this.network; - } - /** - * Available On-Demand sizes - * - */ - @Export(name="odSizes", refs={List.class,String.class}, tree="[0,1]") - private Output> odSizes; - - /** - * @return Available On-Demand sizes - * - */ - public Output> odSizes() { - return this.odSizes; - } - @Export(name="product", refs={String.class}, tree="[0]") - private Output product; - - public Output product() { - return this.product; - } - /** - * The region your Azure group will be created in. - * - */ - @Export(name="region", refs={String.class}, tree="[0]") - private Output region; - - /** - * @return The region your Azure group will be created in. - * - */ - public Output region() { - return this.region; - } - /** - * Name of the Resource Group for Elastigroup. - * - */ - @Export(name="resourceGroupName", refs={String.class}, tree="[0]") - private Output resourceGroupName; - - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - public Output resourceGroupName() { - return this.resourceGroupName; - } - @Export(name="scalingDownPolicies", refs={List.class,ElastigroupScalingDownPolicy.class}, tree="[0,1]") - private Output> scalingDownPolicies; - - public Output>> scalingDownPolicies() { - return Codegen.optional(this.scalingDownPolicies); - } - @Export(name="scalingUpPolicies", refs={List.class,ElastigroupScalingUpPolicy.class}, tree="[0,1]") - private Output> scalingUpPolicies; - - public Output>> scalingUpPolicies() { - return Codegen.optional(this.scalingUpPolicies); - } - @Export(name="scheduledTasks", refs={List.class,ElastigroupScheduledTask.class}, tree="[0,1]") - private Output> scheduledTasks; - - public Output>> scheduledTasks() { - return Codegen.optional(this.scheduledTasks); - } - @Export(name="shutdownScript", refs={String.class}, tree="[0]") - private Output shutdownScript; - - public Output> shutdownScript() { - return Codegen.optional(this.shutdownScript); - } - @Export(name="strategy", refs={ElastigroupStrategy.class}, tree="[0]") - private Output strategy; - - public Output strategy() { - return this.strategy; - } - @Export(name="updatePolicy", refs={ElastigroupUpdatePolicy.class}, tree="[0]") - private Output updatePolicy; - - public Output> updatePolicy() { - return Codegen.optional(this.updatePolicy); - } - @Export(name="userData", refs={String.class}, tree="[0]") - private Output userData; - - public Output> userData() { - return Codegen.optional(this.userData); - } - - /** - * - * @param name The _unique_ name of the resulting resource. - */ - public Elastigroup(String name) { - this(name, ElastigroupArgs.Empty); - } - /** - * - * @param name The _unique_ name of the resulting resource. - * @param args The arguments to use to populate this resource's properties. - */ - public Elastigroup(String name, ElastigroupArgs args) { - this(name, args, null); - } - /** - * - * @param name The _unique_ name of the resulting resource. - * @param args The arguments to use to populate this resource's properties. - * @param options A bag of options that control this resource's behavior. - */ - public Elastigroup(String name, ElastigroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("spotinst:azure/elastigroup:Elastigroup", name, args == null ? ElastigroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); - } - - private Elastigroup(String name, Output id, @Nullable ElastigroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("spotinst:azure/elastigroup:Elastigroup", name, state, makeResourceOptions(options, id)); - } - - private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { - var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() - .version(Utilities.getVersion()) - .build(); - return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); - } - - /** - * Get an existing Host resource's state with the given name, ID, and optional extra - * properties used to qualify the lookup. - * - * @param name The _unique_ name of the resulting resource. - * @param id The _unique_ provider ID of the resource to lookup. - * @param state - * @param options Optional settings to control the behavior of the CustomResource. - */ - public static Elastigroup get(String name, Output id, @Nullable ElastigroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { - return new Elastigroup(name, id, state, options); - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/ElastigroupArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/ElastigroupArgs.java deleted file mode 100644 index 44c43c73..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/ElastigroupArgs.java +++ /dev/null @@ -1,706 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import com.pulumi.spotinst.azure.inputs.ElastigroupHealthCheckArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupImageArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupIntegrationKubernetesArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupIntegrationMultaiRuntimeArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupLoadBalancerArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupLoginArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupManagedServiceIdentityArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupNetworkArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupScalingDownPolicyArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupScalingUpPolicyArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupScheduledTaskArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupStrategyArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupUpdatePolicyArgs; -import java.lang.Integer; -import java.lang.String; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupArgs Empty = new ElastigroupArgs(); - - /** - * Custom init script file or text in Base64 encoded format. - * - */ - @Import(name="customData") - private @Nullable Output customData; - - /** - * @return Custom init script file or text in Base64 encoded format. - * - */ - public Optional> customData() { - return Optional.ofNullable(this.customData); - } - - /** - * The desired number of instances the group should have at any time. - * - */ - @Import(name="desiredCapacity") - private @Nullable Output desiredCapacity; - - /** - * @return The desired number of instances the group should have at any time. - * - */ - public Optional> desiredCapacity() { - return Optional.ofNullable(this.desiredCapacity); - } - - @Import(name="healthCheck") - private @Nullable Output healthCheck; - - public Optional> healthCheck() { - return Optional.ofNullable(this.healthCheck); - } - - @Import(name="images") - private @Nullable Output> images; - - public Optional>> images() { - return Optional.ofNullable(this.images); - } - - @Import(name="integrationKubernetes") - private @Nullable Output integrationKubernetes; - - public Optional> integrationKubernetes() { - return Optional.ofNullable(this.integrationKubernetes); - } - - @Import(name="integrationMultaiRuntime") - private @Nullable Output integrationMultaiRuntime; - - public Optional> integrationMultaiRuntime() { - return Optional.ofNullable(this.integrationMultaiRuntime); - } - - @Import(name="loadBalancers") - private @Nullable Output> loadBalancers; - - public Optional>> loadBalancers() { - return Optional.ofNullable(this.loadBalancers); - } - - @Import(name="login") - private @Nullable Output login; - - public Optional> login() { - return Optional.ofNullable(this.login); - } - - @Import(name="lowPrioritySizes", required=true) - private Output> lowPrioritySizes; - - public Output> lowPrioritySizes() { - return this.lowPrioritySizes; - } - - @Import(name="managedServiceIdentities") - private @Nullable Output> managedServiceIdentities; - - public Optional>> managedServiceIdentities() { - return Optional.ofNullable(this.managedServiceIdentities); - } - - /** - * The maximum number of instances the group should have at any time. - * - */ - @Import(name="maxSize") - private @Nullable Output maxSize; - - /** - * @return The maximum number of instances the group should have at any time. - * - */ - public Optional> maxSize() { - return Optional.ofNullable(this.maxSize); - } - - /** - * The minimum number of instances the group should have at any time. - * - */ - @Import(name="minSize") - private @Nullable Output minSize; - - /** - * @return The minimum number of instances the group should have at any time. - * - */ - public Optional> minSize() { - return Optional.ofNullable(this.minSize); - } - - /** - * The group name. - * - */ - @Import(name="name") - private @Nullable Output name; - - /** - * @return The group name. - * - */ - public Optional> name() { - return Optional.ofNullable(this.name); - } - - @Import(name="network", required=true) - private Output network; - - public Output network() { - return this.network; - } - - /** - * Available On-Demand sizes - * - */ - @Import(name="odSizes", required=true) - private Output> odSizes; - - /** - * @return Available On-Demand sizes - * - */ - public Output> odSizes() { - return this.odSizes; - } - - @Import(name="product", required=true) - private Output product; - - public Output product() { - return this.product; - } - - /** - * The region your Azure group will be created in. - * - */ - @Import(name="region", required=true) - private Output region; - - /** - * @return The region your Azure group will be created in. - * - */ - public Output region() { - return this.region; - } - - /** - * Name of the Resource Group for Elastigroup. - * - */ - @Import(name="resourceGroupName", required=true) - private Output resourceGroupName; - - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - public Output resourceGroupName() { - return this.resourceGroupName; - } - - @Import(name="scalingDownPolicies") - private @Nullable Output> scalingDownPolicies; - - public Optional>> scalingDownPolicies() { - return Optional.ofNullable(this.scalingDownPolicies); - } - - @Import(name="scalingUpPolicies") - private @Nullable Output> scalingUpPolicies; - - public Optional>> scalingUpPolicies() { - return Optional.ofNullable(this.scalingUpPolicies); - } - - @Import(name="scheduledTasks") - private @Nullable Output> scheduledTasks; - - public Optional>> scheduledTasks() { - return Optional.ofNullable(this.scheduledTasks); - } - - @Import(name="shutdownScript") - private @Nullable Output shutdownScript; - - public Optional> shutdownScript() { - return Optional.ofNullable(this.shutdownScript); - } - - @Import(name="strategy", required=true) - private Output strategy; - - public Output strategy() { - return this.strategy; - } - - @Import(name="updatePolicy") - private @Nullable Output updatePolicy; - - public Optional> updatePolicy() { - return Optional.ofNullable(this.updatePolicy); - } - - @Import(name="userData") - private @Nullable Output userData; - - public Optional> userData() { - return Optional.ofNullable(this.userData); - } - - private ElastigroupArgs() {} - - private ElastigroupArgs(ElastigroupArgs $) { - this.customData = $.customData; - this.desiredCapacity = $.desiredCapacity; - this.healthCheck = $.healthCheck; - this.images = $.images; - this.integrationKubernetes = $.integrationKubernetes; - this.integrationMultaiRuntime = $.integrationMultaiRuntime; - this.loadBalancers = $.loadBalancers; - this.login = $.login; - this.lowPrioritySizes = $.lowPrioritySizes; - this.managedServiceIdentities = $.managedServiceIdentities; - this.maxSize = $.maxSize; - this.minSize = $.minSize; - this.name = $.name; - this.network = $.network; - this.odSizes = $.odSizes; - this.product = $.product; - this.region = $.region; - this.resourceGroupName = $.resourceGroupName; - this.scalingDownPolicies = $.scalingDownPolicies; - this.scalingUpPolicies = $.scalingUpPolicies; - this.scheduledTasks = $.scheduledTasks; - this.shutdownScript = $.shutdownScript; - this.strategy = $.strategy; - this.updatePolicy = $.updatePolicy; - this.userData = $.userData; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupArgs $; - - public Builder() { - $ = new ElastigroupArgs(); - } - - public Builder(ElastigroupArgs defaults) { - $ = new ElastigroupArgs(Objects.requireNonNull(defaults)); - } - - /** - * @param customData Custom init script file or text in Base64 encoded format. - * - * @return builder - * - */ - public Builder customData(@Nullable Output customData) { - $.customData = customData; - return this; - } - - /** - * @param customData Custom init script file or text in Base64 encoded format. - * - * @return builder - * - */ - public Builder customData(String customData) { - return customData(Output.of(customData)); - } - - /** - * @param desiredCapacity The desired number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder desiredCapacity(@Nullable Output desiredCapacity) { - $.desiredCapacity = desiredCapacity; - return this; - } - - /** - * @param desiredCapacity The desired number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder desiredCapacity(Integer desiredCapacity) { - return desiredCapacity(Output.of(desiredCapacity)); - } - - public Builder healthCheck(@Nullable Output healthCheck) { - $.healthCheck = healthCheck; - return this; - } - - public Builder healthCheck(ElastigroupHealthCheckArgs healthCheck) { - return healthCheck(Output.of(healthCheck)); - } - - public Builder images(@Nullable Output> images) { - $.images = images; - return this; - } - - public Builder images(List images) { - return images(Output.of(images)); - } - - public Builder images(ElastigroupImageArgs... images) { - return images(List.of(images)); - } - - public Builder integrationKubernetes(@Nullable Output integrationKubernetes) { - $.integrationKubernetes = integrationKubernetes; - return this; - } - - public Builder integrationKubernetes(ElastigroupIntegrationKubernetesArgs integrationKubernetes) { - return integrationKubernetes(Output.of(integrationKubernetes)); - } - - public Builder integrationMultaiRuntime(@Nullable Output integrationMultaiRuntime) { - $.integrationMultaiRuntime = integrationMultaiRuntime; - return this; - } - - public Builder integrationMultaiRuntime(ElastigroupIntegrationMultaiRuntimeArgs integrationMultaiRuntime) { - return integrationMultaiRuntime(Output.of(integrationMultaiRuntime)); - } - - public Builder loadBalancers(@Nullable Output> loadBalancers) { - $.loadBalancers = loadBalancers; - return this; - } - - public Builder loadBalancers(List loadBalancers) { - return loadBalancers(Output.of(loadBalancers)); - } - - public Builder loadBalancers(ElastigroupLoadBalancerArgs... loadBalancers) { - return loadBalancers(List.of(loadBalancers)); - } - - public Builder login(@Nullable Output login) { - $.login = login; - return this; - } - - public Builder login(ElastigroupLoginArgs login) { - return login(Output.of(login)); - } - - public Builder lowPrioritySizes(Output> lowPrioritySizes) { - $.lowPrioritySizes = lowPrioritySizes; - return this; - } - - public Builder lowPrioritySizes(List lowPrioritySizes) { - return lowPrioritySizes(Output.of(lowPrioritySizes)); - } - - public Builder lowPrioritySizes(String... lowPrioritySizes) { - return lowPrioritySizes(List.of(lowPrioritySizes)); - } - - public Builder managedServiceIdentities(@Nullable Output> managedServiceIdentities) { - $.managedServiceIdentities = managedServiceIdentities; - return this; - } - - public Builder managedServiceIdentities(List managedServiceIdentities) { - return managedServiceIdentities(Output.of(managedServiceIdentities)); - } - - public Builder managedServiceIdentities(ElastigroupManagedServiceIdentityArgs... managedServiceIdentities) { - return managedServiceIdentities(List.of(managedServiceIdentities)); - } - - /** - * @param maxSize The maximum number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder maxSize(@Nullable Output maxSize) { - $.maxSize = maxSize; - return this; - } - - /** - * @param maxSize The maximum number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder maxSize(Integer maxSize) { - return maxSize(Output.of(maxSize)); - } - - /** - * @param minSize The minimum number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder minSize(@Nullable Output minSize) { - $.minSize = minSize; - return this; - } - - /** - * @param minSize The minimum number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder minSize(Integer minSize) { - return minSize(Output.of(minSize)); - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(@Nullable Output name) { - $.name = name; - return this; - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(String name) { - return name(Output.of(name)); - } - - public Builder network(Output network) { - $.network = network; - return this; - } - - public Builder network(ElastigroupNetworkArgs network) { - return network(Output.of(network)); - } - - /** - * @param odSizes Available On-Demand sizes - * - * @return builder - * - */ - public Builder odSizes(Output> odSizes) { - $.odSizes = odSizes; - return this; - } - - /** - * @param odSizes Available On-Demand sizes - * - * @return builder - * - */ - public Builder odSizes(List odSizes) { - return odSizes(Output.of(odSizes)); - } - - /** - * @param odSizes Available On-Demand sizes - * - * @return builder - * - */ - public Builder odSizes(String... odSizes) { - return odSizes(List.of(odSizes)); - } - - public Builder product(Output product) { - $.product = product; - return this; - } - - public Builder product(String product) { - return product(Output.of(product)); - } - - /** - * @param region The region your Azure group will be created in. - * - * @return builder - * - */ - public Builder region(Output region) { - $.region = region; - return this; - } - - /** - * @param region The region your Azure group will be created in. - * - * @return builder - * - */ - public Builder region(String region) { - return region(Output.of(region)); - } - - /** - * @param resourceGroupName Name of the Resource Group for Elastigroup. - * - * @return builder - * - */ - public Builder resourceGroupName(Output resourceGroupName) { - $.resourceGroupName = resourceGroupName; - return this; - } - - /** - * @param resourceGroupName Name of the Resource Group for Elastigroup. - * - * @return builder - * - */ - public Builder resourceGroupName(String resourceGroupName) { - return resourceGroupName(Output.of(resourceGroupName)); - } - - public Builder scalingDownPolicies(@Nullable Output> scalingDownPolicies) { - $.scalingDownPolicies = scalingDownPolicies; - return this; - } - - public Builder scalingDownPolicies(List scalingDownPolicies) { - return scalingDownPolicies(Output.of(scalingDownPolicies)); - } - - public Builder scalingDownPolicies(ElastigroupScalingDownPolicyArgs... scalingDownPolicies) { - return scalingDownPolicies(List.of(scalingDownPolicies)); - } - - public Builder scalingUpPolicies(@Nullable Output> scalingUpPolicies) { - $.scalingUpPolicies = scalingUpPolicies; - return this; - } - - public Builder scalingUpPolicies(List scalingUpPolicies) { - return scalingUpPolicies(Output.of(scalingUpPolicies)); - } - - public Builder scalingUpPolicies(ElastigroupScalingUpPolicyArgs... scalingUpPolicies) { - return scalingUpPolicies(List.of(scalingUpPolicies)); - } - - public Builder scheduledTasks(@Nullable Output> scheduledTasks) { - $.scheduledTasks = scheduledTasks; - return this; - } - - public Builder scheduledTasks(List scheduledTasks) { - return scheduledTasks(Output.of(scheduledTasks)); - } - - public Builder scheduledTasks(ElastigroupScheduledTaskArgs... scheduledTasks) { - return scheduledTasks(List.of(scheduledTasks)); - } - - public Builder shutdownScript(@Nullable Output shutdownScript) { - $.shutdownScript = shutdownScript; - return this; - } - - public Builder shutdownScript(String shutdownScript) { - return shutdownScript(Output.of(shutdownScript)); - } - - public Builder strategy(Output strategy) { - $.strategy = strategy; - return this; - } - - public Builder strategy(ElastigroupStrategyArgs strategy) { - return strategy(Output.of(strategy)); - } - - public Builder updatePolicy(@Nullable Output updatePolicy) { - $.updatePolicy = updatePolicy; - return this; - } - - public Builder updatePolicy(ElastigroupUpdatePolicyArgs updatePolicy) { - return updatePolicy(Output.of(updatePolicy)); - } - - public Builder userData(@Nullable Output userData) { - $.userData = userData; - return this; - } - - public Builder userData(String userData) { - return userData(Output.of(userData)); - } - - public ElastigroupArgs build() { - if ($.lowPrioritySizes == null) { - throw new MissingRequiredPropertyException("ElastigroupArgs", "lowPrioritySizes"); - } - if ($.network == null) { - throw new MissingRequiredPropertyException("ElastigroupArgs", "network"); - } - if ($.odSizes == null) { - throw new MissingRequiredPropertyException("ElastigroupArgs", "odSizes"); - } - if ($.product == null) { - throw new MissingRequiredPropertyException("ElastigroupArgs", "product"); - } - if ($.region == null) { - throw new MissingRequiredPropertyException("ElastigroupArgs", "region"); - } - if ($.resourceGroupName == null) { - throw new MissingRequiredPropertyException("ElastigroupArgs", "resourceGroupName"); - } - if ($.strategy == null) { - throw new MissingRequiredPropertyException("ElastigroupArgs", "strategy"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNp.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNp.java index 0cd5370f..bde4701d 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNp.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNp.java @@ -26,6 +26,54 @@ import java.util.Optional; import javax.annotation.Nullable; +/** + * Manages a Spotinst Ocean AKS resource. + * + * ## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.spotinst.azure.OceanNp; + * import com.pulumi.spotinst.azure.OceanNpArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var example = new OceanNp("example", OceanNpArgs.builder() + * .name("test") + * .aksRegion("eastus") + * .aksClusterName("test-cluster") + * .aksInfrastructureResourceGroupName("MC_TestResourceGroup_test-cluster_eastus") + * .aksResourceGroupName("TestResourceGroup") + * .controllerClusterId("test-123124") + * .availabilityZones( + * "1", + * "2", + * "3") + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values + * + */ @ResourceType(type="spotinst:azure/oceanNp:OceanNp") public class OceanNp extends com.pulumi.resources.CustomResource { @Export(name="aksClusterName", refs={String.class}, tree="[0]") @@ -52,129 +100,297 @@ public Output aksRegion() { public Output aksResourceGroupName() { return this.aksResourceGroupName; } + /** + * The Ocean Kubernetes Autoscaler object. + * + */ @Export(name="autoscaler", refs={OceanNpAutoscaler.class}, tree="[0]") private Output autoscaler; + /** + * @return The Ocean Kubernetes Autoscaler object. + * + */ public Output> autoscaler() { return Codegen.optional(this.autoscaler); } + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ @Export(name="availabilityZones", refs={List.class,String.class}, tree="[0,1]") private Output> availabilityZones; + /** + * @return An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ public Output> availabilityZones() { return this.availabilityZones; } + /** + * Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + * + */ @Export(name="controllerClusterId", refs={String.class}, tree="[0]") private Output controllerClusterId; + /** + * @return Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + * + */ public Output controllerClusterId() { return this.controllerClusterId; } + /** + * Enable node public IP. + * + */ @Export(name="enableNodePublicIp", refs={Boolean.class}, tree="[0]") private Output enableNodePublicIp; + /** + * @return Enable node public IP. + * + */ public Output> enableNodePublicIp() { return Codegen.optional(this.enableNodePublicIp); } + /** + * If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + * + */ @Export(name="fallbackToOndemand", refs={Boolean.class}, tree="[0]") private Output fallbackToOndemand; + /** + * @return If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + * + */ public Output> fallbackToOndemand() { return Codegen.optional(this.fallbackToOndemand); } + /** + * Filters for the VM sizes that can be launched from the virtual node group. + * + */ @Export(name="filters", refs={OceanNpFilters.class}, tree="[0]") private Output filters; + /** + * @return Filters for the VM sizes that can be launched from the virtual node group. + * + */ public Output> filters() { return Codegen.optional(this.filters); } + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ @Export(name="headrooms", refs={List.class,OceanNpHeadroom.class}, tree="[0,1]") private Output> headrooms; + /** + * @return Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ public Output>> headrooms() { return Codegen.optional(this.headrooms); } + /** + * The Ocean AKS Health object. + * + */ @Export(name="health", refs={OceanNpHealth.class}, tree="[0]") private Output health; + /** + * @return The Ocean AKS Health object. + * + */ public Output> health() { return Codegen.optional(this.health); } + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ @Export(name="kubernetesVersion", refs={String.class}, tree="[0]") private Output kubernetesVersion; + /** + * @return The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ public Output> kubernetesVersion() { return Codegen.optional(this.kubernetesVersion); } + /** + * An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + * + */ @Export(name="labels", refs={Map.class,String.class,Object.class}, tree="[0,1,2]") private Output> labels; + /** + * @return An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + * + */ public Output>> labels() { return Codegen.optional(this.labels); } + /** + * Maximum node count limit. + * + */ @Export(name="maxCount", refs={Integer.class}, tree="[0]") private Output maxCount; + /** + * @return Maximum node count limit. + * + */ public Output> maxCount() { return Codegen.optional(this.maxCount); } + /** + * The maximum number of pods per node in the node pools. + * + */ @Export(name="maxPodsPerNode", refs={Integer.class}, tree="[0]") private Output maxPodsPerNode; + /** + * @return The maximum number of pods per node in the node pools. + * + */ public Output> maxPodsPerNode() { return Codegen.optional(this.maxPodsPerNode); } + /** + * Minimum node count limit. + * + */ @Export(name="minCount", refs={Integer.class}, tree="[0]") private Output minCount; + /** + * @return Minimum node count limit. + * + */ public Output> minCount() { return Codegen.optional(this.minCount); } + /** + * Add a name for the Ocean cluster. + * + */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; + /** + * @return Add a name for the Ocean cluster. + * + */ public Output name() { return this.name; } + /** + * The size of the OS disk in GB. + * + */ @Export(name="osDiskSizeGb", refs={Integer.class}, tree="[0]") private Output osDiskSizeGb; + /** + * @return The size of the OS disk in GB. + * + */ public Output> osDiskSizeGb() { return Codegen.optional(this.osDiskSizeGb); } + /** + * The type of the OS disk. + * + */ @Export(name="osDiskType", refs={String.class}, tree="[0]") private Output osDiskType; + /** + * @return The type of the OS disk. + * + */ public Output> osDiskType() { return Codegen.optional(this.osDiskType); } + /** + * The OS SKU of the OS type. Must correlate with the os type. + * + */ @Export(name="osSku", refs={String.class}, tree="[0]") private Output osSku; + /** + * @return The OS SKU of the OS type. Must correlate with the os type. + * + */ public Output> osSku() { return Codegen.optional(this.osSku); } + /** + * The OS type of the OS disk. Can't be modified once set. + * + */ @Export(name="osType", refs={String.class}, tree="[0]") private Output osType; + /** + * @return The OS type of the OS disk. Can't be modified once set. + * + */ public Output> osType() { return Codegen.optional(this.osType); } + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ @Export(name="podSubnetIds", refs={List.class,String.class}, tree="[0,1]") private Output> podSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ public Output>> podSubnetIds() { return Codegen.optional(this.podSubnetIds); } + /** + * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + * + */ @Export(name="scheduling", refs={OceanNpScheduling.class}, tree="[0]") private Output scheduling; + /** + * @return An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + * + */ public Output> scheduling() { return Codegen.optional(this.scheduling); } + /** + * Percentage of spot VMs to maintain. + * + */ @Export(name="spotPercentage", refs={Integer.class}, tree="[0]") private Output spotPercentage; + /** + * @return Percentage of spot VMs to maintain. + * + */ public Output> spotPercentage() { return Codegen.optional(this.spotPercentage); } @@ -184,9 +400,17 @@ public Output> spotPercentage() { public Output>> tags() { return Codegen.optional(this.tags); } + /** + * Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + */ @Export(name="taints", refs={List.class,OceanNpTaint.class}, tree="[0,1]") private Output> taints; + /** + * @return Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + */ public Output>> taints() { return Codegen.optional(this.taints); } @@ -196,9 +420,17 @@ public Output>> taints() { public Output> updatePolicy() { return Codegen.optional(this.updatePolicy); } + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ @Export(name="vnetSubnetIds", refs={List.class,String.class}, tree="[0,1]") private Output> vnetSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ public Output>> vnetSubnetIds() { return Codegen.optional(this.vnetSubnetIds); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpArgs.java index a621648f..b4998b24 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpArgs.java @@ -56,149 +56,317 @@ public Output aksResourceGroupName() { return this.aksResourceGroupName; } + /** + * The Ocean Kubernetes Autoscaler object. + * + */ @Import(name="autoscaler") private @Nullable Output autoscaler; + /** + * @return The Ocean Kubernetes Autoscaler object. + * + */ public Optional> autoscaler() { return Optional.ofNullable(this.autoscaler); } + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ @Import(name="availabilityZones", required=true) private Output> availabilityZones; + /** + * @return An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ public Output> availabilityZones() { return this.availabilityZones; } + /** + * Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + * + */ @Import(name="controllerClusterId", required=true) private Output controllerClusterId; + /** + * @return Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + * + */ public Output controllerClusterId() { return this.controllerClusterId; } + /** + * Enable node public IP. + * + */ @Import(name="enableNodePublicIp") private @Nullable Output enableNodePublicIp; + /** + * @return Enable node public IP. + * + */ public Optional> enableNodePublicIp() { return Optional.ofNullable(this.enableNodePublicIp); } + /** + * If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + * + */ @Import(name="fallbackToOndemand") private @Nullable Output fallbackToOndemand; + /** + * @return If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + * + */ public Optional> fallbackToOndemand() { return Optional.ofNullable(this.fallbackToOndemand); } + /** + * Filters for the VM sizes that can be launched from the virtual node group. + * + */ @Import(name="filters") private @Nullable Output filters; + /** + * @return Filters for the VM sizes that can be launched from the virtual node group. + * + */ public Optional> filters() { return Optional.ofNullable(this.filters); } + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ @Import(name="headrooms") private @Nullable Output> headrooms; + /** + * @return Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ public Optional>> headrooms() { return Optional.ofNullable(this.headrooms); } + /** + * The Ocean AKS Health object. + * + */ @Import(name="health") private @Nullable Output health; + /** + * @return The Ocean AKS Health object. + * + */ public Optional> health() { return Optional.ofNullable(this.health); } + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ @Import(name="kubernetesVersion") private @Nullable Output kubernetesVersion; + /** + * @return The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ public Optional> kubernetesVersion() { return Optional.ofNullable(this.kubernetesVersion); } + /** + * An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + * + */ @Import(name="labels") private @Nullable Output> labels; + /** + * @return An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + * + */ public Optional>> labels() { return Optional.ofNullable(this.labels); } + /** + * Maximum node count limit. + * + */ @Import(name="maxCount") private @Nullable Output maxCount; + /** + * @return Maximum node count limit. + * + */ public Optional> maxCount() { return Optional.ofNullable(this.maxCount); } + /** + * The maximum number of pods per node in the node pools. + * + */ @Import(name="maxPodsPerNode") private @Nullable Output maxPodsPerNode; + /** + * @return The maximum number of pods per node in the node pools. + * + */ public Optional> maxPodsPerNode() { return Optional.ofNullable(this.maxPodsPerNode); } + /** + * Minimum node count limit. + * + */ @Import(name="minCount") private @Nullable Output minCount; + /** + * @return Minimum node count limit. + * + */ public Optional> minCount() { return Optional.ofNullable(this.minCount); } + /** + * Add a name for the Ocean cluster. + * + */ @Import(name="name") private @Nullable Output name; + /** + * @return Add a name for the Ocean cluster. + * + */ public Optional> name() { return Optional.ofNullable(this.name); } + /** + * The size of the OS disk in GB. + * + */ @Import(name="osDiskSizeGb") private @Nullable Output osDiskSizeGb; + /** + * @return The size of the OS disk in GB. + * + */ public Optional> osDiskSizeGb() { return Optional.ofNullable(this.osDiskSizeGb); } + /** + * The type of the OS disk. + * + */ @Import(name="osDiskType") private @Nullable Output osDiskType; + /** + * @return The type of the OS disk. + * + */ public Optional> osDiskType() { return Optional.ofNullable(this.osDiskType); } + /** + * The OS SKU of the OS type. Must correlate with the os type. + * + */ @Import(name="osSku") private @Nullable Output osSku; + /** + * @return The OS SKU of the OS type. Must correlate with the os type. + * + */ public Optional> osSku() { return Optional.ofNullable(this.osSku); } + /** + * The OS type of the OS disk. Can't be modified once set. + * + */ @Import(name="osType") private @Nullable Output osType; + /** + * @return The OS type of the OS disk. Can't be modified once set. + * + */ public Optional> osType() { return Optional.ofNullable(this.osType); } + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ @Import(name="podSubnetIds") private @Nullable Output> podSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ public Optional>> podSubnetIds() { return Optional.ofNullable(this.podSubnetIds); } + /** + * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + * + */ @Import(name="scheduling") private @Nullable Output scheduling; + /** + * @return An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + * + */ public Optional> scheduling() { return Optional.ofNullable(this.scheduling); } + /** + * Percentage of spot VMs to maintain. + * + */ @Import(name="spotPercentage") private @Nullable Output spotPercentage; + /** + * @return Percentage of spot VMs to maintain. + * + */ public Optional> spotPercentage() { return Optional.ofNullable(this.spotPercentage); } @@ -210,9 +378,17 @@ public Optional>> tags() { return Optional.ofNullable(this.tags); } + /** + * Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + */ @Import(name="taints") private @Nullable Output> taints; + /** + * @return Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + */ public Optional>> taints() { return Optional.ofNullable(this.taints); } @@ -224,9 +400,17 @@ public Optional> updatePolicy() { return Optional.ofNullable(this.updatePolicy); } + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ @Import(name="vnetSubnetIds") private @Nullable Output> vnetSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ public Optional>> vnetSubnetIds() { return Optional.ofNullable(this.vnetSubnetIds); } @@ -319,203 +503,473 @@ public Builder aksResourceGroupName(String aksResourceGroupName) { return aksResourceGroupName(Output.of(aksResourceGroupName)); } + /** + * @param autoscaler The Ocean Kubernetes Autoscaler object. + * + * @return builder + * + */ public Builder autoscaler(@Nullable Output autoscaler) { $.autoscaler = autoscaler; return this; } + /** + * @param autoscaler The Ocean Kubernetes Autoscaler object. + * + * @return builder + * + */ public Builder autoscaler(OceanNpAutoscalerArgs autoscaler) { return autoscaler(Output.of(autoscaler)); } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(Output> availabilityZones) { $.availabilityZones = availabilityZones; return this; } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(List availabilityZones) { return availabilityZones(Output.of(availabilityZones)); } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(String... availabilityZones) { return availabilityZones(List.of(availabilityZones)); } + /** + * @param controllerClusterId Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + * + * @return builder + * + */ public Builder controllerClusterId(Output controllerClusterId) { $.controllerClusterId = controllerClusterId; return this; } + /** + * @param controllerClusterId Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + * + * @return builder + * + */ public Builder controllerClusterId(String controllerClusterId) { return controllerClusterId(Output.of(controllerClusterId)); } + /** + * @param enableNodePublicIp Enable node public IP. + * + * @return builder + * + */ public Builder enableNodePublicIp(@Nullable Output enableNodePublicIp) { $.enableNodePublicIp = enableNodePublicIp; return this; } + /** + * @param enableNodePublicIp Enable node public IP. + * + * @return builder + * + */ public Builder enableNodePublicIp(Boolean enableNodePublicIp) { return enableNodePublicIp(Output.of(enableNodePublicIp)); } + /** + * @param fallbackToOndemand If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + * + * @return builder + * + */ public Builder fallbackToOndemand(@Nullable Output fallbackToOndemand) { $.fallbackToOndemand = fallbackToOndemand; return this; } + /** + * @param fallbackToOndemand If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + * + * @return builder + * + */ public Builder fallbackToOndemand(Boolean fallbackToOndemand) { return fallbackToOndemand(Output.of(fallbackToOndemand)); } + /** + * @param filters Filters for the VM sizes that can be launched from the virtual node group. + * + * @return builder + * + */ public Builder filters(@Nullable Output filters) { $.filters = filters; return this; } + /** + * @param filters Filters for the VM sizes that can be launched from the virtual node group. + * + * @return builder + * + */ public Builder filters(OceanNpFiltersArgs filters) { return filters(Output.of(filters)); } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(@Nullable Output> headrooms) { $.headrooms = headrooms; return this; } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(List headrooms) { return headrooms(Output.of(headrooms)); } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(OceanNpHeadroomArgs... headrooms) { return headrooms(List.of(headrooms)); } + /** + * @param health The Ocean AKS Health object. + * + * @return builder + * + */ public Builder health(@Nullable Output health) { $.health = health; return this; } + /** + * @param health The Ocean AKS Health object. + * + * @return builder + * + */ public Builder health(OceanNpHealthArgs health) { return health(Output.of(health)); } + /** + * @param kubernetesVersion The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + * @return builder + * + */ public Builder kubernetesVersion(@Nullable Output kubernetesVersion) { $.kubernetesVersion = kubernetesVersion; return this; } + /** + * @param kubernetesVersion The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + * @return builder + * + */ public Builder kubernetesVersion(String kubernetesVersion) { return kubernetesVersion(Output.of(kubernetesVersion)); } + /** + * @param labels An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + * + * @return builder + * + */ public Builder labels(@Nullable Output> labels) { $.labels = labels; return this; } + /** + * @param labels An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + * + * @return builder + * + */ public Builder labels(Map labels) { return labels(Output.of(labels)); } + /** + * @param maxCount Maximum node count limit. + * + * @return builder + * + */ public Builder maxCount(@Nullable Output maxCount) { $.maxCount = maxCount; return this; } + /** + * @param maxCount Maximum node count limit. + * + * @return builder + * + */ public Builder maxCount(Integer maxCount) { return maxCount(Output.of(maxCount)); } + /** + * @param maxPodsPerNode The maximum number of pods per node in the node pools. + * + * @return builder + * + */ public Builder maxPodsPerNode(@Nullable Output maxPodsPerNode) { $.maxPodsPerNode = maxPodsPerNode; return this; } + /** + * @param maxPodsPerNode The maximum number of pods per node in the node pools. + * + * @return builder + * + */ public Builder maxPodsPerNode(Integer maxPodsPerNode) { return maxPodsPerNode(Output.of(maxPodsPerNode)); } + /** + * @param minCount Minimum node count limit. + * + * @return builder + * + */ public Builder minCount(@Nullable Output minCount) { $.minCount = minCount; return this; } + /** + * @param minCount Minimum node count limit. + * + * @return builder + * + */ public Builder minCount(Integer minCount) { return minCount(Output.of(minCount)); } + /** + * @param name Add a name for the Ocean cluster. + * + * @return builder + * + */ public Builder name(@Nullable Output name) { $.name = name; return this; } + /** + * @param name Add a name for the Ocean cluster. + * + * @return builder + * + */ public Builder name(String name) { return name(Output.of(name)); } + /** + * @param osDiskSizeGb The size of the OS disk in GB. + * + * @return builder + * + */ public Builder osDiskSizeGb(@Nullable Output osDiskSizeGb) { $.osDiskSizeGb = osDiskSizeGb; return this; } + /** + * @param osDiskSizeGb The size of the OS disk in GB. + * + * @return builder + * + */ public Builder osDiskSizeGb(Integer osDiskSizeGb) { return osDiskSizeGb(Output.of(osDiskSizeGb)); } + /** + * @param osDiskType The type of the OS disk. + * + * @return builder + * + */ public Builder osDiskType(@Nullable Output osDiskType) { $.osDiskType = osDiskType; return this; } + /** + * @param osDiskType The type of the OS disk. + * + * @return builder + * + */ public Builder osDiskType(String osDiskType) { return osDiskType(Output.of(osDiskType)); } + /** + * @param osSku The OS SKU of the OS type. Must correlate with the os type. + * + * @return builder + * + */ public Builder osSku(@Nullable Output osSku) { $.osSku = osSku; return this; } + /** + * @param osSku The OS SKU of the OS type. Must correlate with the os type. + * + * @return builder + * + */ public Builder osSku(String osSku) { return osSku(Output.of(osSku)); } + /** + * @param osType The OS type of the OS disk. Can't be modified once set. + * + * @return builder + * + */ public Builder osType(@Nullable Output osType) { $.osType = osType; return this; } + /** + * @param osType The OS type of the OS disk. Can't be modified once set. + * + * @return builder + * + */ public Builder osType(String osType) { return osType(Output.of(osType)); } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(@Nullable Output> podSubnetIds) { $.podSubnetIds = podSubnetIds; return this; } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(List podSubnetIds) { return podSubnetIds(Output.of(podSubnetIds)); } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(String... podSubnetIds) { return podSubnetIds(List.of(podSubnetIds)); } + /** + * @param scheduling An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + * + * @return builder + * + */ public Builder scheduling(@Nullable Output scheduling) { $.scheduling = scheduling; return this; } + /** + * @param scheduling An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + * + * @return builder + * + */ public Builder scheduling(OceanNpSchedulingArgs scheduling) { return scheduling(Output.of(scheduling)); } + /** + * @param spotPercentage Percentage of spot VMs to maintain. + * + * @return builder + * + */ public Builder spotPercentage(@Nullable Output spotPercentage) { $.spotPercentage = spotPercentage; return this; } + /** + * @param spotPercentage Percentage of spot VMs to maintain. + * + * @return builder + * + */ public Builder spotPercentage(Integer spotPercentage) { return spotPercentage(Output.of(spotPercentage)); } @@ -529,15 +983,33 @@ public Builder tags(Map tags) { return tags(Output.of(tags)); } + /** + * @param taints Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + * @return builder + * + */ public Builder taints(@Nullable Output> taints) { $.taints = taints; return this; } + /** + * @param taints Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + * @return builder + * + */ public Builder taints(List taints) { return taints(Output.of(taints)); } + /** + * @param taints Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + * @return builder + * + */ public Builder taints(OceanNpTaintArgs... taints) { return taints(List.of(taints)); } @@ -551,15 +1023,33 @@ public Builder updatePolicy(OceanNpUpdatePolicyArgs updatePolicy) { return updatePolicy(Output.of(updatePolicy)); } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(@Nullable Output> vnetSubnetIds) { $.vnetSubnetIds = vnetSubnetIds; return this; } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(List vnetSubnetIds) { return vnetSubnetIds(Output.of(vnetSubnetIds)); } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(String... vnetSubnetIds) { return vnetSubnetIds(List.of(vnetSubnetIds)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroup.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroup.java index 5e858acd..86805760 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroup.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroup.java @@ -23,113 +23,363 @@ import java.util.Optional; import javax.annotation.Nullable; +/** + * Manages a Spotinst Ocean AKS Virtual Node Groups resource. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.spotinst.azure.OceanNpVirtualNodeGroup; + * import com.pulumi.spotinst.azure.OceanNpVirtualNodeGroupArgs; + * import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupHeadroomArgs; + * import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupTaintArgs; + * import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupFiltersArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var example = new OceanNpVirtualNodeGroup("example", OceanNpVirtualNodeGroupArgs.builder() + * .name("testVng") + * .oceanId("o-134abcd") + * .headrooms(OceanNpVirtualNodeGroupHeadroomArgs.builder() + * .cpuPerUnit(1024) + * .memoryPerUnit(512) + * .gpuPerUnit(0) + * .numOfUnits(2) + * .build()) + * .availabilityZones( + * "1", + * "2", + * "3") + * .labels(Map.ofEntries( + * Map.entry("key", "env"), + * Map.entry("value", "test") + * )) + * .minCount(1) + * .maxCount(100) + * .maxPodsPerNode(30) + * .enableNodePublicIp(true) + * .osDiskSizeGb(30) + * .osDiskType("Managed") + * .osType("Linux") + * .osSku("Ubuntu") + * .kubernetesVersion("1.26") + * .podSubnetIds("/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default") + * .vnetSubnetIds("/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default") + * .spotPercentage(50) + * .fallbackToOndemand(true) + * .taints(OceanNpVirtualNodeGroupTaintArgs.builder() + * .key("taintKey") + * .value("taintValue") + * .effect("NoSchedule") + * .build()) + * .tags(Map.ofEntries( + * Map.entry("tagKey", "env"), + * Map.entry("tagValue", "staging") + * )) + * .filters(OceanNpVirtualNodeGroupFiltersArgs.builder() + * .minVcpu(2) + * .maxVcpu(16) + * .minMemoryGib(8) + * .maxMemoryGib(128) + * .architectures( + * "x86_64", + * "arm64") + * .series( + * "D v3", + * "Dds_v4", + * "Dsv2") + * .excludeSeries( + * "Av2", + * "A", + * "Bs", + * "D", + * "E") + * .acceleratedNetworking("Enabled") + * .diskPerformance("Premium") + * .minGpu(1) + * .maxGpu(2) + * .minNics(1) + * .vmTypes( + * "generalPurpose", + * "GPU") + * .minDisk(1) + * .gpuTypes("nvidia-tesla-t4") + * .build()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ @ResourceType(type="spotinst:azure/oceanNpVirtualNodeGroup:OceanNpVirtualNodeGroup") public class OceanNpVirtualNodeGroup extends com.pulumi.resources.CustomResource { + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ @Export(name="availabilityZones", refs={List.class,String.class}, tree="[0,1]") private Output> availabilityZones; + /** + * @return An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ public Output>> availabilityZones() { return Codegen.optional(this.availabilityZones); } + /** + * Enable node public IP. + * + */ @Export(name="enableNodePublicIp", refs={Boolean.class}, tree="[0]") private Output enableNodePublicIp; + /** + * @return Enable node public IP. + * + */ public Output> enableNodePublicIp() { return Codegen.optional(this.enableNodePublicIp); } + /** + * If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + * + */ @Export(name="fallbackToOndemand", refs={Boolean.class}, tree="[0]") private Output fallbackToOndemand; + /** + * @return If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + * + */ public Output> fallbackToOndemand() { return Codegen.optional(this.fallbackToOndemand); } + /** + * Filters for the VM sizes that can be launched from the virtual node group. + * + */ @Export(name="filters", refs={OceanNpVirtualNodeGroupFilters.class}, tree="[0]") private Output filters; + /** + * @return Filters for the VM sizes that can be launched from the virtual node group. + * + */ public Output> filters() { return Codegen.optional(this.filters); } + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ @Export(name="headrooms", refs={List.class,OceanNpVirtualNodeGroupHeadroom.class}, tree="[0,1]") private Output> headrooms; + /** + * @return Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ public Output>> headrooms() { return Codegen.optional(this.headrooms); } + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ @Export(name="kubernetesVersion", refs={String.class}, tree="[0]") private Output kubernetesVersion; + /** + * @return The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ public Output> kubernetesVersion() { return Codegen.optional(this.kubernetesVersion); } + /** + * An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + * + */ @Export(name="labels", refs={Map.class,String.class,Object.class}, tree="[0,1,2]") private Output> labels; + /** + * @return An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + * + */ public Output>> labels() { return Codegen.optional(this.labels); } + /** + * Maximum node count limit. + * + */ @Export(name="maxCount", refs={Integer.class}, tree="[0]") private Output maxCount; + /** + * @return Maximum node count limit. + * + */ public Output> maxCount() { return Codegen.optional(this.maxCount); } + /** + * The maximum number of pods per node in the node pools. + * + */ @Export(name="maxPodsPerNode", refs={Integer.class}, tree="[0]") private Output maxPodsPerNode; + /** + * @return The maximum number of pods per node in the node pools. + * + */ public Output> maxPodsPerNode() { return Codegen.optional(this.maxPodsPerNode); } + /** + * Minimum node count limit. + * + */ @Export(name="minCount", refs={Integer.class}, tree="[0]") private Output minCount; + /** + * @return Minimum node count limit. + * + */ public Output> minCount() { return Codegen.optional(this.minCount); } + /** + * Enter a name for the virtual node group. + * + */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; + /** + * @return Enter a name for the virtual node group. + * + */ public Output name() { return this.name; } + /** + * The Ocean cluster identifier. Required for Launch Spec creation. + * + */ @Export(name="oceanId", refs={String.class}, tree="[0]") private Output oceanId; + /** + * @return The Ocean cluster identifier. Required for Launch Spec creation. + * + */ public Output oceanId() { return this.oceanId; } + /** + * The size of the OS disk in GB. + * + */ @Export(name="osDiskSizeGb", refs={Integer.class}, tree="[0]") private Output osDiskSizeGb; + /** + * @return The size of the OS disk in GB. + * + */ public Output> osDiskSizeGb() { return Codegen.optional(this.osDiskSizeGb); } + /** + * The type of the OS disk. + * + */ @Export(name="osDiskType", refs={String.class}, tree="[0]") private Output osDiskType; + /** + * @return The type of the OS disk. + * + */ public Output> osDiskType() { return Codegen.optional(this.osDiskType); } + /** + * The OS SKU of the OS type. Must correlate with the os type. + * + */ @Export(name="osSku", refs={String.class}, tree="[0]") private Output osSku; + /** + * @return The OS SKU of the OS type. Must correlate with the os type. + * + */ public Output> osSku() { return Codegen.optional(this.osSku); } + /** + * The OS type of the OS disk. Can't be modified once set. + * + */ @Export(name="osType", refs={String.class}, tree="[0]") private Output osType; + /** + * @return The OS type of the OS disk. Can't be modified once set. + * + */ public Output> osType() { return Codegen.optional(this.osType); } + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ @Export(name="podSubnetIds", refs={List.class,String.class}, tree="[0,1]") private Output> podSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ public Output>> podSubnetIds() { return Codegen.optional(this.podSubnetIds); } + /** + * Percentage of spot VMs to maintain. + * + */ @Export(name="spotPercentage", refs={Integer.class}, tree="[0]") private Output spotPercentage; + /** + * @return Percentage of spot VMs to maintain. + * + */ public Output> spotPercentage() { return Codegen.optional(this.spotPercentage); } @@ -139,9 +389,17 @@ public Output> spotPercentage() { public Output>> tags() { return Codegen.optional(this.tags); } + /** + * Add taints to a virtual node group. + * + */ @Export(name="taints", refs={List.class,OceanNpVirtualNodeGroupTaint.class}, tree="[0,1]") private Output> taints; + /** + * @return Add taints to a virtual node group. + * + */ public Output>> taints() { return Codegen.optional(this.taints); } @@ -151,9 +409,17 @@ public Output>> taints() { public Output> updatePolicy() { return Codegen.optional(this.updatePolicy); } + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ @Export(name="vnetSubnetIds", refs={List.class,String.class}, tree="[0,1]") private Output> vnetSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ public Output>> vnetSubnetIds() { return Codegen.optional(this.vnetSubnetIds); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroupArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroupArgs.java index 1b5f832e..224139ae 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroupArgs.java @@ -25,128 +25,272 @@ public final class OceanNpVirtualNodeGroupArgs extends com.pulumi.resources.Reso public static final OceanNpVirtualNodeGroupArgs Empty = new OceanNpVirtualNodeGroupArgs(); + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ @Import(name="availabilityZones") private @Nullable Output> availabilityZones; + /** + * @return An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ public Optional>> availabilityZones() { return Optional.ofNullable(this.availabilityZones); } + /** + * Enable node public IP. + * + */ @Import(name="enableNodePublicIp") private @Nullable Output enableNodePublicIp; + /** + * @return Enable node public IP. + * + */ public Optional> enableNodePublicIp() { return Optional.ofNullable(this.enableNodePublicIp); } + /** + * If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + * + */ @Import(name="fallbackToOndemand") private @Nullable Output fallbackToOndemand; + /** + * @return If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + * + */ public Optional> fallbackToOndemand() { return Optional.ofNullable(this.fallbackToOndemand); } + /** + * Filters for the VM sizes that can be launched from the virtual node group. + * + */ @Import(name="filters") private @Nullable Output filters; + /** + * @return Filters for the VM sizes that can be launched from the virtual node group. + * + */ public Optional> filters() { return Optional.ofNullable(this.filters); } + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ @Import(name="headrooms") private @Nullable Output> headrooms; + /** + * @return Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ public Optional>> headrooms() { return Optional.ofNullable(this.headrooms); } + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ @Import(name="kubernetesVersion") private @Nullable Output kubernetesVersion; + /** + * @return The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ public Optional> kubernetesVersion() { return Optional.ofNullable(this.kubernetesVersion); } + /** + * An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + * + */ @Import(name="labels") private @Nullable Output> labels; + /** + * @return An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + * + */ public Optional>> labels() { return Optional.ofNullable(this.labels); } + /** + * Maximum node count limit. + * + */ @Import(name="maxCount") private @Nullable Output maxCount; + /** + * @return Maximum node count limit. + * + */ public Optional> maxCount() { return Optional.ofNullable(this.maxCount); } + /** + * The maximum number of pods per node in the node pools. + * + */ @Import(name="maxPodsPerNode") private @Nullable Output maxPodsPerNode; + /** + * @return The maximum number of pods per node in the node pools. + * + */ public Optional> maxPodsPerNode() { return Optional.ofNullable(this.maxPodsPerNode); } + /** + * Minimum node count limit. + * + */ @Import(name="minCount") private @Nullable Output minCount; + /** + * @return Minimum node count limit. + * + */ public Optional> minCount() { return Optional.ofNullable(this.minCount); } + /** + * Enter a name for the virtual node group. + * + */ @Import(name="name") private @Nullable Output name; + /** + * @return Enter a name for the virtual node group. + * + */ public Optional> name() { return Optional.ofNullable(this.name); } + /** + * The Ocean cluster identifier. Required for Launch Spec creation. + * + */ @Import(name="oceanId", required=true) private Output oceanId; + /** + * @return The Ocean cluster identifier. Required for Launch Spec creation. + * + */ public Output oceanId() { return this.oceanId; } + /** + * The size of the OS disk in GB. + * + */ @Import(name="osDiskSizeGb") private @Nullable Output osDiskSizeGb; + /** + * @return The size of the OS disk in GB. + * + */ public Optional> osDiskSizeGb() { return Optional.ofNullable(this.osDiskSizeGb); } + /** + * The type of the OS disk. + * + */ @Import(name="osDiskType") private @Nullable Output osDiskType; + /** + * @return The type of the OS disk. + * + */ public Optional> osDiskType() { return Optional.ofNullable(this.osDiskType); } + /** + * The OS SKU of the OS type. Must correlate with the os type. + * + */ @Import(name="osSku") private @Nullable Output osSku; + /** + * @return The OS SKU of the OS type. Must correlate with the os type. + * + */ public Optional> osSku() { return Optional.ofNullable(this.osSku); } + /** + * The OS type of the OS disk. Can't be modified once set. + * + */ @Import(name="osType") private @Nullable Output osType; + /** + * @return The OS type of the OS disk. Can't be modified once set. + * + */ public Optional> osType() { return Optional.ofNullable(this.osType); } + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ @Import(name="podSubnetIds") private @Nullable Output> podSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ public Optional>> podSubnetIds() { return Optional.ofNullable(this.podSubnetIds); } + /** + * Percentage of spot VMs to maintain. + * + */ @Import(name="spotPercentage") private @Nullable Output spotPercentage; + /** + * @return Percentage of spot VMs to maintain. + * + */ public Optional> spotPercentage() { return Optional.ofNullable(this.spotPercentage); } @@ -158,9 +302,17 @@ public Optional>> tags() { return Optional.ofNullable(this.tags); } + /** + * Add taints to a virtual node group. + * + */ @Import(name="taints") private @Nullable Output> taints; + /** + * @return Add taints to a virtual node group. + * + */ public Optional>> taints() { return Optional.ofNullable(this.taints); } @@ -172,9 +324,17 @@ public Optional> updatePolicy() return Optional.ofNullable(this.updatePolicy); } + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ @Import(name="vnetSubnetIds") private @Nullable Output> vnetSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ public Optional>> vnetSubnetIds() { return Optional.ofNullable(this.vnetSubnetIds); } @@ -224,176 +384,410 @@ public Builder(OceanNpVirtualNodeGroupArgs defaults) { $ = new OceanNpVirtualNodeGroupArgs(Objects.requireNonNull(defaults)); } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(@Nullable Output> availabilityZones) { $.availabilityZones = availabilityZones; return this; } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(List availabilityZones) { return availabilityZones(Output.of(availabilityZones)); } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(String... availabilityZones) { return availabilityZones(List.of(availabilityZones)); } + /** + * @param enableNodePublicIp Enable node public IP. + * + * @return builder + * + */ public Builder enableNodePublicIp(@Nullable Output enableNodePublicIp) { $.enableNodePublicIp = enableNodePublicIp; return this; } + /** + * @param enableNodePublicIp Enable node public IP. + * + * @return builder + * + */ public Builder enableNodePublicIp(Boolean enableNodePublicIp) { return enableNodePublicIp(Output.of(enableNodePublicIp)); } + /** + * @param fallbackToOndemand If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + * + * @return builder + * + */ public Builder fallbackToOndemand(@Nullable Output fallbackToOndemand) { $.fallbackToOndemand = fallbackToOndemand; return this; } + /** + * @param fallbackToOndemand If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + * + * @return builder + * + */ public Builder fallbackToOndemand(Boolean fallbackToOndemand) { return fallbackToOndemand(Output.of(fallbackToOndemand)); } + /** + * @param filters Filters for the VM sizes that can be launched from the virtual node group. + * + * @return builder + * + */ public Builder filters(@Nullable Output filters) { $.filters = filters; return this; } + /** + * @param filters Filters for the VM sizes that can be launched from the virtual node group. + * + * @return builder + * + */ public Builder filters(OceanNpVirtualNodeGroupFiltersArgs filters) { return filters(Output.of(filters)); } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(@Nullable Output> headrooms) { $.headrooms = headrooms; return this; } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(List headrooms) { return headrooms(Output.of(headrooms)); } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(OceanNpVirtualNodeGroupHeadroomArgs... headrooms) { return headrooms(List.of(headrooms)); } + /** + * @param kubernetesVersion The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + * @return builder + * + */ public Builder kubernetesVersion(@Nullable Output kubernetesVersion) { $.kubernetesVersion = kubernetesVersion; return this; } + /** + * @param kubernetesVersion The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + * @return builder + * + */ public Builder kubernetesVersion(String kubernetesVersion) { return kubernetesVersion(Output.of(kubernetesVersion)); } + /** + * @param labels An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + * + * @return builder + * + */ public Builder labels(@Nullable Output> labels) { $.labels = labels; return this; } + /** + * @param labels An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + * + * @return builder + * + */ public Builder labels(Map labels) { return labels(Output.of(labels)); } + /** + * @param maxCount Maximum node count limit. + * + * @return builder + * + */ public Builder maxCount(@Nullable Output maxCount) { $.maxCount = maxCount; return this; } + /** + * @param maxCount Maximum node count limit. + * + * @return builder + * + */ public Builder maxCount(Integer maxCount) { return maxCount(Output.of(maxCount)); } + /** + * @param maxPodsPerNode The maximum number of pods per node in the node pools. + * + * @return builder + * + */ public Builder maxPodsPerNode(@Nullable Output maxPodsPerNode) { $.maxPodsPerNode = maxPodsPerNode; return this; } + /** + * @param maxPodsPerNode The maximum number of pods per node in the node pools. + * + * @return builder + * + */ public Builder maxPodsPerNode(Integer maxPodsPerNode) { return maxPodsPerNode(Output.of(maxPodsPerNode)); } + /** + * @param minCount Minimum node count limit. + * + * @return builder + * + */ public Builder minCount(@Nullable Output minCount) { $.minCount = minCount; return this; } + /** + * @param minCount Minimum node count limit. + * + * @return builder + * + */ public Builder minCount(Integer minCount) { return minCount(Output.of(minCount)); } + /** + * @param name Enter a name for the virtual node group. + * + * @return builder + * + */ public Builder name(@Nullable Output name) { $.name = name; return this; } + /** + * @param name Enter a name for the virtual node group. + * + * @return builder + * + */ public Builder name(String name) { return name(Output.of(name)); } + /** + * @param oceanId The Ocean cluster identifier. Required for Launch Spec creation. + * + * @return builder + * + */ public Builder oceanId(Output oceanId) { $.oceanId = oceanId; return this; } + /** + * @param oceanId The Ocean cluster identifier. Required for Launch Spec creation. + * + * @return builder + * + */ public Builder oceanId(String oceanId) { return oceanId(Output.of(oceanId)); } + /** + * @param osDiskSizeGb The size of the OS disk in GB. + * + * @return builder + * + */ public Builder osDiskSizeGb(@Nullable Output osDiskSizeGb) { $.osDiskSizeGb = osDiskSizeGb; return this; } + /** + * @param osDiskSizeGb The size of the OS disk in GB. + * + * @return builder + * + */ public Builder osDiskSizeGb(Integer osDiskSizeGb) { return osDiskSizeGb(Output.of(osDiskSizeGb)); } + /** + * @param osDiskType The type of the OS disk. + * + * @return builder + * + */ public Builder osDiskType(@Nullable Output osDiskType) { $.osDiskType = osDiskType; return this; } + /** + * @param osDiskType The type of the OS disk. + * + * @return builder + * + */ public Builder osDiskType(String osDiskType) { return osDiskType(Output.of(osDiskType)); } + /** + * @param osSku The OS SKU of the OS type. Must correlate with the os type. + * + * @return builder + * + */ public Builder osSku(@Nullable Output osSku) { $.osSku = osSku; return this; } + /** + * @param osSku The OS SKU of the OS type. Must correlate with the os type. + * + * @return builder + * + */ public Builder osSku(String osSku) { return osSku(Output.of(osSku)); } + /** + * @param osType The OS type of the OS disk. Can't be modified once set. + * + * @return builder + * + */ public Builder osType(@Nullable Output osType) { $.osType = osType; return this; } + /** + * @param osType The OS type of the OS disk. Can't be modified once set. + * + * @return builder + * + */ public Builder osType(String osType) { return osType(Output.of(osType)); } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(@Nullable Output> podSubnetIds) { $.podSubnetIds = podSubnetIds; return this; } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(List podSubnetIds) { return podSubnetIds(Output.of(podSubnetIds)); } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(String... podSubnetIds) { return podSubnetIds(List.of(podSubnetIds)); } + /** + * @param spotPercentage Percentage of spot VMs to maintain. + * + * @return builder + * + */ public Builder spotPercentage(@Nullable Output spotPercentage) { $.spotPercentage = spotPercentage; return this; } + /** + * @param spotPercentage Percentage of spot VMs to maintain. + * + * @return builder + * + */ public Builder spotPercentage(Integer spotPercentage) { return spotPercentage(Output.of(spotPercentage)); } @@ -407,15 +801,33 @@ public Builder tags(Map tags) { return tags(Output.of(tags)); } + /** + * @param taints Add taints to a virtual node group. + * + * @return builder + * + */ public Builder taints(@Nullable Output> taints) { $.taints = taints; return this; } + /** + * @param taints Add taints to a virtual node group. + * + * @return builder + * + */ public Builder taints(List taints) { return taints(Output.of(taints)); } + /** + * @param taints Add taints to a virtual node group. + * + * @return builder + * + */ public Builder taints(OceanNpVirtualNodeGroupTaintArgs... taints) { return taints(List.of(taints)); } @@ -429,15 +841,33 @@ public Builder updatePolicy(OceanNpVirtualNodeGroupUpdatePolicyArgs updatePolicy return updatePolicy(Output.of(updatePolicy)); } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(@Nullable Output> vnetSubnetIds) { $.vnetSubnetIds = vnetSubnetIds; return this; } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(List vnetSubnetIds) { return vnetSubnetIds(Output.of(vnetSubnetIds)); } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(String... vnetSubnetIds) { return vnetSubnetIds(List.of(vnetSubnetIds)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupHealthCheckArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupHealthCheckArgs.java deleted file mode 100644 index 9b29b6da..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupHealthCheckArgs.java +++ /dev/null @@ -1,103 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Boolean; -import java.lang.Integer; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupHealthCheckArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupHealthCheckArgs Empty = new ElastigroupHealthCheckArgs(); - - @Import(name="autoHealing") - private @Nullable Output autoHealing; - - public Optional> autoHealing() { - return Optional.ofNullable(this.autoHealing); - } - - @Import(name="gracePeriod") - private @Nullable Output gracePeriod; - - public Optional> gracePeriod() { - return Optional.ofNullable(this.gracePeriod); - } - - @Import(name="healthCheckType", required=true) - private Output healthCheckType; - - public Output healthCheckType() { - return this.healthCheckType; - } - - private ElastigroupHealthCheckArgs() {} - - private ElastigroupHealthCheckArgs(ElastigroupHealthCheckArgs $) { - this.autoHealing = $.autoHealing; - this.gracePeriod = $.gracePeriod; - this.healthCheckType = $.healthCheckType; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupHealthCheckArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupHealthCheckArgs $; - - public Builder() { - $ = new ElastigroupHealthCheckArgs(); - } - - public Builder(ElastigroupHealthCheckArgs defaults) { - $ = new ElastigroupHealthCheckArgs(Objects.requireNonNull(defaults)); - } - - public Builder autoHealing(@Nullable Output autoHealing) { - $.autoHealing = autoHealing; - return this; - } - - public Builder autoHealing(Boolean autoHealing) { - return autoHealing(Output.of(autoHealing)); - } - - public Builder gracePeriod(@Nullable Output gracePeriod) { - $.gracePeriod = gracePeriod; - return this; - } - - public Builder gracePeriod(Integer gracePeriod) { - return gracePeriod(Output.of(gracePeriod)); - } - - public Builder healthCheckType(Output healthCheckType) { - $.healthCheckType = healthCheckType; - return this; - } - - public Builder healthCheckType(String healthCheckType) { - return healthCheckType(Output.of(healthCheckType)); - } - - public ElastigroupHealthCheckArgs build() { - if ($.healthCheckType == null) { - throw new MissingRequiredPropertyException("ElastigroupHealthCheckArgs", "healthCheckType"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupImageArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupImageArgs.java deleted file mode 100644 index 1b221437..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupImageArgs.java +++ /dev/null @@ -1,90 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.spotinst.azure.inputs.ElastigroupImageCustomArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupImageMarketplaceArgs; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupImageArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupImageArgs Empty = new ElastigroupImageArgs(); - - @Import(name="customs") - private @Nullable Output> customs; - - public Optional>> customs() { - return Optional.ofNullable(this.customs); - } - - @Import(name="marketplaces") - private @Nullable Output> marketplaces; - - public Optional>> marketplaces() { - return Optional.ofNullable(this.marketplaces); - } - - private ElastigroupImageArgs() {} - - private ElastigroupImageArgs(ElastigroupImageArgs $) { - this.customs = $.customs; - this.marketplaces = $.marketplaces; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupImageArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupImageArgs $; - - public Builder() { - $ = new ElastigroupImageArgs(); - } - - public Builder(ElastigroupImageArgs defaults) { - $ = new ElastigroupImageArgs(Objects.requireNonNull(defaults)); - } - - public Builder customs(@Nullable Output> customs) { - $.customs = customs; - return this; - } - - public Builder customs(List customs) { - return customs(Output.of(customs)); - } - - public Builder customs(ElastigroupImageCustomArgs... customs) { - return customs(List.of(customs)); - } - - public Builder marketplaces(@Nullable Output> marketplaces) { - $.marketplaces = marketplaces; - return this; - } - - public Builder marketplaces(List marketplaces) { - return marketplaces(Output.of(marketplaces)); - } - - public Builder marketplaces(ElastigroupImageMarketplaceArgs... marketplaces) { - return marketplaces(List.of(marketplaces)); - } - - public ElastigroupImageArgs build() { - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupImageCustomArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupImageCustomArgs.java deleted file mode 100644 index 0a73d51c..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupImageCustomArgs.java +++ /dev/null @@ -1,105 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; - - -public final class ElastigroupImageCustomArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupImageCustomArgs Empty = new ElastigroupImageCustomArgs(); - - @Import(name="imageName", required=true) - private Output imageName; - - public Output imageName() { - return this.imageName; - } - - /** - * Name of the Resource Group for Elastigroup. - * - */ - @Import(name="resourceGroupName", required=true) - private Output resourceGroupName; - - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - public Output resourceGroupName() { - return this.resourceGroupName; - } - - private ElastigroupImageCustomArgs() {} - - private ElastigroupImageCustomArgs(ElastigroupImageCustomArgs $) { - this.imageName = $.imageName; - this.resourceGroupName = $.resourceGroupName; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupImageCustomArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupImageCustomArgs $; - - public Builder() { - $ = new ElastigroupImageCustomArgs(); - } - - public Builder(ElastigroupImageCustomArgs defaults) { - $ = new ElastigroupImageCustomArgs(Objects.requireNonNull(defaults)); - } - - public Builder imageName(Output imageName) { - $.imageName = imageName; - return this; - } - - public Builder imageName(String imageName) { - return imageName(Output.of(imageName)); - } - - /** - * @param resourceGroupName Name of the Resource Group for Elastigroup. - * - * @return builder - * - */ - public Builder resourceGroupName(Output resourceGroupName) { - $.resourceGroupName = resourceGroupName; - return this; - } - - /** - * @param resourceGroupName Name of the Resource Group for Elastigroup. - * - * @return builder - * - */ - public Builder resourceGroupName(String resourceGroupName) { - return resourceGroupName(Output.of(resourceGroupName)); - } - - public ElastigroupImageCustomArgs build() { - if ($.imageName == null) { - throw new MissingRequiredPropertyException("ElastigroupImageCustomArgs", "imageName"); - } - if ($.resourceGroupName == null) { - throw new MissingRequiredPropertyException("ElastigroupImageCustomArgs", "resourceGroupName"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupImageMarketplaceArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupImageMarketplaceArgs.java deleted file mode 100644 index e7757b1c..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupImageMarketplaceArgs.java +++ /dev/null @@ -1,105 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; - - -public final class ElastigroupImageMarketplaceArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupImageMarketplaceArgs Empty = new ElastigroupImageMarketplaceArgs(); - - @Import(name="offer", required=true) - private Output offer; - - public Output offer() { - return this.offer; - } - - @Import(name="publisher", required=true) - private Output publisher; - - public Output publisher() { - return this.publisher; - } - - @Import(name="sku", required=true) - private Output sku; - - public Output sku() { - return this.sku; - } - - private ElastigroupImageMarketplaceArgs() {} - - private ElastigroupImageMarketplaceArgs(ElastigroupImageMarketplaceArgs $) { - this.offer = $.offer; - this.publisher = $.publisher; - this.sku = $.sku; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupImageMarketplaceArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupImageMarketplaceArgs $; - - public Builder() { - $ = new ElastigroupImageMarketplaceArgs(); - } - - public Builder(ElastigroupImageMarketplaceArgs defaults) { - $ = new ElastigroupImageMarketplaceArgs(Objects.requireNonNull(defaults)); - } - - public Builder offer(Output offer) { - $.offer = offer; - return this; - } - - public Builder offer(String offer) { - return offer(Output.of(offer)); - } - - public Builder publisher(Output publisher) { - $.publisher = publisher; - return this; - } - - public Builder publisher(String publisher) { - return publisher(Output.of(publisher)); - } - - public Builder sku(Output sku) { - $.sku = sku; - return this; - } - - public Builder sku(String sku) { - return sku(Output.of(sku)); - } - - public ElastigroupImageMarketplaceArgs build() { - if ($.offer == null) { - throw new MissingRequiredPropertyException("ElastigroupImageMarketplaceArgs", "offer"); - } - if ($.publisher == null) { - throw new MissingRequiredPropertyException("ElastigroupImageMarketplaceArgs", "publisher"); - } - if ($.sku == null) { - throw new MissingRequiredPropertyException("ElastigroupImageMarketplaceArgs", "sku"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupIntegrationKubernetesArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupIntegrationKubernetesArgs.java deleted file mode 100644 index b47f96e4..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupIntegrationKubernetesArgs.java +++ /dev/null @@ -1,65 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; - - -public final class ElastigroupIntegrationKubernetesArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupIntegrationKubernetesArgs Empty = new ElastigroupIntegrationKubernetesArgs(); - - @Import(name="clusterIdentifier", required=true) - private Output clusterIdentifier; - - public Output clusterIdentifier() { - return this.clusterIdentifier; - } - - private ElastigroupIntegrationKubernetesArgs() {} - - private ElastigroupIntegrationKubernetesArgs(ElastigroupIntegrationKubernetesArgs $) { - this.clusterIdentifier = $.clusterIdentifier; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupIntegrationKubernetesArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupIntegrationKubernetesArgs $; - - public Builder() { - $ = new ElastigroupIntegrationKubernetesArgs(); - } - - public Builder(ElastigroupIntegrationKubernetesArgs defaults) { - $ = new ElastigroupIntegrationKubernetesArgs(Objects.requireNonNull(defaults)); - } - - public Builder clusterIdentifier(Output clusterIdentifier) { - $.clusterIdentifier = clusterIdentifier; - return this; - } - - public Builder clusterIdentifier(String clusterIdentifier) { - return clusterIdentifier(Output.of(clusterIdentifier)); - } - - public ElastigroupIntegrationKubernetesArgs build() { - if ($.clusterIdentifier == null) { - throw new MissingRequiredPropertyException("ElastigroupIntegrationKubernetesArgs", "clusterIdentifier"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupIntegrationMultaiRuntimeArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupIntegrationMultaiRuntimeArgs.java deleted file mode 100644 index cb11100e..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupIntegrationMultaiRuntimeArgs.java +++ /dev/null @@ -1,65 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; - - -public final class ElastigroupIntegrationMultaiRuntimeArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupIntegrationMultaiRuntimeArgs Empty = new ElastigroupIntegrationMultaiRuntimeArgs(); - - @Import(name="deploymentId", required=true) - private Output deploymentId; - - public Output deploymentId() { - return this.deploymentId; - } - - private ElastigroupIntegrationMultaiRuntimeArgs() {} - - private ElastigroupIntegrationMultaiRuntimeArgs(ElastigroupIntegrationMultaiRuntimeArgs $) { - this.deploymentId = $.deploymentId; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupIntegrationMultaiRuntimeArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupIntegrationMultaiRuntimeArgs $; - - public Builder() { - $ = new ElastigroupIntegrationMultaiRuntimeArgs(); - } - - public Builder(ElastigroupIntegrationMultaiRuntimeArgs defaults) { - $ = new ElastigroupIntegrationMultaiRuntimeArgs(Objects.requireNonNull(defaults)); - } - - public Builder deploymentId(Output deploymentId) { - $.deploymentId = deploymentId; - return this; - } - - public Builder deploymentId(String deploymentId) { - return deploymentId(Output.of(deploymentId)); - } - - public ElastigroupIntegrationMultaiRuntimeArgs build() { - if ($.deploymentId == null) { - throw new MissingRequiredPropertyException("ElastigroupIntegrationMultaiRuntimeArgs", "deploymentId"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupLoadBalancerArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupLoadBalancerArgs.java deleted file mode 100644 index 025b2636..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupLoadBalancerArgs.java +++ /dev/null @@ -1,119 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Boolean; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupLoadBalancerArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupLoadBalancerArgs Empty = new ElastigroupLoadBalancerArgs(); - - @Import(name="autoWeight") - private @Nullable Output autoWeight; - - public Optional> autoWeight() { - return Optional.ofNullable(this.autoWeight); - } - - @Import(name="balancerId") - private @Nullable Output balancerId; - - public Optional> balancerId() { - return Optional.ofNullable(this.balancerId); - } - - @Import(name="targetSetId") - private @Nullable Output targetSetId; - - public Optional> targetSetId() { - return Optional.ofNullable(this.targetSetId); - } - - @Import(name="type", required=true) - private Output type; - - public Output type() { - return this.type; - } - - private ElastigroupLoadBalancerArgs() {} - - private ElastigroupLoadBalancerArgs(ElastigroupLoadBalancerArgs $) { - this.autoWeight = $.autoWeight; - this.balancerId = $.balancerId; - this.targetSetId = $.targetSetId; - this.type = $.type; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupLoadBalancerArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupLoadBalancerArgs $; - - public Builder() { - $ = new ElastigroupLoadBalancerArgs(); - } - - public Builder(ElastigroupLoadBalancerArgs defaults) { - $ = new ElastigroupLoadBalancerArgs(Objects.requireNonNull(defaults)); - } - - public Builder autoWeight(@Nullable Output autoWeight) { - $.autoWeight = autoWeight; - return this; - } - - public Builder autoWeight(Boolean autoWeight) { - return autoWeight(Output.of(autoWeight)); - } - - public Builder balancerId(@Nullable Output balancerId) { - $.balancerId = balancerId; - return this; - } - - public Builder balancerId(String balancerId) { - return balancerId(Output.of(balancerId)); - } - - public Builder targetSetId(@Nullable Output targetSetId) { - $.targetSetId = targetSetId; - return this; - } - - public Builder targetSetId(String targetSetId) { - return targetSetId(Output.of(targetSetId)); - } - - public Builder type(Output type) { - $.type = type; - return this; - } - - public Builder type(String type) { - return type(Output.of(type)); - } - - public ElastigroupLoadBalancerArgs build() { - if ($.type == null) { - throw new MissingRequiredPropertyException("ElastigroupLoadBalancerArgs", "type"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupLoginArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupLoginArgs.java deleted file mode 100644 index 914562d3..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupLoginArgs.java +++ /dev/null @@ -1,101 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupLoginArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupLoginArgs Empty = new ElastigroupLoginArgs(); - - @Import(name="password") - private @Nullable Output password; - - public Optional> password() { - return Optional.ofNullable(this.password); - } - - @Import(name="sshPublicKey") - private @Nullable Output sshPublicKey; - - public Optional> sshPublicKey() { - return Optional.ofNullable(this.sshPublicKey); - } - - @Import(name="userName", required=true) - private Output userName; - - public Output userName() { - return this.userName; - } - - private ElastigroupLoginArgs() {} - - private ElastigroupLoginArgs(ElastigroupLoginArgs $) { - this.password = $.password; - this.sshPublicKey = $.sshPublicKey; - this.userName = $.userName; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupLoginArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupLoginArgs $; - - public Builder() { - $ = new ElastigroupLoginArgs(); - } - - public Builder(ElastigroupLoginArgs defaults) { - $ = new ElastigroupLoginArgs(Objects.requireNonNull(defaults)); - } - - public Builder password(@Nullable Output password) { - $.password = password; - return this; - } - - public Builder password(String password) { - return password(Output.of(password)); - } - - public Builder sshPublicKey(@Nullable Output sshPublicKey) { - $.sshPublicKey = sshPublicKey; - return this; - } - - public Builder sshPublicKey(String sshPublicKey) { - return sshPublicKey(Output.of(sshPublicKey)); - } - - public Builder userName(Output userName) { - $.userName = userName; - return this; - } - - public Builder userName(String userName) { - return userName(Output.of(userName)); - } - - public ElastigroupLoginArgs build() { - if ($.userName == null) { - throw new MissingRequiredPropertyException("ElastigroupLoginArgs", "userName"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupManagedServiceIdentityArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupManagedServiceIdentityArgs.java deleted file mode 100644 index 6be64d85..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupManagedServiceIdentityArgs.java +++ /dev/null @@ -1,125 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; - - -public final class ElastigroupManagedServiceIdentityArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupManagedServiceIdentityArgs Empty = new ElastigroupManagedServiceIdentityArgs(); - - /** - * The group name. - * - */ - @Import(name="name", required=true) - private Output name; - - /** - * @return The group name. - * - */ - public Output name() { - return this.name; - } - - /** - * Name of the Resource Group for Elastigroup. - * - */ - @Import(name="resourceGroupName", required=true) - private Output resourceGroupName; - - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - public Output resourceGroupName() { - return this.resourceGroupName; - } - - private ElastigroupManagedServiceIdentityArgs() {} - - private ElastigroupManagedServiceIdentityArgs(ElastigroupManagedServiceIdentityArgs $) { - this.name = $.name; - this.resourceGroupName = $.resourceGroupName; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupManagedServiceIdentityArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupManagedServiceIdentityArgs $; - - public Builder() { - $ = new ElastigroupManagedServiceIdentityArgs(); - } - - public Builder(ElastigroupManagedServiceIdentityArgs defaults) { - $ = new ElastigroupManagedServiceIdentityArgs(Objects.requireNonNull(defaults)); - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(Output name) { - $.name = name; - return this; - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(String name) { - return name(Output.of(name)); - } - - /** - * @param resourceGroupName Name of the Resource Group for Elastigroup. - * - * @return builder - * - */ - public Builder resourceGroupName(Output resourceGroupName) { - $.resourceGroupName = resourceGroupName; - return this; - } - - /** - * @param resourceGroupName Name of the Resource Group for Elastigroup. - * - * @return builder - * - */ - public Builder resourceGroupName(String resourceGroupName) { - return resourceGroupName(Output.of(resourceGroupName)); - } - - public ElastigroupManagedServiceIdentityArgs build() { - if ($.name == null) { - throw new MissingRequiredPropertyException("ElastigroupManagedServiceIdentityArgs", "name"); - } - if ($.resourceGroupName == null) { - throw new MissingRequiredPropertyException("ElastigroupManagedServiceIdentityArgs", "resourceGroupName"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupNetworkAdditionalIpConfigArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupNetworkAdditionalIpConfigArgs.java deleted file mode 100644 index 52b964ab..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupNetworkAdditionalIpConfigArgs.java +++ /dev/null @@ -1,104 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupNetworkAdditionalIpConfigArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupNetworkAdditionalIpConfigArgs Empty = new ElastigroupNetworkAdditionalIpConfigArgs(); - - /** - * The group name. - * - */ - @Import(name="name", required=true) - private Output name; - - /** - * @return The group name. - * - */ - public Output name() { - return this.name; - } - - @Import(name="privateIpVersion") - private @Nullable Output privateIpVersion; - - public Optional> privateIpVersion() { - return Optional.ofNullable(this.privateIpVersion); - } - - private ElastigroupNetworkAdditionalIpConfigArgs() {} - - private ElastigroupNetworkAdditionalIpConfigArgs(ElastigroupNetworkAdditionalIpConfigArgs $) { - this.name = $.name; - this.privateIpVersion = $.privateIpVersion; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupNetworkAdditionalIpConfigArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupNetworkAdditionalIpConfigArgs $; - - public Builder() { - $ = new ElastigroupNetworkAdditionalIpConfigArgs(); - } - - public Builder(ElastigroupNetworkAdditionalIpConfigArgs defaults) { - $ = new ElastigroupNetworkAdditionalIpConfigArgs(Objects.requireNonNull(defaults)); - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(Output name) { - $.name = name; - return this; - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(String name) { - return name(Output.of(name)); - } - - public Builder privateIpVersion(@Nullable Output privateIpVersion) { - $.privateIpVersion = privateIpVersion; - return this; - } - - public Builder privateIpVersion(String privateIpVersion) { - return privateIpVersion(Output.of(privateIpVersion)); - } - - public ElastigroupNetworkAdditionalIpConfigArgs build() { - if ($.name == null) { - throw new MissingRequiredPropertyException("ElastigroupNetworkAdditionalIpConfigArgs", "name"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupNetworkArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupNetworkArgs.java deleted file mode 100644 index 8114ebee..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupNetworkArgs.java +++ /dev/null @@ -1,168 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import com.pulumi.spotinst.azure.inputs.ElastigroupNetworkAdditionalIpConfigArgs; -import java.lang.Boolean; -import java.lang.String; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupNetworkArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupNetworkArgs Empty = new ElastigroupNetworkArgs(); - - @Import(name="additionalIpConfigs") - private @Nullable Output> additionalIpConfigs; - - public Optional>> additionalIpConfigs() { - return Optional.ofNullable(this.additionalIpConfigs); - } - - @Import(name="assignPublicIp") - private @Nullable Output assignPublicIp; - - public Optional> assignPublicIp() { - return Optional.ofNullable(this.assignPublicIp); - } - - /** - * Name of the Resource Group for Elastigroup. - * - */ - @Import(name="resourceGroupName", required=true) - private Output resourceGroupName; - - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - public Output resourceGroupName() { - return this.resourceGroupName; - } - - @Import(name="subnetName", required=true) - private Output subnetName; - - public Output subnetName() { - return this.subnetName; - } - - @Import(name="virtualNetworkName", required=true) - private Output virtualNetworkName; - - public Output virtualNetworkName() { - return this.virtualNetworkName; - } - - private ElastigroupNetworkArgs() {} - - private ElastigroupNetworkArgs(ElastigroupNetworkArgs $) { - this.additionalIpConfigs = $.additionalIpConfigs; - this.assignPublicIp = $.assignPublicIp; - this.resourceGroupName = $.resourceGroupName; - this.subnetName = $.subnetName; - this.virtualNetworkName = $.virtualNetworkName; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupNetworkArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupNetworkArgs $; - - public Builder() { - $ = new ElastigroupNetworkArgs(); - } - - public Builder(ElastigroupNetworkArgs defaults) { - $ = new ElastigroupNetworkArgs(Objects.requireNonNull(defaults)); - } - - public Builder additionalIpConfigs(@Nullable Output> additionalIpConfigs) { - $.additionalIpConfigs = additionalIpConfigs; - return this; - } - - public Builder additionalIpConfigs(List additionalIpConfigs) { - return additionalIpConfigs(Output.of(additionalIpConfigs)); - } - - public Builder additionalIpConfigs(ElastigroupNetworkAdditionalIpConfigArgs... additionalIpConfigs) { - return additionalIpConfigs(List.of(additionalIpConfigs)); - } - - public Builder assignPublicIp(@Nullable Output assignPublicIp) { - $.assignPublicIp = assignPublicIp; - return this; - } - - public Builder assignPublicIp(Boolean assignPublicIp) { - return assignPublicIp(Output.of(assignPublicIp)); - } - - /** - * @param resourceGroupName Name of the Resource Group for Elastigroup. - * - * @return builder - * - */ - public Builder resourceGroupName(Output resourceGroupName) { - $.resourceGroupName = resourceGroupName; - return this; - } - - /** - * @param resourceGroupName Name of the Resource Group for Elastigroup. - * - * @return builder - * - */ - public Builder resourceGroupName(String resourceGroupName) { - return resourceGroupName(Output.of(resourceGroupName)); - } - - public Builder subnetName(Output subnetName) { - $.subnetName = subnetName; - return this; - } - - public Builder subnetName(String subnetName) { - return subnetName(Output.of(subnetName)); - } - - public Builder virtualNetworkName(Output virtualNetworkName) { - $.virtualNetworkName = virtualNetworkName; - return this; - } - - public Builder virtualNetworkName(String virtualNetworkName) { - return virtualNetworkName(Output.of(virtualNetworkName)); - } - - public ElastigroupNetworkArgs build() { - if ($.resourceGroupName == null) { - throw new MissingRequiredPropertyException("ElastigroupNetworkArgs", "resourceGroupName"); - } - if ($.subnetName == null) { - throw new MissingRequiredPropertyException("ElastigroupNetworkArgs", "subnetName"); - } - if ($.virtualNetworkName == null) { - throw new MissingRequiredPropertyException("ElastigroupNetworkArgs", "virtualNetworkName"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingDownPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingDownPolicyArgs.java deleted file mode 100644 index 53f2b702..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingDownPolicyArgs.java +++ /dev/null @@ -1,373 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import com.pulumi.spotinst.azure.inputs.ElastigroupScalingDownPolicyDimensionArgs; -import java.lang.Double; -import java.lang.Integer; -import java.lang.String; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupScalingDownPolicyArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupScalingDownPolicyArgs Empty = new ElastigroupScalingDownPolicyArgs(); - - @Import(name="actionType") - private @Nullable Output actionType; - - public Optional> actionType() { - return Optional.ofNullable(this.actionType); - } - - @Import(name="adjustment") - private @Nullable Output adjustment; - - public Optional> adjustment() { - return Optional.ofNullable(this.adjustment); - } - - @Import(name="cooldown") - private @Nullable Output cooldown; - - public Optional> cooldown() { - return Optional.ofNullable(this.cooldown); - } - - @Import(name="dimensions") - private @Nullable Output> dimensions; - - public Optional>> dimensions() { - return Optional.ofNullable(this.dimensions); - } - - @Import(name="evaluationPeriods") - private @Nullable Output evaluationPeriods; - - public Optional> evaluationPeriods() { - return Optional.ofNullable(this.evaluationPeriods); - } - - @Import(name="maxTargetCapacity") - private @Nullable Output maxTargetCapacity; - - public Optional> maxTargetCapacity() { - return Optional.ofNullable(this.maxTargetCapacity); - } - - @Import(name="maximum") - private @Nullable Output maximum; - - public Optional> maximum() { - return Optional.ofNullable(this.maximum); - } - - @Import(name="metricName", required=true) - private Output metricName; - - public Output metricName() { - return this.metricName; - } - - @Import(name="minTargetCapacity") - private @Nullable Output minTargetCapacity; - - public Optional> minTargetCapacity() { - return Optional.ofNullable(this.minTargetCapacity); - } - - @Import(name="minimum") - private @Nullable Output minimum; - - public Optional> minimum() { - return Optional.ofNullable(this.minimum); - } - - @Import(name="namespace", required=true) - private Output namespace; - - public Output namespace() { - return this.namespace; - } - - @Import(name="operator") - private @Nullable Output operator; - - public Optional> operator() { - return Optional.ofNullable(this.operator); - } - - @Import(name="period") - private @Nullable Output period; - - public Optional> period() { - return Optional.ofNullable(this.period); - } - - @Import(name="policyName", required=true) - private Output policyName; - - public Output policyName() { - return this.policyName; - } - - @Import(name="statistic") - private @Nullable Output statistic; - - public Optional> statistic() { - return Optional.ofNullable(this.statistic); - } - - @Import(name="target") - private @Nullable Output target; - - public Optional> target() { - return Optional.ofNullable(this.target); - } - - @Import(name="threshold", required=true) - private Output threshold; - - public Output threshold() { - return this.threshold; - } - - @Import(name="unit") - private @Nullable Output unit; - - public Optional> unit() { - return Optional.ofNullable(this.unit); - } - - private ElastigroupScalingDownPolicyArgs() {} - - private ElastigroupScalingDownPolicyArgs(ElastigroupScalingDownPolicyArgs $) { - this.actionType = $.actionType; - this.adjustment = $.adjustment; - this.cooldown = $.cooldown; - this.dimensions = $.dimensions; - this.evaluationPeriods = $.evaluationPeriods; - this.maxTargetCapacity = $.maxTargetCapacity; - this.maximum = $.maximum; - this.metricName = $.metricName; - this.minTargetCapacity = $.minTargetCapacity; - this.minimum = $.minimum; - this.namespace = $.namespace; - this.operator = $.operator; - this.period = $.period; - this.policyName = $.policyName; - this.statistic = $.statistic; - this.target = $.target; - this.threshold = $.threshold; - this.unit = $.unit; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupScalingDownPolicyArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupScalingDownPolicyArgs $; - - public Builder() { - $ = new ElastigroupScalingDownPolicyArgs(); - } - - public Builder(ElastigroupScalingDownPolicyArgs defaults) { - $ = new ElastigroupScalingDownPolicyArgs(Objects.requireNonNull(defaults)); - } - - public Builder actionType(@Nullable Output actionType) { - $.actionType = actionType; - return this; - } - - public Builder actionType(String actionType) { - return actionType(Output.of(actionType)); - } - - public Builder adjustment(@Nullable Output adjustment) { - $.adjustment = adjustment; - return this; - } - - public Builder adjustment(String adjustment) { - return adjustment(Output.of(adjustment)); - } - - public Builder cooldown(@Nullable Output cooldown) { - $.cooldown = cooldown; - return this; - } - - public Builder cooldown(Integer cooldown) { - return cooldown(Output.of(cooldown)); - } - - public Builder dimensions(@Nullable Output> dimensions) { - $.dimensions = dimensions; - return this; - } - - public Builder dimensions(List dimensions) { - return dimensions(Output.of(dimensions)); - } - - public Builder dimensions(ElastigroupScalingDownPolicyDimensionArgs... dimensions) { - return dimensions(List.of(dimensions)); - } - - public Builder evaluationPeriods(@Nullable Output evaluationPeriods) { - $.evaluationPeriods = evaluationPeriods; - return this; - } - - public Builder evaluationPeriods(Integer evaluationPeriods) { - return evaluationPeriods(Output.of(evaluationPeriods)); - } - - public Builder maxTargetCapacity(@Nullable Output maxTargetCapacity) { - $.maxTargetCapacity = maxTargetCapacity; - return this; - } - - public Builder maxTargetCapacity(String maxTargetCapacity) { - return maxTargetCapacity(Output.of(maxTargetCapacity)); - } - - public Builder maximum(@Nullable Output maximum) { - $.maximum = maximum; - return this; - } - - public Builder maximum(String maximum) { - return maximum(Output.of(maximum)); - } - - public Builder metricName(Output metricName) { - $.metricName = metricName; - return this; - } - - public Builder metricName(String metricName) { - return metricName(Output.of(metricName)); - } - - public Builder minTargetCapacity(@Nullable Output minTargetCapacity) { - $.minTargetCapacity = minTargetCapacity; - return this; - } - - public Builder minTargetCapacity(String minTargetCapacity) { - return minTargetCapacity(Output.of(minTargetCapacity)); - } - - public Builder minimum(@Nullable Output minimum) { - $.minimum = minimum; - return this; - } - - public Builder minimum(String minimum) { - return minimum(Output.of(minimum)); - } - - public Builder namespace(Output namespace) { - $.namespace = namespace; - return this; - } - - public Builder namespace(String namespace) { - return namespace(Output.of(namespace)); - } - - public Builder operator(@Nullable Output operator) { - $.operator = operator; - return this; - } - - public Builder operator(String operator) { - return operator(Output.of(operator)); - } - - public Builder period(@Nullable Output period) { - $.period = period; - return this; - } - - public Builder period(Integer period) { - return period(Output.of(period)); - } - - public Builder policyName(Output policyName) { - $.policyName = policyName; - return this; - } - - public Builder policyName(String policyName) { - return policyName(Output.of(policyName)); - } - - public Builder statistic(@Nullable Output statistic) { - $.statistic = statistic; - return this; - } - - public Builder statistic(String statistic) { - return statistic(Output.of(statistic)); - } - - public Builder target(@Nullable Output target) { - $.target = target; - return this; - } - - public Builder target(String target) { - return target(Output.of(target)); - } - - public Builder threshold(Output threshold) { - $.threshold = threshold; - return this; - } - - public Builder threshold(Double threshold) { - return threshold(Output.of(threshold)); - } - - public Builder unit(@Nullable Output unit) { - $.unit = unit; - return this; - } - - public Builder unit(String unit) { - return unit(Output.of(unit)); - } - - public ElastigroupScalingDownPolicyArgs build() { - if ($.metricName == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingDownPolicyArgs", "metricName"); - } - if ($.namespace == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingDownPolicyArgs", "namespace"); - } - if ($.policyName == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingDownPolicyArgs", "policyName"); - } - if ($.threshold == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingDownPolicyArgs", "threshold"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingDownPolicyDimensionArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingDownPolicyDimensionArgs.java deleted file mode 100644 index 191d684f..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingDownPolicyDimensionArgs.java +++ /dev/null @@ -1,104 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupScalingDownPolicyDimensionArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupScalingDownPolicyDimensionArgs Empty = new ElastigroupScalingDownPolicyDimensionArgs(); - - /** - * The group name. - * - */ - @Import(name="name", required=true) - private Output name; - - /** - * @return The group name. - * - */ - public Output name() { - return this.name; - } - - @Import(name="value") - private @Nullable Output value; - - public Optional> value() { - return Optional.ofNullable(this.value); - } - - private ElastigroupScalingDownPolicyDimensionArgs() {} - - private ElastigroupScalingDownPolicyDimensionArgs(ElastigroupScalingDownPolicyDimensionArgs $) { - this.name = $.name; - this.value = $.value; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupScalingDownPolicyDimensionArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupScalingDownPolicyDimensionArgs $; - - public Builder() { - $ = new ElastigroupScalingDownPolicyDimensionArgs(); - } - - public Builder(ElastigroupScalingDownPolicyDimensionArgs defaults) { - $ = new ElastigroupScalingDownPolicyDimensionArgs(Objects.requireNonNull(defaults)); - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(Output name) { - $.name = name; - return this; - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(String name) { - return name(Output.of(name)); - } - - public Builder value(@Nullable Output value) { - $.value = value; - return this; - } - - public Builder value(String value) { - return value(Output.of(value)); - } - - public ElastigroupScalingDownPolicyDimensionArgs build() { - if ($.name == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingDownPolicyDimensionArgs", "name"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingUpPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingUpPolicyArgs.java deleted file mode 100644 index 4cfb6f35..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingUpPolicyArgs.java +++ /dev/null @@ -1,373 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import com.pulumi.spotinst.azure.inputs.ElastigroupScalingUpPolicyDimensionArgs; -import java.lang.Double; -import java.lang.Integer; -import java.lang.String; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupScalingUpPolicyArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupScalingUpPolicyArgs Empty = new ElastigroupScalingUpPolicyArgs(); - - @Import(name="actionType") - private @Nullable Output actionType; - - public Optional> actionType() { - return Optional.ofNullable(this.actionType); - } - - @Import(name="adjustment") - private @Nullable Output adjustment; - - public Optional> adjustment() { - return Optional.ofNullable(this.adjustment); - } - - @Import(name="cooldown") - private @Nullable Output cooldown; - - public Optional> cooldown() { - return Optional.ofNullable(this.cooldown); - } - - @Import(name="dimensions") - private @Nullable Output> dimensions; - - public Optional>> dimensions() { - return Optional.ofNullable(this.dimensions); - } - - @Import(name="evaluationPeriods") - private @Nullable Output evaluationPeriods; - - public Optional> evaluationPeriods() { - return Optional.ofNullable(this.evaluationPeriods); - } - - @Import(name="maxTargetCapacity") - private @Nullable Output maxTargetCapacity; - - public Optional> maxTargetCapacity() { - return Optional.ofNullable(this.maxTargetCapacity); - } - - @Import(name="maximum") - private @Nullable Output maximum; - - public Optional> maximum() { - return Optional.ofNullable(this.maximum); - } - - @Import(name="metricName", required=true) - private Output metricName; - - public Output metricName() { - return this.metricName; - } - - @Import(name="minTargetCapacity") - private @Nullable Output minTargetCapacity; - - public Optional> minTargetCapacity() { - return Optional.ofNullable(this.minTargetCapacity); - } - - @Import(name="minimum") - private @Nullable Output minimum; - - public Optional> minimum() { - return Optional.ofNullable(this.minimum); - } - - @Import(name="namespace", required=true) - private Output namespace; - - public Output namespace() { - return this.namespace; - } - - @Import(name="operator") - private @Nullable Output operator; - - public Optional> operator() { - return Optional.ofNullable(this.operator); - } - - @Import(name="period") - private @Nullable Output period; - - public Optional> period() { - return Optional.ofNullable(this.period); - } - - @Import(name="policyName", required=true) - private Output policyName; - - public Output policyName() { - return this.policyName; - } - - @Import(name="statistic") - private @Nullable Output statistic; - - public Optional> statistic() { - return Optional.ofNullable(this.statistic); - } - - @Import(name="target") - private @Nullable Output target; - - public Optional> target() { - return Optional.ofNullable(this.target); - } - - @Import(name="threshold", required=true) - private Output threshold; - - public Output threshold() { - return this.threshold; - } - - @Import(name="unit") - private @Nullable Output unit; - - public Optional> unit() { - return Optional.ofNullable(this.unit); - } - - private ElastigroupScalingUpPolicyArgs() {} - - private ElastigroupScalingUpPolicyArgs(ElastigroupScalingUpPolicyArgs $) { - this.actionType = $.actionType; - this.adjustment = $.adjustment; - this.cooldown = $.cooldown; - this.dimensions = $.dimensions; - this.evaluationPeriods = $.evaluationPeriods; - this.maxTargetCapacity = $.maxTargetCapacity; - this.maximum = $.maximum; - this.metricName = $.metricName; - this.minTargetCapacity = $.minTargetCapacity; - this.minimum = $.minimum; - this.namespace = $.namespace; - this.operator = $.operator; - this.period = $.period; - this.policyName = $.policyName; - this.statistic = $.statistic; - this.target = $.target; - this.threshold = $.threshold; - this.unit = $.unit; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupScalingUpPolicyArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupScalingUpPolicyArgs $; - - public Builder() { - $ = new ElastigroupScalingUpPolicyArgs(); - } - - public Builder(ElastigroupScalingUpPolicyArgs defaults) { - $ = new ElastigroupScalingUpPolicyArgs(Objects.requireNonNull(defaults)); - } - - public Builder actionType(@Nullable Output actionType) { - $.actionType = actionType; - return this; - } - - public Builder actionType(String actionType) { - return actionType(Output.of(actionType)); - } - - public Builder adjustment(@Nullable Output adjustment) { - $.adjustment = adjustment; - return this; - } - - public Builder adjustment(String adjustment) { - return adjustment(Output.of(adjustment)); - } - - public Builder cooldown(@Nullable Output cooldown) { - $.cooldown = cooldown; - return this; - } - - public Builder cooldown(Integer cooldown) { - return cooldown(Output.of(cooldown)); - } - - public Builder dimensions(@Nullable Output> dimensions) { - $.dimensions = dimensions; - return this; - } - - public Builder dimensions(List dimensions) { - return dimensions(Output.of(dimensions)); - } - - public Builder dimensions(ElastigroupScalingUpPolicyDimensionArgs... dimensions) { - return dimensions(List.of(dimensions)); - } - - public Builder evaluationPeriods(@Nullable Output evaluationPeriods) { - $.evaluationPeriods = evaluationPeriods; - return this; - } - - public Builder evaluationPeriods(Integer evaluationPeriods) { - return evaluationPeriods(Output.of(evaluationPeriods)); - } - - public Builder maxTargetCapacity(@Nullable Output maxTargetCapacity) { - $.maxTargetCapacity = maxTargetCapacity; - return this; - } - - public Builder maxTargetCapacity(String maxTargetCapacity) { - return maxTargetCapacity(Output.of(maxTargetCapacity)); - } - - public Builder maximum(@Nullable Output maximum) { - $.maximum = maximum; - return this; - } - - public Builder maximum(String maximum) { - return maximum(Output.of(maximum)); - } - - public Builder metricName(Output metricName) { - $.metricName = metricName; - return this; - } - - public Builder metricName(String metricName) { - return metricName(Output.of(metricName)); - } - - public Builder minTargetCapacity(@Nullable Output minTargetCapacity) { - $.minTargetCapacity = minTargetCapacity; - return this; - } - - public Builder minTargetCapacity(String minTargetCapacity) { - return minTargetCapacity(Output.of(minTargetCapacity)); - } - - public Builder minimum(@Nullable Output minimum) { - $.minimum = minimum; - return this; - } - - public Builder minimum(String minimum) { - return minimum(Output.of(minimum)); - } - - public Builder namespace(Output namespace) { - $.namespace = namespace; - return this; - } - - public Builder namespace(String namespace) { - return namespace(Output.of(namespace)); - } - - public Builder operator(@Nullable Output operator) { - $.operator = operator; - return this; - } - - public Builder operator(String operator) { - return operator(Output.of(operator)); - } - - public Builder period(@Nullable Output period) { - $.period = period; - return this; - } - - public Builder period(Integer period) { - return period(Output.of(period)); - } - - public Builder policyName(Output policyName) { - $.policyName = policyName; - return this; - } - - public Builder policyName(String policyName) { - return policyName(Output.of(policyName)); - } - - public Builder statistic(@Nullable Output statistic) { - $.statistic = statistic; - return this; - } - - public Builder statistic(String statistic) { - return statistic(Output.of(statistic)); - } - - public Builder target(@Nullable Output target) { - $.target = target; - return this; - } - - public Builder target(String target) { - return target(Output.of(target)); - } - - public Builder threshold(Output threshold) { - $.threshold = threshold; - return this; - } - - public Builder threshold(Double threshold) { - return threshold(Output.of(threshold)); - } - - public Builder unit(@Nullable Output unit) { - $.unit = unit; - return this; - } - - public Builder unit(String unit) { - return unit(Output.of(unit)); - } - - public ElastigroupScalingUpPolicyArgs build() { - if ($.metricName == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingUpPolicyArgs", "metricName"); - } - if ($.namespace == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingUpPolicyArgs", "namespace"); - } - if ($.policyName == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingUpPolicyArgs", "policyName"); - } - if ($.threshold == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingUpPolicyArgs", "threshold"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingUpPolicyDimensionArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingUpPolicyDimensionArgs.java deleted file mode 100644 index d2f38e7f..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScalingUpPolicyDimensionArgs.java +++ /dev/null @@ -1,104 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupScalingUpPolicyDimensionArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupScalingUpPolicyDimensionArgs Empty = new ElastigroupScalingUpPolicyDimensionArgs(); - - /** - * The group name. - * - */ - @Import(name="name", required=true) - private Output name; - - /** - * @return The group name. - * - */ - public Output name() { - return this.name; - } - - @Import(name="value") - private @Nullable Output value; - - public Optional> value() { - return Optional.ofNullable(this.value); - } - - private ElastigroupScalingUpPolicyDimensionArgs() {} - - private ElastigroupScalingUpPolicyDimensionArgs(ElastigroupScalingUpPolicyDimensionArgs $) { - this.name = $.name; - this.value = $.value; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupScalingUpPolicyDimensionArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupScalingUpPolicyDimensionArgs $; - - public Builder() { - $ = new ElastigroupScalingUpPolicyDimensionArgs(); - } - - public Builder(ElastigroupScalingUpPolicyDimensionArgs defaults) { - $ = new ElastigroupScalingUpPolicyDimensionArgs(Objects.requireNonNull(defaults)); - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(Output name) { - $.name = name; - return this; - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(String name) { - return name(Output.of(name)); - } - - public Builder value(@Nullable Output value) { - $.value = value; - return this; - } - - public Builder value(String value) { - return value(Output.of(value)); - } - - public ElastigroupScalingUpPolicyDimensionArgs build() { - if ($.name == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingUpPolicyDimensionArgs", "name"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScheduledTaskArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScheduledTaskArgs.java deleted file mode 100644 index 25c626b6..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupScheduledTaskArgs.java +++ /dev/null @@ -1,224 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Boolean; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupScheduledTaskArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupScheduledTaskArgs Empty = new ElastigroupScheduledTaskArgs(); - - @Import(name="adjustment") - private @Nullable Output adjustment; - - public Optional> adjustment() { - return Optional.ofNullable(this.adjustment); - } - - @Import(name="adjustmentPercentage") - private @Nullable Output adjustmentPercentage; - - public Optional> adjustmentPercentage() { - return Optional.ofNullable(this.adjustmentPercentage); - } - - @Import(name="batchSizePercentage") - private @Nullable Output batchSizePercentage; - - public Optional> batchSizePercentage() { - return Optional.ofNullable(this.batchSizePercentage); - } - - @Import(name="cronExpression", required=true) - private Output cronExpression; - - public Output cronExpression() { - return this.cronExpression; - } - - @Import(name="gracePeriod") - private @Nullable Output gracePeriod; - - public Optional> gracePeriod() { - return Optional.ofNullable(this.gracePeriod); - } - - @Import(name="isEnabled") - private @Nullable Output isEnabled; - - public Optional> isEnabled() { - return Optional.ofNullable(this.isEnabled); - } - - @Import(name="scaleMaxCapacity") - private @Nullable Output scaleMaxCapacity; - - public Optional> scaleMaxCapacity() { - return Optional.ofNullable(this.scaleMaxCapacity); - } - - @Import(name="scaleMinCapacity") - private @Nullable Output scaleMinCapacity; - - public Optional> scaleMinCapacity() { - return Optional.ofNullable(this.scaleMinCapacity); - } - - @Import(name="scaleTargetCapacity") - private @Nullable Output scaleTargetCapacity; - - public Optional> scaleTargetCapacity() { - return Optional.ofNullable(this.scaleTargetCapacity); - } - - @Import(name="taskType", required=true) - private Output taskType; - - public Output taskType() { - return this.taskType; - } - - private ElastigroupScheduledTaskArgs() {} - - private ElastigroupScheduledTaskArgs(ElastigroupScheduledTaskArgs $) { - this.adjustment = $.adjustment; - this.adjustmentPercentage = $.adjustmentPercentage; - this.batchSizePercentage = $.batchSizePercentage; - this.cronExpression = $.cronExpression; - this.gracePeriod = $.gracePeriod; - this.isEnabled = $.isEnabled; - this.scaleMaxCapacity = $.scaleMaxCapacity; - this.scaleMinCapacity = $.scaleMinCapacity; - this.scaleTargetCapacity = $.scaleTargetCapacity; - this.taskType = $.taskType; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupScheduledTaskArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupScheduledTaskArgs $; - - public Builder() { - $ = new ElastigroupScheduledTaskArgs(); - } - - public Builder(ElastigroupScheduledTaskArgs defaults) { - $ = new ElastigroupScheduledTaskArgs(Objects.requireNonNull(defaults)); - } - - public Builder adjustment(@Nullable Output adjustment) { - $.adjustment = adjustment; - return this; - } - - public Builder adjustment(String adjustment) { - return adjustment(Output.of(adjustment)); - } - - public Builder adjustmentPercentage(@Nullable Output adjustmentPercentage) { - $.adjustmentPercentage = adjustmentPercentage; - return this; - } - - public Builder adjustmentPercentage(String adjustmentPercentage) { - return adjustmentPercentage(Output.of(adjustmentPercentage)); - } - - public Builder batchSizePercentage(@Nullable Output batchSizePercentage) { - $.batchSizePercentage = batchSizePercentage; - return this; - } - - public Builder batchSizePercentage(String batchSizePercentage) { - return batchSizePercentage(Output.of(batchSizePercentage)); - } - - public Builder cronExpression(Output cronExpression) { - $.cronExpression = cronExpression; - return this; - } - - public Builder cronExpression(String cronExpression) { - return cronExpression(Output.of(cronExpression)); - } - - public Builder gracePeriod(@Nullable Output gracePeriod) { - $.gracePeriod = gracePeriod; - return this; - } - - public Builder gracePeriod(String gracePeriod) { - return gracePeriod(Output.of(gracePeriod)); - } - - public Builder isEnabled(@Nullable Output isEnabled) { - $.isEnabled = isEnabled; - return this; - } - - public Builder isEnabled(Boolean isEnabled) { - return isEnabled(Output.of(isEnabled)); - } - - public Builder scaleMaxCapacity(@Nullable Output scaleMaxCapacity) { - $.scaleMaxCapacity = scaleMaxCapacity; - return this; - } - - public Builder scaleMaxCapacity(String scaleMaxCapacity) { - return scaleMaxCapacity(Output.of(scaleMaxCapacity)); - } - - public Builder scaleMinCapacity(@Nullable Output scaleMinCapacity) { - $.scaleMinCapacity = scaleMinCapacity; - return this; - } - - public Builder scaleMinCapacity(String scaleMinCapacity) { - return scaleMinCapacity(Output.of(scaleMinCapacity)); - } - - public Builder scaleTargetCapacity(@Nullable Output scaleTargetCapacity) { - $.scaleTargetCapacity = scaleTargetCapacity; - return this; - } - - public Builder scaleTargetCapacity(String scaleTargetCapacity) { - return scaleTargetCapacity(Output.of(scaleTargetCapacity)); - } - - public Builder taskType(Output taskType) { - $.taskType = taskType; - return this; - } - - public Builder taskType(String taskType) { - return taskType(Output.of(taskType)); - } - - public ElastigroupScheduledTaskArgs build() { - if ($.cronExpression == null) { - throw new MissingRequiredPropertyException("ElastigroupScheduledTaskArgs", "cronExpression"); - } - if ($.taskType == null) { - throw new MissingRequiredPropertyException("ElastigroupScheduledTaskArgs", "taskType"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupState.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupState.java deleted file mode 100644 index 5ba70ba2..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupState.java +++ /dev/null @@ -1,684 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.spotinst.azure.inputs.ElastigroupHealthCheckArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupImageArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupIntegrationKubernetesArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupIntegrationMultaiRuntimeArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupLoadBalancerArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupLoginArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupManagedServiceIdentityArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupNetworkArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupScalingDownPolicyArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupScalingUpPolicyArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupScheduledTaskArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupStrategyArgs; -import com.pulumi.spotinst.azure.inputs.ElastigroupUpdatePolicyArgs; -import java.lang.Integer; -import java.lang.String; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupState extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupState Empty = new ElastigroupState(); - - /** - * Custom init script file or text in Base64 encoded format. - * - */ - @Import(name="customData") - private @Nullable Output customData; - - /** - * @return Custom init script file or text in Base64 encoded format. - * - */ - public Optional> customData() { - return Optional.ofNullable(this.customData); - } - - /** - * The desired number of instances the group should have at any time. - * - */ - @Import(name="desiredCapacity") - private @Nullable Output desiredCapacity; - - /** - * @return The desired number of instances the group should have at any time. - * - */ - public Optional> desiredCapacity() { - return Optional.ofNullable(this.desiredCapacity); - } - - @Import(name="healthCheck") - private @Nullable Output healthCheck; - - public Optional> healthCheck() { - return Optional.ofNullable(this.healthCheck); - } - - @Import(name="images") - private @Nullable Output> images; - - public Optional>> images() { - return Optional.ofNullable(this.images); - } - - @Import(name="integrationKubernetes") - private @Nullable Output integrationKubernetes; - - public Optional> integrationKubernetes() { - return Optional.ofNullable(this.integrationKubernetes); - } - - @Import(name="integrationMultaiRuntime") - private @Nullable Output integrationMultaiRuntime; - - public Optional> integrationMultaiRuntime() { - return Optional.ofNullable(this.integrationMultaiRuntime); - } - - @Import(name="loadBalancers") - private @Nullable Output> loadBalancers; - - public Optional>> loadBalancers() { - return Optional.ofNullable(this.loadBalancers); - } - - @Import(name="login") - private @Nullable Output login; - - public Optional> login() { - return Optional.ofNullable(this.login); - } - - @Import(name="lowPrioritySizes") - private @Nullable Output> lowPrioritySizes; - - public Optional>> lowPrioritySizes() { - return Optional.ofNullable(this.lowPrioritySizes); - } - - @Import(name="managedServiceIdentities") - private @Nullable Output> managedServiceIdentities; - - public Optional>> managedServiceIdentities() { - return Optional.ofNullable(this.managedServiceIdentities); - } - - /** - * The maximum number of instances the group should have at any time. - * - */ - @Import(name="maxSize") - private @Nullable Output maxSize; - - /** - * @return The maximum number of instances the group should have at any time. - * - */ - public Optional> maxSize() { - return Optional.ofNullable(this.maxSize); - } - - /** - * The minimum number of instances the group should have at any time. - * - */ - @Import(name="minSize") - private @Nullable Output minSize; - - /** - * @return The minimum number of instances the group should have at any time. - * - */ - public Optional> minSize() { - return Optional.ofNullable(this.minSize); - } - - /** - * The group name. - * - */ - @Import(name="name") - private @Nullable Output name; - - /** - * @return The group name. - * - */ - public Optional> name() { - return Optional.ofNullable(this.name); - } - - @Import(name="network") - private @Nullable Output network; - - public Optional> network() { - return Optional.ofNullable(this.network); - } - - /** - * Available On-Demand sizes - * - */ - @Import(name="odSizes") - private @Nullable Output> odSizes; - - /** - * @return Available On-Demand sizes - * - */ - public Optional>> odSizes() { - return Optional.ofNullable(this.odSizes); - } - - @Import(name="product") - private @Nullable Output product; - - public Optional> product() { - return Optional.ofNullable(this.product); - } - - /** - * The region your Azure group will be created in. - * - */ - @Import(name="region") - private @Nullable Output region; - - /** - * @return The region your Azure group will be created in. - * - */ - public Optional> region() { - return Optional.ofNullable(this.region); - } - - /** - * Name of the Resource Group for Elastigroup. - * - */ - @Import(name="resourceGroupName") - private @Nullable Output resourceGroupName; - - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - public Optional> resourceGroupName() { - return Optional.ofNullable(this.resourceGroupName); - } - - @Import(name="scalingDownPolicies") - private @Nullable Output> scalingDownPolicies; - - public Optional>> scalingDownPolicies() { - return Optional.ofNullable(this.scalingDownPolicies); - } - - @Import(name="scalingUpPolicies") - private @Nullable Output> scalingUpPolicies; - - public Optional>> scalingUpPolicies() { - return Optional.ofNullable(this.scalingUpPolicies); - } - - @Import(name="scheduledTasks") - private @Nullable Output> scheduledTasks; - - public Optional>> scheduledTasks() { - return Optional.ofNullable(this.scheduledTasks); - } - - @Import(name="shutdownScript") - private @Nullable Output shutdownScript; - - public Optional> shutdownScript() { - return Optional.ofNullable(this.shutdownScript); - } - - @Import(name="strategy") - private @Nullable Output strategy; - - public Optional> strategy() { - return Optional.ofNullable(this.strategy); - } - - @Import(name="updatePolicy") - private @Nullable Output updatePolicy; - - public Optional> updatePolicy() { - return Optional.ofNullable(this.updatePolicy); - } - - @Import(name="userData") - private @Nullable Output userData; - - public Optional> userData() { - return Optional.ofNullable(this.userData); - } - - private ElastigroupState() {} - - private ElastigroupState(ElastigroupState $) { - this.customData = $.customData; - this.desiredCapacity = $.desiredCapacity; - this.healthCheck = $.healthCheck; - this.images = $.images; - this.integrationKubernetes = $.integrationKubernetes; - this.integrationMultaiRuntime = $.integrationMultaiRuntime; - this.loadBalancers = $.loadBalancers; - this.login = $.login; - this.lowPrioritySizes = $.lowPrioritySizes; - this.managedServiceIdentities = $.managedServiceIdentities; - this.maxSize = $.maxSize; - this.minSize = $.minSize; - this.name = $.name; - this.network = $.network; - this.odSizes = $.odSizes; - this.product = $.product; - this.region = $.region; - this.resourceGroupName = $.resourceGroupName; - this.scalingDownPolicies = $.scalingDownPolicies; - this.scalingUpPolicies = $.scalingUpPolicies; - this.scheduledTasks = $.scheduledTasks; - this.shutdownScript = $.shutdownScript; - this.strategy = $.strategy; - this.updatePolicy = $.updatePolicy; - this.userData = $.userData; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupState defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupState $; - - public Builder() { - $ = new ElastigroupState(); - } - - public Builder(ElastigroupState defaults) { - $ = new ElastigroupState(Objects.requireNonNull(defaults)); - } - - /** - * @param customData Custom init script file or text in Base64 encoded format. - * - * @return builder - * - */ - public Builder customData(@Nullable Output customData) { - $.customData = customData; - return this; - } - - /** - * @param customData Custom init script file or text in Base64 encoded format. - * - * @return builder - * - */ - public Builder customData(String customData) { - return customData(Output.of(customData)); - } - - /** - * @param desiredCapacity The desired number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder desiredCapacity(@Nullable Output desiredCapacity) { - $.desiredCapacity = desiredCapacity; - return this; - } - - /** - * @param desiredCapacity The desired number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder desiredCapacity(Integer desiredCapacity) { - return desiredCapacity(Output.of(desiredCapacity)); - } - - public Builder healthCheck(@Nullable Output healthCheck) { - $.healthCheck = healthCheck; - return this; - } - - public Builder healthCheck(ElastigroupHealthCheckArgs healthCheck) { - return healthCheck(Output.of(healthCheck)); - } - - public Builder images(@Nullable Output> images) { - $.images = images; - return this; - } - - public Builder images(List images) { - return images(Output.of(images)); - } - - public Builder images(ElastigroupImageArgs... images) { - return images(List.of(images)); - } - - public Builder integrationKubernetes(@Nullable Output integrationKubernetes) { - $.integrationKubernetes = integrationKubernetes; - return this; - } - - public Builder integrationKubernetes(ElastigroupIntegrationKubernetesArgs integrationKubernetes) { - return integrationKubernetes(Output.of(integrationKubernetes)); - } - - public Builder integrationMultaiRuntime(@Nullable Output integrationMultaiRuntime) { - $.integrationMultaiRuntime = integrationMultaiRuntime; - return this; - } - - public Builder integrationMultaiRuntime(ElastigroupIntegrationMultaiRuntimeArgs integrationMultaiRuntime) { - return integrationMultaiRuntime(Output.of(integrationMultaiRuntime)); - } - - public Builder loadBalancers(@Nullable Output> loadBalancers) { - $.loadBalancers = loadBalancers; - return this; - } - - public Builder loadBalancers(List loadBalancers) { - return loadBalancers(Output.of(loadBalancers)); - } - - public Builder loadBalancers(ElastigroupLoadBalancerArgs... loadBalancers) { - return loadBalancers(List.of(loadBalancers)); - } - - public Builder login(@Nullable Output login) { - $.login = login; - return this; - } - - public Builder login(ElastigroupLoginArgs login) { - return login(Output.of(login)); - } - - public Builder lowPrioritySizes(@Nullable Output> lowPrioritySizes) { - $.lowPrioritySizes = lowPrioritySizes; - return this; - } - - public Builder lowPrioritySizes(List lowPrioritySizes) { - return lowPrioritySizes(Output.of(lowPrioritySizes)); - } - - public Builder lowPrioritySizes(String... lowPrioritySizes) { - return lowPrioritySizes(List.of(lowPrioritySizes)); - } - - public Builder managedServiceIdentities(@Nullable Output> managedServiceIdentities) { - $.managedServiceIdentities = managedServiceIdentities; - return this; - } - - public Builder managedServiceIdentities(List managedServiceIdentities) { - return managedServiceIdentities(Output.of(managedServiceIdentities)); - } - - public Builder managedServiceIdentities(ElastigroupManagedServiceIdentityArgs... managedServiceIdentities) { - return managedServiceIdentities(List.of(managedServiceIdentities)); - } - - /** - * @param maxSize The maximum number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder maxSize(@Nullable Output maxSize) { - $.maxSize = maxSize; - return this; - } - - /** - * @param maxSize The maximum number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder maxSize(Integer maxSize) { - return maxSize(Output.of(maxSize)); - } - - /** - * @param minSize The minimum number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder minSize(@Nullable Output minSize) { - $.minSize = minSize; - return this; - } - - /** - * @param minSize The minimum number of instances the group should have at any time. - * - * @return builder - * - */ - public Builder minSize(Integer minSize) { - return minSize(Output.of(minSize)); - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(@Nullable Output name) { - $.name = name; - return this; - } - - /** - * @param name The group name. - * - * @return builder - * - */ - public Builder name(String name) { - return name(Output.of(name)); - } - - public Builder network(@Nullable Output network) { - $.network = network; - return this; - } - - public Builder network(ElastigroupNetworkArgs network) { - return network(Output.of(network)); - } - - /** - * @param odSizes Available On-Demand sizes - * - * @return builder - * - */ - public Builder odSizes(@Nullable Output> odSizes) { - $.odSizes = odSizes; - return this; - } - - /** - * @param odSizes Available On-Demand sizes - * - * @return builder - * - */ - public Builder odSizes(List odSizes) { - return odSizes(Output.of(odSizes)); - } - - /** - * @param odSizes Available On-Demand sizes - * - * @return builder - * - */ - public Builder odSizes(String... odSizes) { - return odSizes(List.of(odSizes)); - } - - public Builder product(@Nullable Output product) { - $.product = product; - return this; - } - - public Builder product(String product) { - return product(Output.of(product)); - } - - /** - * @param region The region your Azure group will be created in. - * - * @return builder - * - */ - public Builder region(@Nullable Output region) { - $.region = region; - return this; - } - - /** - * @param region The region your Azure group will be created in. - * - * @return builder - * - */ - public Builder region(String region) { - return region(Output.of(region)); - } - - /** - * @param resourceGroupName Name of the Resource Group for Elastigroup. - * - * @return builder - * - */ - public Builder resourceGroupName(@Nullable Output resourceGroupName) { - $.resourceGroupName = resourceGroupName; - return this; - } - - /** - * @param resourceGroupName Name of the Resource Group for Elastigroup. - * - * @return builder - * - */ - public Builder resourceGroupName(String resourceGroupName) { - return resourceGroupName(Output.of(resourceGroupName)); - } - - public Builder scalingDownPolicies(@Nullable Output> scalingDownPolicies) { - $.scalingDownPolicies = scalingDownPolicies; - return this; - } - - public Builder scalingDownPolicies(List scalingDownPolicies) { - return scalingDownPolicies(Output.of(scalingDownPolicies)); - } - - public Builder scalingDownPolicies(ElastigroupScalingDownPolicyArgs... scalingDownPolicies) { - return scalingDownPolicies(List.of(scalingDownPolicies)); - } - - public Builder scalingUpPolicies(@Nullable Output> scalingUpPolicies) { - $.scalingUpPolicies = scalingUpPolicies; - return this; - } - - public Builder scalingUpPolicies(List scalingUpPolicies) { - return scalingUpPolicies(Output.of(scalingUpPolicies)); - } - - public Builder scalingUpPolicies(ElastigroupScalingUpPolicyArgs... scalingUpPolicies) { - return scalingUpPolicies(List.of(scalingUpPolicies)); - } - - public Builder scheduledTasks(@Nullable Output> scheduledTasks) { - $.scheduledTasks = scheduledTasks; - return this; - } - - public Builder scheduledTasks(List scheduledTasks) { - return scheduledTasks(Output.of(scheduledTasks)); - } - - public Builder scheduledTasks(ElastigroupScheduledTaskArgs... scheduledTasks) { - return scheduledTasks(List.of(scheduledTasks)); - } - - public Builder shutdownScript(@Nullable Output shutdownScript) { - $.shutdownScript = shutdownScript; - return this; - } - - public Builder shutdownScript(String shutdownScript) { - return shutdownScript(Output.of(shutdownScript)); - } - - public Builder strategy(@Nullable Output strategy) { - $.strategy = strategy; - return this; - } - - public Builder strategy(ElastigroupStrategyArgs strategy) { - return strategy(Output.of(strategy)); - } - - public Builder updatePolicy(@Nullable Output updatePolicy) { - $.updatePolicy = updatePolicy; - return this; - } - - public Builder updatePolicy(ElastigroupUpdatePolicyArgs updatePolicy) { - return updatePolicy(Output.of(updatePolicy)); - } - - public Builder userData(@Nullable Output userData) { - $.userData = userData; - return this; - } - - public Builder userData(String userData) { - return userData(Output.of(userData)); - } - - public ElastigroupState build() { - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupStrategyArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupStrategyArgs.java deleted file mode 100644 index 99e62bcc..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupStrategyArgs.java +++ /dev/null @@ -1,97 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import java.lang.Integer; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupStrategyArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupStrategyArgs Empty = new ElastigroupStrategyArgs(); - - @Import(name="drainingTimeout") - private @Nullable Output drainingTimeout; - - public Optional> drainingTimeout() { - return Optional.ofNullable(this.drainingTimeout); - } - - @Import(name="lowPriorityPercentage") - private @Nullable Output lowPriorityPercentage; - - public Optional> lowPriorityPercentage() { - return Optional.ofNullable(this.lowPriorityPercentage); - } - - @Import(name="odCount") - private @Nullable Output odCount; - - public Optional> odCount() { - return Optional.ofNullable(this.odCount); - } - - private ElastigroupStrategyArgs() {} - - private ElastigroupStrategyArgs(ElastigroupStrategyArgs $) { - this.drainingTimeout = $.drainingTimeout; - this.lowPriorityPercentage = $.lowPriorityPercentage; - this.odCount = $.odCount; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupStrategyArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupStrategyArgs $; - - public Builder() { - $ = new ElastigroupStrategyArgs(); - } - - public Builder(ElastigroupStrategyArgs defaults) { - $ = new ElastigroupStrategyArgs(Objects.requireNonNull(defaults)); - } - - public Builder drainingTimeout(@Nullable Output drainingTimeout) { - $.drainingTimeout = drainingTimeout; - return this; - } - - public Builder drainingTimeout(Integer drainingTimeout) { - return drainingTimeout(Output.of(drainingTimeout)); - } - - public Builder lowPriorityPercentage(@Nullable Output lowPriorityPercentage) { - $.lowPriorityPercentage = lowPriorityPercentage; - return this; - } - - public Builder lowPriorityPercentage(Integer lowPriorityPercentage) { - return lowPriorityPercentage(Output.of(lowPriorityPercentage)); - } - - public Builder odCount(@Nullable Output odCount) { - $.odCount = odCount; - return this; - } - - public Builder odCount(Integer odCount) { - return odCount(Output.of(odCount)); - } - - public ElastigroupStrategyArgs build() { - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupUpdatePolicyArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupUpdatePolicyArgs.java deleted file mode 100644 index 1cabea35..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupUpdatePolicyArgs.java +++ /dev/null @@ -1,85 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import com.pulumi.spotinst.azure.inputs.ElastigroupUpdatePolicyRollConfigArgs; -import java.lang.Boolean; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupUpdatePolicyArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupUpdatePolicyArgs Empty = new ElastigroupUpdatePolicyArgs(); - - @Import(name="rollConfig") - private @Nullable Output rollConfig; - - public Optional> rollConfig() { - return Optional.ofNullable(this.rollConfig); - } - - @Import(name="shouldRoll", required=true) - private Output shouldRoll; - - public Output shouldRoll() { - return this.shouldRoll; - } - - private ElastigroupUpdatePolicyArgs() {} - - private ElastigroupUpdatePolicyArgs(ElastigroupUpdatePolicyArgs $) { - this.rollConfig = $.rollConfig; - this.shouldRoll = $.shouldRoll; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupUpdatePolicyArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupUpdatePolicyArgs $; - - public Builder() { - $ = new ElastigroupUpdatePolicyArgs(); - } - - public Builder(ElastigroupUpdatePolicyArgs defaults) { - $ = new ElastigroupUpdatePolicyArgs(Objects.requireNonNull(defaults)); - } - - public Builder rollConfig(@Nullable Output rollConfig) { - $.rollConfig = rollConfig; - return this; - } - - public Builder rollConfig(ElastigroupUpdatePolicyRollConfigArgs rollConfig) { - return rollConfig(Output.of(rollConfig)); - } - - public Builder shouldRoll(Output shouldRoll) { - $.shouldRoll = shouldRoll; - return this; - } - - public Builder shouldRoll(Boolean shouldRoll) { - return shouldRoll(Output.of(shouldRoll)); - } - - public ElastigroupUpdatePolicyArgs build() { - if ($.shouldRoll == null) { - throw new MissingRequiredPropertyException("ElastigroupUpdatePolicyArgs", "shouldRoll"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupUpdatePolicyRollConfigArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupUpdatePolicyRollConfigArgs.java deleted file mode 100644 index b361ff45..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/ElastigroupUpdatePolicyRollConfigArgs.java +++ /dev/null @@ -1,102 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.inputs; - -import com.pulumi.core.Output; -import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Integer; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - - -public final class ElastigroupUpdatePolicyRollConfigArgs extends com.pulumi.resources.ResourceArgs { - - public static final ElastigroupUpdatePolicyRollConfigArgs Empty = new ElastigroupUpdatePolicyRollConfigArgs(); - - @Import(name="batchSizePercentage", required=true) - private Output batchSizePercentage; - - public Output batchSizePercentage() { - return this.batchSizePercentage; - } - - @Import(name="gracePeriod") - private @Nullable Output gracePeriod; - - public Optional> gracePeriod() { - return Optional.ofNullable(this.gracePeriod); - } - - @Import(name="healthCheckType") - private @Nullable Output healthCheckType; - - public Optional> healthCheckType() { - return Optional.ofNullable(this.healthCheckType); - } - - private ElastigroupUpdatePolicyRollConfigArgs() {} - - private ElastigroupUpdatePolicyRollConfigArgs(ElastigroupUpdatePolicyRollConfigArgs $) { - this.batchSizePercentage = $.batchSizePercentage; - this.gracePeriod = $.gracePeriod; - this.healthCheckType = $.healthCheckType; - } - - public static Builder builder() { - return new Builder(); - } - public static Builder builder(ElastigroupUpdatePolicyRollConfigArgs defaults) { - return new Builder(defaults); - } - - public static final class Builder { - private ElastigroupUpdatePolicyRollConfigArgs $; - - public Builder() { - $ = new ElastigroupUpdatePolicyRollConfigArgs(); - } - - public Builder(ElastigroupUpdatePolicyRollConfigArgs defaults) { - $ = new ElastigroupUpdatePolicyRollConfigArgs(Objects.requireNonNull(defaults)); - } - - public Builder batchSizePercentage(Output batchSizePercentage) { - $.batchSizePercentage = batchSizePercentage; - return this; - } - - public Builder batchSizePercentage(Integer batchSizePercentage) { - return batchSizePercentage(Output.of(batchSizePercentage)); - } - - public Builder gracePeriod(@Nullable Output gracePeriod) { - $.gracePeriod = gracePeriod; - return this; - } - - public Builder gracePeriod(Integer gracePeriod) { - return gracePeriod(Output.of(gracePeriod)); - } - - public Builder healthCheckType(@Nullable Output healthCheckType) { - $.healthCheckType = healthCheckType; - return this; - } - - public Builder healthCheckType(String healthCheckType) { - return healthCheckType(Output.of(healthCheckType)); - } - - public ElastigroupUpdatePolicyRollConfigArgs build() { - if ($.batchSizePercentage == null) { - throw new MissingRequiredPropertyException("ElastigroupUpdatePolicyRollConfigArgs", "batchSizePercentage"); - } - return $; - } - } - -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpAutoscalerArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpAutoscalerArgs.java index f49de2b8..9e0ba04d 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpAutoscalerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpAutoscalerArgs.java @@ -18,30 +18,62 @@ public final class OceanNpAutoscalerArgs extends com.pulumi.resources.ResourceAr public static final OceanNpAutoscalerArgs Empty = new OceanNpAutoscalerArgs(); + /** + * Auto Scaling scale down operations. + * + */ @Import(name="autoscaleDown") private @Nullable Output autoscaleDown; + /** + * @return Auto Scaling scale down operations. + * + */ public Optional> autoscaleDown() { return Optional.ofNullable(this.autoscaleDown); } + /** + * Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + * + */ @Import(name="autoscaleHeadroom") private @Nullable Output autoscaleHeadroom; + /** + * @return Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + * + */ public Optional> autoscaleHeadroom() { return Optional.ofNullable(this.autoscaleHeadroom); } + /** + * Enable the Ocean Kubernetes Autoscaler. + * + */ @Import(name="autoscaleIsEnabled") private @Nullable Output autoscaleIsEnabled; + /** + * @return Enable the Ocean Kubernetes Autoscaler. + * + */ public Optional> autoscaleIsEnabled() { return Optional.ofNullable(this.autoscaleIsEnabled); } + /** + * Optionally set upper and lower bounds on the resource usage of the cluster. + * + */ @Import(name="resourceLimits") private @Nullable Output resourceLimits; + /** + * @return Optionally set upper and lower bounds on the resource usage of the cluster. + * + */ public Optional> resourceLimits() { return Optional.ofNullable(this.resourceLimits); } @@ -73,38 +105,86 @@ public Builder(OceanNpAutoscalerArgs defaults) { $ = new OceanNpAutoscalerArgs(Objects.requireNonNull(defaults)); } + /** + * @param autoscaleDown Auto Scaling scale down operations. + * + * @return builder + * + */ public Builder autoscaleDown(@Nullable Output autoscaleDown) { $.autoscaleDown = autoscaleDown; return this; } + /** + * @param autoscaleDown Auto Scaling scale down operations. + * + * @return builder + * + */ public Builder autoscaleDown(OceanNpAutoscalerAutoscaleDownArgs autoscaleDown) { return autoscaleDown(Output.of(autoscaleDown)); } + /** + * @param autoscaleHeadroom Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + * + * @return builder + * + */ public Builder autoscaleHeadroom(@Nullable Output autoscaleHeadroom) { $.autoscaleHeadroom = autoscaleHeadroom; return this; } + /** + * @param autoscaleHeadroom Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + * + * @return builder + * + */ public Builder autoscaleHeadroom(OceanNpAutoscalerAutoscaleHeadroomArgs autoscaleHeadroom) { return autoscaleHeadroom(Output.of(autoscaleHeadroom)); } + /** + * @param autoscaleIsEnabled Enable the Ocean Kubernetes Autoscaler. + * + * @return builder + * + */ public Builder autoscaleIsEnabled(@Nullable Output autoscaleIsEnabled) { $.autoscaleIsEnabled = autoscaleIsEnabled; return this; } + /** + * @param autoscaleIsEnabled Enable the Ocean Kubernetes Autoscaler. + * + * @return builder + * + */ public Builder autoscaleIsEnabled(Boolean autoscaleIsEnabled) { return autoscaleIsEnabled(Output.of(autoscaleIsEnabled)); } + /** + * @param resourceLimits Optionally set upper and lower bounds on the resource usage of the cluster. + * + * @return builder + * + */ public Builder resourceLimits(@Nullable Output resourceLimits) { $.resourceLimits = resourceLimits; return this; } + /** + * @param resourceLimits Optionally set upper and lower bounds on the resource usage of the cluster. + * + * @return builder + * + */ public Builder resourceLimits(OceanNpAutoscalerResourceLimitsArgs resourceLimits) { return resourceLimits(Output.of(resourceLimits)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpFiltersArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpFiltersArgs.java index e7669db6..b9975947 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpFiltersArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpFiltersArgs.java @@ -18,107 +18,231 @@ public final class OceanNpFiltersArgs extends com.pulumi.resources.ResourceArgs public static final OceanNpFiltersArgs Empty = new OceanNpFiltersArgs(); + /** + * In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + */ @Import(name="acceleratedNetworking") private @Nullable Output acceleratedNetworking; + /** + * @return In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + */ public Optional> acceleratedNetworking() { return Optional.ofNullable(this.acceleratedNetworking); } + /** + * The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + */ @Import(name="architectures") private @Nullable Output> architectures; + /** + * @return The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + */ public Optional>> architectures() { return Optional.ofNullable(this.architectures); } + /** + * The filtered vm sizes will support at least one of the classes from this list. + * + */ @Import(name="diskPerformance") private @Nullable Output diskPerformance; + /** + * @return The filtered vm sizes will support at least one of the classes from this list. + * + */ public Optional> diskPerformance() { return Optional.ofNullable(this.diskPerformance); } + /** + * Vm sizes belonging to a series from the list will not be available for scaling + * + */ @Import(name="excludeSeries") private @Nullable Output> excludeSeries; + /** + * @return Vm sizes belonging to a series from the list will not be available for scaling + * + */ public Optional>> excludeSeries() { return Optional.ofNullable(this.excludeSeries); } + /** + * The filtered gpu types will belong to one of the gpu types from this list. + * + * <a id="update-policy"></a> + * + */ @Import(name="gpuTypes") private @Nullable Output> gpuTypes; + /** + * @return The filtered gpu types will belong to one of the gpu types from this list. + * + * <a id="update-policy"></a> + * + */ public Optional>> gpuTypes() { return Optional.ofNullable(this.gpuTypes); } + /** + * Maximum number of GPUs available. + * + */ @Import(name="maxGpu") private @Nullable Output maxGpu; + /** + * @return Maximum number of GPUs available. + * + */ public Optional> maxGpu() { return Optional.ofNullable(this.maxGpu); } + /** + * Maximum amount of Memory (GiB). + * + */ @Import(name="maxMemoryGib") private @Nullable Output maxMemoryGib; + /** + * @return Maximum amount of Memory (GiB). + * + */ public Optional> maxMemoryGib() { return Optional.ofNullable(this.maxMemoryGib); } + /** + * Maximum number of vcpus available. + * + */ @Import(name="maxVcpu") private @Nullable Output maxVcpu; + /** + * @return Maximum number of vcpus available. + * + */ public Optional> maxVcpu() { return Optional.ofNullable(this.maxVcpu); } + /** + * Minimum number of data disks available. + * + */ @Import(name="minDisk") private @Nullable Output minDisk; + /** + * @return Minimum number of data disks available. + * + */ public Optional> minDisk() { return Optional.ofNullable(this.minDisk); } + /** + * Minimum number of GPUs available. + * + */ @Import(name="minGpu") private @Nullable Output minGpu; + /** + * @return Minimum number of GPUs available. + * + */ public Optional> minGpu() { return Optional.ofNullable(this.minGpu); } + /** + * Minimum amount of Memory (GiB). + * + */ @Import(name="minMemoryGib") private @Nullable Output minMemoryGib; + /** + * @return Minimum amount of Memory (GiB). + * + */ public Optional> minMemoryGib() { return Optional.ofNullable(this.minMemoryGib); } + /** + * Minimum number of network interfaces. + * + */ @Import(name="minNics") private @Nullable Output minNics; + /** + * @return Minimum number of network interfaces. + * + */ public Optional> minNics() { return Optional.ofNullable(this.minNics); } + /** + * Minimum number of vcpus available. + * + */ @Import(name="minVcpu") private @Nullable Output minVcpu; + /** + * @return Minimum number of vcpus available. + * + */ public Optional> minVcpu() { return Optional.ofNullable(this.minVcpu); } + /** + * Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + * + */ @Import(name="series") private @Nullable Output> series; + /** + * @return Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + * + */ public Optional>> series() { return Optional.ofNullable(this.series); } + /** + * The filtered vm types will belong to one of the vm types from this list. + * + */ @Import(name="vmTypes") private @Nullable Output> vmTypes; + /** + * @return The filtered vm types will belong to one of the vm types from this list. + * + */ public Optional>> vmTypes() { return Optional.ofNullable(this.vmTypes); } @@ -161,157 +285,373 @@ public Builder(OceanNpFiltersArgs defaults) { $ = new OceanNpFiltersArgs(Objects.requireNonNull(defaults)); } + /** + * @param acceleratedNetworking In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + * @return builder + * + */ public Builder acceleratedNetworking(@Nullable Output acceleratedNetworking) { $.acceleratedNetworking = acceleratedNetworking; return this; } + /** + * @param acceleratedNetworking In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + * @return builder + * + */ public Builder acceleratedNetworking(String acceleratedNetworking) { return acceleratedNetworking(Output.of(acceleratedNetworking)); } + /** + * @param architectures The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + * @return builder + * + */ public Builder architectures(@Nullable Output> architectures) { $.architectures = architectures; return this; } + /** + * @param architectures The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + * @return builder + * + */ public Builder architectures(List architectures) { return architectures(Output.of(architectures)); } + /** + * @param architectures The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + * @return builder + * + */ public Builder architectures(String... architectures) { return architectures(List.of(architectures)); } + /** + * @param diskPerformance The filtered vm sizes will support at least one of the classes from this list. + * + * @return builder + * + */ public Builder diskPerformance(@Nullable Output diskPerformance) { $.diskPerformance = diskPerformance; return this; } + /** + * @param diskPerformance The filtered vm sizes will support at least one of the classes from this list. + * + * @return builder + * + */ public Builder diskPerformance(String diskPerformance) { return diskPerformance(Output.of(diskPerformance)); } + /** + * @param excludeSeries Vm sizes belonging to a series from the list will not be available for scaling + * + * @return builder + * + */ public Builder excludeSeries(@Nullable Output> excludeSeries) { $.excludeSeries = excludeSeries; return this; } + /** + * @param excludeSeries Vm sizes belonging to a series from the list will not be available for scaling + * + * @return builder + * + */ public Builder excludeSeries(List excludeSeries) { return excludeSeries(Output.of(excludeSeries)); } + /** + * @param excludeSeries Vm sizes belonging to a series from the list will not be available for scaling + * + * @return builder + * + */ public Builder excludeSeries(String... excludeSeries) { return excludeSeries(List.of(excludeSeries)); } + /** + * @param gpuTypes The filtered gpu types will belong to one of the gpu types from this list. + * + * <a id="update-policy"></a> + * + * @return builder + * + */ public Builder gpuTypes(@Nullable Output> gpuTypes) { $.gpuTypes = gpuTypes; return this; } + /** + * @param gpuTypes The filtered gpu types will belong to one of the gpu types from this list. + * + * <a id="update-policy"></a> + * + * @return builder + * + */ public Builder gpuTypes(List gpuTypes) { return gpuTypes(Output.of(gpuTypes)); } + /** + * @param gpuTypes The filtered gpu types will belong to one of the gpu types from this list. + * + * <a id="update-policy"></a> + * + * @return builder + * + */ public Builder gpuTypes(String... gpuTypes) { return gpuTypes(List.of(gpuTypes)); } + /** + * @param maxGpu Maximum number of GPUs available. + * + * @return builder + * + */ public Builder maxGpu(@Nullable Output maxGpu) { $.maxGpu = maxGpu; return this; } + /** + * @param maxGpu Maximum number of GPUs available. + * + * @return builder + * + */ public Builder maxGpu(Double maxGpu) { return maxGpu(Output.of(maxGpu)); } + /** + * @param maxMemoryGib Maximum amount of Memory (GiB). + * + * @return builder + * + */ public Builder maxMemoryGib(@Nullable Output maxMemoryGib) { $.maxMemoryGib = maxMemoryGib; return this; } + /** + * @param maxMemoryGib Maximum amount of Memory (GiB). + * + * @return builder + * + */ public Builder maxMemoryGib(Double maxMemoryGib) { return maxMemoryGib(Output.of(maxMemoryGib)); } + /** + * @param maxVcpu Maximum number of vcpus available. + * + * @return builder + * + */ public Builder maxVcpu(@Nullable Output maxVcpu) { $.maxVcpu = maxVcpu; return this; } + /** + * @param maxVcpu Maximum number of vcpus available. + * + * @return builder + * + */ public Builder maxVcpu(Integer maxVcpu) { return maxVcpu(Output.of(maxVcpu)); } + /** + * @param minDisk Minimum number of data disks available. + * + * @return builder + * + */ public Builder minDisk(@Nullable Output minDisk) { $.minDisk = minDisk; return this; } + /** + * @param minDisk Minimum number of data disks available. + * + * @return builder + * + */ public Builder minDisk(Integer minDisk) { return minDisk(Output.of(minDisk)); } + /** + * @param minGpu Minimum number of GPUs available. + * + * @return builder + * + */ public Builder minGpu(@Nullable Output minGpu) { $.minGpu = minGpu; return this; } + /** + * @param minGpu Minimum number of GPUs available. + * + * @return builder + * + */ public Builder minGpu(Double minGpu) { return minGpu(Output.of(minGpu)); } + /** + * @param minMemoryGib Minimum amount of Memory (GiB). + * + * @return builder + * + */ public Builder minMemoryGib(@Nullable Output minMemoryGib) { $.minMemoryGib = minMemoryGib; return this; } + /** + * @param minMemoryGib Minimum amount of Memory (GiB). + * + * @return builder + * + */ public Builder minMemoryGib(Double minMemoryGib) { return minMemoryGib(Output.of(minMemoryGib)); } + /** + * @param minNics Minimum number of network interfaces. + * + * @return builder + * + */ public Builder minNics(@Nullable Output minNics) { $.minNics = minNics; return this; } + /** + * @param minNics Minimum number of network interfaces. + * + * @return builder + * + */ public Builder minNics(Integer minNics) { return minNics(Output.of(minNics)); } + /** + * @param minVcpu Minimum number of vcpus available. + * + * @return builder + * + */ public Builder minVcpu(@Nullable Output minVcpu) { $.minVcpu = minVcpu; return this; } + /** + * @param minVcpu Minimum number of vcpus available. + * + * @return builder + * + */ public Builder minVcpu(Integer minVcpu) { return minVcpu(Output.of(minVcpu)); } + /** + * @param series Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + * + * @return builder + * + */ public Builder series(@Nullable Output> series) { $.series = series; return this; } + /** + * @param series Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + * + * @return builder + * + */ public Builder series(List series) { return series(Output.of(series)); } + /** + * @param series Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + * + * @return builder + * + */ public Builder series(String... series) { return series(List.of(series)); } + /** + * @param vmTypes The filtered vm types will belong to one of the vm types from this list. + * + * @return builder + * + */ public Builder vmTypes(@Nullable Output> vmTypes) { $.vmTypes = vmTypes; return this; } + /** + * @param vmTypes The filtered vm types will belong to one of the vm types from this list. + * + * @return builder + * + */ public Builder vmTypes(List vmTypes) { return vmTypes(Output.of(vmTypes)); } + /** + * @param vmTypes The filtered vm types will belong to one of the vm types from this list. + * + * @return builder + * + */ public Builder vmTypes(String... vmTypes) { return vmTypes(List.of(vmTypes)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpHeadroomArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpHeadroomArgs.java index 4998d96b..c5307aa6 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpHeadroomArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpHeadroomArgs.java @@ -15,30 +15,62 @@ public final class OceanNpHeadroomArgs extends com.pulumi.resources.ResourceArgs public static final OceanNpHeadroomArgs Empty = new OceanNpHeadroomArgs(); + /** + * Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + */ @Import(name="cpuPerUnit") private @Nullable Output cpuPerUnit; + /** + * @return Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + */ public Optional> cpuPerUnit() { return Optional.ofNullable(this.cpuPerUnit); } + /** + * Amount of GPU to allocate for headroom unit. + * + */ @Import(name="gpuPerUnit") private @Nullable Output gpuPerUnit; + /** + * @return Amount of GPU to allocate for headroom unit. + * + */ public Optional> gpuPerUnit() { return Optional.ofNullable(this.gpuPerUnit); } + /** + * Configure the amount of memory (MiB) to allocate the headroom. + * + */ @Import(name="memoryPerUnit") private @Nullable Output memoryPerUnit; + /** + * @return Configure the amount of memory (MiB) to allocate the headroom. + * + */ public Optional> memoryPerUnit() { return Optional.ofNullable(this.memoryPerUnit); } + /** + * The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + */ @Import(name="numOfUnits") private @Nullable Output numOfUnits; + /** + * @return The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + */ public Optional> numOfUnits() { return Optional.ofNullable(this.numOfUnits); } @@ -70,38 +102,86 @@ public Builder(OceanNpHeadroomArgs defaults) { $ = new OceanNpHeadroomArgs(Objects.requireNonNull(defaults)); } + /** + * @param cpuPerUnit Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + * @return builder + * + */ public Builder cpuPerUnit(@Nullable Output cpuPerUnit) { $.cpuPerUnit = cpuPerUnit; return this; } + /** + * @param cpuPerUnit Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + * @return builder + * + */ public Builder cpuPerUnit(Integer cpuPerUnit) { return cpuPerUnit(Output.of(cpuPerUnit)); } + /** + * @param gpuPerUnit Amount of GPU to allocate for headroom unit. + * + * @return builder + * + */ public Builder gpuPerUnit(@Nullable Output gpuPerUnit) { $.gpuPerUnit = gpuPerUnit; return this; } + /** + * @param gpuPerUnit Amount of GPU to allocate for headroom unit. + * + * @return builder + * + */ public Builder gpuPerUnit(Integer gpuPerUnit) { return gpuPerUnit(Output.of(gpuPerUnit)); } + /** + * @param memoryPerUnit Configure the amount of memory (MiB) to allocate the headroom. + * + * @return builder + * + */ public Builder memoryPerUnit(@Nullable Output memoryPerUnit) { $.memoryPerUnit = memoryPerUnit; return this; } + /** + * @param memoryPerUnit Configure the amount of memory (MiB) to allocate the headroom. + * + * @return builder + * + */ public Builder memoryPerUnit(Integer memoryPerUnit) { return memoryPerUnit(Output.of(memoryPerUnit)); } + /** + * @param numOfUnits The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + * @return builder + * + */ public Builder numOfUnits(@Nullable Output numOfUnits) { $.numOfUnits = numOfUnits; return this; } + /** + * @param numOfUnits The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + * @return builder + * + */ public Builder numOfUnits(Integer numOfUnits) { return numOfUnits(Output.of(numOfUnits)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpHealthArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpHealthArgs.java index df8128a9..efa8197f 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpHealthArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpHealthArgs.java @@ -15,9 +15,17 @@ public final class OceanNpHealthArgs extends com.pulumi.resources.ResourceArgs { public static final OceanNpHealthArgs Empty = new OceanNpHealthArgs(); + /** + * The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + * + */ @Import(name="gracePeriod") private @Nullable Output gracePeriod; + /** + * @return The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + * + */ public Optional> gracePeriod() { return Optional.ofNullable(this.gracePeriod); } @@ -46,11 +54,23 @@ public Builder(OceanNpHealthArgs defaults) { $ = new OceanNpHealthArgs(Objects.requireNonNull(defaults)); } + /** + * @param gracePeriod The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + * + * @return builder + * + */ public Builder gracePeriod(@Nullable Output gracePeriod) { $.gracePeriod = gracePeriod; return this; } + /** + * @param gracePeriod The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + * + * @return builder + * + */ public Builder gracePeriod(Integer gracePeriod) { return gracePeriod(Output.of(gracePeriod)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingArgs.java index 6bb94ce9..7b711d8a 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingArgs.java @@ -15,9 +15,17 @@ public final class OceanNpSchedulingArgs extends com.pulumi.resources.ResourceAr public static final OceanNpSchedulingArgs Empty = new OceanNpSchedulingArgs(); + /** + * [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + * + */ @Import(name="shutdownHours") private @Nullable Output shutdownHours; + /** + * @return [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + * + */ public Optional> shutdownHours() { return Optional.ofNullable(this.shutdownHours); } @@ -46,11 +54,23 @@ public Builder(OceanNpSchedulingArgs defaults) { $ = new OceanNpSchedulingArgs(Objects.requireNonNull(defaults)); } + /** + * @param shutdownHours [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + * + * @return builder + * + */ public Builder shutdownHours(@Nullable Output shutdownHours) { $.shutdownHours = shutdownHours; return this; } + /** + * @param shutdownHours [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + * + * @return builder + * + */ public Builder shutdownHours(OceanNpSchedulingShutdownHoursArgs shutdownHours) { return shutdownHours(Output.of(shutdownHours)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpState.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpState.java index 63c5f940..f5b08f98 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpState.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpState.java @@ -55,149 +55,317 @@ public Optional> aksResourceGroupName() { return Optional.ofNullable(this.aksResourceGroupName); } + /** + * The Ocean Kubernetes Autoscaler object. + * + */ @Import(name="autoscaler") private @Nullable Output autoscaler; + /** + * @return The Ocean Kubernetes Autoscaler object. + * + */ public Optional> autoscaler() { return Optional.ofNullable(this.autoscaler); } + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ @Import(name="availabilityZones") private @Nullable Output> availabilityZones; + /** + * @return An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ public Optional>> availabilityZones() { return Optional.ofNullable(this.availabilityZones); } + /** + * Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + * + */ @Import(name="controllerClusterId") private @Nullable Output controllerClusterId; + /** + * @return Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + * + */ public Optional> controllerClusterId() { return Optional.ofNullable(this.controllerClusterId); } + /** + * Enable node public IP. + * + */ @Import(name="enableNodePublicIp") private @Nullable Output enableNodePublicIp; + /** + * @return Enable node public IP. + * + */ public Optional> enableNodePublicIp() { return Optional.ofNullable(this.enableNodePublicIp); } + /** + * If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + * + */ @Import(name="fallbackToOndemand") private @Nullable Output fallbackToOndemand; + /** + * @return If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + * + */ public Optional> fallbackToOndemand() { return Optional.ofNullable(this.fallbackToOndemand); } + /** + * Filters for the VM sizes that can be launched from the virtual node group. + * + */ @Import(name="filters") private @Nullable Output filters; + /** + * @return Filters for the VM sizes that can be launched from the virtual node group. + * + */ public Optional> filters() { return Optional.ofNullable(this.filters); } + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ @Import(name="headrooms") private @Nullable Output> headrooms; + /** + * @return Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ public Optional>> headrooms() { return Optional.ofNullable(this.headrooms); } + /** + * The Ocean AKS Health object. + * + */ @Import(name="health") private @Nullable Output health; + /** + * @return The Ocean AKS Health object. + * + */ public Optional> health() { return Optional.ofNullable(this.health); } + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ @Import(name="kubernetesVersion") private @Nullable Output kubernetesVersion; + /** + * @return The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ public Optional> kubernetesVersion() { return Optional.ofNullable(this.kubernetesVersion); } + /** + * An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + * + */ @Import(name="labels") private @Nullable Output> labels; + /** + * @return An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + * + */ public Optional>> labels() { return Optional.ofNullable(this.labels); } + /** + * Maximum node count limit. + * + */ @Import(name="maxCount") private @Nullable Output maxCount; + /** + * @return Maximum node count limit. + * + */ public Optional> maxCount() { return Optional.ofNullable(this.maxCount); } + /** + * The maximum number of pods per node in the node pools. + * + */ @Import(name="maxPodsPerNode") private @Nullable Output maxPodsPerNode; + /** + * @return The maximum number of pods per node in the node pools. + * + */ public Optional> maxPodsPerNode() { return Optional.ofNullable(this.maxPodsPerNode); } + /** + * Minimum node count limit. + * + */ @Import(name="minCount") private @Nullable Output minCount; + /** + * @return Minimum node count limit. + * + */ public Optional> minCount() { return Optional.ofNullable(this.minCount); } + /** + * Add a name for the Ocean cluster. + * + */ @Import(name="name") private @Nullable Output name; + /** + * @return Add a name for the Ocean cluster. + * + */ public Optional> name() { return Optional.ofNullable(this.name); } + /** + * The size of the OS disk in GB. + * + */ @Import(name="osDiskSizeGb") private @Nullable Output osDiskSizeGb; + /** + * @return The size of the OS disk in GB. + * + */ public Optional> osDiskSizeGb() { return Optional.ofNullable(this.osDiskSizeGb); } + /** + * The type of the OS disk. + * + */ @Import(name="osDiskType") private @Nullable Output osDiskType; + /** + * @return The type of the OS disk. + * + */ public Optional> osDiskType() { return Optional.ofNullable(this.osDiskType); } + /** + * The OS SKU of the OS type. Must correlate with the os type. + * + */ @Import(name="osSku") private @Nullable Output osSku; + /** + * @return The OS SKU of the OS type. Must correlate with the os type. + * + */ public Optional> osSku() { return Optional.ofNullable(this.osSku); } + /** + * The OS type of the OS disk. Can't be modified once set. + * + */ @Import(name="osType") private @Nullable Output osType; + /** + * @return The OS type of the OS disk. Can't be modified once set. + * + */ public Optional> osType() { return Optional.ofNullable(this.osType); } + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ @Import(name="podSubnetIds") private @Nullable Output> podSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ public Optional>> podSubnetIds() { return Optional.ofNullable(this.podSubnetIds); } + /** + * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + * + */ @Import(name="scheduling") private @Nullable Output scheduling; + /** + * @return An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + * + */ public Optional> scheduling() { return Optional.ofNullable(this.scheduling); } + /** + * Percentage of spot VMs to maintain. + * + */ @Import(name="spotPercentage") private @Nullable Output spotPercentage; + /** + * @return Percentage of spot VMs to maintain. + * + */ public Optional> spotPercentage() { return Optional.ofNullable(this.spotPercentage); } @@ -209,9 +377,17 @@ public Optional>> tags() { return Optional.ofNullable(this.tags); } + /** + * Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + */ @Import(name="taints") private @Nullable Output> taints; + /** + * @return Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + */ public Optional>> taints() { return Optional.ofNullable(this.taints); } @@ -223,9 +399,17 @@ public Optional> updatePolicy() { return Optional.ofNullable(this.updatePolicy); } + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ @Import(name="vnetSubnetIds") private @Nullable Output> vnetSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ public Optional>> vnetSubnetIds() { return Optional.ofNullable(this.vnetSubnetIds); } @@ -318,203 +502,473 @@ public Builder aksResourceGroupName(String aksResourceGroupName) { return aksResourceGroupName(Output.of(aksResourceGroupName)); } + /** + * @param autoscaler The Ocean Kubernetes Autoscaler object. + * + * @return builder + * + */ public Builder autoscaler(@Nullable Output autoscaler) { $.autoscaler = autoscaler; return this; } + /** + * @param autoscaler The Ocean Kubernetes Autoscaler object. + * + * @return builder + * + */ public Builder autoscaler(OceanNpAutoscalerArgs autoscaler) { return autoscaler(Output.of(autoscaler)); } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(@Nullable Output> availabilityZones) { $.availabilityZones = availabilityZones; return this; } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(List availabilityZones) { return availabilityZones(Output.of(availabilityZones)); } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(String... availabilityZones) { return availabilityZones(List.of(availabilityZones)); } + /** + * @param controllerClusterId Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + * + * @return builder + * + */ public Builder controllerClusterId(@Nullable Output controllerClusterId) { $.controllerClusterId = controllerClusterId; return this; } + /** + * @param controllerClusterId Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + * + * @return builder + * + */ public Builder controllerClusterId(String controllerClusterId) { return controllerClusterId(Output.of(controllerClusterId)); } + /** + * @param enableNodePublicIp Enable node public IP. + * + * @return builder + * + */ public Builder enableNodePublicIp(@Nullable Output enableNodePublicIp) { $.enableNodePublicIp = enableNodePublicIp; return this; } + /** + * @param enableNodePublicIp Enable node public IP. + * + * @return builder + * + */ public Builder enableNodePublicIp(Boolean enableNodePublicIp) { return enableNodePublicIp(Output.of(enableNodePublicIp)); } + /** + * @param fallbackToOndemand If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + * + * @return builder + * + */ public Builder fallbackToOndemand(@Nullable Output fallbackToOndemand) { $.fallbackToOndemand = fallbackToOndemand; return this; } + /** + * @param fallbackToOndemand If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + * + * @return builder + * + */ public Builder fallbackToOndemand(Boolean fallbackToOndemand) { return fallbackToOndemand(Output.of(fallbackToOndemand)); } + /** + * @param filters Filters for the VM sizes that can be launched from the virtual node group. + * + * @return builder + * + */ public Builder filters(@Nullable Output filters) { $.filters = filters; return this; } + /** + * @param filters Filters for the VM sizes that can be launched from the virtual node group. + * + * @return builder + * + */ public Builder filters(OceanNpFiltersArgs filters) { return filters(Output.of(filters)); } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(@Nullable Output> headrooms) { $.headrooms = headrooms; return this; } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(List headrooms) { return headrooms(Output.of(headrooms)); } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(OceanNpHeadroomArgs... headrooms) { return headrooms(List.of(headrooms)); } + /** + * @param health The Ocean AKS Health object. + * + * @return builder + * + */ public Builder health(@Nullable Output health) { $.health = health; return this; } + /** + * @param health The Ocean AKS Health object. + * + * @return builder + * + */ public Builder health(OceanNpHealthArgs health) { return health(Output.of(health)); } + /** + * @param kubernetesVersion The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + * @return builder + * + */ public Builder kubernetesVersion(@Nullable Output kubernetesVersion) { $.kubernetesVersion = kubernetesVersion; return this; } + /** + * @param kubernetesVersion The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + * @return builder + * + */ public Builder kubernetesVersion(String kubernetesVersion) { return kubernetesVersion(Output.of(kubernetesVersion)); } + /** + * @param labels An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + * + * @return builder + * + */ public Builder labels(@Nullable Output> labels) { $.labels = labels; return this; } + /** + * @param labels An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + * + * @return builder + * + */ public Builder labels(Map labels) { return labels(Output.of(labels)); } + /** + * @param maxCount Maximum node count limit. + * + * @return builder + * + */ public Builder maxCount(@Nullable Output maxCount) { $.maxCount = maxCount; return this; } + /** + * @param maxCount Maximum node count limit. + * + * @return builder + * + */ public Builder maxCount(Integer maxCount) { return maxCount(Output.of(maxCount)); } + /** + * @param maxPodsPerNode The maximum number of pods per node in the node pools. + * + * @return builder + * + */ public Builder maxPodsPerNode(@Nullable Output maxPodsPerNode) { $.maxPodsPerNode = maxPodsPerNode; return this; } + /** + * @param maxPodsPerNode The maximum number of pods per node in the node pools. + * + * @return builder + * + */ public Builder maxPodsPerNode(Integer maxPodsPerNode) { return maxPodsPerNode(Output.of(maxPodsPerNode)); } + /** + * @param minCount Minimum node count limit. + * + * @return builder + * + */ public Builder minCount(@Nullable Output minCount) { $.minCount = minCount; return this; } + /** + * @param minCount Minimum node count limit. + * + * @return builder + * + */ public Builder minCount(Integer minCount) { return minCount(Output.of(minCount)); } + /** + * @param name Add a name for the Ocean cluster. + * + * @return builder + * + */ public Builder name(@Nullable Output name) { $.name = name; return this; } + /** + * @param name Add a name for the Ocean cluster. + * + * @return builder + * + */ public Builder name(String name) { return name(Output.of(name)); } + /** + * @param osDiskSizeGb The size of the OS disk in GB. + * + * @return builder + * + */ public Builder osDiskSizeGb(@Nullable Output osDiskSizeGb) { $.osDiskSizeGb = osDiskSizeGb; return this; } + /** + * @param osDiskSizeGb The size of the OS disk in GB. + * + * @return builder + * + */ public Builder osDiskSizeGb(Integer osDiskSizeGb) { return osDiskSizeGb(Output.of(osDiskSizeGb)); } + /** + * @param osDiskType The type of the OS disk. + * + * @return builder + * + */ public Builder osDiskType(@Nullable Output osDiskType) { $.osDiskType = osDiskType; return this; } + /** + * @param osDiskType The type of the OS disk. + * + * @return builder + * + */ public Builder osDiskType(String osDiskType) { return osDiskType(Output.of(osDiskType)); } + /** + * @param osSku The OS SKU of the OS type. Must correlate with the os type. + * + * @return builder + * + */ public Builder osSku(@Nullable Output osSku) { $.osSku = osSku; return this; } + /** + * @param osSku The OS SKU of the OS type. Must correlate with the os type. + * + * @return builder + * + */ public Builder osSku(String osSku) { return osSku(Output.of(osSku)); } + /** + * @param osType The OS type of the OS disk. Can't be modified once set. + * + * @return builder + * + */ public Builder osType(@Nullable Output osType) { $.osType = osType; return this; } + /** + * @param osType The OS type of the OS disk. Can't be modified once set. + * + * @return builder + * + */ public Builder osType(String osType) { return osType(Output.of(osType)); } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(@Nullable Output> podSubnetIds) { $.podSubnetIds = podSubnetIds; return this; } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(List podSubnetIds) { return podSubnetIds(Output.of(podSubnetIds)); } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(String... podSubnetIds) { return podSubnetIds(List.of(podSubnetIds)); } + /** + * @param scheduling An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + * + * @return builder + * + */ public Builder scheduling(@Nullable Output scheduling) { $.scheduling = scheduling; return this; } + /** + * @param scheduling An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + * + * @return builder + * + */ public Builder scheduling(OceanNpSchedulingArgs scheduling) { return scheduling(Output.of(scheduling)); } + /** + * @param spotPercentage Percentage of spot VMs to maintain. + * + * @return builder + * + */ public Builder spotPercentage(@Nullable Output spotPercentage) { $.spotPercentage = spotPercentage; return this; } + /** + * @param spotPercentage Percentage of spot VMs to maintain. + * + * @return builder + * + */ public Builder spotPercentage(Integer spotPercentage) { return spotPercentage(Output.of(spotPercentage)); } @@ -528,15 +982,33 @@ public Builder tags(Map tags) { return tags(Output.of(tags)); } + /** + * @param taints Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + * @return builder + * + */ public Builder taints(@Nullable Output> taints) { $.taints = taints; return this; } + /** + * @param taints Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + * @return builder + * + */ public Builder taints(List taints) { return taints(Output.of(taints)); } + /** + * @param taints Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + * + * @return builder + * + */ public Builder taints(OceanNpTaintArgs... taints) { return taints(List.of(taints)); } @@ -550,15 +1022,33 @@ public Builder updatePolicy(OceanNpUpdatePolicyArgs updatePolicy) { return updatePolicy(Output.of(updatePolicy)); } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(@Nullable Output> vnetSubnetIds) { $.vnetSubnetIds = vnetSubnetIds; return this; } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(List vnetSubnetIds) { return vnetSubnetIds(Output.of(vnetSubnetIds)); } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(String... vnetSubnetIds) { return vnetSubnetIds(List.of(vnetSubnetIds)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpTaintArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpTaintArgs.java index 03cd34ab..06ef4cb0 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpTaintArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpTaintArgs.java @@ -14,23 +14,47 @@ public final class OceanNpTaintArgs extends com.pulumi.resources.ResourceArgs { public static final OceanNpTaintArgs Empty = new OceanNpTaintArgs(); + /** + * Set taint effect. + * + */ @Import(name="effect", required=true) private Output effect; + /** + * @return Set taint effect. + * + */ public Output effect() { return this.effect; } + /** + * Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + * + */ @Import(name="key", required=true) private Output key; + /** + * @return Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + * + */ public Output key() { return this.key; } + /** + * Set taint value. + * + */ @Import(name="value", required=true) private Output value; + /** + * @return Set taint value. + * + */ public Output value() { return this.value; } @@ -61,29 +85,65 @@ public Builder(OceanNpTaintArgs defaults) { $ = new OceanNpTaintArgs(Objects.requireNonNull(defaults)); } + /** + * @param effect Set taint effect. + * + * @return builder + * + */ public Builder effect(Output effect) { $.effect = effect; return this; } + /** + * @param effect Set taint effect. + * + * @return builder + * + */ public Builder effect(String effect) { return effect(Output.of(effect)); } + /** + * @param key Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + * + * @return builder + * + */ public Builder key(Output key) { $.key = key; return this; } + /** + * @param key Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + * + * @return builder + * + */ public Builder key(String key) { return key(Output.of(key)); } + /** + * @param value Set taint value. + * + * @return builder + * + */ public Builder value(Output value) { $.value = value; return this; } + /** + * @param value Set taint value. + * + * @return builder + * + */ public Builder value(String value) { return value(Output.of(value)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupFiltersArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupFiltersArgs.java index b0b22c6b..5f4af068 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupFiltersArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupFiltersArgs.java @@ -18,107 +18,229 @@ public final class OceanNpVirtualNodeGroupFiltersArgs extends com.pulumi.resourc public static final OceanNpVirtualNodeGroupFiltersArgs Empty = new OceanNpVirtualNodeGroupFiltersArgs(); + /** + * In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + */ @Import(name="acceleratedNetworking") private @Nullable Output acceleratedNetworking; + /** + * @return In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + */ public Optional> acceleratedNetworking() { return Optional.ofNullable(this.acceleratedNetworking); } + /** + * The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + */ @Import(name="architectures") private @Nullable Output> architectures; + /** + * @return The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + */ public Optional>> architectures() { return Optional.ofNullable(this.architectures); } + /** + * The filtered vm sizes will support at least one of the classes from this list. + * + */ @Import(name="diskPerformance") private @Nullable Output diskPerformance; + /** + * @return The filtered vm sizes will support at least one of the classes from this list. + * + */ public Optional> diskPerformance() { return Optional.ofNullable(this.diskPerformance); } + /** + * Vm sizes belonging to a series from the list will not be available for scaling. + * + */ @Import(name="excludeSeries") private @Nullable Output> excludeSeries; + /** + * @return Vm sizes belonging to a series from the list will not be available for scaling. + * + */ public Optional>> excludeSeries() { return Optional.ofNullable(this.excludeSeries); } + /** + * The filtered gpu types will belong to one of the gpu types from this list. + * <a id="update-policy"></a> + * + */ @Import(name="gpuTypes") private @Nullable Output> gpuTypes; + /** + * @return The filtered gpu types will belong to one of the gpu types from this list. + * <a id="update-policy"></a> + * + */ public Optional>> gpuTypes() { return Optional.ofNullable(this.gpuTypes); } + /** + * Maximum number of GPUs available. + * + */ @Import(name="maxGpu") private @Nullable Output maxGpu; + /** + * @return Maximum number of GPUs available. + * + */ public Optional> maxGpu() { return Optional.ofNullable(this.maxGpu); } + /** + * Maximum amount of Memory (GiB). + * + */ @Import(name="maxMemoryGib") private @Nullable Output maxMemoryGib; + /** + * @return Maximum amount of Memory (GiB). + * + */ public Optional> maxMemoryGib() { return Optional.ofNullable(this.maxMemoryGib); } + /** + * Maximum number of vcpus available. + * + */ @Import(name="maxVcpu") private @Nullable Output maxVcpu; + /** + * @return Maximum number of vcpus available. + * + */ public Optional> maxVcpu() { return Optional.ofNullable(this.maxVcpu); } + /** + * Minimum number of data disks available. + * + */ @Import(name="minDisk") private @Nullable Output minDisk; + /** + * @return Minimum number of data disks available. + * + */ public Optional> minDisk() { return Optional.ofNullable(this.minDisk); } + /** + * Minimum number of GPUs available. + * + */ @Import(name="minGpu") private @Nullable Output minGpu; + /** + * @return Minimum number of GPUs available. + * + */ public Optional> minGpu() { return Optional.ofNullable(this.minGpu); } + /** + * Minimum amount of Memory (GiB). + * + */ @Import(name="minMemoryGib") private @Nullable Output minMemoryGib; + /** + * @return Minimum amount of Memory (GiB). + * + */ public Optional> minMemoryGib() { return Optional.ofNullable(this.minMemoryGib); } + /** + * Minimum number of network interfaces. + * + */ @Import(name="minNics") private @Nullable Output minNics; + /** + * @return Minimum number of network interfaces. + * + */ public Optional> minNics() { return Optional.ofNullable(this.minNics); } + /** + * Minimum number of vcpus available. + * + */ @Import(name="minVcpu") private @Nullable Output minVcpu; + /** + * @return Minimum number of vcpus available. + * + */ public Optional> minVcpu() { return Optional.ofNullable(this.minVcpu); } + /** + * Vm sizes belonging to a series from the list will be available for scaling. + * + */ @Import(name="series") private @Nullable Output> series; + /** + * @return Vm sizes belonging to a series from the list will be available for scaling. + * + */ public Optional>> series() { return Optional.ofNullable(this.series); } + /** + * The filtered vm types will belong to one of the vm types from this list. + * + */ @Import(name="vmTypes") private @Nullable Output> vmTypes; + /** + * @return The filtered vm types will belong to one of the vm types from this list. + * + */ public Optional>> vmTypes() { return Optional.ofNullable(this.vmTypes); } @@ -161,157 +283,370 @@ public Builder(OceanNpVirtualNodeGroupFiltersArgs defaults) { $ = new OceanNpVirtualNodeGroupFiltersArgs(Objects.requireNonNull(defaults)); } + /** + * @param acceleratedNetworking In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + * @return builder + * + */ public Builder acceleratedNetworking(@Nullable Output acceleratedNetworking) { $.acceleratedNetworking = acceleratedNetworking; return this; } + /** + * @param acceleratedNetworking In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + * @return builder + * + */ public Builder acceleratedNetworking(String acceleratedNetworking) { return acceleratedNetworking(Output.of(acceleratedNetworking)); } + /** + * @param architectures The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + * @return builder + * + */ public Builder architectures(@Nullable Output> architectures) { $.architectures = architectures; return this; } + /** + * @param architectures The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + * @return builder + * + */ public Builder architectures(List architectures) { return architectures(Output.of(architectures)); } + /** + * @param architectures The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + * @return builder + * + */ public Builder architectures(String... architectures) { return architectures(List.of(architectures)); } + /** + * @param diskPerformance The filtered vm sizes will support at least one of the classes from this list. + * + * @return builder + * + */ public Builder diskPerformance(@Nullable Output diskPerformance) { $.diskPerformance = diskPerformance; return this; } + /** + * @param diskPerformance The filtered vm sizes will support at least one of the classes from this list. + * + * @return builder + * + */ public Builder diskPerformance(String diskPerformance) { return diskPerformance(Output.of(diskPerformance)); } + /** + * @param excludeSeries Vm sizes belonging to a series from the list will not be available for scaling. + * + * @return builder + * + */ public Builder excludeSeries(@Nullable Output> excludeSeries) { $.excludeSeries = excludeSeries; return this; } + /** + * @param excludeSeries Vm sizes belonging to a series from the list will not be available for scaling. + * + * @return builder + * + */ public Builder excludeSeries(List excludeSeries) { return excludeSeries(Output.of(excludeSeries)); } + /** + * @param excludeSeries Vm sizes belonging to a series from the list will not be available for scaling. + * + * @return builder + * + */ public Builder excludeSeries(String... excludeSeries) { return excludeSeries(List.of(excludeSeries)); } + /** + * @param gpuTypes The filtered gpu types will belong to one of the gpu types from this list. + * <a id="update-policy"></a> + * + * @return builder + * + */ public Builder gpuTypes(@Nullable Output> gpuTypes) { $.gpuTypes = gpuTypes; return this; } + /** + * @param gpuTypes The filtered gpu types will belong to one of the gpu types from this list. + * <a id="update-policy"></a> + * + * @return builder + * + */ public Builder gpuTypes(List gpuTypes) { return gpuTypes(Output.of(gpuTypes)); } + /** + * @param gpuTypes The filtered gpu types will belong to one of the gpu types from this list. + * <a id="update-policy"></a> + * + * @return builder + * + */ public Builder gpuTypes(String... gpuTypes) { return gpuTypes(List.of(gpuTypes)); } + /** + * @param maxGpu Maximum number of GPUs available. + * + * @return builder + * + */ public Builder maxGpu(@Nullable Output maxGpu) { $.maxGpu = maxGpu; return this; } + /** + * @param maxGpu Maximum number of GPUs available. + * + * @return builder + * + */ public Builder maxGpu(Double maxGpu) { return maxGpu(Output.of(maxGpu)); } + /** + * @param maxMemoryGib Maximum amount of Memory (GiB). + * + * @return builder + * + */ public Builder maxMemoryGib(@Nullable Output maxMemoryGib) { $.maxMemoryGib = maxMemoryGib; return this; } + /** + * @param maxMemoryGib Maximum amount of Memory (GiB). + * + * @return builder + * + */ public Builder maxMemoryGib(Double maxMemoryGib) { return maxMemoryGib(Output.of(maxMemoryGib)); } + /** + * @param maxVcpu Maximum number of vcpus available. + * + * @return builder + * + */ public Builder maxVcpu(@Nullable Output maxVcpu) { $.maxVcpu = maxVcpu; return this; } + /** + * @param maxVcpu Maximum number of vcpus available. + * + * @return builder + * + */ public Builder maxVcpu(Integer maxVcpu) { return maxVcpu(Output.of(maxVcpu)); } + /** + * @param minDisk Minimum number of data disks available. + * + * @return builder + * + */ public Builder minDisk(@Nullable Output minDisk) { $.minDisk = minDisk; return this; } + /** + * @param minDisk Minimum number of data disks available. + * + * @return builder + * + */ public Builder minDisk(Integer minDisk) { return minDisk(Output.of(minDisk)); } + /** + * @param minGpu Minimum number of GPUs available. + * + * @return builder + * + */ public Builder minGpu(@Nullable Output minGpu) { $.minGpu = minGpu; return this; } + /** + * @param minGpu Minimum number of GPUs available. + * + * @return builder + * + */ public Builder minGpu(Double minGpu) { return minGpu(Output.of(minGpu)); } + /** + * @param minMemoryGib Minimum amount of Memory (GiB). + * + * @return builder + * + */ public Builder minMemoryGib(@Nullable Output minMemoryGib) { $.minMemoryGib = minMemoryGib; return this; } + /** + * @param minMemoryGib Minimum amount of Memory (GiB). + * + * @return builder + * + */ public Builder minMemoryGib(Double minMemoryGib) { return minMemoryGib(Output.of(minMemoryGib)); } + /** + * @param minNics Minimum number of network interfaces. + * + * @return builder + * + */ public Builder minNics(@Nullable Output minNics) { $.minNics = minNics; return this; } + /** + * @param minNics Minimum number of network interfaces. + * + * @return builder + * + */ public Builder minNics(Integer minNics) { return minNics(Output.of(minNics)); } + /** + * @param minVcpu Minimum number of vcpus available. + * + * @return builder + * + */ public Builder minVcpu(@Nullable Output minVcpu) { $.minVcpu = minVcpu; return this; } + /** + * @param minVcpu Minimum number of vcpus available. + * + * @return builder + * + */ public Builder minVcpu(Integer minVcpu) { return minVcpu(Output.of(minVcpu)); } + /** + * @param series Vm sizes belonging to a series from the list will be available for scaling. + * + * @return builder + * + */ public Builder series(@Nullable Output> series) { $.series = series; return this; } + /** + * @param series Vm sizes belonging to a series from the list will be available for scaling. + * + * @return builder + * + */ public Builder series(List series) { return series(Output.of(series)); } + /** + * @param series Vm sizes belonging to a series from the list will be available for scaling. + * + * @return builder + * + */ public Builder series(String... series) { return series(List.of(series)); } + /** + * @param vmTypes The filtered vm types will belong to one of the vm types from this list. + * + * @return builder + * + */ public Builder vmTypes(@Nullable Output> vmTypes) { $.vmTypes = vmTypes; return this; } + /** + * @param vmTypes The filtered vm types will belong to one of the vm types from this list. + * + * @return builder + * + */ public Builder vmTypes(List vmTypes) { return vmTypes(Output.of(vmTypes)); } + /** + * @param vmTypes The filtered vm types will belong to one of the vm types from this list. + * + * @return builder + * + */ public Builder vmTypes(String... vmTypes) { return vmTypes(List.of(vmTypes)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupHeadroomArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupHeadroomArgs.java index 4138f6b3..842d74d3 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupHeadroomArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupHeadroomArgs.java @@ -15,30 +15,62 @@ public final class OceanNpVirtualNodeGroupHeadroomArgs extends com.pulumi.resour public static final OceanNpVirtualNodeGroupHeadroomArgs Empty = new OceanNpVirtualNodeGroupHeadroomArgs(); + /** + * Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + */ @Import(name="cpuPerUnit") private @Nullable Output cpuPerUnit; + /** + * @return Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + */ public Optional> cpuPerUnit() { return Optional.ofNullable(this.cpuPerUnit); } + /** + * Amount of GPU to allocate for headroom unit. + * + */ @Import(name="gpuPerUnit") private @Nullable Output gpuPerUnit; + /** + * @return Amount of GPU to allocate for headroom unit. + * + */ public Optional> gpuPerUnit() { return Optional.ofNullable(this.gpuPerUnit); } + /** + * Configure the amount of memory (MiB) to allocate the headroom. + * + */ @Import(name="memoryPerUnit") private @Nullable Output memoryPerUnit; + /** + * @return Configure the amount of memory (MiB) to allocate the headroom. + * + */ public Optional> memoryPerUnit() { return Optional.ofNullable(this.memoryPerUnit); } + /** + * The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + */ @Import(name="numOfUnits") private @Nullable Output numOfUnits; + /** + * @return The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + */ public Optional> numOfUnits() { return Optional.ofNullable(this.numOfUnits); } @@ -70,38 +102,86 @@ public Builder(OceanNpVirtualNodeGroupHeadroomArgs defaults) { $ = new OceanNpVirtualNodeGroupHeadroomArgs(Objects.requireNonNull(defaults)); } + /** + * @param cpuPerUnit Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + * @return builder + * + */ public Builder cpuPerUnit(@Nullable Output cpuPerUnit) { $.cpuPerUnit = cpuPerUnit; return this; } + /** + * @param cpuPerUnit Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + * @return builder + * + */ public Builder cpuPerUnit(Integer cpuPerUnit) { return cpuPerUnit(Output.of(cpuPerUnit)); } + /** + * @param gpuPerUnit Amount of GPU to allocate for headroom unit. + * + * @return builder + * + */ public Builder gpuPerUnit(@Nullable Output gpuPerUnit) { $.gpuPerUnit = gpuPerUnit; return this; } + /** + * @param gpuPerUnit Amount of GPU to allocate for headroom unit. + * + * @return builder + * + */ public Builder gpuPerUnit(Integer gpuPerUnit) { return gpuPerUnit(Output.of(gpuPerUnit)); } + /** + * @param memoryPerUnit Configure the amount of memory (MiB) to allocate the headroom. + * + * @return builder + * + */ public Builder memoryPerUnit(@Nullable Output memoryPerUnit) { $.memoryPerUnit = memoryPerUnit; return this; } + /** + * @param memoryPerUnit Configure the amount of memory (MiB) to allocate the headroom. + * + * @return builder + * + */ public Builder memoryPerUnit(Integer memoryPerUnit) { return memoryPerUnit(Output.of(memoryPerUnit)); } + /** + * @param numOfUnits The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + * @return builder + * + */ public Builder numOfUnits(@Nullable Output numOfUnits) { $.numOfUnits = numOfUnits; return this; } + /** + * @param numOfUnits The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + * @return builder + * + */ public Builder numOfUnits(Integer numOfUnits) { return numOfUnits(Output.of(numOfUnits)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupState.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupState.java index b10caa2d..d65275ed 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupState.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupState.java @@ -24,128 +24,272 @@ public final class OceanNpVirtualNodeGroupState extends com.pulumi.resources.Res public static final OceanNpVirtualNodeGroupState Empty = new OceanNpVirtualNodeGroupState(); + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ @Import(name="availabilityZones") private @Nullable Output> availabilityZones; + /** + * @return An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + */ public Optional>> availabilityZones() { return Optional.ofNullable(this.availabilityZones); } + /** + * Enable node public IP. + * + */ @Import(name="enableNodePublicIp") private @Nullable Output enableNodePublicIp; + /** + * @return Enable node public IP. + * + */ public Optional> enableNodePublicIp() { return Optional.ofNullable(this.enableNodePublicIp); } + /** + * If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + * + */ @Import(name="fallbackToOndemand") private @Nullable Output fallbackToOndemand; + /** + * @return If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + * + */ public Optional> fallbackToOndemand() { return Optional.ofNullable(this.fallbackToOndemand); } + /** + * Filters for the VM sizes that can be launched from the virtual node group. + * + */ @Import(name="filters") private @Nullable Output filters; + /** + * @return Filters for the VM sizes that can be launched from the virtual node group. + * + */ public Optional> filters() { return Optional.ofNullable(this.filters); } + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ @Import(name="headrooms") private @Nullable Output> headrooms; + /** + * @return Specify the custom headroom per VNG. Provide a list of headroom objects. + * + */ public Optional>> headrooms() { return Optional.ofNullable(this.headrooms); } + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ @Import(name="kubernetesVersion") private @Nullable Output kubernetesVersion; + /** + * @return The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + */ public Optional> kubernetesVersion() { return Optional.ofNullable(this.kubernetesVersion); } + /** + * An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + * + */ @Import(name="labels") private @Nullable Output> labels; + /** + * @return An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + * + */ public Optional>> labels() { return Optional.ofNullable(this.labels); } + /** + * Maximum node count limit. + * + */ @Import(name="maxCount") private @Nullable Output maxCount; + /** + * @return Maximum node count limit. + * + */ public Optional> maxCount() { return Optional.ofNullable(this.maxCount); } + /** + * The maximum number of pods per node in the node pools. + * + */ @Import(name="maxPodsPerNode") private @Nullable Output maxPodsPerNode; + /** + * @return The maximum number of pods per node in the node pools. + * + */ public Optional> maxPodsPerNode() { return Optional.ofNullable(this.maxPodsPerNode); } + /** + * Minimum node count limit. + * + */ @Import(name="minCount") private @Nullable Output minCount; + /** + * @return Minimum node count limit. + * + */ public Optional> minCount() { return Optional.ofNullable(this.minCount); } + /** + * Enter a name for the virtual node group. + * + */ @Import(name="name") private @Nullable Output name; + /** + * @return Enter a name for the virtual node group. + * + */ public Optional> name() { return Optional.ofNullable(this.name); } + /** + * The Ocean cluster identifier. Required for Launch Spec creation. + * + */ @Import(name="oceanId") private @Nullable Output oceanId; + /** + * @return The Ocean cluster identifier. Required for Launch Spec creation. + * + */ public Optional> oceanId() { return Optional.ofNullable(this.oceanId); } + /** + * The size of the OS disk in GB. + * + */ @Import(name="osDiskSizeGb") private @Nullable Output osDiskSizeGb; + /** + * @return The size of the OS disk in GB. + * + */ public Optional> osDiskSizeGb() { return Optional.ofNullable(this.osDiskSizeGb); } + /** + * The type of the OS disk. + * + */ @Import(name="osDiskType") private @Nullable Output osDiskType; + /** + * @return The type of the OS disk. + * + */ public Optional> osDiskType() { return Optional.ofNullable(this.osDiskType); } + /** + * The OS SKU of the OS type. Must correlate with the os type. + * + */ @Import(name="osSku") private @Nullable Output osSku; + /** + * @return The OS SKU of the OS type. Must correlate with the os type. + * + */ public Optional> osSku() { return Optional.ofNullable(this.osSku); } + /** + * The OS type of the OS disk. Can't be modified once set. + * + */ @Import(name="osType") private @Nullable Output osType; + /** + * @return The OS type of the OS disk. Can't be modified once set. + * + */ public Optional> osType() { return Optional.ofNullable(this.osType); } + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ @Import(name="podSubnetIds") private @Nullable Output> podSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + */ public Optional>> podSubnetIds() { return Optional.ofNullable(this.podSubnetIds); } + /** + * Percentage of spot VMs to maintain. + * + */ @Import(name="spotPercentage") private @Nullable Output spotPercentage; + /** + * @return Percentage of spot VMs to maintain. + * + */ public Optional> spotPercentage() { return Optional.ofNullable(this.spotPercentage); } @@ -157,9 +301,17 @@ public Optional>> tags() { return Optional.ofNullable(this.tags); } + /** + * Add taints to a virtual node group. + * + */ @Import(name="taints") private @Nullable Output> taints; + /** + * @return Add taints to a virtual node group. + * + */ public Optional>> taints() { return Optional.ofNullable(this.taints); } @@ -171,9 +323,17 @@ public Optional> updatePolicy() return Optional.ofNullable(this.updatePolicy); } + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ @Import(name="vnetSubnetIds") private @Nullable Output> vnetSubnetIds; + /** + * @return The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + */ public Optional>> vnetSubnetIds() { return Optional.ofNullable(this.vnetSubnetIds); } @@ -223,176 +383,410 @@ public Builder(OceanNpVirtualNodeGroupState defaults) { $ = new OceanNpVirtualNodeGroupState(Objects.requireNonNull(defaults)); } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(@Nullable Output> availabilityZones) { $.availabilityZones = availabilityZones; return this; } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(List availabilityZones) { return availabilityZones(Output.of(availabilityZones)); } + /** + * @param availabilityZones An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + * + * @return builder + * + */ public Builder availabilityZones(String... availabilityZones) { return availabilityZones(List.of(availabilityZones)); } + /** + * @param enableNodePublicIp Enable node public IP. + * + * @return builder + * + */ public Builder enableNodePublicIp(@Nullable Output enableNodePublicIp) { $.enableNodePublicIp = enableNodePublicIp; return this; } + /** + * @param enableNodePublicIp Enable node public IP. + * + * @return builder + * + */ public Builder enableNodePublicIp(Boolean enableNodePublicIp) { return enableNodePublicIp(Output.of(enableNodePublicIp)); } + /** + * @param fallbackToOndemand If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + * + * @return builder + * + */ public Builder fallbackToOndemand(@Nullable Output fallbackToOndemand) { $.fallbackToOndemand = fallbackToOndemand; return this; } + /** + * @param fallbackToOndemand If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + * + * @return builder + * + */ public Builder fallbackToOndemand(Boolean fallbackToOndemand) { return fallbackToOndemand(Output.of(fallbackToOndemand)); } + /** + * @param filters Filters for the VM sizes that can be launched from the virtual node group. + * + * @return builder + * + */ public Builder filters(@Nullable Output filters) { $.filters = filters; return this; } + /** + * @param filters Filters for the VM sizes that can be launched from the virtual node group. + * + * @return builder + * + */ public Builder filters(OceanNpVirtualNodeGroupFiltersArgs filters) { return filters(Output.of(filters)); } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(@Nullable Output> headrooms) { $.headrooms = headrooms; return this; } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(List headrooms) { return headrooms(Output.of(headrooms)); } + /** + * @param headrooms Specify the custom headroom per VNG. Provide a list of headroom objects. + * + * @return builder + * + */ public Builder headrooms(OceanNpVirtualNodeGroupHeadroomArgs... headrooms) { return headrooms(List.of(headrooms)); } + /** + * @param kubernetesVersion The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + * @return builder + * + */ public Builder kubernetesVersion(@Nullable Output kubernetesVersion) { $.kubernetesVersion = kubernetesVersion; return this; } + /** + * @param kubernetesVersion The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + * + * @return builder + * + */ public Builder kubernetesVersion(String kubernetesVersion) { return kubernetesVersion(Output.of(kubernetesVersion)); } + /** + * @param labels An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + * + * @return builder + * + */ public Builder labels(@Nullable Output> labels) { $.labels = labels; return this; } + /** + * @param labels An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + * + * @return builder + * + */ public Builder labels(Map labels) { return labels(Output.of(labels)); } + /** + * @param maxCount Maximum node count limit. + * + * @return builder + * + */ public Builder maxCount(@Nullable Output maxCount) { $.maxCount = maxCount; return this; } + /** + * @param maxCount Maximum node count limit. + * + * @return builder + * + */ public Builder maxCount(Integer maxCount) { return maxCount(Output.of(maxCount)); } + /** + * @param maxPodsPerNode The maximum number of pods per node in the node pools. + * + * @return builder + * + */ public Builder maxPodsPerNode(@Nullable Output maxPodsPerNode) { $.maxPodsPerNode = maxPodsPerNode; return this; } + /** + * @param maxPodsPerNode The maximum number of pods per node in the node pools. + * + * @return builder + * + */ public Builder maxPodsPerNode(Integer maxPodsPerNode) { return maxPodsPerNode(Output.of(maxPodsPerNode)); } + /** + * @param minCount Minimum node count limit. + * + * @return builder + * + */ public Builder minCount(@Nullable Output minCount) { $.minCount = minCount; return this; } + /** + * @param minCount Minimum node count limit. + * + * @return builder + * + */ public Builder minCount(Integer minCount) { return minCount(Output.of(minCount)); } + /** + * @param name Enter a name for the virtual node group. + * + * @return builder + * + */ public Builder name(@Nullable Output name) { $.name = name; return this; } + /** + * @param name Enter a name for the virtual node group. + * + * @return builder + * + */ public Builder name(String name) { return name(Output.of(name)); } + /** + * @param oceanId The Ocean cluster identifier. Required for Launch Spec creation. + * + * @return builder + * + */ public Builder oceanId(@Nullable Output oceanId) { $.oceanId = oceanId; return this; } + /** + * @param oceanId The Ocean cluster identifier. Required for Launch Spec creation. + * + * @return builder + * + */ public Builder oceanId(String oceanId) { return oceanId(Output.of(oceanId)); } + /** + * @param osDiskSizeGb The size of the OS disk in GB. + * + * @return builder + * + */ public Builder osDiskSizeGb(@Nullable Output osDiskSizeGb) { $.osDiskSizeGb = osDiskSizeGb; return this; } + /** + * @param osDiskSizeGb The size of the OS disk in GB. + * + * @return builder + * + */ public Builder osDiskSizeGb(Integer osDiskSizeGb) { return osDiskSizeGb(Output.of(osDiskSizeGb)); } + /** + * @param osDiskType The type of the OS disk. + * + * @return builder + * + */ public Builder osDiskType(@Nullable Output osDiskType) { $.osDiskType = osDiskType; return this; } + /** + * @param osDiskType The type of the OS disk. + * + * @return builder + * + */ public Builder osDiskType(String osDiskType) { return osDiskType(Output.of(osDiskType)); } + /** + * @param osSku The OS SKU of the OS type. Must correlate with the os type. + * + * @return builder + * + */ public Builder osSku(@Nullable Output osSku) { $.osSku = osSku; return this; } + /** + * @param osSku The OS SKU of the OS type. Must correlate with the os type. + * + * @return builder + * + */ public Builder osSku(String osSku) { return osSku(Output.of(osSku)); } + /** + * @param osType The OS type of the OS disk. Can't be modified once set. + * + * @return builder + * + */ public Builder osType(@Nullable Output osType) { $.osType = osType; return this; } + /** + * @param osType The OS type of the OS disk. Can't be modified once set. + * + * @return builder + * + */ public Builder osType(String osType) { return osType(Output.of(osType)); } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(@Nullable Output> podSubnetIds) { $.podSubnetIds = podSubnetIds; return this; } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(List podSubnetIds) { return podSubnetIds(Output.of(podSubnetIds)); } + /** + * @param podSubnetIds The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder podSubnetIds(String... podSubnetIds) { return podSubnetIds(List.of(podSubnetIds)); } + /** + * @param spotPercentage Percentage of spot VMs to maintain. + * + * @return builder + * + */ public Builder spotPercentage(@Nullable Output spotPercentage) { $.spotPercentage = spotPercentage; return this; } + /** + * @param spotPercentage Percentage of spot VMs to maintain. + * + * @return builder + * + */ public Builder spotPercentage(Integer spotPercentage) { return spotPercentage(Output.of(spotPercentage)); } @@ -406,15 +800,33 @@ public Builder tags(Map tags) { return tags(Output.of(tags)); } + /** + * @param taints Add taints to a virtual node group. + * + * @return builder + * + */ public Builder taints(@Nullable Output> taints) { $.taints = taints; return this; } + /** + * @param taints Add taints to a virtual node group. + * + * @return builder + * + */ public Builder taints(List taints) { return taints(Output.of(taints)); } + /** + * @param taints Add taints to a virtual node group. + * + * @return builder + * + */ public Builder taints(OceanNpVirtualNodeGroupTaintArgs... taints) { return taints(List.of(taints)); } @@ -428,15 +840,33 @@ public Builder updatePolicy(OceanNpVirtualNodeGroupUpdatePolicyArgs updatePolicy return updatePolicy(Output.of(updatePolicy)); } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(@Nullable Output> vnetSubnetIds) { $.vnetSubnetIds = vnetSubnetIds; return this; } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(List vnetSubnetIds) { return vnetSubnetIds(Output.of(vnetSubnetIds)); } + /** + * @param vnetSubnetIds The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + * + * @return builder + * + */ public Builder vnetSubnetIds(String... vnetSubnetIds) { return vnetSubnetIds(List.of(vnetSubnetIds)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupTaintArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupTaintArgs.java index 96b20675..d0b21c1a 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupTaintArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupTaintArgs.java @@ -14,23 +14,47 @@ public final class OceanNpVirtualNodeGroupTaintArgs extends com.pulumi.resources public static final OceanNpVirtualNodeGroupTaintArgs Empty = new OceanNpVirtualNodeGroupTaintArgs(); + /** + * Set taint effect. + * + */ @Import(name="effect", required=true) private Output effect; + /** + * @return Set taint effect. + * + */ public Output effect() { return this.effect; } + /** + * Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + * + */ @Import(name="key", required=true) private Output key; + /** + * @return Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + * + */ public Output key() { return this.key; } + /** + * Set taint value. + * + */ @Import(name="value", required=true) private Output value; + /** + * @return Set taint value. + * + */ public Output value() { return this.value; } @@ -61,29 +85,65 @@ public Builder(OceanNpVirtualNodeGroupTaintArgs defaults) { $ = new OceanNpVirtualNodeGroupTaintArgs(Objects.requireNonNull(defaults)); } + /** + * @param effect Set taint effect. + * + * @return builder + * + */ public Builder effect(Output effect) { $.effect = effect; return this; } + /** + * @param effect Set taint effect. + * + * @return builder + * + */ public Builder effect(String effect) { return effect(Output.of(effect)); } + /** + * @param key Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + * + * @return builder + * + */ public Builder key(Output key) { $.key = key; return this; } + /** + * @param key Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + * + * @return builder + * + */ public Builder key(String key) { return key(Output.of(key)); } + /** + * @param value Set taint value. + * + * @return builder + * + */ public Builder value(Output value) { $.value = value; return this; } + /** + * @param value Set taint value. + * + * @return builder + * + */ public Builder value(String value) { return value(Output.of(value)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupHealthCheck.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupHealthCheck.java deleted file mode 100644 index 51190f12..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupHealthCheck.java +++ /dev/null @@ -1,80 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Boolean; -import java.lang.Integer; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupHealthCheck { - private @Nullable Boolean autoHealing; - private @Nullable Integer gracePeriod; - private String healthCheckType; - - private ElastigroupHealthCheck() {} - public Optional autoHealing() { - return Optional.ofNullable(this.autoHealing); - } - public Optional gracePeriod() { - return Optional.ofNullable(this.gracePeriod); - } - public String healthCheckType() { - return this.healthCheckType; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupHealthCheck defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private @Nullable Boolean autoHealing; - private @Nullable Integer gracePeriod; - private String healthCheckType; - public Builder() {} - public Builder(ElastigroupHealthCheck defaults) { - Objects.requireNonNull(defaults); - this.autoHealing = defaults.autoHealing; - this.gracePeriod = defaults.gracePeriod; - this.healthCheckType = defaults.healthCheckType; - } - - @CustomType.Setter - public Builder autoHealing(@Nullable Boolean autoHealing) { - - this.autoHealing = autoHealing; - return this; - } - @CustomType.Setter - public Builder gracePeriod(@Nullable Integer gracePeriod) { - - this.gracePeriod = gracePeriod; - return this; - } - @CustomType.Setter - public Builder healthCheckType(String healthCheckType) { - if (healthCheckType == null) { - throw new MissingRequiredPropertyException("ElastigroupHealthCheck", "healthCheckType"); - } - this.healthCheckType = healthCheckType; - return this; - } - public ElastigroupHealthCheck build() { - final var _resultValue = new ElastigroupHealthCheck(); - _resultValue.autoHealing = autoHealing; - _resultValue.gracePeriod = gracePeriod; - _resultValue.healthCheckType = healthCheckType; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupImage.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupImage.java deleted file mode 100644 index f37cdd2d..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupImage.java +++ /dev/null @@ -1,69 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.spotinst.azure.outputs.ElastigroupImageCustom; -import com.pulumi.spotinst.azure.outputs.ElastigroupImageMarketplace; -import java.util.List; -import java.util.Objects; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupImage { - private @Nullable List customs; - private @Nullable List marketplaces; - - private ElastigroupImage() {} - public List customs() { - return this.customs == null ? List.of() : this.customs; - } - public List marketplaces() { - return this.marketplaces == null ? List.of() : this.marketplaces; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupImage defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private @Nullable List customs; - private @Nullable List marketplaces; - public Builder() {} - public Builder(ElastigroupImage defaults) { - Objects.requireNonNull(defaults); - this.customs = defaults.customs; - this.marketplaces = defaults.marketplaces; - } - - @CustomType.Setter - public Builder customs(@Nullable List customs) { - - this.customs = customs; - return this; - } - public Builder customs(ElastigroupImageCustom... customs) { - return customs(List.of(customs)); - } - @CustomType.Setter - public Builder marketplaces(@Nullable List marketplaces) { - - this.marketplaces = marketplaces; - return this; - } - public Builder marketplaces(ElastigroupImageMarketplace... marketplaces) { - return marketplaces(List.of(marketplaces)); - } - public ElastigroupImage build() { - final var _resultValue = new ElastigroupImage(); - _resultValue.customs = customs; - _resultValue.marketplaces = marketplaces; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupImageCustom.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupImageCustom.java deleted file mode 100644 index 20b4041e..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupImageCustom.java +++ /dev/null @@ -1,73 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; - -@CustomType -public final class ElastigroupImageCustom { - private String imageName; - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - private String resourceGroupName; - - private ElastigroupImageCustom() {} - public String imageName() { - return this.imageName; - } - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - public String resourceGroupName() { - return this.resourceGroupName; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupImageCustom defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private String imageName; - private String resourceGroupName; - public Builder() {} - public Builder(ElastigroupImageCustom defaults) { - Objects.requireNonNull(defaults); - this.imageName = defaults.imageName; - this.resourceGroupName = defaults.resourceGroupName; - } - - @CustomType.Setter - public Builder imageName(String imageName) { - if (imageName == null) { - throw new MissingRequiredPropertyException("ElastigroupImageCustom", "imageName"); - } - this.imageName = imageName; - return this; - } - @CustomType.Setter - public Builder resourceGroupName(String resourceGroupName) { - if (resourceGroupName == null) { - throw new MissingRequiredPropertyException("ElastigroupImageCustom", "resourceGroupName"); - } - this.resourceGroupName = resourceGroupName; - return this; - } - public ElastigroupImageCustom build() { - final var _resultValue = new ElastigroupImageCustom(); - _resultValue.imageName = imageName; - _resultValue.resourceGroupName = resourceGroupName; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupImageMarketplace.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupImageMarketplace.java deleted file mode 100644 index 37ca5850..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupImageMarketplace.java +++ /dev/null @@ -1,80 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; - -@CustomType -public final class ElastigroupImageMarketplace { - private String offer; - private String publisher; - private String sku; - - private ElastigroupImageMarketplace() {} - public String offer() { - return this.offer; - } - public String publisher() { - return this.publisher; - } - public String sku() { - return this.sku; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupImageMarketplace defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private String offer; - private String publisher; - private String sku; - public Builder() {} - public Builder(ElastigroupImageMarketplace defaults) { - Objects.requireNonNull(defaults); - this.offer = defaults.offer; - this.publisher = defaults.publisher; - this.sku = defaults.sku; - } - - @CustomType.Setter - public Builder offer(String offer) { - if (offer == null) { - throw new MissingRequiredPropertyException("ElastigroupImageMarketplace", "offer"); - } - this.offer = offer; - return this; - } - @CustomType.Setter - public Builder publisher(String publisher) { - if (publisher == null) { - throw new MissingRequiredPropertyException("ElastigroupImageMarketplace", "publisher"); - } - this.publisher = publisher; - return this; - } - @CustomType.Setter - public Builder sku(String sku) { - if (sku == null) { - throw new MissingRequiredPropertyException("ElastigroupImageMarketplace", "sku"); - } - this.sku = sku; - return this; - } - public ElastigroupImageMarketplace build() { - final var _resultValue = new ElastigroupImageMarketplace(); - _resultValue.offer = offer; - _resultValue.publisher = publisher; - _resultValue.sku = sku; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupIntegrationKubernetes.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupIntegrationKubernetes.java deleted file mode 100644 index d41290cf..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupIntegrationKubernetes.java +++ /dev/null @@ -1,50 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; - -@CustomType -public final class ElastigroupIntegrationKubernetes { - private String clusterIdentifier; - - private ElastigroupIntegrationKubernetes() {} - public String clusterIdentifier() { - return this.clusterIdentifier; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupIntegrationKubernetes defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private String clusterIdentifier; - public Builder() {} - public Builder(ElastigroupIntegrationKubernetes defaults) { - Objects.requireNonNull(defaults); - this.clusterIdentifier = defaults.clusterIdentifier; - } - - @CustomType.Setter - public Builder clusterIdentifier(String clusterIdentifier) { - if (clusterIdentifier == null) { - throw new MissingRequiredPropertyException("ElastigroupIntegrationKubernetes", "clusterIdentifier"); - } - this.clusterIdentifier = clusterIdentifier; - return this; - } - public ElastigroupIntegrationKubernetes build() { - final var _resultValue = new ElastigroupIntegrationKubernetes(); - _resultValue.clusterIdentifier = clusterIdentifier; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupIntegrationMultaiRuntime.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupIntegrationMultaiRuntime.java deleted file mode 100644 index 7f45e886..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupIntegrationMultaiRuntime.java +++ /dev/null @@ -1,50 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; - -@CustomType -public final class ElastigroupIntegrationMultaiRuntime { - private String deploymentId; - - private ElastigroupIntegrationMultaiRuntime() {} - public String deploymentId() { - return this.deploymentId; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupIntegrationMultaiRuntime defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private String deploymentId; - public Builder() {} - public Builder(ElastigroupIntegrationMultaiRuntime defaults) { - Objects.requireNonNull(defaults); - this.deploymentId = defaults.deploymentId; - } - - @CustomType.Setter - public Builder deploymentId(String deploymentId) { - if (deploymentId == null) { - throw new MissingRequiredPropertyException("ElastigroupIntegrationMultaiRuntime", "deploymentId"); - } - this.deploymentId = deploymentId; - return this; - } - public ElastigroupIntegrationMultaiRuntime build() { - final var _resultValue = new ElastigroupIntegrationMultaiRuntime(); - _resultValue.deploymentId = deploymentId; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupLoadBalancer.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupLoadBalancer.java deleted file mode 100644 index e5ce1bc4..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupLoadBalancer.java +++ /dev/null @@ -1,92 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Boolean; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupLoadBalancer { - private @Nullable Boolean autoWeight; - private @Nullable String balancerId; - private @Nullable String targetSetId; - private String type; - - private ElastigroupLoadBalancer() {} - public Optional autoWeight() { - return Optional.ofNullable(this.autoWeight); - } - public Optional balancerId() { - return Optional.ofNullable(this.balancerId); - } - public Optional targetSetId() { - return Optional.ofNullable(this.targetSetId); - } - public String type() { - return this.type; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupLoadBalancer defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private @Nullable Boolean autoWeight; - private @Nullable String balancerId; - private @Nullable String targetSetId; - private String type; - public Builder() {} - public Builder(ElastigroupLoadBalancer defaults) { - Objects.requireNonNull(defaults); - this.autoWeight = defaults.autoWeight; - this.balancerId = defaults.balancerId; - this.targetSetId = defaults.targetSetId; - this.type = defaults.type; - } - - @CustomType.Setter - public Builder autoWeight(@Nullable Boolean autoWeight) { - - this.autoWeight = autoWeight; - return this; - } - @CustomType.Setter - public Builder balancerId(@Nullable String balancerId) { - - this.balancerId = balancerId; - return this; - } - @CustomType.Setter - public Builder targetSetId(@Nullable String targetSetId) { - - this.targetSetId = targetSetId; - return this; - } - @CustomType.Setter - public Builder type(String type) { - if (type == null) { - throw new MissingRequiredPropertyException("ElastigroupLoadBalancer", "type"); - } - this.type = type; - return this; - } - public ElastigroupLoadBalancer build() { - final var _resultValue = new ElastigroupLoadBalancer(); - _resultValue.autoWeight = autoWeight; - _resultValue.balancerId = balancerId; - _resultValue.targetSetId = targetSetId; - _resultValue.type = type; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupLogin.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupLogin.java deleted file mode 100644 index 4670ca24..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupLogin.java +++ /dev/null @@ -1,78 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupLogin { - private @Nullable String password; - private @Nullable String sshPublicKey; - private String userName; - - private ElastigroupLogin() {} - public Optional password() { - return Optional.ofNullable(this.password); - } - public Optional sshPublicKey() { - return Optional.ofNullable(this.sshPublicKey); - } - public String userName() { - return this.userName; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupLogin defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private @Nullable String password; - private @Nullable String sshPublicKey; - private String userName; - public Builder() {} - public Builder(ElastigroupLogin defaults) { - Objects.requireNonNull(defaults); - this.password = defaults.password; - this.sshPublicKey = defaults.sshPublicKey; - this.userName = defaults.userName; - } - - @CustomType.Setter - public Builder password(@Nullable String password) { - - this.password = password; - return this; - } - @CustomType.Setter - public Builder sshPublicKey(@Nullable String sshPublicKey) { - - this.sshPublicKey = sshPublicKey; - return this; - } - @CustomType.Setter - public Builder userName(String userName) { - if (userName == null) { - throw new MissingRequiredPropertyException("ElastigroupLogin", "userName"); - } - this.userName = userName; - return this; - } - public ElastigroupLogin build() { - final var _resultValue = new ElastigroupLogin(); - _resultValue.password = password; - _resultValue.sshPublicKey = sshPublicKey; - _resultValue.userName = userName; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupManagedServiceIdentity.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupManagedServiceIdentity.java deleted file mode 100644 index 99225bc6..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupManagedServiceIdentity.java +++ /dev/null @@ -1,81 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; - -@CustomType -public final class ElastigroupManagedServiceIdentity { - /** - * @return The group name. - * - */ - private String name; - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - private String resourceGroupName; - - private ElastigroupManagedServiceIdentity() {} - /** - * @return The group name. - * - */ - public String name() { - return this.name; - } - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - public String resourceGroupName() { - return this.resourceGroupName; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupManagedServiceIdentity defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private String name; - private String resourceGroupName; - public Builder() {} - public Builder(ElastigroupManagedServiceIdentity defaults) { - Objects.requireNonNull(defaults); - this.name = defaults.name; - this.resourceGroupName = defaults.resourceGroupName; - } - - @CustomType.Setter - public Builder name(String name) { - if (name == null) { - throw new MissingRequiredPropertyException("ElastigroupManagedServiceIdentity", "name"); - } - this.name = name; - return this; - } - @CustomType.Setter - public Builder resourceGroupName(String resourceGroupName) { - if (resourceGroupName == null) { - throw new MissingRequiredPropertyException("ElastigroupManagedServiceIdentity", "resourceGroupName"); - } - this.resourceGroupName = resourceGroupName; - return this; - } - public ElastigroupManagedServiceIdentity build() { - final var _resultValue = new ElastigroupManagedServiceIdentity(); - _resultValue.name = name; - _resultValue.resourceGroupName = resourceGroupName; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupNetwork.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupNetwork.java deleted file mode 100644 index b1ba4196..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupNetwork.java +++ /dev/null @@ -1,122 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import com.pulumi.spotinst.azure.outputs.ElastigroupNetworkAdditionalIpConfig; -import java.lang.Boolean; -import java.lang.String; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupNetwork { - private @Nullable List additionalIpConfigs; - private @Nullable Boolean assignPublicIp; - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - private String resourceGroupName; - private String subnetName; - private String virtualNetworkName; - - private ElastigroupNetwork() {} - public List additionalIpConfigs() { - return this.additionalIpConfigs == null ? List.of() : this.additionalIpConfigs; - } - public Optional assignPublicIp() { - return Optional.ofNullable(this.assignPublicIp); - } - /** - * @return Name of the Resource Group for Elastigroup. - * - */ - public String resourceGroupName() { - return this.resourceGroupName; - } - public String subnetName() { - return this.subnetName; - } - public String virtualNetworkName() { - return this.virtualNetworkName; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupNetwork defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private @Nullable List additionalIpConfigs; - private @Nullable Boolean assignPublicIp; - private String resourceGroupName; - private String subnetName; - private String virtualNetworkName; - public Builder() {} - public Builder(ElastigroupNetwork defaults) { - Objects.requireNonNull(defaults); - this.additionalIpConfigs = defaults.additionalIpConfigs; - this.assignPublicIp = defaults.assignPublicIp; - this.resourceGroupName = defaults.resourceGroupName; - this.subnetName = defaults.subnetName; - this.virtualNetworkName = defaults.virtualNetworkName; - } - - @CustomType.Setter - public Builder additionalIpConfigs(@Nullable List additionalIpConfigs) { - - this.additionalIpConfigs = additionalIpConfigs; - return this; - } - public Builder additionalIpConfigs(ElastigroupNetworkAdditionalIpConfig... additionalIpConfigs) { - return additionalIpConfigs(List.of(additionalIpConfigs)); - } - @CustomType.Setter - public Builder assignPublicIp(@Nullable Boolean assignPublicIp) { - - this.assignPublicIp = assignPublicIp; - return this; - } - @CustomType.Setter - public Builder resourceGroupName(String resourceGroupName) { - if (resourceGroupName == null) { - throw new MissingRequiredPropertyException("ElastigroupNetwork", "resourceGroupName"); - } - this.resourceGroupName = resourceGroupName; - return this; - } - @CustomType.Setter - public Builder subnetName(String subnetName) { - if (subnetName == null) { - throw new MissingRequiredPropertyException("ElastigroupNetwork", "subnetName"); - } - this.subnetName = subnetName; - return this; - } - @CustomType.Setter - public Builder virtualNetworkName(String virtualNetworkName) { - if (virtualNetworkName == null) { - throw new MissingRequiredPropertyException("ElastigroupNetwork", "virtualNetworkName"); - } - this.virtualNetworkName = virtualNetworkName; - return this; - } - public ElastigroupNetwork build() { - final var _resultValue = new ElastigroupNetwork(); - _resultValue.additionalIpConfigs = additionalIpConfigs; - _resultValue.assignPublicIp = assignPublicIp; - _resultValue.resourceGroupName = resourceGroupName; - _resultValue.subnetName = subnetName; - _resultValue.virtualNetworkName = virtualNetworkName; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupNetworkAdditionalIpConfig.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupNetworkAdditionalIpConfig.java deleted file mode 100644 index 72f8d2cc..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupNetworkAdditionalIpConfig.java +++ /dev/null @@ -1,73 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupNetworkAdditionalIpConfig { - /** - * @return The group name. - * - */ - private String name; - private @Nullable String privateIpVersion; - - private ElastigroupNetworkAdditionalIpConfig() {} - /** - * @return The group name. - * - */ - public String name() { - return this.name; - } - public Optional privateIpVersion() { - return Optional.ofNullable(this.privateIpVersion); - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupNetworkAdditionalIpConfig defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private String name; - private @Nullable String privateIpVersion; - public Builder() {} - public Builder(ElastigroupNetworkAdditionalIpConfig defaults) { - Objects.requireNonNull(defaults); - this.name = defaults.name; - this.privateIpVersion = defaults.privateIpVersion; - } - - @CustomType.Setter - public Builder name(String name) { - if (name == null) { - throw new MissingRequiredPropertyException("ElastigroupNetworkAdditionalIpConfig", "name"); - } - this.name = name; - return this; - } - @CustomType.Setter - public Builder privateIpVersion(@Nullable String privateIpVersion) { - - this.privateIpVersion = privateIpVersion; - return this; - } - public ElastigroupNetworkAdditionalIpConfig build() { - final var _resultValue = new ElastigroupNetworkAdditionalIpConfig(); - _resultValue.name = name; - _resultValue.privateIpVersion = privateIpVersion; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingDownPolicy.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingDownPolicy.java deleted file mode 100644 index e794897e..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingDownPolicy.java +++ /dev/null @@ -1,286 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import com.pulumi.spotinst.azure.outputs.ElastigroupScalingDownPolicyDimension; -import java.lang.Double; -import java.lang.Integer; -import java.lang.String; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupScalingDownPolicy { - private @Nullable String actionType; - private @Nullable String adjustment; - private @Nullable Integer cooldown; - private @Nullable List dimensions; - private @Nullable Integer evaluationPeriods; - private @Nullable String maxTargetCapacity; - private @Nullable String maximum; - private String metricName; - private @Nullable String minTargetCapacity; - private @Nullable String minimum; - private String namespace; - private @Nullable String operator; - private @Nullable Integer period; - private String policyName; - private @Nullable String statistic; - private @Nullable String target; - private Double threshold; - private @Nullable String unit; - - private ElastigroupScalingDownPolicy() {} - public Optional actionType() { - return Optional.ofNullable(this.actionType); - } - public Optional adjustment() { - return Optional.ofNullable(this.adjustment); - } - public Optional cooldown() { - return Optional.ofNullable(this.cooldown); - } - public List dimensions() { - return this.dimensions == null ? List.of() : this.dimensions; - } - public Optional evaluationPeriods() { - return Optional.ofNullable(this.evaluationPeriods); - } - public Optional maxTargetCapacity() { - return Optional.ofNullable(this.maxTargetCapacity); - } - public Optional maximum() { - return Optional.ofNullable(this.maximum); - } - public String metricName() { - return this.metricName; - } - public Optional minTargetCapacity() { - return Optional.ofNullable(this.minTargetCapacity); - } - public Optional minimum() { - return Optional.ofNullable(this.minimum); - } - public String namespace() { - return this.namespace; - } - public Optional operator() { - return Optional.ofNullable(this.operator); - } - public Optional period() { - return Optional.ofNullable(this.period); - } - public String policyName() { - return this.policyName; - } - public Optional statistic() { - return Optional.ofNullable(this.statistic); - } - public Optional target() { - return Optional.ofNullable(this.target); - } - public Double threshold() { - return this.threshold; - } - public Optional unit() { - return Optional.ofNullable(this.unit); - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupScalingDownPolicy defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private @Nullable String actionType; - private @Nullable String adjustment; - private @Nullable Integer cooldown; - private @Nullable List dimensions; - private @Nullable Integer evaluationPeriods; - private @Nullable String maxTargetCapacity; - private @Nullable String maximum; - private String metricName; - private @Nullable String minTargetCapacity; - private @Nullable String minimum; - private String namespace; - private @Nullable String operator; - private @Nullable Integer period; - private String policyName; - private @Nullable String statistic; - private @Nullable String target; - private Double threshold; - private @Nullable String unit; - public Builder() {} - public Builder(ElastigroupScalingDownPolicy defaults) { - Objects.requireNonNull(defaults); - this.actionType = defaults.actionType; - this.adjustment = defaults.adjustment; - this.cooldown = defaults.cooldown; - this.dimensions = defaults.dimensions; - this.evaluationPeriods = defaults.evaluationPeriods; - this.maxTargetCapacity = defaults.maxTargetCapacity; - this.maximum = defaults.maximum; - this.metricName = defaults.metricName; - this.minTargetCapacity = defaults.minTargetCapacity; - this.minimum = defaults.minimum; - this.namespace = defaults.namespace; - this.operator = defaults.operator; - this.period = defaults.period; - this.policyName = defaults.policyName; - this.statistic = defaults.statistic; - this.target = defaults.target; - this.threshold = defaults.threshold; - this.unit = defaults.unit; - } - - @CustomType.Setter - public Builder actionType(@Nullable String actionType) { - - this.actionType = actionType; - return this; - } - @CustomType.Setter - public Builder adjustment(@Nullable String adjustment) { - - this.adjustment = adjustment; - return this; - } - @CustomType.Setter - public Builder cooldown(@Nullable Integer cooldown) { - - this.cooldown = cooldown; - return this; - } - @CustomType.Setter - public Builder dimensions(@Nullable List dimensions) { - - this.dimensions = dimensions; - return this; - } - public Builder dimensions(ElastigroupScalingDownPolicyDimension... dimensions) { - return dimensions(List.of(dimensions)); - } - @CustomType.Setter - public Builder evaluationPeriods(@Nullable Integer evaluationPeriods) { - - this.evaluationPeriods = evaluationPeriods; - return this; - } - @CustomType.Setter - public Builder maxTargetCapacity(@Nullable String maxTargetCapacity) { - - this.maxTargetCapacity = maxTargetCapacity; - return this; - } - @CustomType.Setter - public Builder maximum(@Nullable String maximum) { - - this.maximum = maximum; - return this; - } - @CustomType.Setter - public Builder metricName(String metricName) { - if (metricName == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingDownPolicy", "metricName"); - } - this.metricName = metricName; - return this; - } - @CustomType.Setter - public Builder minTargetCapacity(@Nullable String minTargetCapacity) { - - this.minTargetCapacity = minTargetCapacity; - return this; - } - @CustomType.Setter - public Builder minimum(@Nullable String minimum) { - - this.minimum = minimum; - return this; - } - @CustomType.Setter - public Builder namespace(String namespace) { - if (namespace == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingDownPolicy", "namespace"); - } - this.namespace = namespace; - return this; - } - @CustomType.Setter - public Builder operator(@Nullable String operator) { - - this.operator = operator; - return this; - } - @CustomType.Setter - public Builder period(@Nullable Integer period) { - - this.period = period; - return this; - } - @CustomType.Setter - public Builder policyName(String policyName) { - if (policyName == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingDownPolicy", "policyName"); - } - this.policyName = policyName; - return this; - } - @CustomType.Setter - public Builder statistic(@Nullable String statistic) { - - this.statistic = statistic; - return this; - } - @CustomType.Setter - public Builder target(@Nullable String target) { - - this.target = target; - return this; - } - @CustomType.Setter - public Builder threshold(Double threshold) { - if (threshold == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingDownPolicy", "threshold"); - } - this.threshold = threshold; - return this; - } - @CustomType.Setter - public Builder unit(@Nullable String unit) { - - this.unit = unit; - return this; - } - public ElastigroupScalingDownPolicy build() { - final var _resultValue = new ElastigroupScalingDownPolicy(); - _resultValue.actionType = actionType; - _resultValue.adjustment = adjustment; - _resultValue.cooldown = cooldown; - _resultValue.dimensions = dimensions; - _resultValue.evaluationPeriods = evaluationPeriods; - _resultValue.maxTargetCapacity = maxTargetCapacity; - _resultValue.maximum = maximum; - _resultValue.metricName = metricName; - _resultValue.minTargetCapacity = minTargetCapacity; - _resultValue.minimum = minimum; - _resultValue.namespace = namespace; - _resultValue.operator = operator; - _resultValue.period = period; - _resultValue.policyName = policyName; - _resultValue.statistic = statistic; - _resultValue.target = target; - _resultValue.threshold = threshold; - _resultValue.unit = unit; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingDownPolicyDimension.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingDownPolicyDimension.java deleted file mode 100644 index 588feea5..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingDownPolicyDimension.java +++ /dev/null @@ -1,73 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupScalingDownPolicyDimension { - /** - * @return The group name. - * - */ - private String name; - private @Nullable String value; - - private ElastigroupScalingDownPolicyDimension() {} - /** - * @return The group name. - * - */ - public String name() { - return this.name; - } - public Optional value() { - return Optional.ofNullable(this.value); - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupScalingDownPolicyDimension defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private String name; - private @Nullable String value; - public Builder() {} - public Builder(ElastigroupScalingDownPolicyDimension defaults) { - Objects.requireNonNull(defaults); - this.name = defaults.name; - this.value = defaults.value; - } - - @CustomType.Setter - public Builder name(String name) { - if (name == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingDownPolicyDimension", "name"); - } - this.name = name; - return this; - } - @CustomType.Setter - public Builder value(@Nullable String value) { - - this.value = value; - return this; - } - public ElastigroupScalingDownPolicyDimension build() { - final var _resultValue = new ElastigroupScalingDownPolicyDimension(); - _resultValue.name = name; - _resultValue.value = value; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingUpPolicy.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingUpPolicy.java deleted file mode 100644 index e95a2876..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingUpPolicy.java +++ /dev/null @@ -1,286 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import com.pulumi.spotinst.azure.outputs.ElastigroupScalingUpPolicyDimension; -import java.lang.Double; -import java.lang.Integer; -import java.lang.String; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupScalingUpPolicy { - private @Nullable String actionType; - private @Nullable String adjustment; - private @Nullable Integer cooldown; - private @Nullable List dimensions; - private @Nullable Integer evaluationPeriods; - private @Nullable String maxTargetCapacity; - private @Nullable String maximum; - private String metricName; - private @Nullable String minTargetCapacity; - private @Nullable String minimum; - private String namespace; - private @Nullable String operator; - private @Nullable Integer period; - private String policyName; - private @Nullable String statistic; - private @Nullable String target; - private Double threshold; - private @Nullable String unit; - - private ElastigroupScalingUpPolicy() {} - public Optional actionType() { - return Optional.ofNullable(this.actionType); - } - public Optional adjustment() { - return Optional.ofNullable(this.adjustment); - } - public Optional cooldown() { - return Optional.ofNullable(this.cooldown); - } - public List dimensions() { - return this.dimensions == null ? List.of() : this.dimensions; - } - public Optional evaluationPeriods() { - return Optional.ofNullable(this.evaluationPeriods); - } - public Optional maxTargetCapacity() { - return Optional.ofNullable(this.maxTargetCapacity); - } - public Optional maximum() { - return Optional.ofNullable(this.maximum); - } - public String metricName() { - return this.metricName; - } - public Optional minTargetCapacity() { - return Optional.ofNullable(this.minTargetCapacity); - } - public Optional minimum() { - return Optional.ofNullable(this.minimum); - } - public String namespace() { - return this.namespace; - } - public Optional operator() { - return Optional.ofNullable(this.operator); - } - public Optional period() { - return Optional.ofNullable(this.period); - } - public String policyName() { - return this.policyName; - } - public Optional statistic() { - return Optional.ofNullable(this.statistic); - } - public Optional target() { - return Optional.ofNullable(this.target); - } - public Double threshold() { - return this.threshold; - } - public Optional unit() { - return Optional.ofNullable(this.unit); - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupScalingUpPolicy defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private @Nullable String actionType; - private @Nullable String adjustment; - private @Nullable Integer cooldown; - private @Nullable List dimensions; - private @Nullable Integer evaluationPeriods; - private @Nullable String maxTargetCapacity; - private @Nullable String maximum; - private String metricName; - private @Nullable String minTargetCapacity; - private @Nullable String minimum; - private String namespace; - private @Nullable String operator; - private @Nullable Integer period; - private String policyName; - private @Nullable String statistic; - private @Nullable String target; - private Double threshold; - private @Nullable String unit; - public Builder() {} - public Builder(ElastigroupScalingUpPolicy defaults) { - Objects.requireNonNull(defaults); - this.actionType = defaults.actionType; - this.adjustment = defaults.adjustment; - this.cooldown = defaults.cooldown; - this.dimensions = defaults.dimensions; - this.evaluationPeriods = defaults.evaluationPeriods; - this.maxTargetCapacity = defaults.maxTargetCapacity; - this.maximum = defaults.maximum; - this.metricName = defaults.metricName; - this.minTargetCapacity = defaults.minTargetCapacity; - this.minimum = defaults.minimum; - this.namespace = defaults.namespace; - this.operator = defaults.operator; - this.period = defaults.period; - this.policyName = defaults.policyName; - this.statistic = defaults.statistic; - this.target = defaults.target; - this.threshold = defaults.threshold; - this.unit = defaults.unit; - } - - @CustomType.Setter - public Builder actionType(@Nullable String actionType) { - - this.actionType = actionType; - return this; - } - @CustomType.Setter - public Builder adjustment(@Nullable String adjustment) { - - this.adjustment = adjustment; - return this; - } - @CustomType.Setter - public Builder cooldown(@Nullable Integer cooldown) { - - this.cooldown = cooldown; - return this; - } - @CustomType.Setter - public Builder dimensions(@Nullable List dimensions) { - - this.dimensions = dimensions; - return this; - } - public Builder dimensions(ElastigroupScalingUpPolicyDimension... dimensions) { - return dimensions(List.of(dimensions)); - } - @CustomType.Setter - public Builder evaluationPeriods(@Nullable Integer evaluationPeriods) { - - this.evaluationPeriods = evaluationPeriods; - return this; - } - @CustomType.Setter - public Builder maxTargetCapacity(@Nullable String maxTargetCapacity) { - - this.maxTargetCapacity = maxTargetCapacity; - return this; - } - @CustomType.Setter - public Builder maximum(@Nullable String maximum) { - - this.maximum = maximum; - return this; - } - @CustomType.Setter - public Builder metricName(String metricName) { - if (metricName == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingUpPolicy", "metricName"); - } - this.metricName = metricName; - return this; - } - @CustomType.Setter - public Builder minTargetCapacity(@Nullable String minTargetCapacity) { - - this.minTargetCapacity = minTargetCapacity; - return this; - } - @CustomType.Setter - public Builder minimum(@Nullable String minimum) { - - this.minimum = minimum; - return this; - } - @CustomType.Setter - public Builder namespace(String namespace) { - if (namespace == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingUpPolicy", "namespace"); - } - this.namespace = namespace; - return this; - } - @CustomType.Setter - public Builder operator(@Nullable String operator) { - - this.operator = operator; - return this; - } - @CustomType.Setter - public Builder period(@Nullable Integer period) { - - this.period = period; - return this; - } - @CustomType.Setter - public Builder policyName(String policyName) { - if (policyName == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingUpPolicy", "policyName"); - } - this.policyName = policyName; - return this; - } - @CustomType.Setter - public Builder statistic(@Nullable String statistic) { - - this.statistic = statistic; - return this; - } - @CustomType.Setter - public Builder target(@Nullable String target) { - - this.target = target; - return this; - } - @CustomType.Setter - public Builder threshold(Double threshold) { - if (threshold == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingUpPolicy", "threshold"); - } - this.threshold = threshold; - return this; - } - @CustomType.Setter - public Builder unit(@Nullable String unit) { - - this.unit = unit; - return this; - } - public ElastigroupScalingUpPolicy build() { - final var _resultValue = new ElastigroupScalingUpPolicy(); - _resultValue.actionType = actionType; - _resultValue.adjustment = adjustment; - _resultValue.cooldown = cooldown; - _resultValue.dimensions = dimensions; - _resultValue.evaluationPeriods = evaluationPeriods; - _resultValue.maxTargetCapacity = maxTargetCapacity; - _resultValue.maximum = maximum; - _resultValue.metricName = metricName; - _resultValue.minTargetCapacity = minTargetCapacity; - _resultValue.minimum = minimum; - _resultValue.namespace = namespace; - _resultValue.operator = operator; - _resultValue.period = period; - _resultValue.policyName = policyName; - _resultValue.statistic = statistic; - _resultValue.target = target; - _resultValue.threshold = threshold; - _resultValue.unit = unit; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingUpPolicyDimension.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingUpPolicyDimension.java deleted file mode 100644 index 392f1503..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScalingUpPolicyDimension.java +++ /dev/null @@ -1,73 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupScalingUpPolicyDimension { - /** - * @return The group name. - * - */ - private String name; - private @Nullable String value; - - private ElastigroupScalingUpPolicyDimension() {} - /** - * @return The group name. - * - */ - public String name() { - return this.name; - } - public Optional value() { - return Optional.ofNullable(this.value); - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupScalingUpPolicyDimension defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private String name; - private @Nullable String value; - public Builder() {} - public Builder(ElastigroupScalingUpPolicyDimension defaults) { - Objects.requireNonNull(defaults); - this.name = defaults.name; - this.value = defaults.value; - } - - @CustomType.Setter - public Builder name(String name) { - if (name == null) { - throw new MissingRequiredPropertyException("ElastigroupScalingUpPolicyDimension", "name"); - } - this.name = name; - return this; - } - @CustomType.Setter - public Builder value(@Nullable String value) { - - this.value = value; - return this; - } - public ElastigroupScalingUpPolicyDimension build() { - final var _resultValue = new ElastigroupScalingUpPolicyDimension(); - _resultValue.name = name; - _resultValue.value = value; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScheduledTask.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScheduledTask.java deleted file mode 100644 index 8ef5291e..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupScheduledTask.java +++ /dev/null @@ -1,172 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Boolean; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupScheduledTask { - private @Nullable String adjustment; - private @Nullable String adjustmentPercentage; - private @Nullable String batchSizePercentage; - private String cronExpression; - private @Nullable String gracePeriod; - private @Nullable Boolean isEnabled; - private @Nullable String scaleMaxCapacity; - private @Nullable String scaleMinCapacity; - private @Nullable String scaleTargetCapacity; - private String taskType; - - private ElastigroupScheduledTask() {} - public Optional adjustment() { - return Optional.ofNullable(this.adjustment); - } - public Optional adjustmentPercentage() { - return Optional.ofNullable(this.adjustmentPercentage); - } - public Optional batchSizePercentage() { - return Optional.ofNullable(this.batchSizePercentage); - } - public String cronExpression() { - return this.cronExpression; - } - public Optional gracePeriod() { - return Optional.ofNullable(this.gracePeriod); - } - public Optional isEnabled() { - return Optional.ofNullable(this.isEnabled); - } - public Optional scaleMaxCapacity() { - return Optional.ofNullable(this.scaleMaxCapacity); - } - public Optional scaleMinCapacity() { - return Optional.ofNullable(this.scaleMinCapacity); - } - public Optional scaleTargetCapacity() { - return Optional.ofNullable(this.scaleTargetCapacity); - } - public String taskType() { - return this.taskType; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupScheduledTask defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private @Nullable String adjustment; - private @Nullable String adjustmentPercentage; - private @Nullable String batchSizePercentage; - private String cronExpression; - private @Nullable String gracePeriod; - private @Nullable Boolean isEnabled; - private @Nullable String scaleMaxCapacity; - private @Nullable String scaleMinCapacity; - private @Nullable String scaleTargetCapacity; - private String taskType; - public Builder() {} - public Builder(ElastigroupScheduledTask defaults) { - Objects.requireNonNull(defaults); - this.adjustment = defaults.adjustment; - this.adjustmentPercentage = defaults.adjustmentPercentage; - this.batchSizePercentage = defaults.batchSizePercentage; - this.cronExpression = defaults.cronExpression; - this.gracePeriod = defaults.gracePeriod; - this.isEnabled = defaults.isEnabled; - this.scaleMaxCapacity = defaults.scaleMaxCapacity; - this.scaleMinCapacity = defaults.scaleMinCapacity; - this.scaleTargetCapacity = defaults.scaleTargetCapacity; - this.taskType = defaults.taskType; - } - - @CustomType.Setter - public Builder adjustment(@Nullable String adjustment) { - - this.adjustment = adjustment; - return this; - } - @CustomType.Setter - public Builder adjustmentPercentage(@Nullable String adjustmentPercentage) { - - this.adjustmentPercentage = adjustmentPercentage; - return this; - } - @CustomType.Setter - public Builder batchSizePercentage(@Nullable String batchSizePercentage) { - - this.batchSizePercentage = batchSizePercentage; - return this; - } - @CustomType.Setter - public Builder cronExpression(String cronExpression) { - if (cronExpression == null) { - throw new MissingRequiredPropertyException("ElastigroupScheduledTask", "cronExpression"); - } - this.cronExpression = cronExpression; - return this; - } - @CustomType.Setter - public Builder gracePeriod(@Nullable String gracePeriod) { - - this.gracePeriod = gracePeriod; - return this; - } - @CustomType.Setter - public Builder isEnabled(@Nullable Boolean isEnabled) { - - this.isEnabled = isEnabled; - return this; - } - @CustomType.Setter - public Builder scaleMaxCapacity(@Nullable String scaleMaxCapacity) { - - this.scaleMaxCapacity = scaleMaxCapacity; - return this; - } - @CustomType.Setter - public Builder scaleMinCapacity(@Nullable String scaleMinCapacity) { - - this.scaleMinCapacity = scaleMinCapacity; - return this; - } - @CustomType.Setter - public Builder scaleTargetCapacity(@Nullable String scaleTargetCapacity) { - - this.scaleTargetCapacity = scaleTargetCapacity; - return this; - } - @CustomType.Setter - public Builder taskType(String taskType) { - if (taskType == null) { - throw new MissingRequiredPropertyException("ElastigroupScheduledTask", "taskType"); - } - this.taskType = taskType; - return this; - } - public ElastigroupScheduledTask build() { - final var _resultValue = new ElastigroupScheduledTask(); - _resultValue.adjustment = adjustment; - _resultValue.adjustmentPercentage = adjustmentPercentage; - _resultValue.batchSizePercentage = batchSizePercentage; - _resultValue.cronExpression = cronExpression; - _resultValue.gracePeriod = gracePeriod; - _resultValue.isEnabled = isEnabled; - _resultValue.scaleMaxCapacity = scaleMaxCapacity; - _resultValue.scaleMinCapacity = scaleMinCapacity; - _resultValue.scaleTargetCapacity = scaleTargetCapacity; - _resultValue.taskType = taskType; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupStrategy.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupStrategy.java deleted file mode 100644 index 474ec4c0..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupStrategy.java +++ /dev/null @@ -1,75 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import java.lang.Integer; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupStrategy { - private @Nullable Integer drainingTimeout; - private @Nullable Integer lowPriorityPercentage; - private @Nullable Integer odCount; - - private ElastigroupStrategy() {} - public Optional drainingTimeout() { - return Optional.ofNullable(this.drainingTimeout); - } - public Optional lowPriorityPercentage() { - return Optional.ofNullable(this.lowPriorityPercentage); - } - public Optional odCount() { - return Optional.ofNullable(this.odCount); - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupStrategy defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private @Nullable Integer drainingTimeout; - private @Nullable Integer lowPriorityPercentage; - private @Nullable Integer odCount; - public Builder() {} - public Builder(ElastigroupStrategy defaults) { - Objects.requireNonNull(defaults); - this.drainingTimeout = defaults.drainingTimeout; - this.lowPriorityPercentage = defaults.lowPriorityPercentage; - this.odCount = defaults.odCount; - } - - @CustomType.Setter - public Builder drainingTimeout(@Nullable Integer drainingTimeout) { - - this.drainingTimeout = drainingTimeout; - return this; - } - @CustomType.Setter - public Builder lowPriorityPercentage(@Nullable Integer lowPriorityPercentage) { - - this.lowPriorityPercentage = lowPriorityPercentage; - return this; - } - @CustomType.Setter - public Builder odCount(@Nullable Integer odCount) { - - this.odCount = odCount; - return this; - } - public ElastigroupStrategy build() { - final var _resultValue = new ElastigroupStrategy(); - _resultValue.drainingTimeout = drainingTimeout; - _resultValue.lowPriorityPercentage = lowPriorityPercentage; - _resultValue.odCount = odCount; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupUpdatePolicy.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupUpdatePolicy.java deleted file mode 100644 index b395feae..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupUpdatePolicy.java +++ /dev/null @@ -1,66 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import com.pulumi.spotinst.azure.outputs.ElastigroupUpdatePolicyRollConfig; -import java.lang.Boolean; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupUpdatePolicy { - private @Nullable ElastigroupUpdatePolicyRollConfig rollConfig; - private Boolean shouldRoll; - - private ElastigroupUpdatePolicy() {} - public Optional rollConfig() { - return Optional.ofNullable(this.rollConfig); - } - public Boolean shouldRoll() { - return this.shouldRoll; - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupUpdatePolicy defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private @Nullable ElastigroupUpdatePolicyRollConfig rollConfig; - private Boolean shouldRoll; - public Builder() {} - public Builder(ElastigroupUpdatePolicy defaults) { - Objects.requireNonNull(defaults); - this.rollConfig = defaults.rollConfig; - this.shouldRoll = defaults.shouldRoll; - } - - @CustomType.Setter - public Builder rollConfig(@Nullable ElastigroupUpdatePolicyRollConfig rollConfig) { - - this.rollConfig = rollConfig; - return this; - } - @CustomType.Setter - public Builder shouldRoll(Boolean shouldRoll) { - if (shouldRoll == null) { - throw new MissingRequiredPropertyException("ElastigroupUpdatePolicy", "shouldRoll"); - } - this.shouldRoll = shouldRoll; - return this; - } - public ElastigroupUpdatePolicy build() { - final var _resultValue = new ElastigroupUpdatePolicy(); - _resultValue.rollConfig = rollConfig; - _resultValue.shouldRoll = shouldRoll; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupUpdatePolicyRollConfig.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupUpdatePolicyRollConfig.java deleted file mode 100644 index b4fb7eb3..00000000 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/ElastigroupUpdatePolicyRollConfig.java +++ /dev/null @@ -1,79 +0,0 @@ -// *** WARNING: this file was generated by pulumi-java-gen. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -package com.pulumi.spotinst.azure.outputs; - -import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Integer; -import java.lang.String; -import java.util.Objects; -import java.util.Optional; -import javax.annotation.Nullable; - -@CustomType -public final class ElastigroupUpdatePolicyRollConfig { - private Integer batchSizePercentage; - private @Nullable Integer gracePeriod; - private @Nullable String healthCheckType; - - private ElastigroupUpdatePolicyRollConfig() {} - public Integer batchSizePercentage() { - return this.batchSizePercentage; - } - public Optional gracePeriod() { - return Optional.ofNullable(this.gracePeriod); - } - public Optional healthCheckType() { - return Optional.ofNullable(this.healthCheckType); - } - - public static Builder builder() { - return new Builder(); - } - - public static Builder builder(ElastigroupUpdatePolicyRollConfig defaults) { - return new Builder(defaults); - } - @CustomType.Builder - public static final class Builder { - private Integer batchSizePercentage; - private @Nullable Integer gracePeriod; - private @Nullable String healthCheckType; - public Builder() {} - public Builder(ElastigroupUpdatePolicyRollConfig defaults) { - Objects.requireNonNull(defaults); - this.batchSizePercentage = defaults.batchSizePercentage; - this.gracePeriod = defaults.gracePeriod; - this.healthCheckType = defaults.healthCheckType; - } - - @CustomType.Setter - public Builder batchSizePercentage(Integer batchSizePercentage) { - if (batchSizePercentage == null) { - throw new MissingRequiredPropertyException("ElastigroupUpdatePolicyRollConfig", "batchSizePercentage"); - } - this.batchSizePercentage = batchSizePercentage; - return this; - } - @CustomType.Setter - public Builder gracePeriod(@Nullable Integer gracePeriod) { - - this.gracePeriod = gracePeriod; - return this; - } - @CustomType.Setter - public Builder healthCheckType(@Nullable String healthCheckType) { - - this.healthCheckType = healthCheckType; - return this; - } - public ElastigroupUpdatePolicyRollConfig build() { - final var _resultValue = new ElastigroupUpdatePolicyRollConfig(); - _resultValue.batchSizePercentage = batchSizePercentage; - _resultValue.gracePeriod = gracePeriod; - _resultValue.healthCheckType = healthCheckType; - return _resultValue; - } - } -} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpAutoscaler.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpAutoscaler.java index 5635dd58..2ca7639a 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpAutoscaler.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpAutoscaler.java @@ -14,21 +14,53 @@ @CustomType public final class OceanNpAutoscaler { + /** + * @return Auto Scaling scale down operations. + * + */ private @Nullable OceanNpAutoscalerAutoscaleDown autoscaleDown; + /** + * @return Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + * + */ private @Nullable OceanNpAutoscalerAutoscaleHeadroom autoscaleHeadroom; + /** + * @return Enable the Ocean Kubernetes Autoscaler. + * + */ private @Nullable Boolean autoscaleIsEnabled; + /** + * @return Optionally set upper and lower bounds on the resource usage of the cluster. + * + */ private @Nullable OceanNpAutoscalerResourceLimits resourceLimits; private OceanNpAutoscaler() {} + /** + * @return Auto Scaling scale down operations. + * + */ public Optional autoscaleDown() { return Optional.ofNullable(this.autoscaleDown); } + /** + * @return Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + * + */ public Optional autoscaleHeadroom() { return Optional.ofNullable(this.autoscaleHeadroom); } + /** + * @return Enable the Ocean Kubernetes Autoscaler. + * + */ public Optional autoscaleIsEnabled() { return Optional.ofNullable(this.autoscaleIsEnabled); } + /** + * @return Optionally set upper and lower bounds on the resource usage of the cluster. + * + */ public Optional resourceLimits() { return Optional.ofNullable(this.resourceLimits); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpFilters.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpFilters.java index 153a7adf..df9f3d42 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpFilters.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpFilters.java @@ -14,65 +14,189 @@ @CustomType public final class OceanNpFilters { + /** + * @return In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + */ private @Nullable String acceleratedNetworking; + /** + * @return The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + */ private @Nullable List architectures; + /** + * @return The filtered vm sizes will support at least one of the classes from this list. + * + */ private @Nullable String diskPerformance; + /** + * @return Vm sizes belonging to a series from the list will not be available for scaling + * + */ private @Nullable List excludeSeries; + /** + * @return The filtered gpu types will belong to one of the gpu types from this list. + * + * <a id="update-policy"></a> + * + */ private @Nullable List gpuTypes; + /** + * @return Maximum number of GPUs available. + * + */ private @Nullable Double maxGpu; + /** + * @return Maximum amount of Memory (GiB). + * + */ private @Nullable Double maxMemoryGib; + /** + * @return Maximum number of vcpus available. + * + */ private @Nullable Integer maxVcpu; + /** + * @return Minimum number of data disks available. + * + */ private @Nullable Integer minDisk; + /** + * @return Minimum number of GPUs available. + * + */ private @Nullable Double minGpu; + /** + * @return Minimum amount of Memory (GiB). + * + */ private @Nullable Double minMemoryGib; + /** + * @return Minimum number of network interfaces. + * + */ private @Nullable Integer minNics; + /** + * @return Minimum number of vcpus available. + * + */ private @Nullable Integer minVcpu; + /** + * @return Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + * + */ private @Nullable List series; + /** + * @return The filtered vm types will belong to one of the vm types from this list. + * + */ private @Nullable List vmTypes; private OceanNpFilters() {} + /** + * @return In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + */ public Optional acceleratedNetworking() { return Optional.ofNullable(this.acceleratedNetworking); } + /** + * @return The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + */ public List architectures() { return this.architectures == null ? List.of() : this.architectures; } + /** + * @return The filtered vm sizes will support at least one of the classes from this list. + * + */ public Optional diskPerformance() { return Optional.ofNullable(this.diskPerformance); } + /** + * @return Vm sizes belonging to a series from the list will not be available for scaling + * + */ public List excludeSeries() { return this.excludeSeries == null ? List.of() : this.excludeSeries; } + /** + * @return The filtered gpu types will belong to one of the gpu types from this list. + * + * <a id="update-policy"></a> + * + */ public List gpuTypes() { return this.gpuTypes == null ? List.of() : this.gpuTypes; } + /** + * @return Maximum number of GPUs available. + * + */ public Optional maxGpu() { return Optional.ofNullable(this.maxGpu); } + /** + * @return Maximum amount of Memory (GiB). + * + */ public Optional maxMemoryGib() { return Optional.ofNullable(this.maxMemoryGib); } + /** + * @return Maximum number of vcpus available. + * + */ public Optional maxVcpu() { return Optional.ofNullable(this.maxVcpu); } + /** + * @return Minimum number of data disks available. + * + */ public Optional minDisk() { return Optional.ofNullable(this.minDisk); } + /** + * @return Minimum number of GPUs available. + * + */ public Optional minGpu() { return Optional.ofNullable(this.minGpu); } + /** + * @return Minimum amount of Memory (GiB). + * + */ public Optional minMemoryGib() { return Optional.ofNullable(this.minMemoryGib); } + /** + * @return Minimum number of network interfaces. + * + */ public Optional minNics() { return Optional.ofNullable(this.minNics); } + /** + * @return Minimum number of vcpus available. + * + */ public Optional minVcpu() { return Optional.ofNullable(this.minVcpu); } + /** + * @return Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + * + */ public List series() { return this.series == null ? List.of() : this.series; } + /** + * @return The filtered vm types will belong to one of the vm types from this list. + * + */ public List vmTypes() { return this.vmTypes == null ? List.of() : this.vmTypes; } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpHeadroom.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpHeadroom.java index b5a0725a..5c17e78a 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpHeadroom.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpHeadroom.java @@ -11,21 +11,53 @@ @CustomType public final class OceanNpHeadroom { + /** + * @return Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + */ private @Nullable Integer cpuPerUnit; + /** + * @return Amount of GPU to allocate for headroom unit. + * + */ private @Nullable Integer gpuPerUnit; + /** + * @return Configure the amount of memory (MiB) to allocate the headroom. + * + */ private @Nullable Integer memoryPerUnit; + /** + * @return The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + */ private @Nullable Integer numOfUnits; private OceanNpHeadroom() {} + /** + * @return Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + */ public Optional cpuPerUnit() { return Optional.ofNullable(this.cpuPerUnit); } + /** + * @return Amount of GPU to allocate for headroom unit. + * + */ public Optional gpuPerUnit() { return Optional.ofNullable(this.gpuPerUnit); } + /** + * @return Configure the amount of memory (MiB) to allocate the headroom. + * + */ public Optional memoryPerUnit() { return Optional.ofNullable(this.memoryPerUnit); } + /** + * @return The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + */ public Optional numOfUnits() { return Optional.ofNullable(this.numOfUnits); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpHealth.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpHealth.java index dcd67670..7e2b14cf 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpHealth.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpHealth.java @@ -11,9 +11,17 @@ @CustomType public final class OceanNpHealth { + /** + * @return The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + * + */ private @Nullable Integer gracePeriod; private OceanNpHealth() {} + /** + * @return The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + * + */ public Optional gracePeriod() { return Optional.ofNullable(this.gracePeriod); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpScheduling.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpScheduling.java index 2f4b6cda..d39eb1ea 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpScheduling.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpScheduling.java @@ -11,9 +11,17 @@ @CustomType public final class OceanNpScheduling { + /** + * @return [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + * + */ private @Nullable OceanNpSchedulingShutdownHours shutdownHours; private OceanNpScheduling() {} + /** + * @return [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + * + */ public Optional shutdownHours() { return Optional.ofNullable(this.shutdownHours); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpTaint.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpTaint.java index 2ca286a1..991338d9 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpTaint.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpTaint.java @@ -10,17 +10,41 @@ @CustomType public final class OceanNpTaint { + /** + * @return Set taint effect. + * + */ private String effect; + /** + * @return Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + * + */ private String key; + /** + * @return Set taint value. + * + */ private String value; private OceanNpTaint() {} + /** + * @return Set taint effect. + * + */ public String effect() { return this.effect; } + /** + * @return Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + * + */ public String key() { return this.key; } + /** + * @return Set taint value. + * + */ public String value() { return this.value; } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupFilters.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupFilters.java index c926ea93..f2121eff 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupFilters.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupFilters.java @@ -14,65 +14,187 @@ @CustomType public final class OceanNpVirtualNodeGroupFilters { + /** + * @return In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + */ private @Nullable String acceleratedNetworking; + /** + * @return The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + */ private @Nullable List architectures; + /** + * @return The filtered vm sizes will support at least one of the classes from this list. + * + */ private @Nullable String diskPerformance; + /** + * @return Vm sizes belonging to a series from the list will not be available for scaling. + * + */ private @Nullable List excludeSeries; + /** + * @return The filtered gpu types will belong to one of the gpu types from this list. + * <a id="update-policy"></a> + * + */ private @Nullable List gpuTypes; + /** + * @return Maximum number of GPUs available. + * + */ private @Nullable Double maxGpu; + /** + * @return Maximum amount of Memory (GiB). + * + */ private @Nullable Double maxMemoryGib; + /** + * @return Maximum number of vcpus available. + * + */ private @Nullable Integer maxVcpu; + /** + * @return Minimum number of data disks available. + * + */ private @Nullable Integer minDisk; + /** + * @return Minimum number of GPUs available. + * + */ private @Nullable Double minGpu; + /** + * @return Minimum amount of Memory (GiB). + * + */ private @Nullable Double minMemoryGib; + /** + * @return Minimum number of network interfaces. + * + */ private @Nullable Integer minNics; + /** + * @return Minimum number of vcpus available. + * + */ private @Nullable Integer minVcpu; + /** + * @return Vm sizes belonging to a series from the list will be available for scaling. + * + */ private @Nullable List series; + /** + * @return The filtered vm types will belong to one of the vm types from this list. + * + */ private @Nullable List vmTypes; private OceanNpVirtualNodeGroupFilters() {} + /** + * @return In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + * + */ public Optional acceleratedNetworking() { return Optional.ofNullable(this.acceleratedNetworking); } + /** + * @return The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + * + */ public List architectures() { return this.architectures == null ? List.of() : this.architectures; } + /** + * @return The filtered vm sizes will support at least one of the classes from this list. + * + */ public Optional diskPerformance() { return Optional.ofNullable(this.diskPerformance); } + /** + * @return Vm sizes belonging to a series from the list will not be available for scaling. + * + */ public List excludeSeries() { return this.excludeSeries == null ? List.of() : this.excludeSeries; } + /** + * @return The filtered gpu types will belong to one of the gpu types from this list. + * <a id="update-policy"></a> + * + */ public List gpuTypes() { return this.gpuTypes == null ? List.of() : this.gpuTypes; } + /** + * @return Maximum number of GPUs available. + * + */ public Optional maxGpu() { return Optional.ofNullable(this.maxGpu); } + /** + * @return Maximum amount of Memory (GiB). + * + */ public Optional maxMemoryGib() { return Optional.ofNullable(this.maxMemoryGib); } + /** + * @return Maximum number of vcpus available. + * + */ public Optional maxVcpu() { return Optional.ofNullable(this.maxVcpu); } + /** + * @return Minimum number of data disks available. + * + */ public Optional minDisk() { return Optional.ofNullable(this.minDisk); } + /** + * @return Minimum number of GPUs available. + * + */ public Optional minGpu() { return Optional.ofNullable(this.minGpu); } + /** + * @return Minimum amount of Memory (GiB). + * + */ public Optional minMemoryGib() { return Optional.ofNullable(this.minMemoryGib); } + /** + * @return Minimum number of network interfaces. + * + */ public Optional minNics() { return Optional.ofNullable(this.minNics); } + /** + * @return Minimum number of vcpus available. + * + */ public Optional minVcpu() { return Optional.ofNullable(this.minVcpu); } + /** + * @return Vm sizes belonging to a series from the list will be available for scaling. + * + */ public List series() { return this.series == null ? List.of() : this.series; } + /** + * @return The filtered vm types will belong to one of the vm types from this list. + * + */ public List vmTypes() { return this.vmTypes == null ? List.of() : this.vmTypes; } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupHeadroom.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupHeadroom.java index 0834dc06..781b5e4c 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupHeadroom.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupHeadroom.java @@ -11,21 +11,53 @@ @CustomType public final class OceanNpVirtualNodeGroupHeadroom { + /** + * @return Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + */ private @Nullable Integer cpuPerUnit; + /** + * @return Amount of GPU to allocate for headroom unit. + * + */ private @Nullable Integer gpuPerUnit; + /** + * @return Configure the amount of memory (MiB) to allocate the headroom. + * + */ private @Nullable Integer memoryPerUnit; + /** + * @return The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + */ private @Nullable Integer numOfUnits; private OceanNpVirtualNodeGroupHeadroom() {} + /** + * @return Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + * + */ public Optional cpuPerUnit() { return Optional.ofNullable(this.cpuPerUnit); } + /** + * @return Amount of GPU to allocate for headroom unit. + * + */ public Optional gpuPerUnit() { return Optional.ofNullable(this.gpuPerUnit); } + /** + * @return Configure the amount of memory (MiB) to allocate the headroom. + * + */ public Optional memoryPerUnit() { return Optional.ofNullable(this.memoryPerUnit); } + /** + * @return The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + * + */ public Optional numOfUnits() { return Optional.ofNullable(this.numOfUnits); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupTaint.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupTaint.java index 0f6eeb8e..ed4b3b9c 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupTaint.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupTaint.java @@ -10,17 +10,41 @@ @CustomType public final class OceanNpVirtualNodeGroupTaint { + /** + * @return Set taint effect. + * + */ private String effect; + /** + * @return Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + * + */ private String key; + /** + * @return Set taint value. + * + */ private String value; private OceanNpVirtualNodeGroupTaint() {} + /** + * @return Set taint effect. + * + */ public String effect() { return this.effect; } + /** + * @return Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + * + */ public String key() { return this.key; } + /** + * @return Set taint value. + * + */ public String value() { return this.value; } diff --git a/sdk/nodejs/azure/elastigroup.ts b/sdk/nodejs/azure/elastigroup.ts deleted file mode 100644 index 2ef66c9f..00000000 --- a/sdk/nodejs/azure/elastigroup.ts +++ /dev/null @@ -1,371 +0,0 @@ -// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -// *** Do not edit by hand unless you're certain you know what you are doing! *** - -import * as pulumi from "@pulumi/pulumi"; -import * as inputs from "../types/input"; -import * as outputs from "../types/output"; -import * as utilities from "../utilities"; - -/** - * Provides a Spotinst elastigroup Azure resource. - * - * ## Example Usage - * - * ```typescript - * import * as pulumi from "@pulumi/pulumi"; - * import * as spotinst from "@pulumi/spotinst"; - * - * const testAzureGroup = new spotinst.ElastigroupAzureV3("test_azure_group", { - * name: "example_elastigroup_azure", - * resourceGroupName: "spotinst-azure", - * region: "eastus", - * os: "Linux", - * minSize: 0, - * maxSize: 1, - * desiredCapacity: 1, - * odSizes: [ - * "standard_a1_v1", - * "standard_a1_v2", - * ], - * spotSizes: [ - * "standard_a1_v1", - * "standard_a1_v2", - * ], - * customData: "IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=", - * managedServiceIdentities: [{ - * resourceGroupName: "MC_ocean-westus-dev_ocean-westus-dev-aks_westus", - * name: "ocean-westus-dev-aks-agentpool", - * }], - * tags: [ - * { - * key: "key1", - * value: "value1", - * }, - * { - * key: "key2", - * value: "value2", - * }, - * ], - * images: [{ - * marketplaces: [{ - * publisher: "Canonical", - * offer: "UbuntuServer", - * sku: "18.04-LTS", - * version: "latest", - * }], - * }], - * spotPercentage: 65, - * drainingTimeout: 300, - * fallbackToOnDemand: true, - * network: { - * virtualNetworkName: "VirtualNetworkName", - * resourceGroupName: "ResourceGroup", - * networkInterfaces: [{ - * subnetName: "default", - * assignPublicIp: false, - * isPrimary: true, - * additionalIpConfigs: [{ - * name: "SecondaryIPConfig", - * privateIPVersion: "IPv4", - * }], - * applicationSecurityGroups: [{ - * name: "ApplicationSecurityGroupName", - * resourceGroupName: "ResourceGroup", - * }], - * }], - * }, - * login: { - * userName: "admin", - * sshPublicKey: "33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==", - * }, - * }); - * ``` - * - * ## Strategy - * - * * `spotPercentage` - (Optional) Percentage of Spot-VMs to maintain. Required if `onDemandCount` is not specified. - * * `onDemandCount` - (Optional) Number of On-Demand VMs to maintain. Required if `spotPercentage` is not specified. - * * `fallbackToOnDemand` - - * * `drainingTimeout` - (Optional, Default `120`) Time (seconds) to allow the instance to be drained from incoming TCP connections and detached from MLB before terminating it during a scale-down operation. - * - * - */ -export class Elastigroup extends pulumi.CustomResource { - /** - * Get an existing Elastigroup resource's state with the given name, ID, and optional extra - * properties used to qualify the lookup. - * - * @param name The _unique_ name of the resulting resource. - * @param id The _unique_ provider ID of the resource to lookup. - * @param state Any extra arguments used during the lookup. - * @param opts Optional settings to control the behavior of the CustomResource. - */ - public static get(name: string, id: pulumi.Input, state?: ElastigroupState, opts?: pulumi.CustomResourceOptions): Elastigroup { - return new Elastigroup(name, state, { ...opts, id: id }); - } - - /** @internal */ - public static readonly __pulumiType = 'spotinst:azure/elastigroup:Elastigroup'; - - /** - * Returns true if the given object is an instance of Elastigroup. This is designed to work even - * when multiple copies of the Pulumi SDK have been loaded into the same process. - */ - public static isInstance(obj: any): obj is Elastigroup { - if (obj === undefined || obj === null) { - return false; - } - return obj['__pulumiType'] === Elastigroup.__pulumiType; - } - - /** - * Custom init script file or text in Base64 encoded format. - */ - public readonly customData!: pulumi.Output; - /** - * The desired number of instances the group should have at any time. - */ - public readonly desiredCapacity!: pulumi.Output; - public readonly healthCheck!: pulumi.Output; - public readonly images!: pulumi.Output; - public readonly integrationKubernetes!: pulumi.Output; - public readonly integrationMultaiRuntime!: pulumi.Output; - public readonly loadBalancers!: pulumi.Output; - public readonly login!: pulumi.Output; - public readonly lowPrioritySizes!: pulumi.Output; - public readonly managedServiceIdentities!: pulumi.Output; - /** - * The maximum number of instances the group should have at any time. - */ - public readonly maxSize!: pulumi.Output; - /** - * The minimum number of instances the group should have at any time. - */ - public readonly minSize!: pulumi.Output; - /** - * The group name. - */ - public readonly name!: pulumi.Output; - public readonly network!: pulumi.Output; - /** - * Available On-Demand sizes - */ - public readonly odSizes!: pulumi.Output; - public readonly product!: pulumi.Output; - /** - * The region your Azure group will be created in. - */ - public readonly region!: pulumi.Output; - /** - * Name of the Resource Group for Elastigroup. - */ - public readonly resourceGroupName!: pulumi.Output; - public readonly scalingDownPolicies!: pulumi.Output; - public readonly scalingUpPolicies!: pulumi.Output; - public readonly scheduledTasks!: pulumi.Output; - public readonly shutdownScript!: pulumi.Output; - public readonly strategy!: pulumi.Output; - public readonly updatePolicy!: pulumi.Output; - public readonly userData!: pulumi.Output; - - /** - * Create a Elastigroup resource with the given unique name, arguments, and options. - * - * @param name The _unique_ name of the resource. - * @param args The arguments to use to populate this resource's properties. - * @param opts A bag of options that control this resource's behavior. - */ - constructor(name: string, args: ElastigroupArgs, opts?: pulumi.CustomResourceOptions) - constructor(name: string, argsOrState?: ElastigroupArgs | ElastigroupState, opts?: pulumi.CustomResourceOptions) { - let resourceInputs: pulumi.Inputs = {}; - opts = opts || {}; - if (opts.id) { - const state = argsOrState as ElastigroupState | undefined; - resourceInputs["customData"] = state ? state.customData : undefined; - resourceInputs["desiredCapacity"] = state ? state.desiredCapacity : undefined; - resourceInputs["healthCheck"] = state ? state.healthCheck : undefined; - resourceInputs["images"] = state ? state.images : undefined; - resourceInputs["integrationKubernetes"] = state ? state.integrationKubernetes : undefined; - resourceInputs["integrationMultaiRuntime"] = state ? state.integrationMultaiRuntime : undefined; - resourceInputs["loadBalancers"] = state ? state.loadBalancers : undefined; - resourceInputs["login"] = state ? state.login : undefined; - resourceInputs["lowPrioritySizes"] = state ? state.lowPrioritySizes : undefined; - resourceInputs["managedServiceIdentities"] = state ? state.managedServiceIdentities : undefined; - resourceInputs["maxSize"] = state ? state.maxSize : undefined; - resourceInputs["minSize"] = state ? state.minSize : undefined; - resourceInputs["name"] = state ? state.name : undefined; - resourceInputs["network"] = state ? state.network : undefined; - resourceInputs["odSizes"] = state ? state.odSizes : undefined; - resourceInputs["product"] = state ? state.product : undefined; - resourceInputs["region"] = state ? state.region : undefined; - resourceInputs["resourceGroupName"] = state ? state.resourceGroupName : undefined; - resourceInputs["scalingDownPolicies"] = state ? state.scalingDownPolicies : undefined; - resourceInputs["scalingUpPolicies"] = state ? state.scalingUpPolicies : undefined; - resourceInputs["scheduledTasks"] = state ? state.scheduledTasks : undefined; - resourceInputs["shutdownScript"] = state ? state.shutdownScript : undefined; - resourceInputs["strategy"] = state ? state.strategy : undefined; - resourceInputs["updatePolicy"] = state ? state.updatePolicy : undefined; - resourceInputs["userData"] = state ? state.userData : undefined; - } else { - const args = argsOrState as ElastigroupArgs | undefined; - if ((!args || args.lowPrioritySizes === undefined) && !opts.urn) { - throw new Error("Missing required property 'lowPrioritySizes'"); - } - if ((!args || args.network === undefined) && !opts.urn) { - throw new Error("Missing required property 'network'"); - } - if ((!args || args.odSizes === undefined) && !opts.urn) { - throw new Error("Missing required property 'odSizes'"); - } - if ((!args || args.product === undefined) && !opts.urn) { - throw new Error("Missing required property 'product'"); - } - if ((!args || args.region === undefined) && !opts.urn) { - throw new Error("Missing required property 'region'"); - } - if ((!args || args.resourceGroupName === undefined) && !opts.urn) { - throw new Error("Missing required property 'resourceGroupName'"); - } - if ((!args || args.strategy === undefined) && !opts.urn) { - throw new Error("Missing required property 'strategy'"); - } - resourceInputs["customData"] = args ? args.customData : undefined; - resourceInputs["desiredCapacity"] = args ? args.desiredCapacity : undefined; - resourceInputs["healthCheck"] = args ? args.healthCheck : undefined; - resourceInputs["images"] = args ? args.images : undefined; - resourceInputs["integrationKubernetes"] = args ? args.integrationKubernetes : undefined; - resourceInputs["integrationMultaiRuntime"] = args ? args.integrationMultaiRuntime : undefined; - resourceInputs["loadBalancers"] = args ? args.loadBalancers : undefined; - resourceInputs["login"] = args ? args.login : undefined; - resourceInputs["lowPrioritySizes"] = args ? args.lowPrioritySizes : undefined; - resourceInputs["managedServiceIdentities"] = args ? args.managedServiceIdentities : undefined; - resourceInputs["maxSize"] = args ? args.maxSize : undefined; - resourceInputs["minSize"] = args ? args.minSize : undefined; - resourceInputs["name"] = args ? args.name : undefined; - resourceInputs["network"] = args ? args.network : undefined; - resourceInputs["odSizes"] = args ? args.odSizes : undefined; - resourceInputs["product"] = args ? args.product : undefined; - resourceInputs["region"] = args ? args.region : undefined; - resourceInputs["resourceGroupName"] = args ? args.resourceGroupName : undefined; - resourceInputs["scalingDownPolicies"] = args ? args.scalingDownPolicies : undefined; - resourceInputs["scalingUpPolicies"] = args ? args.scalingUpPolicies : undefined; - resourceInputs["scheduledTasks"] = args ? args.scheduledTasks : undefined; - resourceInputs["shutdownScript"] = args ? args.shutdownScript : undefined; - resourceInputs["strategy"] = args ? args.strategy : undefined; - resourceInputs["updatePolicy"] = args ? args.updatePolicy : undefined; - resourceInputs["userData"] = args ? args.userData : undefined; - } - opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - super(Elastigroup.__pulumiType, name, resourceInputs, opts); - } -} - -/** - * Input properties used for looking up and filtering Elastigroup resources. - */ -export interface ElastigroupState { - /** - * Custom init script file or text in Base64 encoded format. - */ - customData?: pulumi.Input; - /** - * The desired number of instances the group should have at any time. - */ - desiredCapacity?: pulumi.Input; - healthCheck?: pulumi.Input; - images?: pulumi.Input[]>; - integrationKubernetes?: pulumi.Input; - integrationMultaiRuntime?: pulumi.Input; - loadBalancers?: pulumi.Input[]>; - login?: pulumi.Input; - lowPrioritySizes?: pulumi.Input[]>; - managedServiceIdentities?: pulumi.Input[]>; - /** - * The maximum number of instances the group should have at any time. - */ - maxSize?: pulumi.Input; - /** - * The minimum number of instances the group should have at any time. - */ - minSize?: pulumi.Input; - /** - * The group name. - */ - name?: pulumi.Input; - network?: pulumi.Input; - /** - * Available On-Demand sizes - */ - odSizes?: pulumi.Input[]>; - product?: pulumi.Input; - /** - * The region your Azure group will be created in. - */ - region?: pulumi.Input; - /** - * Name of the Resource Group for Elastigroup. - */ - resourceGroupName?: pulumi.Input; - scalingDownPolicies?: pulumi.Input[]>; - scalingUpPolicies?: pulumi.Input[]>; - scheduledTasks?: pulumi.Input[]>; - shutdownScript?: pulumi.Input; - strategy?: pulumi.Input; - updatePolicy?: pulumi.Input; - userData?: pulumi.Input; -} - -/** - * The set of arguments for constructing a Elastigroup resource. - */ -export interface ElastigroupArgs { - /** - * Custom init script file or text in Base64 encoded format. - */ - customData?: pulumi.Input; - /** - * The desired number of instances the group should have at any time. - */ - desiredCapacity?: pulumi.Input; - healthCheck?: pulumi.Input; - images?: pulumi.Input[]>; - integrationKubernetes?: pulumi.Input; - integrationMultaiRuntime?: pulumi.Input; - loadBalancers?: pulumi.Input[]>; - login?: pulumi.Input; - lowPrioritySizes: pulumi.Input[]>; - managedServiceIdentities?: pulumi.Input[]>; - /** - * The maximum number of instances the group should have at any time. - */ - maxSize?: pulumi.Input; - /** - * The minimum number of instances the group should have at any time. - */ - minSize?: pulumi.Input; - /** - * The group name. - */ - name?: pulumi.Input; - network: pulumi.Input; - /** - * Available On-Demand sizes - */ - odSizes: pulumi.Input[]>; - product: pulumi.Input; - /** - * The region your Azure group will be created in. - */ - region: pulumi.Input; - /** - * Name of the Resource Group for Elastigroup. - */ - resourceGroupName: pulumi.Input; - scalingDownPolicies?: pulumi.Input[]>; - scalingUpPolicies?: pulumi.Input[]>; - scheduledTasks?: pulumi.Input[]>; - shutdownScript?: pulumi.Input; - strategy: pulumi.Input; - updatePolicy?: pulumi.Input; - userData?: pulumi.Input; -} diff --git a/sdk/nodejs/azure/index.ts b/sdk/nodejs/azure/index.ts index faddf75c..4d71fc28 100644 --- a/sdk/nodejs/azure/index.ts +++ b/sdk/nodejs/azure/index.ts @@ -5,11 +5,6 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: -export { ElastigroupArgs, ElastigroupState } from "./elastigroup"; -export type Elastigroup = import("./elastigroup").Elastigroup; -export const Elastigroup: typeof import("./elastigroup").Elastigroup = null as any; -utilities.lazyLoad(exports, ["Elastigroup"], () => require("./elastigroup")); - export { OceanArgs, OceanState } from "./ocean"; export type Ocean = import("./ocean").Ocean; export const Ocean: typeof import("./ocean").Ocean = null as any; @@ -35,8 +30,6 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { - case "spotinst:azure/elastigroup:Elastigroup": - return new Elastigroup(name, undefined, { urn }) case "spotinst:azure/ocean:Ocean": return new Ocean(name, undefined, { urn }) case "spotinst:azure/oceanNp:OceanNp": @@ -50,7 +43,6 @@ const _module = { } }, }; -pulumi.runtime.registerResourceModule("spotinst", "azure/elastigroup", _module) pulumi.runtime.registerResourceModule("spotinst", "azure/ocean", _module) pulumi.runtime.registerResourceModule("spotinst", "azure/oceanNp", _module) pulumi.runtime.registerResourceModule("spotinst", "azure/oceanNpVirtualNodeGroup", _module) diff --git a/sdk/nodejs/azure/oceanNp.ts b/sdk/nodejs/azure/oceanNp.ts index fc870432..f834b94c 100644 --- a/sdk/nodejs/azure/oceanNp.ts +++ b/sdk/nodejs/azure/oceanNp.ts @@ -6,6 +6,32 @@ import * as inputs from "../types/input"; import * as outputs from "../types/output"; import * as utilities from "../utilities"; +/** + * Manages a Spotinst Ocean AKS resource. + * + * ## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as spotinst from "@pulumi/spotinst"; + * + * const example = new spotinst.azure.OceanNp("example", { + * name: "test", + * aksRegion: "eastus", + * aksClusterName: "test-cluster", + * aksInfrastructureResourceGroupName: "MC_TestResourceGroup_test-cluster_eastus", + * aksResourceGroupName: "TestResourceGroup", + * controllerClusterId: "test-123124", + * availabilityZones: [ + * "1", + * "2", + * "3", + * ], + * }); + * ``` + * + * ## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values + */ export class OceanNp extends pulumi.CustomResource { /** * Get an existing OceanNp resource's state with the given name, ID, and optional extra @@ -38,30 +64,99 @@ export class OceanNp extends pulumi.CustomResource { public readonly aksInfrastructureResourceGroupName!: pulumi.Output; public readonly aksRegion!: pulumi.Output; public readonly aksResourceGroupName!: pulumi.Output; + /** + * The Ocean Kubernetes Autoscaler object. + */ public readonly autoscaler!: pulumi.Output; + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + */ public readonly availabilityZones!: pulumi.Output; + /** + * Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + */ public readonly controllerClusterId!: pulumi.Output; + /** + * Enable node public IP. + */ public readonly enableNodePublicIp!: pulumi.Output; + /** + * If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + */ public readonly fallbackToOndemand!: pulumi.Output; + /** + * Filters for the VM sizes that can be launched from the virtual node group. + */ public readonly filters!: pulumi.Output; + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + */ public readonly headrooms!: pulumi.Output; + /** + * The Ocean AKS Health object. + */ public readonly health!: pulumi.Output; + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + */ public readonly kubernetesVersion!: pulumi.Output; + /** + * An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + */ public readonly labels!: pulumi.Output<{[key: string]: any} | undefined>; + /** + * Maximum node count limit. + */ public readonly maxCount!: pulumi.Output; + /** + * The maximum number of pods per node in the node pools. + */ public readonly maxPodsPerNode!: pulumi.Output; + /** + * Minimum node count limit. + */ public readonly minCount!: pulumi.Output; + /** + * Add a name for the Ocean cluster. + */ public readonly name!: pulumi.Output; + /** + * The size of the OS disk in GB. + */ public readonly osDiskSizeGb!: pulumi.Output; + /** + * The type of the OS disk. + */ public readonly osDiskType!: pulumi.Output; + /** + * The OS SKU of the OS type. Must correlate with the os type. + */ public readonly osSku!: pulumi.Output; + /** + * The OS type of the OS disk. Can't be modified once set. + */ public readonly osType!: pulumi.Output; + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + */ public readonly podSubnetIds!: pulumi.Output; + /** + * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + */ public readonly scheduling!: pulumi.Output; + /** + * Percentage of spot VMs to maintain. + */ public readonly spotPercentage!: pulumi.Output; public readonly tags!: pulumi.Output<{[key: string]: any} | undefined>; + /** + * Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + */ public readonly taints!: pulumi.Output; public readonly updatePolicy!: pulumi.Output; + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + */ public readonly vnetSubnetIds!: pulumi.Output; /** @@ -169,30 +264,99 @@ export interface OceanNpState { aksInfrastructureResourceGroupName?: pulumi.Input; aksRegion?: pulumi.Input; aksResourceGroupName?: pulumi.Input; + /** + * The Ocean Kubernetes Autoscaler object. + */ autoscaler?: pulumi.Input; + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + */ availabilityZones?: pulumi.Input[]>; + /** + * Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + */ controllerClusterId?: pulumi.Input; + /** + * Enable node public IP. + */ enableNodePublicIp?: pulumi.Input; + /** + * If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + */ fallbackToOndemand?: pulumi.Input; + /** + * Filters for the VM sizes that can be launched from the virtual node group. + */ filters?: pulumi.Input; + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + */ headrooms?: pulumi.Input[]>; + /** + * The Ocean AKS Health object. + */ health?: pulumi.Input; + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + */ kubernetesVersion?: pulumi.Input; + /** + * An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + */ labels?: pulumi.Input<{[key: string]: any}>; + /** + * Maximum node count limit. + */ maxCount?: pulumi.Input; + /** + * The maximum number of pods per node in the node pools. + */ maxPodsPerNode?: pulumi.Input; + /** + * Minimum node count limit. + */ minCount?: pulumi.Input; + /** + * Add a name for the Ocean cluster. + */ name?: pulumi.Input; + /** + * The size of the OS disk in GB. + */ osDiskSizeGb?: pulumi.Input; + /** + * The type of the OS disk. + */ osDiskType?: pulumi.Input; + /** + * The OS SKU of the OS type. Must correlate with the os type. + */ osSku?: pulumi.Input; + /** + * The OS type of the OS disk. Can't be modified once set. + */ osType?: pulumi.Input; + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + */ podSubnetIds?: pulumi.Input[]>; + /** + * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + */ scheduling?: pulumi.Input; + /** + * Percentage of spot VMs to maintain. + */ spotPercentage?: pulumi.Input; tags?: pulumi.Input<{[key: string]: any}>; + /** + * Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + */ taints?: pulumi.Input[]>; updatePolicy?: pulumi.Input; + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + */ vnetSubnetIds?: pulumi.Input[]>; } @@ -204,29 +368,98 @@ export interface OceanNpArgs { aksInfrastructureResourceGroupName: pulumi.Input; aksRegion: pulumi.Input; aksResourceGroupName: pulumi.Input; + /** + * The Ocean Kubernetes Autoscaler object. + */ autoscaler?: pulumi.Input; + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + */ availabilityZones: pulumi.Input[]>; + /** + * Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + */ controllerClusterId: pulumi.Input; + /** + * Enable node public IP. + */ enableNodePublicIp?: pulumi.Input; + /** + * If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + */ fallbackToOndemand?: pulumi.Input; + /** + * Filters for the VM sizes that can be launched from the virtual node group. + */ filters?: pulumi.Input; + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + */ headrooms?: pulumi.Input[]>; + /** + * The Ocean AKS Health object. + */ health?: pulumi.Input; + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + */ kubernetesVersion?: pulumi.Input; + /** + * An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + */ labels?: pulumi.Input<{[key: string]: any}>; + /** + * Maximum node count limit. + */ maxCount?: pulumi.Input; + /** + * The maximum number of pods per node in the node pools. + */ maxPodsPerNode?: pulumi.Input; + /** + * Minimum node count limit. + */ minCount?: pulumi.Input; + /** + * Add a name for the Ocean cluster. + */ name?: pulumi.Input; + /** + * The size of the OS disk in GB. + */ osDiskSizeGb?: pulumi.Input; + /** + * The type of the OS disk. + */ osDiskType?: pulumi.Input; + /** + * The OS SKU of the OS type. Must correlate with the os type. + */ osSku?: pulumi.Input; + /** + * The OS type of the OS disk. Can't be modified once set. + */ osType?: pulumi.Input; + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + */ podSubnetIds?: pulumi.Input[]>; + /** + * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + */ scheduling?: pulumi.Input; + /** + * Percentage of spot VMs to maintain. + */ spotPercentage?: pulumi.Input; tags?: pulumi.Input<{[key: string]: any}>; + /** + * Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + */ taints?: pulumi.Input[]>; updatePolicy?: pulumi.Input; + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + */ vnetSubnetIds?: pulumi.Input[]>; } diff --git a/sdk/nodejs/azure/oceanNpVirtualNodeGroup.ts b/sdk/nodejs/azure/oceanNpVirtualNodeGroup.ts index e5c70d08..81287e99 100644 --- a/sdk/nodejs/azure/oceanNpVirtualNodeGroup.ts +++ b/sdk/nodejs/azure/oceanNpVirtualNodeGroup.ts @@ -6,6 +6,91 @@ import * as inputs from "../types/input"; import * as outputs from "../types/output"; import * as utilities from "../utilities"; +/** + * Manages a Spotinst Ocean AKS Virtual Node Groups resource. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as spotinst from "@pulumi/spotinst"; + * + * const example = new spotinst.azure.OceanNpVirtualNodeGroup("example", { + * name: "testVng", + * oceanId: "o-134abcd", + * headrooms: [{ + * cpuPerUnit: 1024, + * memoryPerUnit: 512, + * gpuPerUnit: 0, + * numOfUnits: 2, + * }], + * availabilityZones: [ + * "1", + * "2", + * "3", + * ], + * labels: { + * key: "env", + * value: "test", + * }, + * minCount: 1, + * maxCount: 100, + * maxPodsPerNode: 30, + * enableNodePublicIp: true, + * osDiskSizeGb: 30, + * osDiskType: "Managed", + * osType: "Linux", + * osSku: "Ubuntu", + * kubernetesVersion: "1.26", + * podSubnetIds: ["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], + * vnetSubnetIds: ["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], + * spotPercentage: 50, + * fallbackToOndemand: true, + * taints: [{ + * key: "taintKey", + * value: "taintValue", + * effect: "NoSchedule", + * }], + * tags: { + * tagKey: "env", + * tagValue: "staging", + * }, + * filters: { + * minVcpu: 2, + * maxVcpu: 16, + * minMemoryGib: 8, + * maxMemoryGib: 128, + * architectures: [ + * "x86_64", + * "arm64", + * ], + * series: [ + * "D v3", + * "Dds_v4", + * "Dsv2", + * ], + * excludeSeries: [ + * "Av2", + * "A", + * "Bs", + * "D", + * "E", + * ], + * acceleratedNetworking: "Enabled", + * diskPerformance: "Premium", + * minGpu: 1, + * maxGpu: 2, + * minNics: 1, + * vmTypes: [ + * "generalPurpose", + * "GPU", + * ], + * minDisk: 1, + * gpuTypes: ["nvidia-tesla-t4"], + * }, + * }); + * ``` + */ export class OceanNpVirtualNodeGroup extends pulumi.CustomResource { /** * Get an existing OceanNpVirtualNodeGroup resource's state with the given name, ID, and optional extra @@ -34,27 +119,87 @@ export class OceanNpVirtualNodeGroup extends pulumi.CustomResource { return obj['__pulumiType'] === OceanNpVirtualNodeGroup.__pulumiType; } + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + */ public readonly availabilityZones!: pulumi.Output; + /** + * Enable node public IP. + */ public readonly enableNodePublicIp!: pulumi.Output; + /** + * If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + */ public readonly fallbackToOndemand!: pulumi.Output; + /** + * Filters for the VM sizes that can be launched from the virtual node group. + */ public readonly filters!: pulumi.Output; + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + */ public readonly headrooms!: pulumi.Output; + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + */ public readonly kubernetesVersion!: pulumi.Output; + /** + * An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + */ public readonly labels!: pulumi.Output<{[key: string]: any} | undefined>; + /** + * Maximum node count limit. + */ public readonly maxCount!: pulumi.Output; + /** + * The maximum number of pods per node in the node pools. + */ public readonly maxPodsPerNode!: pulumi.Output; + /** + * Minimum node count limit. + */ public readonly minCount!: pulumi.Output; + /** + * Enter a name for the virtual node group. + */ public readonly name!: pulumi.Output; + /** + * The Ocean cluster identifier. Required for Launch Spec creation. + */ public readonly oceanId!: pulumi.Output; + /** + * The size of the OS disk in GB. + */ public readonly osDiskSizeGb!: pulumi.Output; + /** + * The type of the OS disk. + */ public readonly osDiskType!: pulumi.Output; + /** + * The OS SKU of the OS type. Must correlate with the os type. + */ public readonly osSku!: pulumi.Output; + /** + * The OS type of the OS disk. Can't be modified once set. + */ public readonly osType!: pulumi.Output; + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + */ public readonly podSubnetIds!: pulumi.Output; + /** + * Percentage of spot VMs to maintain. + */ public readonly spotPercentage!: pulumi.Output; public readonly tags!: pulumi.Output<{[key: string]: any} | undefined>; + /** + * Add taints to a virtual node group. + */ public readonly taints!: pulumi.Output; public readonly updatePolicy!: pulumi.Output; + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + */ public readonly vnetSubnetIds!: pulumi.Output; /** @@ -129,27 +274,87 @@ export class OceanNpVirtualNodeGroup extends pulumi.CustomResource { * Input properties used for looking up and filtering OceanNpVirtualNodeGroup resources. */ export interface OceanNpVirtualNodeGroupState { + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + */ availabilityZones?: pulumi.Input[]>; + /** + * Enable node public IP. + */ enableNodePublicIp?: pulumi.Input; + /** + * If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + */ fallbackToOndemand?: pulumi.Input; + /** + * Filters for the VM sizes that can be launched from the virtual node group. + */ filters?: pulumi.Input; + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + */ headrooms?: pulumi.Input[]>; + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + */ kubernetesVersion?: pulumi.Input; + /** + * An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + */ labels?: pulumi.Input<{[key: string]: any}>; + /** + * Maximum node count limit. + */ maxCount?: pulumi.Input; + /** + * The maximum number of pods per node in the node pools. + */ maxPodsPerNode?: pulumi.Input; + /** + * Minimum node count limit. + */ minCount?: pulumi.Input; + /** + * Enter a name for the virtual node group. + */ name?: pulumi.Input; + /** + * The Ocean cluster identifier. Required for Launch Spec creation. + */ oceanId?: pulumi.Input; + /** + * The size of the OS disk in GB. + */ osDiskSizeGb?: pulumi.Input; + /** + * The type of the OS disk. + */ osDiskType?: pulumi.Input; + /** + * The OS SKU of the OS type. Must correlate with the os type. + */ osSku?: pulumi.Input; + /** + * The OS type of the OS disk. Can't be modified once set. + */ osType?: pulumi.Input; + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + */ podSubnetIds?: pulumi.Input[]>; + /** + * Percentage of spot VMs to maintain. + */ spotPercentage?: pulumi.Input; tags?: pulumi.Input<{[key: string]: any}>; + /** + * Add taints to a virtual node group. + */ taints?: pulumi.Input[]>; updatePolicy?: pulumi.Input; + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + */ vnetSubnetIds?: pulumi.Input[]>; } @@ -157,26 +362,86 @@ export interface OceanNpVirtualNodeGroupState { * The set of arguments for constructing a OceanNpVirtualNodeGroup resource. */ export interface OceanNpVirtualNodeGroupArgs { + /** + * An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + */ availabilityZones?: pulumi.Input[]>; + /** + * Enable node public IP. + */ enableNodePublicIp?: pulumi.Input; + /** + * If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + */ fallbackToOndemand?: pulumi.Input; + /** + * Filters for the VM sizes that can be launched from the virtual node group. + */ filters?: pulumi.Input; + /** + * Specify the custom headroom per VNG. Provide a list of headroom objects. + */ headrooms?: pulumi.Input[]>; + /** + * The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + */ kubernetesVersion?: pulumi.Input; + /** + * An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + */ labels?: pulumi.Input<{[key: string]: any}>; + /** + * Maximum node count limit. + */ maxCount?: pulumi.Input; + /** + * The maximum number of pods per node in the node pools. + */ maxPodsPerNode?: pulumi.Input; + /** + * Minimum node count limit. + */ minCount?: pulumi.Input; + /** + * Enter a name for the virtual node group. + */ name?: pulumi.Input; + /** + * The Ocean cluster identifier. Required for Launch Spec creation. + */ oceanId: pulumi.Input; + /** + * The size of the OS disk in GB. + */ osDiskSizeGb?: pulumi.Input; + /** + * The type of the OS disk. + */ osDiskType?: pulumi.Input; + /** + * The OS SKU of the OS type. Must correlate with the os type. + */ osSku?: pulumi.Input; + /** + * The OS type of the OS disk. Can't be modified once set. + */ osType?: pulumi.Input; + /** + * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + */ podSubnetIds?: pulumi.Input[]>; + /** + * Percentage of spot VMs to maintain. + */ spotPercentage?: pulumi.Input; tags?: pulumi.Input<{[key: string]: any}>; + /** + * Add taints to a virtual node group. + */ taints?: pulumi.Input[]>; updatePolicy?: pulumi.Input; + /** + * The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + */ vnetSubnetIds?: pulumi.Input[]>; } diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 8720f8d4..7f62785d 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -24,7 +24,6 @@ "aws/oceanExtendedResourceDefinition.ts", "aws/oceanLaunchSpec.ts", "aws/suspension.ts", - "azure/elastigroup.ts", "azure/index.ts", "azure/ocean.ts", "azure/oceanNp.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 5889f6d2..9ed4d6aa 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -2101,170 +2101,6 @@ export namespace aws { } export namespace azure { - export interface ElastigroupHealthCheck { - autoHealing?: pulumi.Input; - gracePeriod?: pulumi.Input; - healthCheckType: pulumi.Input; - } - - export interface ElastigroupImage { - customs?: pulumi.Input[]>; - marketplaces?: pulumi.Input[]>; - } - - export interface ElastigroupImageCustom { - imageName: pulumi.Input; - /** - * Name of the Resource Group for Elastigroup. - */ - resourceGroupName: pulumi.Input; - } - - export interface ElastigroupImageMarketplace { - offer: pulumi.Input; - publisher: pulumi.Input; - sku: pulumi.Input; - } - - export interface ElastigroupIntegrationKubernetes { - clusterIdentifier: pulumi.Input; - } - - export interface ElastigroupIntegrationMultaiRuntime { - deploymentId: pulumi.Input; - } - - export interface ElastigroupLoadBalancer { - autoWeight?: pulumi.Input; - balancerId?: pulumi.Input; - targetSetId?: pulumi.Input; - type: pulumi.Input; - } - - export interface ElastigroupLogin { - password?: pulumi.Input; - sshPublicKey?: pulumi.Input; - userName: pulumi.Input; - } - - export interface ElastigroupManagedServiceIdentity { - /** - * The group name. - */ - name: pulumi.Input; - /** - * Name of the Resource Group for Elastigroup. - */ - resourceGroupName: pulumi.Input; - } - - export interface ElastigroupNetwork { - additionalIpConfigs?: pulumi.Input[]>; - assignPublicIp?: pulumi.Input; - /** - * Name of the Resource Group for Elastigroup. - */ - resourceGroupName: pulumi.Input; - subnetName: pulumi.Input; - virtualNetworkName: pulumi.Input; - } - - export interface ElastigroupNetworkAdditionalIpConfig { - /** - * The group name. - */ - name: pulumi.Input; - privateIpVersion?: pulumi.Input; - } - - export interface ElastigroupScalingDownPolicy { - actionType?: pulumi.Input; - adjustment?: pulumi.Input; - cooldown?: pulumi.Input; - dimensions?: pulumi.Input[]>; - evaluationPeriods?: pulumi.Input; - maxTargetCapacity?: pulumi.Input; - maximum?: pulumi.Input; - metricName: pulumi.Input; - minTargetCapacity?: pulumi.Input; - minimum?: pulumi.Input; - namespace: pulumi.Input; - operator?: pulumi.Input; - period?: pulumi.Input; - policyName: pulumi.Input; - statistic?: pulumi.Input; - target?: pulumi.Input; - threshold: pulumi.Input; - unit?: pulumi.Input; - } - - export interface ElastigroupScalingDownPolicyDimension { - /** - * The group name. - */ - name: pulumi.Input; - value?: pulumi.Input; - } - - export interface ElastigroupScalingUpPolicy { - actionType?: pulumi.Input; - adjustment?: pulumi.Input; - cooldown?: pulumi.Input; - dimensions?: pulumi.Input[]>; - evaluationPeriods?: pulumi.Input; - maxTargetCapacity?: pulumi.Input; - maximum?: pulumi.Input; - metricName: pulumi.Input; - minTargetCapacity?: pulumi.Input; - minimum?: pulumi.Input; - namespace: pulumi.Input; - operator?: pulumi.Input; - period?: pulumi.Input; - policyName: pulumi.Input; - statistic?: pulumi.Input; - target?: pulumi.Input; - threshold: pulumi.Input; - unit?: pulumi.Input; - } - - export interface ElastigroupScalingUpPolicyDimension { - /** - * The group name. - */ - name: pulumi.Input; - value?: pulumi.Input; - } - - export interface ElastigroupScheduledTask { - adjustment?: pulumi.Input; - adjustmentPercentage?: pulumi.Input; - batchSizePercentage?: pulumi.Input; - cronExpression: pulumi.Input; - gracePeriod?: pulumi.Input; - isEnabled?: pulumi.Input; - scaleMaxCapacity?: pulumi.Input; - scaleMinCapacity?: pulumi.Input; - scaleTargetCapacity?: pulumi.Input; - taskType: pulumi.Input; - } - - export interface ElastigroupStrategy { - drainingTimeout?: pulumi.Input; - lowPriorityPercentage?: pulumi.Input; - odCount?: pulumi.Input; - } - - export interface ElastigroupUpdatePolicy { - rollConfig?: pulumi.Input; - shouldRoll: pulumi.Input; - } - - export interface ElastigroupUpdatePolicyRollConfig { - batchSizePercentage: pulumi.Input; - gracePeriod?: pulumi.Input; - healthCheckType?: pulumi.Input; - } - export interface OceanAutoscaler { /** * Auto Scaling scale down operations. @@ -2420,9 +2256,21 @@ export namespace azure { } export interface OceanNpAutoscaler { + /** + * Auto Scaling scale down operations. + */ autoscaleDown?: pulumi.Input; + /** + * Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + */ autoscaleHeadroom?: pulumi.Input; + /** + * Enable the Ocean Kubernetes Autoscaler. + */ autoscaleIsEnabled?: pulumi.Input; + /** + * Optionally set upper and lower bounds on the resource usage of the cluster. + */ resourceLimits?: pulumi.Input; } @@ -2445,35 +2293,100 @@ export namespace azure { } export interface OceanNpFilters { + /** + * In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + */ acceleratedNetworking?: pulumi.Input; + /** + * The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. + */ architectures?: pulumi.Input[]>; + /** + * The filtered vm sizes will support at least one of the classes from this list. + */ diskPerformance?: pulumi.Input; + /** + * Vm sizes belonging to a series from the list will not be available for scaling + */ excludeSeries?: pulumi.Input[]>; + /** + * The filtered gpu types will belong to one of the gpu types from this list. + * + * + */ gpuTypes?: pulumi.Input[]>; + /** + * Maximum number of GPUs available. + */ maxGpu?: pulumi.Input; + /** + * Maximum amount of Memory (GiB). + */ maxMemoryGib?: pulumi.Input; + /** + * Maximum number of vcpus available. + */ maxVcpu?: pulumi.Input; + /** + * Minimum number of data disks available. + */ minDisk?: pulumi.Input; + /** + * Minimum number of GPUs available. + */ minGpu?: pulumi.Input; + /** + * Minimum amount of Memory (GiB). + */ minMemoryGib?: pulumi.Input; + /** + * Minimum number of network interfaces. + */ minNics?: pulumi.Input; + /** + * Minimum number of vcpus available. + */ minVcpu?: pulumi.Input; + /** + * Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "dsV2" refer to same DS_v2 series. + */ series?: pulumi.Input[]>; + /** + * The filtered vm types will belong to one of the vm types from this list. + */ vmTypes?: pulumi.Input[]>; } export interface OceanNpHeadroom { + /** + * Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + */ cpuPerUnit?: pulumi.Input; + /** + * Amount of GPU to allocate for headroom unit. + */ gpuPerUnit?: pulumi.Input; + /** + * Configure the amount of memory (MiB) to allocate the headroom. + */ memoryPerUnit?: pulumi.Input; + /** + * The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + */ numOfUnits?: pulumi.Input; } export interface OceanNpHealth { + /** + * The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + */ gracePeriod?: pulumi.Input; } export interface OceanNpScheduling { + /** + * [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + */ shutdownHours?: pulumi.Input; } @@ -2483,8 +2396,17 @@ export namespace azure { } export interface OceanNpTaint { + /** + * Set taint effect. + */ effect: pulumi.Input; + /** + * Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + */ key: pulumi.Input; + /** + * Set taint value. + */ value: pulumi.Input; } @@ -2506,33 +2428,100 @@ export namespace azure { } export interface OceanNpVirtualNodeGroupFilters { + /** + * In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + */ acceleratedNetworking?: pulumi.Input; + /** + * The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. + */ architectures?: pulumi.Input[]>; + /** + * The filtered vm sizes will support at least one of the classes from this list. + */ diskPerformance?: pulumi.Input; + /** + * Vm sizes belonging to a series from the list will not be available for scaling. + */ excludeSeries?: pulumi.Input[]>; + /** + * The filtered gpu types will belong to one of the gpu types from this list. + * + */ gpuTypes?: pulumi.Input[]>; + /** + * Maximum number of GPUs available. + */ maxGpu?: pulumi.Input; + /** + * Maximum amount of Memory (GiB). + */ maxMemoryGib?: pulumi.Input; + /** + * Maximum number of vcpus available. + */ maxVcpu?: pulumi.Input; + /** + * Minimum number of data disks available. + */ minDisk?: pulumi.Input; + /** + * Minimum number of GPUs available. + */ minGpu?: pulumi.Input; + /** + * Minimum amount of Memory (GiB). + */ minMemoryGib?: pulumi.Input; + /** + * Minimum number of network interfaces. + */ minNics?: pulumi.Input; + /** + * Minimum number of vcpus available. + */ minVcpu?: pulumi.Input; + /** + * Vm sizes belonging to a series from the list will be available for scaling. + */ series?: pulumi.Input[]>; + /** + * The filtered vm types will belong to one of the vm types from this list. + */ vmTypes?: pulumi.Input[]>; } export interface OceanNpVirtualNodeGroupHeadroom { + /** + * Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + */ cpuPerUnit?: pulumi.Input; + /** + * Amount of GPU to allocate for headroom unit. + */ gpuPerUnit?: pulumi.Input; + /** + * Configure the amount of memory (MiB) to allocate the headroom. + */ memoryPerUnit?: pulumi.Input; + /** + * The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + */ numOfUnits?: pulumi.Input; } export interface OceanNpVirtualNodeGroupTaint { + /** + * Set taint effect. + */ effect: pulumi.Input; + /** + * Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + */ key: pulumi.Input; + /** + * Set taint value. + */ value: pulumi.Input; } diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 1c2859e0..1f3cc92f 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -2103,170 +2103,6 @@ export namespace aws { } export namespace azure { - export interface ElastigroupHealthCheck { - autoHealing?: boolean; - gracePeriod?: number; - healthCheckType: string; - } - - export interface ElastigroupImage { - customs?: outputs.azure.ElastigroupImageCustom[]; - marketplaces?: outputs.azure.ElastigroupImageMarketplace[]; - } - - export interface ElastigroupImageCustom { - imageName: string; - /** - * Name of the Resource Group for Elastigroup. - */ - resourceGroupName: string; - } - - export interface ElastigroupImageMarketplace { - offer: string; - publisher: string; - sku: string; - } - - export interface ElastigroupIntegrationKubernetes { - clusterIdentifier: string; - } - - export interface ElastigroupIntegrationMultaiRuntime { - deploymentId: string; - } - - export interface ElastigroupLoadBalancer { - autoWeight?: boolean; - balancerId?: string; - targetSetId?: string; - type: string; - } - - export interface ElastigroupLogin { - password?: string; - sshPublicKey?: string; - userName: string; - } - - export interface ElastigroupManagedServiceIdentity { - /** - * The group name. - */ - name: string; - /** - * Name of the Resource Group for Elastigroup. - */ - resourceGroupName: string; - } - - export interface ElastigroupNetwork { - additionalIpConfigs?: outputs.azure.ElastigroupNetworkAdditionalIpConfig[]; - assignPublicIp?: boolean; - /** - * Name of the Resource Group for Elastigroup. - */ - resourceGroupName: string; - subnetName: string; - virtualNetworkName: string; - } - - export interface ElastigroupNetworkAdditionalIpConfig { - /** - * The group name. - */ - name: string; - privateIpVersion?: string; - } - - export interface ElastigroupScalingDownPolicy { - actionType?: string; - adjustment?: string; - cooldown: number; - dimensions?: outputs.azure.ElastigroupScalingDownPolicyDimension[]; - evaluationPeriods: number; - maxTargetCapacity?: string; - maximum?: string; - metricName: string; - minTargetCapacity?: string; - minimum?: string; - namespace: string; - operator: string; - period: number; - policyName: string; - statistic: string; - target?: string; - threshold: number; - unit?: string; - } - - export interface ElastigroupScalingDownPolicyDimension { - /** - * The group name. - */ - name: string; - value?: string; - } - - export interface ElastigroupScalingUpPolicy { - actionType?: string; - adjustment?: string; - cooldown: number; - dimensions?: outputs.azure.ElastigroupScalingUpPolicyDimension[]; - evaluationPeriods: number; - maxTargetCapacity?: string; - maximum?: string; - metricName: string; - minTargetCapacity?: string; - minimum?: string; - namespace: string; - operator: string; - period: number; - policyName: string; - statistic: string; - target?: string; - threshold: number; - unit?: string; - } - - export interface ElastigroupScalingUpPolicyDimension { - /** - * The group name. - */ - name: string; - value?: string; - } - - export interface ElastigroupScheduledTask { - adjustment?: string; - adjustmentPercentage?: string; - batchSizePercentage?: string; - cronExpression: string; - gracePeriod?: string; - isEnabled?: boolean; - scaleMaxCapacity?: string; - scaleMinCapacity?: string; - scaleTargetCapacity?: string; - taskType: string; - } - - export interface ElastigroupStrategy { - drainingTimeout?: number; - lowPriorityPercentage?: number; - odCount?: number; - } - - export interface ElastigroupUpdatePolicy { - rollConfig?: outputs.azure.ElastigroupUpdatePolicyRollConfig; - shouldRoll: boolean; - } - - export interface ElastigroupUpdatePolicyRollConfig { - batchSizePercentage: number; - gracePeriod?: number; - healthCheckType?: string; - } - export interface OceanAutoscaler { /** * Auto Scaling scale down operations. @@ -2422,9 +2258,21 @@ export namespace azure { } export interface OceanNpAutoscaler { + /** + * Auto Scaling scale down operations. + */ autoscaleDown?: outputs.azure.OceanNpAutoscalerAutoscaleDown; + /** + * Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + */ autoscaleHeadroom?: outputs.azure.OceanNpAutoscalerAutoscaleHeadroom; + /** + * Enable the Ocean Kubernetes Autoscaler. + */ autoscaleIsEnabled?: boolean; + /** + * Optionally set upper and lower bounds on the resource usage of the cluster. + */ resourceLimits?: outputs.azure.OceanNpAutoscalerResourceLimits; } @@ -2447,35 +2295,100 @@ export namespace azure { } export interface OceanNpFilters { + /** + * In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + */ acceleratedNetworking?: string; + /** + * The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. + */ architectures?: string[]; + /** + * The filtered vm sizes will support at least one of the classes from this list. + */ diskPerformance?: string; + /** + * Vm sizes belonging to a series from the list will not be available for scaling + */ excludeSeries?: string[]; + /** + * The filtered gpu types will belong to one of the gpu types from this list. + * + * + */ gpuTypes?: string[]; + /** + * Maximum number of GPUs available. + */ maxGpu?: number; + /** + * Maximum amount of Memory (GiB). + */ maxMemoryGib?: number; + /** + * Maximum number of vcpus available. + */ maxVcpu?: number; + /** + * Minimum number of data disks available. + */ minDisk?: number; + /** + * Minimum number of GPUs available. + */ minGpu?: number; + /** + * Minimum amount of Memory (GiB). + */ minMemoryGib?: number; + /** + * Minimum number of network interfaces. + */ minNics?: number; + /** + * Minimum number of vcpus available. + */ minVcpu?: number; + /** + * Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "dsV2" refer to same DS_v2 series. + */ series?: string[]; + /** + * The filtered vm types will belong to one of the vm types from this list. + */ vmTypes?: string[]; } export interface OceanNpHeadroom { + /** + * Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + */ cpuPerUnit?: number; + /** + * Amount of GPU to allocate for headroom unit. + */ gpuPerUnit?: number; + /** + * Configure the amount of memory (MiB) to allocate the headroom. + */ memoryPerUnit?: number; + /** + * The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + */ numOfUnits?: number; } export interface OceanNpHealth { + /** + * The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + */ gracePeriod?: number; } export interface OceanNpScheduling { + /** + * [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + */ shutdownHours?: outputs.azure.OceanNpSchedulingShutdownHours; } @@ -2485,8 +2398,17 @@ export namespace azure { } export interface OceanNpTaint { + /** + * Set taint effect. + */ effect: string; + /** + * Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + */ key: string; + /** + * Set taint value. + */ value: string; } @@ -2508,33 +2430,100 @@ export namespace azure { } export interface OceanNpVirtualNodeGroupFilters { + /** + * In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + */ acceleratedNetworking?: string; + /** + * The filtered vm sizes will support at least one of the architectures from this list. x8664 includes both intel64 and amd64. + */ architectures?: string[]; + /** + * The filtered vm sizes will support at least one of the classes from this list. + */ diskPerformance?: string; + /** + * Vm sizes belonging to a series from the list will not be available for scaling. + */ excludeSeries?: string[]; + /** + * The filtered gpu types will belong to one of the gpu types from this list. + * + */ gpuTypes?: string[]; + /** + * Maximum number of GPUs available. + */ maxGpu?: number; + /** + * Maximum amount of Memory (GiB). + */ maxMemoryGib?: number; + /** + * Maximum number of vcpus available. + */ maxVcpu?: number; + /** + * Minimum number of data disks available. + */ minDisk?: number; + /** + * Minimum number of GPUs available. + */ minGpu?: number; + /** + * Minimum amount of Memory (GiB). + */ minMemoryGib?: number; + /** + * Minimum number of network interfaces. + */ minNics?: number; + /** + * Minimum number of vcpus available. + */ minVcpu?: number; + /** + * Vm sizes belonging to a series from the list will be available for scaling. + */ series?: string[]; + /** + * The filtered vm types will belong to one of the vm types from this list. + */ vmTypes?: string[]; } export interface OceanNpVirtualNodeGroupHeadroom { + /** + * Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + */ cpuPerUnit?: number; + /** + * Amount of GPU to allocate for headroom unit. + */ gpuPerUnit?: number; + /** + * Configure the amount of memory (MiB) to allocate the headroom. + */ memoryPerUnit?: number; + /** + * The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + */ numOfUnits?: number; } export interface OceanNpVirtualNodeGroupTaint { + /** + * Set taint effect. + */ effect: string; + /** + * Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + */ key: string; + /** + * Set taint value. + */ value: string; } diff --git a/sdk/python/pulumi_spotinst/__init__.py b/sdk/python/pulumi_spotinst/__init__.py index 1be83c81..dda0d641 100644 --- a/sdk/python/pulumi_spotinst/__init__.py +++ b/sdk/python/pulumi_spotinst/__init__.py @@ -125,14 +125,6 @@ "spotinst:aws/suspension:Suspension": "Suspension" } }, - { - "pkg": "spotinst", - "mod": "azure/elastigroup", - "fqn": "pulumi_spotinst.azure", - "classes": { - "spotinst:azure/elastigroup:Elastigroup": "Elastigroup" - } - }, { "pkg": "spotinst", "mod": "azure/ocean", diff --git a/sdk/python/pulumi_spotinst/azure/__init__.py b/sdk/python/pulumi_spotinst/azure/__init__.py index 575bd1ea..612ccb06 100644 --- a/sdk/python/pulumi_spotinst/azure/__init__.py +++ b/sdk/python/pulumi_spotinst/azure/__init__.py @@ -5,7 +5,6 @@ from .. import _utilities import typing # Export this package's modules as members: -from .elastigroup import * from .ocean import * from .ocean_np import * from .ocean_np_virtual_node_group import * diff --git a/sdk/python/pulumi_spotinst/azure/_inputs.py b/sdk/python/pulumi_spotinst/azure/_inputs.py index d4c0604f..82b9f2f4 100644 --- a/sdk/python/pulumi_spotinst/azure/_inputs.py +++ b/sdk/python/pulumi_spotinst/azure/_inputs.py @@ -10,25 +10,6 @@ from .. import _utilities __all__ = [ - 'ElastigroupHealthCheckArgs', - 'ElastigroupImageArgs', - 'ElastigroupImageCustomArgs', - 'ElastigroupImageMarketplaceArgs', - 'ElastigroupIntegrationKubernetesArgs', - 'ElastigroupIntegrationMultaiRuntimeArgs', - 'ElastigroupLoadBalancerArgs', - 'ElastigroupLoginArgs', - 'ElastigroupManagedServiceIdentityArgs', - 'ElastigroupNetworkArgs', - 'ElastigroupNetworkAdditionalIpConfigArgs', - 'ElastigroupScalingDownPolicyArgs', - 'ElastigroupScalingDownPolicyDimensionArgs', - 'ElastigroupScalingUpPolicyArgs', - 'ElastigroupScalingUpPolicyDimensionArgs', - 'ElastigroupScheduledTaskArgs', - 'ElastigroupStrategyArgs', - 'ElastigroupUpdatePolicyArgs', - 'ElastigroupUpdatePolicyRollConfigArgs', 'OceanAutoscalerArgs', 'OceanAutoscalerAutoscaleDownArgs', 'OceanAutoscalerAutoscaleHeadroomArgs', @@ -76,1143 +57,6 @@ 'OceanVmSizeArgs', ] -@pulumi.input_type -class ElastigroupHealthCheckArgs: - def __init__(__self__, *, - health_check_type: pulumi.Input[str], - auto_healing: Optional[pulumi.Input[bool]] = None, - grace_period: Optional[pulumi.Input[int]] = None): - pulumi.set(__self__, "health_check_type", health_check_type) - if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) - if grace_period is not None: - pulumi.set(__self__, "grace_period", grace_period) - - @property - @pulumi.getter(name="healthCheckType") - def health_check_type(self) -> pulumi.Input[str]: - return pulumi.get(self, "health_check_type") - - @health_check_type.setter - def health_check_type(self, value: pulumi.Input[str]): - pulumi.set(self, "health_check_type", value) - - @property - @pulumi.getter(name="autoHealing") - def auto_healing(self) -> Optional[pulumi.Input[bool]]: - return pulumi.get(self, "auto_healing") - - @auto_healing.setter - def auto_healing(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "auto_healing", value) - - @property - @pulumi.getter(name="gracePeriod") - def grace_period(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "grace_period") - - @grace_period.setter - def grace_period(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "grace_period", value) - - -@pulumi.input_type -class ElastigroupImageArgs: - def __init__(__self__, *, - customs: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageCustomArgs']]]] = None, - marketplaces: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageMarketplaceArgs']]]] = None): - if customs is not None: - pulumi.set(__self__, "customs", customs) - if marketplaces is not None: - pulumi.set(__self__, "marketplaces", marketplaces) - - @property - @pulumi.getter - def customs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageCustomArgs']]]]: - return pulumi.get(self, "customs") - - @customs.setter - def customs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageCustomArgs']]]]): - pulumi.set(self, "customs", value) - - @property - @pulumi.getter - def marketplaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageMarketplaceArgs']]]]: - return pulumi.get(self, "marketplaces") - - @marketplaces.setter - def marketplaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageMarketplaceArgs']]]]): - pulumi.set(self, "marketplaces", value) - - -@pulumi.input_type -class ElastigroupImageCustomArgs: - def __init__(__self__, *, - image_name: pulumi.Input[str], - resource_group_name: pulumi.Input[str]): - """ - :param pulumi.Input[str] resource_group_name: Name of the Resource Group for Elastigroup. - """ - pulumi.set(__self__, "image_name", image_name) - pulumi.set(__self__, "resource_group_name", resource_group_name) - - @property - @pulumi.getter(name="imageName") - def image_name(self) -> pulumi.Input[str]: - return pulumi.get(self, "image_name") - - @image_name.setter - def image_name(self, value: pulumi.Input[str]): - pulumi.set(self, "image_name", value) - - @property - @pulumi.getter(name="resourceGroupName") - def resource_group_name(self) -> pulumi.Input[str]: - """ - Name of the Resource Group for Elastigroup. - """ - return pulumi.get(self, "resource_group_name") - - @resource_group_name.setter - def resource_group_name(self, value: pulumi.Input[str]): - pulumi.set(self, "resource_group_name", value) - - -@pulumi.input_type -class ElastigroupImageMarketplaceArgs: - def __init__(__self__, *, - offer: pulumi.Input[str], - publisher: pulumi.Input[str], - sku: pulumi.Input[str]): - pulumi.set(__self__, "offer", offer) - pulumi.set(__self__, "publisher", publisher) - pulumi.set(__self__, "sku", sku) - - @property - @pulumi.getter - def offer(self) -> pulumi.Input[str]: - return pulumi.get(self, "offer") - - @offer.setter - def offer(self, value: pulumi.Input[str]): - pulumi.set(self, "offer", value) - - @property - @pulumi.getter - def publisher(self) -> pulumi.Input[str]: - return pulumi.get(self, "publisher") - - @publisher.setter - def publisher(self, value: pulumi.Input[str]): - pulumi.set(self, "publisher", value) - - @property - @pulumi.getter - def sku(self) -> pulumi.Input[str]: - return pulumi.get(self, "sku") - - @sku.setter - def sku(self, value: pulumi.Input[str]): - pulumi.set(self, "sku", value) - - -@pulumi.input_type -class ElastigroupIntegrationKubernetesArgs: - def __init__(__self__, *, - cluster_identifier: pulumi.Input[str]): - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - - @property - @pulumi.getter(name="clusterIdentifier") - def cluster_identifier(self) -> pulumi.Input[str]: - return pulumi.get(self, "cluster_identifier") - - @cluster_identifier.setter - def cluster_identifier(self, value: pulumi.Input[str]): - pulumi.set(self, "cluster_identifier", value) - - -@pulumi.input_type -class ElastigroupIntegrationMultaiRuntimeArgs: - def __init__(__self__, *, - deployment_id: pulumi.Input[str]): - pulumi.set(__self__, "deployment_id", deployment_id) - - @property - @pulumi.getter(name="deploymentId") - def deployment_id(self) -> pulumi.Input[str]: - return pulumi.get(self, "deployment_id") - - @deployment_id.setter - def deployment_id(self, value: pulumi.Input[str]): - pulumi.set(self, "deployment_id", value) - - -@pulumi.input_type -class ElastigroupLoadBalancerArgs: - def __init__(__self__, *, - type: pulumi.Input[str], - auto_weight: Optional[pulumi.Input[bool]] = None, - balancer_id: Optional[pulumi.Input[str]] = None, - target_set_id: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "type", type) - if auto_weight is not None: - pulumi.set(__self__, "auto_weight", auto_weight) - if balancer_id is not None: - pulumi.set(__self__, "balancer_id", balancer_id) - if target_set_id is not None: - pulumi.set(__self__, "target_set_id", target_set_id) - - @property - @pulumi.getter - def type(self) -> pulumi.Input[str]: - return pulumi.get(self, "type") - - @type.setter - def type(self, value: pulumi.Input[str]): - pulumi.set(self, "type", value) - - @property - @pulumi.getter(name="autoWeight") - def auto_weight(self) -> Optional[pulumi.Input[bool]]: - return pulumi.get(self, "auto_weight") - - @auto_weight.setter - def auto_weight(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "auto_weight", value) - - @property - @pulumi.getter(name="balancerId") - def balancer_id(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "balancer_id") - - @balancer_id.setter - def balancer_id(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "balancer_id", value) - - @property - @pulumi.getter(name="targetSetId") - def target_set_id(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "target_set_id") - - @target_set_id.setter - def target_set_id(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "target_set_id", value) - - -@pulumi.input_type -class ElastigroupLoginArgs: - def __init__(__self__, *, - user_name: pulumi.Input[str], - password: Optional[pulumi.Input[str]] = None, - ssh_public_key: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "user_name", user_name) - if password is not None: - pulumi.set(__self__, "password", password) - if ssh_public_key is not None: - pulumi.set(__self__, "ssh_public_key", ssh_public_key) - - @property - @pulumi.getter(name="userName") - def user_name(self) -> pulumi.Input[str]: - return pulumi.get(self, "user_name") - - @user_name.setter - def user_name(self, value: pulumi.Input[str]): - pulumi.set(self, "user_name", value) - - @property - @pulumi.getter - def password(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "password") - - @password.setter - def password(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "password", value) - - @property - @pulumi.getter(name="sshPublicKey") - def ssh_public_key(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "ssh_public_key") - - @ssh_public_key.setter - def ssh_public_key(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "ssh_public_key", value) - - -@pulumi.input_type -class ElastigroupManagedServiceIdentityArgs: - def __init__(__self__, *, - name: pulumi.Input[str], - resource_group_name: pulumi.Input[str]): - """ - :param pulumi.Input[str] name: The group name. - :param pulumi.Input[str] resource_group_name: Name of the Resource Group for Elastigroup. - """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "resource_group_name", resource_group_name) - - @property - @pulumi.getter - def name(self) -> pulumi.Input[str]: - """ - The group name. - """ - return pulumi.get(self, "name") - - @name.setter - def name(self, value: pulumi.Input[str]): - pulumi.set(self, "name", value) - - @property - @pulumi.getter(name="resourceGroupName") - def resource_group_name(self) -> pulumi.Input[str]: - """ - Name of the Resource Group for Elastigroup. - """ - return pulumi.get(self, "resource_group_name") - - @resource_group_name.setter - def resource_group_name(self, value: pulumi.Input[str]): - pulumi.set(self, "resource_group_name", value) - - -@pulumi.input_type -class ElastigroupNetworkArgs: - def __init__(__self__, *, - resource_group_name: pulumi.Input[str], - subnet_name: pulumi.Input[str], - virtual_network_name: pulumi.Input[str], - additional_ip_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupNetworkAdditionalIpConfigArgs']]]] = None, - assign_public_ip: Optional[pulumi.Input[bool]] = None): - """ - :param pulumi.Input[str] resource_group_name: Name of the Resource Group for Elastigroup. - """ - pulumi.set(__self__, "resource_group_name", resource_group_name) - pulumi.set(__self__, "subnet_name", subnet_name) - pulumi.set(__self__, "virtual_network_name", virtual_network_name) - if additional_ip_configs is not None: - pulumi.set(__self__, "additional_ip_configs", additional_ip_configs) - if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) - - @property - @pulumi.getter(name="resourceGroupName") - def resource_group_name(self) -> pulumi.Input[str]: - """ - Name of the Resource Group for Elastigroup. - """ - return pulumi.get(self, "resource_group_name") - - @resource_group_name.setter - def resource_group_name(self, value: pulumi.Input[str]): - pulumi.set(self, "resource_group_name", value) - - @property - @pulumi.getter(name="subnetName") - def subnet_name(self) -> pulumi.Input[str]: - return pulumi.get(self, "subnet_name") - - @subnet_name.setter - def subnet_name(self, value: pulumi.Input[str]): - pulumi.set(self, "subnet_name", value) - - @property - @pulumi.getter(name="virtualNetworkName") - def virtual_network_name(self) -> pulumi.Input[str]: - return pulumi.get(self, "virtual_network_name") - - @virtual_network_name.setter - def virtual_network_name(self, value: pulumi.Input[str]): - pulumi.set(self, "virtual_network_name", value) - - @property - @pulumi.getter(name="additionalIpConfigs") - def additional_ip_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupNetworkAdditionalIpConfigArgs']]]]: - return pulumi.get(self, "additional_ip_configs") - - @additional_ip_configs.setter - def additional_ip_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupNetworkAdditionalIpConfigArgs']]]]): - pulumi.set(self, "additional_ip_configs", value) - - @property - @pulumi.getter(name="assignPublicIp") - def assign_public_ip(self) -> Optional[pulumi.Input[bool]]: - return pulumi.get(self, "assign_public_ip") - - @assign_public_ip.setter - def assign_public_ip(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "assign_public_ip", value) - - -@pulumi.input_type -class ElastigroupNetworkAdditionalIpConfigArgs: - def __init__(__self__, *, - name: pulumi.Input[str], - private_ip_version: Optional[pulumi.Input[str]] = None): - """ - :param pulumi.Input[str] name: The group name. - """ - pulumi.set(__self__, "name", name) - if private_ip_version is not None: - pulumi.set(__self__, "private_ip_version", private_ip_version) - - @property - @pulumi.getter - def name(self) -> pulumi.Input[str]: - """ - The group name. - """ - return pulumi.get(self, "name") - - @name.setter - def name(self, value: pulumi.Input[str]): - pulumi.set(self, "name", value) - - @property - @pulumi.getter(name="privateIpVersion") - def private_ip_version(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "private_ip_version") - - @private_ip_version.setter - def private_ip_version(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "private_ip_version", value) - - -@pulumi.input_type -class ElastigroupScalingDownPolicyArgs: - def __init__(__self__, *, - metric_name: pulumi.Input[str], - namespace: pulumi.Input[str], - policy_name: pulumi.Input[str], - threshold: pulumi.Input[float], - action_type: Optional[pulumi.Input[str]] = None, - adjustment: Optional[pulumi.Input[str]] = None, - cooldown: Optional[pulumi.Input[int]] = None, - dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyDimensionArgs']]]] = None, - evaluation_periods: Optional[pulumi.Input[int]] = None, - max_target_capacity: Optional[pulumi.Input[str]] = None, - maximum: Optional[pulumi.Input[str]] = None, - min_target_capacity: Optional[pulumi.Input[str]] = None, - minimum: Optional[pulumi.Input[str]] = None, - operator: Optional[pulumi.Input[str]] = None, - period: Optional[pulumi.Input[int]] = None, - statistic: Optional[pulumi.Input[str]] = None, - target: Optional[pulumi.Input[str]] = None, - unit: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "policy_name", policy_name) - pulumi.set(__self__, "threshold", threshold) - if action_type is not None: - pulumi.set(__self__, "action_type", action_type) - if adjustment is not None: - pulumi.set(__self__, "adjustment", adjustment) - if cooldown is not None: - pulumi.set(__self__, "cooldown", cooldown) - if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) - if evaluation_periods is not None: - pulumi.set(__self__, "evaluation_periods", evaluation_periods) - if max_target_capacity is not None: - pulumi.set(__self__, "max_target_capacity", max_target_capacity) - if maximum is not None: - pulumi.set(__self__, "maximum", maximum) - if min_target_capacity is not None: - pulumi.set(__self__, "min_target_capacity", min_target_capacity) - if minimum is not None: - pulumi.set(__self__, "minimum", minimum) - if operator is not None: - pulumi.set(__self__, "operator", operator) - if period is not None: - pulumi.set(__self__, "period", period) - if statistic is not None: - pulumi.set(__self__, "statistic", statistic) - if target is not None: - pulumi.set(__self__, "target", target) - if unit is not None: - pulumi.set(__self__, "unit", unit) - - @property - @pulumi.getter(name="metricName") - def metric_name(self) -> pulumi.Input[str]: - return pulumi.get(self, "metric_name") - - @metric_name.setter - def metric_name(self, value: pulumi.Input[str]): - pulumi.set(self, "metric_name", value) - - @property - @pulumi.getter - def namespace(self) -> pulumi.Input[str]: - return pulumi.get(self, "namespace") - - @namespace.setter - def namespace(self, value: pulumi.Input[str]): - pulumi.set(self, "namespace", value) - - @property - @pulumi.getter(name="policyName") - def policy_name(self) -> pulumi.Input[str]: - return pulumi.get(self, "policy_name") - - @policy_name.setter - def policy_name(self, value: pulumi.Input[str]): - pulumi.set(self, "policy_name", value) - - @property - @pulumi.getter - def threshold(self) -> pulumi.Input[float]: - return pulumi.get(self, "threshold") - - @threshold.setter - def threshold(self, value: pulumi.Input[float]): - pulumi.set(self, "threshold", value) - - @property - @pulumi.getter(name="actionType") - def action_type(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "action_type") - - @action_type.setter - def action_type(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "action_type", value) - - @property - @pulumi.getter - def adjustment(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "adjustment") - - @adjustment.setter - def adjustment(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "adjustment", value) - - @property - @pulumi.getter - def cooldown(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "cooldown") - - @cooldown.setter - def cooldown(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "cooldown", value) - - @property - @pulumi.getter - def dimensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyDimensionArgs']]]]: - return pulumi.get(self, "dimensions") - - @dimensions.setter - def dimensions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyDimensionArgs']]]]): - pulumi.set(self, "dimensions", value) - - @property - @pulumi.getter(name="evaluationPeriods") - def evaluation_periods(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "evaluation_periods") - - @evaluation_periods.setter - def evaluation_periods(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "evaluation_periods", value) - - @property - @pulumi.getter(name="maxTargetCapacity") - def max_target_capacity(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "max_target_capacity") - - @max_target_capacity.setter - def max_target_capacity(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "max_target_capacity", value) - - @property - @pulumi.getter - def maximum(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "maximum") - - @maximum.setter - def maximum(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "maximum", value) - - @property - @pulumi.getter(name="minTargetCapacity") - def min_target_capacity(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "min_target_capacity") - - @min_target_capacity.setter - def min_target_capacity(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "min_target_capacity", value) - - @property - @pulumi.getter - def minimum(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "minimum") - - @minimum.setter - def minimum(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "minimum", value) - - @property - @pulumi.getter - def operator(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "operator") - - @operator.setter - def operator(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "operator", value) - - @property - @pulumi.getter - def period(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "period") - - @period.setter - def period(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "period", value) - - @property - @pulumi.getter - def statistic(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "statistic") - - @statistic.setter - def statistic(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "statistic", value) - - @property - @pulumi.getter - def target(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "target") - - @target.setter - def target(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "target", value) - - @property - @pulumi.getter - def unit(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "unit") - - @unit.setter - def unit(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "unit", value) - - -@pulumi.input_type -class ElastigroupScalingDownPolicyDimensionArgs: - def __init__(__self__, *, - name: pulumi.Input[str], - value: Optional[pulumi.Input[str]] = None): - """ - :param pulumi.Input[str] name: The group name. - """ - pulumi.set(__self__, "name", name) - if value is not None: - pulumi.set(__self__, "value", value) - - @property - @pulumi.getter - def name(self) -> pulumi.Input[str]: - """ - The group name. - """ - return pulumi.get(self, "name") - - @name.setter - def name(self, value: pulumi.Input[str]): - pulumi.set(self, "name", value) - - @property - @pulumi.getter - def value(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "value") - - @value.setter - def value(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "value", value) - - -@pulumi.input_type -class ElastigroupScalingUpPolicyArgs: - def __init__(__self__, *, - metric_name: pulumi.Input[str], - namespace: pulumi.Input[str], - policy_name: pulumi.Input[str], - threshold: pulumi.Input[float], - action_type: Optional[pulumi.Input[str]] = None, - adjustment: Optional[pulumi.Input[str]] = None, - cooldown: Optional[pulumi.Input[int]] = None, - dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyDimensionArgs']]]] = None, - evaluation_periods: Optional[pulumi.Input[int]] = None, - max_target_capacity: Optional[pulumi.Input[str]] = None, - maximum: Optional[pulumi.Input[str]] = None, - min_target_capacity: Optional[pulumi.Input[str]] = None, - minimum: Optional[pulumi.Input[str]] = None, - operator: Optional[pulumi.Input[str]] = None, - period: Optional[pulumi.Input[int]] = None, - statistic: Optional[pulumi.Input[str]] = None, - target: Optional[pulumi.Input[str]] = None, - unit: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "policy_name", policy_name) - pulumi.set(__self__, "threshold", threshold) - if action_type is not None: - pulumi.set(__self__, "action_type", action_type) - if adjustment is not None: - pulumi.set(__self__, "adjustment", adjustment) - if cooldown is not None: - pulumi.set(__self__, "cooldown", cooldown) - if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) - if evaluation_periods is not None: - pulumi.set(__self__, "evaluation_periods", evaluation_periods) - if max_target_capacity is not None: - pulumi.set(__self__, "max_target_capacity", max_target_capacity) - if maximum is not None: - pulumi.set(__self__, "maximum", maximum) - if min_target_capacity is not None: - pulumi.set(__self__, "min_target_capacity", min_target_capacity) - if minimum is not None: - pulumi.set(__self__, "minimum", minimum) - if operator is not None: - pulumi.set(__self__, "operator", operator) - if period is not None: - pulumi.set(__self__, "period", period) - if statistic is not None: - pulumi.set(__self__, "statistic", statistic) - if target is not None: - pulumi.set(__self__, "target", target) - if unit is not None: - pulumi.set(__self__, "unit", unit) - - @property - @pulumi.getter(name="metricName") - def metric_name(self) -> pulumi.Input[str]: - return pulumi.get(self, "metric_name") - - @metric_name.setter - def metric_name(self, value: pulumi.Input[str]): - pulumi.set(self, "metric_name", value) - - @property - @pulumi.getter - def namespace(self) -> pulumi.Input[str]: - return pulumi.get(self, "namespace") - - @namespace.setter - def namespace(self, value: pulumi.Input[str]): - pulumi.set(self, "namespace", value) - - @property - @pulumi.getter(name="policyName") - def policy_name(self) -> pulumi.Input[str]: - return pulumi.get(self, "policy_name") - - @policy_name.setter - def policy_name(self, value: pulumi.Input[str]): - pulumi.set(self, "policy_name", value) - - @property - @pulumi.getter - def threshold(self) -> pulumi.Input[float]: - return pulumi.get(self, "threshold") - - @threshold.setter - def threshold(self, value: pulumi.Input[float]): - pulumi.set(self, "threshold", value) - - @property - @pulumi.getter(name="actionType") - def action_type(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "action_type") - - @action_type.setter - def action_type(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "action_type", value) - - @property - @pulumi.getter - def adjustment(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "adjustment") - - @adjustment.setter - def adjustment(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "adjustment", value) - - @property - @pulumi.getter - def cooldown(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "cooldown") - - @cooldown.setter - def cooldown(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "cooldown", value) - - @property - @pulumi.getter - def dimensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyDimensionArgs']]]]: - return pulumi.get(self, "dimensions") - - @dimensions.setter - def dimensions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyDimensionArgs']]]]): - pulumi.set(self, "dimensions", value) - - @property - @pulumi.getter(name="evaluationPeriods") - def evaluation_periods(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "evaluation_periods") - - @evaluation_periods.setter - def evaluation_periods(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "evaluation_periods", value) - - @property - @pulumi.getter(name="maxTargetCapacity") - def max_target_capacity(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "max_target_capacity") - - @max_target_capacity.setter - def max_target_capacity(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "max_target_capacity", value) - - @property - @pulumi.getter - def maximum(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "maximum") - - @maximum.setter - def maximum(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "maximum", value) - - @property - @pulumi.getter(name="minTargetCapacity") - def min_target_capacity(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "min_target_capacity") - - @min_target_capacity.setter - def min_target_capacity(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "min_target_capacity", value) - - @property - @pulumi.getter - def minimum(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "minimum") - - @minimum.setter - def minimum(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "minimum", value) - - @property - @pulumi.getter - def operator(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "operator") - - @operator.setter - def operator(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "operator", value) - - @property - @pulumi.getter - def period(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "period") - - @period.setter - def period(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "period", value) - - @property - @pulumi.getter - def statistic(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "statistic") - - @statistic.setter - def statistic(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "statistic", value) - - @property - @pulumi.getter - def target(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "target") - - @target.setter - def target(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "target", value) - - @property - @pulumi.getter - def unit(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "unit") - - @unit.setter - def unit(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "unit", value) - - -@pulumi.input_type -class ElastigroupScalingUpPolicyDimensionArgs: - def __init__(__self__, *, - name: pulumi.Input[str], - value: Optional[pulumi.Input[str]] = None): - """ - :param pulumi.Input[str] name: The group name. - """ - pulumi.set(__self__, "name", name) - if value is not None: - pulumi.set(__self__, "value", value) - - @property - @pulumi.getter - def name(self) -> pulumi.Input[str]: - """ - The group name. - """ - return pulumi.get(self, "name") - - @name.setter - def name(self, value: pulumi.Input[str]): - pulumi.set(self, "name", value) - - @property - @pulumi.getter - def value(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "value") - - @value.setter - def value(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "value", value) - - -@pulumi.input_type -class ElastigroupScheduledTaskArgs: - def __init__(__self__, *, - cron_expression: pulumi.Input[str], - task_type: pulumi.Input[str], - adjustment: Optional[pulumi.Input[str]] = None, - adjustment_percentage: Optional[pulumi.Input[str]] = None, - batch_size_percentage: Optional[pulumi.Input[str]] = None, - grace_period: Optional[pulumi.Input[str]] = None, - is_enabled: Optional[pulumi.Input[bool]] = None, - scale_max_capacity: Optional[pulumi.Input[str]] = None, - scale_min_capacity: Optional[pulumi.Input[str]] = None, - scale_target_capacity: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "cron_expression", cron_expression) - pulumi.set(__self__, "task_type", task_type) - if adjustment is not None: - pulumi.set(__self__, "adjustment", adjustment) - if adjustment_percentage is not None: - pulumi.set(__self__, "adjustment_percentage", adjustment_percentage) - if batch_size_percentage is not None: - pulumi.set(__self__, "batch_size_percentage", batch_size_percentage) - if grace_period is not None: - pulumi.set(__self__, "grace_period", grace_period) - if is_enabled is not None: - pulumi.set(__self__, "is_enabled", is_enabled) - if scale_max_capacity is not None: - pulumi.set(__self__, "scale_max_capacity", scale_max_capacity) - if scale_min_capacity is not None: - pulumi.set(__self__, "scale_min_capacity", scale_min_capacity) - if scale_target_capacity is not None: - pulumi.set(__self__, "scale_target_capacity", scale_target_capacity) - - @property - @pulumi.getter(name="cronExpression") - def cron_expression(self) -> pulumi.Input[str]: - return pulumi.get(self, "cron_expression") - - @cron_expression.setter - def cron_expression(self, value: pulumi.Input[str]): - pulumi.set(self, "cron_expression", value) - - @property - @pulumi.getter(name="taskType") - def task_type(self) -> pulumi.Input[str]: - return pulumi.get(self, "task_type") - - @task_type.setter - def task_type(self, value: pulumi.Input[str]): - pulumi.set(self, "task_type", value) - - @property - @pulumi.getter - def adjustment(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "adjustment") - - @adjustment.setter - def adjustment(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "adjustment", value) - - @property - @pulumi.getter(name="adjustmentPercentage") - def adjustment_percentage(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "adjustment_percentage") - - @adjustment_percentage.setter - def adjustment_percentage(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "adjustment_percentage", value) - - @property - @pulumi.getter(name="batchSizePercentage") - def batch_size_percentage(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "batch_size_percentage") - - @batch_size_percentage.setter - def batch_size_percentage(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "batch_size_percentage", value) - - @property - @pulumi.getter(name="gracePeriod") - def grace_period(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "grace_period") - - @grace_period.setter - def grace_period(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "grace_period", value) - - @property - @pulumi.getter(name="isEnabled") - def is_enabled(self) -> Optional[pulumi.Input[bool]]: - return pulumi.get(self, "is_enabled") - - @is_enabled.setter - def is_enabled(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "is_enabled", value) - - @property - @pulumi.getter(name="scaleMaxCapacity") - def scale_max_capacity(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "scale_max_capacity") - - @scale_max_capacity.setter - def scale_max_capacity(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "scale_max_capacity", value) - - @property - @pulumi.getter(name="scaleMinCapacity") - def scale_min_capacity(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "scale_min_capacity") - - @scale_min_capacity.setter - def scale_min_capacity(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "scale_min_capacity", value) - - @property - @pulumi.getter(name="scaleTargetCapacity") - def scale_target_capacity(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "scale_target_capacity") - - @scale_target_capacity.setter - def scale_target_capacity(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "scale_target_capacity", value) - - -@pulumi.input_type -class ElastigroupStrategyArgs: - def __init__(__self__, *, - draining_timeout: Optional[pulumi.Input[int]] = None, - low_priority_percentage: Optional[pulumi.Input[int]] = None, - od_count: Optional[pulumi.Input[int]] = None): - if draining_timeout is not None: - pulumi.set(__self__, "draining_timeout", draining_timeout) - if low_priority_percentage is not None: - pulumi.set(__self__, "low_priority_percentage", low_priority_percentage) - if od_count is not None: - pulumi.set(__self__, "od_count", od_count) - - @property - @pulumi.getter(name="drainingTimeout") - def draining_timeout(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "draining_timeout") - - @draining_timeout.setter - def draining_timeout(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "draining_timeout", value) - - @property - @pulumi.getter(name="lowPriorityPercentage") - def low_priority_percentage(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "low_priority_percentage") - - @low_priority_percentage.setter - def low_priority_percentage(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "low_priority_percentage", value) - - @property - @pulumi.getter(name="odCount") - def od_count(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "od_count") - - @od_count.setter - def od_count(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "od_count", value) - - -@pulumi.input_type -class ElastigroupUpdatePolicyArgs: - def __init__(__self__, *, - should_roll: pulumi.Input[bool], - roll_config: Optional[pulumi.Input['ElastigroupUpdatePolicyRollConfigArgs']] = None): - pulumi.set(__self__, "should_roll", should_roll) - if roll_config is not None: - pulumi.set(__self__, "roll_config", roll_config) - - @property - @pulumi.getter(name="shouldRoll") - def should_roll(self) -> pulumi.Input[bool]: - return pulumi.get(self, "should_roll") - - @should_roll.setter - def should_roll(self, value: pulumi.Input[bool]): - pulumi.set(self, "should_roll", value) - - @property - @pulumi.getter(name="rollConfig") - def roll_config(self) -> Optional[pulumi.Input['ElastigroupUpdatePolicyRollConfigArgs']]: - return pulumi.get(self, "roll_config") - - @roll_config.setter - def roll_config(self, value: Optional[pulumi.Input['ElastigroupUpdatePolicyRollConfigArgs']]): - pulumi.set(self, "roll_config", value) - - -@pulumi.input_type -class ElastigroupUpdatePolicyRollConfigArgs: - def __init__(__self__, *, - batch_size_percentage: pulumi.Input[int], - grace_period: Optional[pulumi.Input[int]] = None, - health_check_type: Optional[pulumi.Input[str]] = None): - pulumi.set(__self__, "batch_size_percentage", batch_size_percentage) - if grace_period is not None: - pulumi.set(__self__, "grace_period", grace_period) - if health_check_type is not None: - pulumi.set(__self__, "health_check_type", health_check_type) - - @property - @pulumi.getter(name="batchSizePercentage") - def batch_size_percentage(self) -> pulumi.Input[int]: - return pulumi.get(self, "batch_size_percentage") - - @batch_size_percentage.setter - def batch_size_percentage(self, value: pulumi.Input[int]): - pulumi.set(self, "batch_size_percentage", value) - - @property - @pulumi.getter(name="gracePeriod") - def grace_period(self) -> Optional[pulumi.Input[int]]: - return pulumi.get(self, "grace_period") - - @grace_period.setter - def grace_period(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "grace_period", value) - - @property - @pulumi.getter(name="healthCheckType") - def health_check_type(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "health_check_type") - - @health_check_type.setter - def health_check_type(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "health_check_type", value) - - @pulumi.input_type class OceanAutoscalerArgs: def __init__(__self__, *, @@ -1883,6 +727,12 @@ def __init__(__self__, *, autoscale_headroom: Optional[pulumi.Input['OceanNpAutoscalerAutoscaleHeadroomArgs']] = None, autoscale_is_enabled: Optional[pulumi.Input[bool]] = None, resource_limits: Optional[pulumi.Input['OceanNpAutoscalerResourceLimitsArgs']] = None): + """ + :param pulumi.Input['OceanNpAutoscalerAutoscaleDownArgs'] autoscale_down: Auto Scaling scale down operations. + :param pulumi.Input['OceanNpAutoscalerAutoscaleHeadroomArgs'] autoscale_headroom: Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + :param pulumi.Input[bool] autoscale_is_enabled: Enable the Ocean Kubernetes Autoscaler. + :param pulumi.Input['OceanNpAutoscalerResourceLimitsArgs'] resource_limits: Optionally set upper and lower bounds on the resource usage of the cluster. + """ if autoscale_down is not None: pulumi.set(__self__, "autoscale_down", autoscale_down) if autoscale_headroom is not None: @@ -1895,6 +745,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="autoscaleDown") def autoscale_down(self) -> Optional[pulumi.Input['OceanNpAutoscalerAutoscaleDownArgs']]: + """ + Auto Scaling scale down operations. + """ return pulumi.get(self, "autoscale_down") @autoscale_down.setter @@ -1904,6 +757,9 @@ def autoscale_down(self, value: Optional[pulumi.Input['OceanNpAutoscalerAutoscal @property @pulumi.getter(name="autoscaleHeadroom") def autoscale_headroom(self) -> Optional[pulumi.Input['OceanNpAutoscalerAutoscaleHeadroomArgs']]: + """ + Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + """ return pulumi.get(self, "autoscale_headroom") @autoscale_headroom.setter @@ -1913,6 +769,9 @@ def autoscale_headroom(self, value: Optional[pulumi.Input['OceanNpAutoscalerAuto @property @pulumi.getter(name="autoscaleIsEnabled") def autoscale_is_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enable the Ocean Kubernetes Autoscaler. + """ return pulumi.get(self, "autoscale_is_enabled") @autoscale_is_enabled.setter @@ -1922,6 +781,9 @@ def autoscale_is_enabled(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter(name="resourceLimits") def resource_limits(self) -> Optional[pulumi.Input['OceanNpAutoscalerResourceLimitsArgs']]: + """ + Optionally set upper and lower bounds on the resource usage of the cluster. + """ return pulumi.get(self, "resource_limits") @resource_limits.setter @@ -2039,6 +901,25 @@ def __init__(__self__, *, min_vcpu: Optional[pulumi.Input[int]] = None, series: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, vm_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[str] accelerated_networking: In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + :param pulumi.Input[Sequence[pulumi.Input[str]]] architectures: The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + :param pulumi.Input[str] disk_performance: The filtered vm sizes will support at least one of the classes from this list. + :param pulumi.Input[Sequence[pulumi.Input[str]]] exclude_series: Vm sizes belonging to a series from the list will not be available for scaling + :param pulumi.Input[Sequence[pulumi.Input[str]]] gpu_types: The filtered gpu types will belong to one of the gpu types from this list. + + + :param pulumi.Input[float] max_gpu: Maximum number of GPUs available. + :param pulumi.Input[float] max_memory_gib: Maximum amount of Memory (GiB). + :param pulumi.Input[int] max_vcpu: Maximum number of vcpus available. + :param pulumi.Input[int] min_disk: Minimum number of data disks available. + :param pulumi.Input[float] min_gpu: Minimum number of GPUs available. + :param pulumi.Input[float] min_memory_gib: Minimum amount of Memory (GiB). + :param pulumi.Input[int] min_nics: Minimum number of network interfaces. + :param pulumi.Input[int] min_vcpu: Minimum number of vcpus available. + :param pulumi.Input[Sequence[pulumi.Input[str]]] series: Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vm_types: The filtered vm types will belong to one of the vm types from this list. + """ if accelerated_networking is not None: pulumi.set(__self__, "accelerated_networking", accelerated_networking) if architectures is not None: @@ -2073,6 +954,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="acceleratedNetworking") def accelerated_networking(self) -> Optional[pulumi.Input[str]]: + """ + In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + """ return pulumi.get(self, "accelerated_networking") @accelerated_networking.setter @@ -2082,6 +966,9 @@ def accelerated_networking(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def architectures(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + """ return pulumi.get(self, "architectures") @architectures.setter @@ -2091,6 +978,9 @@ def architectures(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]] @property @pulumi.getter(name="diskPerformance") def disk_performance(self) -> Optional[pulumi.Input[str]]: + """ + The filtered vm sizes will support at least one of the classes from this list. + """ return pulumi.get(self, "disk_performance") @disk_performance.setter @@ -2100,6 +990,9 @@ def disk_performance(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="excludeSeries") def exclude_series(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Vm sizes belonging to a series from the list will not be available for scaling + """ return pulumi.get(self, "exclude_series") @exclude_series.setter @@ -2109,6 +1002,11 @@ def exclude_series(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @property @pulumi.getter(name="gpuTypes") def gpu_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The filtered gpu types will belong to one of the gpu types from this list. + + + """ return pulumi.get(self, "gpu_types") @gpu_types.setter @@ -2118,6 +1016,9 @@ def gpu_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @property @pulumi.getter(name="maxGpu") def max_gpu(self) -> Optional[pulumi.Input[float]]: + """ + Maximum number of GPUs available. + """ return pulumi.get(self, "max_gpu") @max_gpu.setter @@ -2127,6 +1028,9 @@ def max_gpu(self, value: Optional[pulumi.Input[float]]): @property @pulumi.getter(name="maxMemoryGib") def max_memory_gib(self) -> Optional[pulumi.Input[float]]: + """ + Maximum amount of Memory (GiB). + """ return pulumi.get(self, "max_memory_gib") @max_memory_gib.setter @@ -2136,6 +1040,9 @@ def max_memory_gib(self, value: Optional[pulumi.Input[float]]): @property @pulumi.getter(name="maxVcpu") def max_vcpu(self) -> Optional[pulumi.Input[int]]: + """ + Maximum number of vcpus available. + """ return pulumi.get(self, "max_vcpu") @max_vcpu.setter @@ -2145,6 +1052,9 @@ def max_vcpu(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="minDisk") def min_disk(self) -> Optional[pulumi.Input[int]]: + """ + Minimum number of data disks available. + """ return pulumi.get(self, "min_disk") @min_disk.setter @@ -2154,6 +1064,9 @@ def min_disk(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="minGpu") def min_gpu(self) -> Optional[pulumi.Input[float]]: + """ + Minimum number of GPUs available. + """ return pulumi.get(self, "min_gpu") @min_gpu.setter @@ -2163,6 +1076,9 @@ def min_gpu(self, value: Optional[pulumi.Input[float]]): @property @pulumi.getter(name="minMemoryGib") def min_memory_gib(self) -> Optional[pulumi.Input[float]]: + """ + Minimum amount of Memory (GiB). + """ return pulumi.get(self, "min_memory_gib") @min_memory_gib.setter @@ -2172,6 +1088,9 @@ def min_memory_gib(self, value: Optional[pulumi.Input[float]]): @property @pulumi.getter(name="minNics") def min_nics(self) -> Optional[pulumi.Input[int]]: + """ + Minimum number of network interfaces. + """ return pulumi.get(self, "min_nics") @min_nics.setter @@ -2181,6 +1100,9 @@ def min_nics(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="minVcpu") def min_vcpu(self) -> Optional[pulumi.Input[int]]: + """ + Minimum number of vcpus available. + """ return pulumi.get(self, "min_vcpu") @min_vcpu.setter @@ -2190,6 +1112,9 @@ def min_vcpu(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter def series(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + """ return pulumi.get(self, "series") @series.setter @@ -2199,6 +1124,9 @@ def series(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @property @pulumi.getter(name="vmTypes") def vm_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The filtered vm types will belong to one of the vm types from this list. + """ return pulumi.get(self, "vm_types") @vm_types.setter @@ -2213,6 +1141,12 @@ def __init__(__self__, *, gpu_per_unit: Optional[pulumi.Input[int]] = None, memory_per_unit: Optional[pulumi.Input[int]] = None, num_of_units: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] cpu_per_unit: Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + :param pulumi.Input[int] gpu_per_unit: Amount of GPU to allocate for headroom unit. + :param pulumi.Input[int] memory_per_unit: Configure the amount of memory (MiB) to allocate the headroom. + :param pulumi.Input[int] num_of_units: The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + """ if cpu_per_unit is not None: pulumi.set(__self__, "cpu_per_unit", cpu_per_unit) if gpu_per_unit is not None: @@ -2225,6 +1159,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="cpuPerUnit") def cpu_per_unit(self) -> Optional[pulumi.Input[int]]: + """ + Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + """ return pulumi.get(self, "cpu_per_unit") @cpu_per_unit.setter @@ -2234,6 +1171,9 @@ def cpu_per_unit(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="gpuPerUnit") def gpu_per_unit(self) -> Optional[pulumi.Input[int]]: + """ + Amount of GPU to allocate for headroom unit. + """ return pulumi.get(self, "gpu_per_unit") @gpu_per_unit.setter @@ -2243,6 +1183,9 @@ def gpu_per_unit(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="memoryPerUnit") def memory_per_unit(self) -> Optional[pulumi.Input[int]]: + """ + Configure the amount of memory (MiB) to allocate the headroom. + """ return pulumi.get(self, "memory_per_unit") @memory_per_unit.setter @@ -2252,6 +1195,9 @@ def memory_per_unit(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="numOfUnits") def num_of_units(self) -> Optional[pulumi.Input[int]]: + """ + The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + """ return pulumi.get(self, "num_of_units") @num_of_units.setter @@ -2263,12 +1209,18 @@ def num_of_units(self, value: Optional[pulumi.Input[int]]): class OceanNpHealthArgs: def __init__(__self__, *, grace_period: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] grace_period: The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + """ if grace_period is not None: pulumi.set(__self__, "grace_period", grace_period) @property @pulumi.getter(name="gracePeriod") def grace_period(self) -> Optional[pulumi.Input[int]]: + """ + The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + """ return pulumi.get(self, "grace_period") @grace_period.setter @@ -2280,12 +1232,18 @@ def grace_period(self, value: Optional[pulumi.Input[int]]): class OceanNpSchedulingArgs: def __init__(__self__, *, shutdown_hours: Optional[pulumi.Input['OceanNpSchedulingShutdownHoursArgs']] = None): + """ + :param pulumi.Input['OceanNpSchedulingShutdownHoursArgs'] shutdown_hours: [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + """ if shutdown_hours is not None: pulumi.set(__self__, "shutdown_hours", shutdown_hours) @property @pulumi.getter(name="shutdownHours") def shutdown_hours(self) -> Optional[pulumi.Input['OceanNpSchedulingShutdownHoursArgs']]: + """ + [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + """ return pulumi.get(self, "shutdown_hours") @shutdown_hours.setter @@ -2327,6 +1285,11 @@ def __init__(__self__, *, effect: pulumi.Input[str], key: pulumi.Input[str], value: pulumi.Input[str]): + """ + :param pulumi.Input[str] effect: Set taint effect. + :param pulumi.Input[str] key: Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + :param pulumi.Input[str] value: Set taint value. + """ pulumi.set(__self__, "effect", effect) pulumi.set(__self__, "key", key) pulumi.set(__self__, "value", value) @@ -2334,6 +1297,9 @@ def __init__(__self__, *, @property @pulumi.getter def effect(self) -> pulumi.Input[str]: + """ + Set taint effect. + """ return pulumi.get(self, "effect") @effect.setter @@ -2343,6 +1309,9 @@ def effect(self, value: pulumi.Input[str]): @property @pulumi.getter def key(self) -> pulumi.Input[str]: + """ + Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + """ return pulumi.get(self, "key") @key.setter @@ -2352,6 +1321,9 @@ def key(self, value: pulumi.Input[str]): @property @pulumi.getter def value(self) -> pulumi.Input[str]: + """ + Set taint value. + """ return pulumi.get(self, "value") @value.setter @@ -2518,6 +1490,24 @@ def __init__(__self__, *, min_vcpu: Optional[pulumi.Input[int]] = None, series: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, vm_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[str] accelerated_networking: In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + :param pulumi.Input[Sequence[pulumi.Input[str]]] architectures: The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + :param pulumi.Input[str] disk_performance: The filtered vm sizes will support at least one of the classes from this list. + :param pulumi.Input[Sequence[pulumi.Input[str]]] exclude_series: Vm sizes belonging to a series from the list will not be available for scaling. + :param pulumi.Input[Sequence[pulumi.Input[str]]] gpu_types: The filtered gpu types will belong to one of the gpu types from this list. + + :param pulumi.Input[float] max_gpu: Maximum number of GPUs available. + :param pulumi.Input[float] max_memory_gib: Maximum amount of Memory (GiB). + :param pulumi.Input[int] max_vcpu: Maximum number of vcpus available. + :param pulumi.Input[int] min_disk: Minimum number of data disks available. + :param pulumi.Input[float] min_gpu: Minimum number of GPUs available. + :param pulumi.Input[float] min_memory_gib: Minimum amount of Memory (GiB). + :param pulumi.Input[int] min_nics: Minimum number of network interfaces. + :param pulumi.Input[int] min_vcpu: Minimum number of vcpus available. + :param pulumi.Input[Sequence[pulumi.Input[str]]] series: Vm sizes belonging to a series from the list will be available for scaling. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vm_types: The filtered vm types will belong to one of the vm types from this list. + """ if accelerated_networking is not None: pulumi.set(__self__, "accelerated_networking", accelerated_networking) if architectures is not None: @@ -2552,6 +1542,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="acceleratedNetworking") def accelerated_networking(self) -> Optional[pulumi.Input[str]]: + """ + In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + """ return pulumi.get(self, "accelerated_networking") @accelerated_networking.setter @@ -2561,6 +1554,9 @@ def accelerated_networking(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def architectures(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + """ return pulumi.get(self, "architectures") @architectures.setter @@ -2570,6 +1566,9 @@ def architectures(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]] @property @pulumi.getter(name="diskPerformance") def disk_performance(self) -> Optional[pulumi.Input[str]]: + """ + The filtered vm sizes will support at least one of the classes from this list. + """ return pulumi.get(self, "disk_performance") @disk_performance.setter @@ -2579,6 +1578,9 @@ def disk_performance(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="excludeSeries") def exclude_series(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Vm sizes belonging to a series from the list will not be available for scaling. + """ return pulumi.get(self, "exclude_series") @exclude_series.setter @@ -2588,6 +1590,10 @@ def exclude_series(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @property @pulumi.getter(name="gpuTypes") def gpu_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The filtered gpu types will belong to one of the gpu types from this list. + + """ return pulumi.get(self, "gpu_types") @gpu_types.setter @@ -2597,6 +1603,9 @@ def gpu_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @property @pulumi.getter(name="maxGpu") def max_gpu(self) -> Optional[pulumi.Input[float]]: + """ + Maximum number of GPUs available. + """ return pulumi.get(self, "max_gpu") @max_gpu.setter @@ -2606,6 +1615,9 @@ def max_gpu(self, value: Optional[pulumi.Input[float]]): @property @pulumi.getter(name="maxMemoryGib") def max_memory_gib(self) -> Optional[pulumi.Input[float]]: + """ + Maximum amount of Memory (GiB). + """ return pulumi.get(self, "max_memory_gib") @max_memory_gib.setter @@ -2615,6 +1627,9 @@ def max_memory_gib(self, value: Optional[pulumi.Input[float]]): @property @pulumi.getter(name="maxVcpu") def max_vcpu(self) -> Optional[pulumi.Input[int]]: + """ + Maximum number of vcpus available. + """ return pulumi.get(self, "max_vcpu") @max_vcpu.setter @@ -2624,6 +1639,9 @@ def max_vcpu(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="minDisk") def min_disk(self) -> Optional[pulumi.Input[int]]: + """ + Minimum number of data disks available. + """ return pulumi.get(self, "min_disk") @min_disk.setter @@ -2633,6 +1651,9 @@ def min_disk(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="minGpu") def min_gpu(self) -> Optional[pulumi.Input[float]]: + """ + Minimum number of GPUs available. + """ return pulumi.get(self, "min_gpu") @min_gpu.setter @@ -2642,6 +1663,9 @@ def min_gpu(self, value: Optional[pulumi.Input[float]]): @property @pulumi.getter(name="minMemoryGib") def min_memory_gib(self) -> Optional[pulumi.Input[float]]: + """ + Minimum amount of Memory (GiB). + """ return pulumi.get(self, "min_memory_gib") @min_memory_gib.setter @@ -2651,6 +1675,9 @@ def min_memory_gib(self, value: Optional[pulumi.Input[float]]): @property @pulumi.getter(name="minNics") def min_nics(self) -> Optional[pulumi.Input[int]]: + """ + Minimum number of network interfaces. + """ return pulumi.get(self, "min_nics") @min_nics.setter @@ -2660,6 +1687,9 @@ def min_nics(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="minVcpu") def min_vcpu(self) -> Optional[pulumi.Input[int]]: + """ + Minimum number of vcpus available. + """ return pulumi.get(self, "min_vcpu") @min_vcpu.setter @@ -2669,6 +1699,9 @@ def min_vcpu(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter def series(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Vm sizes belonging to a series from the list will be available for scaling. + """ return pulumi.get(self, "series") @series.setter @@ -2678,6 +1711,9 @@ def series(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): @property @pulumi.getter(name="vmTypes") def vm_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The filtered vm types will belong to one of the vm types from this list. + """ return pulumi.get(self, "vm_types") @vm_types.setter @@ -2692,6 +1728,12 @@ def __init__(__self__, *, gpu_per_unit: Optional[pulumi.Input[int]] = None, memory_per_unit: Optional[pulumi.Input[int]] = None, num_of_units: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] cpu_per_unit: Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + :param pulumi.Input[int] gpu_per_unit: Amount of GPU to allocate for headroom unit. + :param pulumi.Input[int] memory_per_unit: Configure the amount of memory (MiB) to allocate the headroom. + :param pulumi.Input[int] num_of_units: The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + """ if cpu_per_unit is not None: pulumi.set(__self__, "cpu_per_unit", cpu_per_unit) if gpu_per_unit is not None: @@ -2704,6 +1746,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="cpuPerUnit") def cpu_per_unit(self) -> Optional[pulumi.Input[int]]: + """ + Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + """ return pulumi.get(self, "cpu_per_unit") @cpu_per_unit.setter @@ -2713,6 +1758,9 @@ def cpu_per_unit(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="gpuPerUnit") def gpu_per_unit(self) -> Optional[pulumi.Input[int]]: + """ + Amount of GPU to allocate for headroom unit. + """ return pulumi.get(self, "gpu_per_unit") @gpu_per_unit.setter @@ -2722,6 +1770,9 @@ def gpu_per_unit(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="memoryPerUnit") def memory_per_unit(self) -> Optional[pulumi.Input[int]]: + """ + Configure the amount of memory (MiB) to allocate the headroom. + """ return pulumi.get(self, "memory_per_unit") @memory_per_unit.setter @@ -2731,6 +1782,9 @@ def memory_per_unit(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="numOfUnits") def num_of_units(self) -> Optional[pulumi.Input[int]]: + """ + The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + """ return pulumi.get(self, "num_of_units") @num_of_units.setter @@ -2744,6 +1798,11 @@ def __init__(__self__, *, effect: pulumi.Input[str], key: pulumi.Input[str], value: pulumi.Input[str]): + """ + :param pulumi.Input[str] effect: Set taint effect. + :param pulumi.Input[str] key: Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + :param pulumi.Input[str] value: Set taint value. + """ pulumi.set(__self__, "effect", effect) pulumi.set(__self__, "key", key) pulumi.set(__self__, "value", value) @@ -2751,6 +1810,9 @@ def __init__(__self__, *, @property @pulumi.getter def effect(self) -> pulumi.Input[str]: + """ + Set taint effect. + """ return pulumi.get(self, "effect") @effect.setter @@ -2760,6 +1822,9 @@ def effect(self, value: pulumi.Input[str]): @property @pulumi.getter def key(self) -> pulumi.Input[str]: + """ + Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + """ return pulumi.get(self, "key") @key.setter @@ -2769,6 +1834,9 @@ def key(self, value: pulumi.Input[str]): @property @pulumi.getter def value(self) -> pulumi.Input[str]: + """ + Set taint value. + """ return pulumi.get(self, "value") @value.setter diff --git a/sdk/python/pulumi_spotinst/azure/elastigroup.py b/sdk/python/pulumi_spotinst/azure/elastigroup.py deleted file mode 100644 index aaa6a7cc..00000000 --- a/sdk/python/pulumi_spotinst/azure/elastigroup.py +++ /dev/null @@ -1,1221 +0,0 @@ -# coding=utf-8 -# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** -# *** Do not edit by hand unless you're certain you know what you are doing! *** - -import copy -import warnings -import pulumi -import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload -from .. import _utilities -from . import outputs -from ._inputs import * - -__all__ = ['ElastigroupArgs', 'Elastigroup'] - -@pulumi.input_type -class ElastigroupArgs: - def __init__(__self__, *, - low_priority_sizes: pulumi.Input[Sequence[pulumi.Input[str]]], - network: pulumi.Input['ElastigroupNetworkArgs'], - od_sizes: pulumi.Input[Sequence[pulumi.Input[str]]], - product: pulumi.Input[str], - region: pulumi.Input[str], - resource_group_name: pulumi.Input[str], - strategy: pulumi.Input['ElastigroupStrategyArgs'], - custom_data: Optional[pulumi.Input[str]] = None, - desired_capacity: Optional[pulumi.Input[int]] = None, - health_check: Optional[pulumi.Input['ElastigroupHealthCheckArgs']] = None, - images: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]] = None, - integration_kubernetes: Optional[pulumi.Input['ElastigroupIntegrationKubernetesArgs']] = None, - integration_multai_runtime: Optional[pulumi.Input['ElastigroupIntegrationMultaiRuntimeArgs']] = None, - load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupLoadBalancerArgs']]]] = None, - login: Optional[pulumi.Input['ElastigroupLoginArgs']] = None, - managed_service_identities: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupManagedServiceIdentityArgs']]]] = None, - max_size: Optional[pulumi.Input[int]] = None, - min_size: Optional[pulumi.Input[int]] = None, - name: Optional[pulumi.Input[str]] = None, - scaling_down_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]] = None, - scaling_up_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]] = None, - scheduled_tasks: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]] = None, - shutdown_script: Optional[pulumi.Input[str]] = None, - update_policy: Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']] = None, - user_data: Optional[pulumi.Input[str]] = None): - """ - The set of arguments for constructing a Elastigroup resource. - :param pulumi.Input[Sequence[pulumi.Input[str]]] od_sizes: Available On-Demand sizes - :param pulumi.Input[str] region: The region your Azure group will be created in. - :param pulumi.Input[str] resource_group_name: Name of the Resource Group for Elastigroup. - :param pulumi.Input[str] custom_data: Custom init script file or text in Base64 encoded format. - :param pulumi.Input[int] desired_capacity: The desired number of instances the group should have at any time. - :param pulumi.Input[int] max_size: The maximum number of instances the group should have at any time. - :param pulumi.Input[int] min_size: The minimum number of instances the group should have at any time. - :param pulumi.Input[str] name: The group name. - """ - pulumi.set(__self__, "low_priority_sizes", low_priority_sizes) - pulumi.set(__self__, "network", network) - pulumi.set(__self__, "od_sizes", od_sizes) - pulumi.set(__self__, "product", product) - pulumi.set(__self__, "region", region) - pulumi.set(__self__, "resource_group_name", resource_group_name) - pulumi.set(__self__, "strategy", strategy) - if custom_data is not None: - pulumi.set(__self__, "custom_data", custom_data) - if desired_capacity is not None: - pulumi.set(__self__, "desired_capacity", desired_capacity) - if health_check is not None: - pulumi.set(__self__, "health_check", health_check) - if images is not None: - pulumi.set(__self__, "images", images) - if integration_kubernetes is not None: - pulumi.set(__self__, "integration_kubernetes", integration_kubernetes) - if integration_multai_runtime is not None: - pulumi.set(__self__, "integration_multai_runtime", integration_multai_runtime) - if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) - if login is not None: - pulumi.set(__self__, "login", login) - if managed_service_identities is not None: - pulumi.set(__self__, "managed_service_identities", managed_service_identities) - if max_size is not None: - pulumi.set(__self__, "max_size", max_size) - if min_size is not None: - pulumi.set(__self__, "min_size", min_size) - if name is not None: - pulumi.set(__self__, "name", name) - if scaling_down_policies is not None: - pulumi.set(__self__, "scaling_down_policies", scaling_down_policies) - if scaling_up_policies is not None: - pulumi.set(__self__, "scaling_up_policies", scaling_up_policies) - if scheduled_tasks is not None: - pulumi.set(__self__, "scheduled_tasks", scheduled_tasks) - if shutdown_script is not None: - pulumi.set(__self__, "shutdown_script", shutdown_script) - if update_policy is not None: - pulumi.set(__self__, "update_policy", update_policy) - if user_data is not None: - pulumi.set(__self__, "user_data", user_data) - - @property - @pulumi.getter(name="lowPrioritySizes") - def low_priority_sizes(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: - return pulumi.get(self, "low_priority_sizes") - - @low_priority_sizes.setter - def low_priority_sizes(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): - pulumi.set(self, "low_priority_sizes", value) - - @property - @pulumi.getter - def network(self) -> pulumi.Input['ElastigroupNetworkArgs']: - return pulumi.get(self, "network") - - @network.setter - def network(self, value: pulumi.Input['ElastigroupNetworkArgs']): - pulumi.set(self, "network", value) - - @property - @pulumi.getter(name="odSizes") - def od_sizes(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: - """ - Available On-Demand sizes - """ - return pulumi.get(self, "od_sizes") - - @od_sizes.setter - def od_sizes(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): - pulumi.set(self, "od_sizes", value) - - @property - @pulumi.getter - def product(self) -> pulumi.Input[str]: - return pulumi.get(self, "product") - - @product.setter - def product(self, value: pulumi.Input[str]): - pulumi.set(self, "product", value) - - @property - @pulumi.getter - def region(self) -> pulumi.Input[str]: - """ - The region your Azure group will be created in. - """ - return pulumi.get(self, "region") - - @region.setter - def region(self, value: pulumi.Input[str]): - pulumi.set(self, "region", value) - - @property - @pulumi.getter(name="resourceGroupName") - def resource_group_name(self) -> pulumi.Input[str]: - """ - Name of the Resource Group for Elastigroup. - """ - return pulumi.get(self, "resource_group_name") - - @resource_group_name.setter - def resource_group_name(self, value: pulumi.Input[str]): - pulumi.set(self, "resource_group_name", value) - - @property - @pulumi.getter - def strategy(self) -> pulumi.Input['ElastigroupStrategyArgs']: - return pulumi.get(self, "strategy") - - @strategy.setter - def strategy(self, value: pulumi.Input['ElastigroupStrategyArgs']): - pulumi.set(self, "strategy", value) - - @property - @pulumi.getter(name="customData") - def custom_data(self) -> Optional[pulumi.Input[str]]: - """ - Custom init script file or text in Base64 encoded format. - """ - return pulumi.get(self, "custom_data") - - @custom_data.setter - def custom_data(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "custom_data", value) - - @property - @pulumi.getter(name="desiredCapacity") - def desired_capacity(self) -> Optional[pulumi.Input[int]]: - """ - The desired number of instances the group should have at any time. - """ - return pulumi.get(self, "desired_capacity") - - @desired_capacity.setter - def desired_capacity(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "desired_capacity", value) - - @property - @pulumi.getter(name="healthCheck") - def health_check(self) -> Optional[pulumi.Input['ElastigroupHealthCheckArgs']]: - return pulumi.get(self, "health_check") - - @health_check.setter - def health_check(self, value: Optional[pulumi.Input['ElastigroupHealthCheckArgs']]): - pulumi.set(self, "health_check", value) - - @property - @pulumi.getter - def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]]: - return pulumi.get(self, "images") - - @images.setter - def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]]): - pulumi.set(self, "images", value) - - @property - @pulumi.getter(name="integrationKubernetes") - def integration_kubernetes(self) -> Optional[pulumi.Input['ElastigroupIntegrationKubernetesArgs']]: - return pulumi.get(self, "integration_kubernetes") - - @integration_kubernetes.setter - def integration_kubernetes(self, value: Optional[pulumi.Input['ElastigroupIntegrationKubernetesArgs']]): - pulumi.set(self, "integration_kubernetes", value) - - @property - @pulumi.getter(name="integrationMultaiRuntime") - def integration_multai_runtime(self) -> Optional[pulumi.Input['ElastigroupIntegrationMultaiRuntimeArgs']]: - return pulumi.get(self, "integration_multai_runtime") - - @integration_multai_runtime.setter - def integration_multai_runtime(self, value: Optional[pulumi.Input['ElastigroupIntegrationMultaiRuntimeArgs']]): - pulumi.set(self, "integration_multai_runtime", value) - - @property - @pulumi.getter(name="loadBalancers") - def load_balancers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupLoadBalancerArgs']]]]: - return pulumi.get(self, "load_balancers") - - @load_balancers.setter - def load_balancers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupLoadBalancerArgs']]]]): - pulumi.set(self, "load_balancers", value) - - @property - @pulumi.getter - def login(self) -> Optional[pulumi.Input['ElastigroupLoginArgs']]: - return pulumi.get(self, "login") - - @login.setter - def login(self, value: Optional[pulumi.Input['ElastigroupLoginArgs']]): - pulumi.set(self, "login", value) - - @property - @pulumi.getter(name="managedServiceIdentities") - def managed_service_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupManagedServiceIdentityArgs']]]]: - return pulumi.get(self, "managed_service_identities") - - @managed_service_identities.setter - def managed_service_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupManagedServiceIdentityArgs']]]]): - pulumi.set(self, "managed_service_identities", value) - - @property - @pulumi.getter(name="maxSize") - def max_size(self) -> Optional[pulumi.Input[int]]: - """ - The maximum number of instances the group should have at any time. - """ - return pulumi.get(self, "max_size") - - @max_size.setter - def max_size(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "max_size", value) - - @property - @pulumi.getter(name="minSize") - def min_size(self) -> Optional[pulumi.Input[int]]: - """ - The minimum number of instances the group should have at any time. - """ - return pulumi.get(self, "min_size") - - @min_size.setter - def min_size(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "min_size", value) - - @property - @pulumi.getter - def name(self) -> Optional[pulumi.Input[str]]: - """ - The group name. - """ - return pulumi.get(self, "name") - - @name.setter - def name(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "name", value) - - @property - @pulumi.getter(name="scalingDownPolicies") - def scaling_down_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]]: - return pulumi.get(self, "scaling_down_policies") - - @scaling_down_policies.setter - def scaling_down_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]]): - pulumi.set(self, "scaling_down_policies", value) - - @property - @pulumi.getter(name="scalingUpPolicies") - def scaling_up_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]]: - return pulumi.get(self, "scaling_up_policies") - - @scaling_up_policies.setter - def scaling_up_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]]): - pulumi.set(self, "scaling_up_policies", value) - - @property - @pulumi.getter(name="scheduledTasks") - def scheduled_tasks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]]: - return pulumi.get(self, "scheduled_tasks") - - @scheduled_tasks.setter - def scheduled_tasks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]]): - pulumi.set(self, "scheduled_tasks", value) - - @property - @pulumi.getter(name="shutdownScript") - def shutdown_script(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "shutdown_script") - - @shutdown_script.setter - def shutdown_script(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "shutdown_script", value) - - @property - @pulumi.getter(name="updatePolicy") - def update_policy(self) -> Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']]: - return pulumi.get(self, "update_policy") - - @update_policy.setter - def update_policy(self, value: Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']]): - pulumi.set(self, "update_policy", value) - - @property - @pulumi.getter(name="userData") - def user_data(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "user_data") - - @user_data.setter - def user_data(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "user_data", value) - - -@pulumi.input_type -class _ElastigroupState: - def __init__(__self__, *, - custom_data: Optional[pulumi.Input[str]] = None, - desired_capacity: Optional[pulumi.Input[int]] = None, - health_check: Optional[pulumi.Input['ElastigroupHealthCheckArgs']] = None, - images: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]] = None, - integration_kubernetes: Optional[pulumi.Input['ElastigroupIntegrationKubernetesArgs']] = None, - integration_multai_runtime: Optional[pulumi.Input['ElastigroupIntegrationMultaiRuntimeArgs']] = None, - load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupLoadBalancerArgs']]]] = None, - login: Optional[pulumi.Input['ElastigroupLoginArgs']] = None, - low_priority_sizes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - managed_service_identities: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupManagedServiceIdentityArgs']]]] = None, - max_size: Optional[pulumi.Input[int]] = None, - min_size: Optional[pulumi.Input[int]] = None, - name: Optional[pulumi.Input[str]] = None, - network: Optional[pulumi.Input['ElastigroupNetworkArgs']] = None, - od_sizes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - product: Optional[pulumi.Input[str]] = None, - region: Optional[pulumi.Input[str]] = None, - resource_group_name: Optional[pulumi.Input[str]] = None, - scaling_down_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]] = None, - scaling_up_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]] = None, - scheduled_tasks: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]] = None, - shutdown_script: Optional[pulumi.Input[str]] = None, - strategy: Optional[pulumi.Input['ElastigroupStrategyArgs']] = None, - update_policy: Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']] = None, - user_data: Optional[pulumi.Input[str]] = None): - """ - Input properties used for looking up and filtering Elastigroup resources. - :param pulumi.Input[str] custom_data: Custom init script file or text in Base64 encoded format. - :param pulumi.Input[int] desired_capacity: The desired number of instances the group should have at any time. - :param pulumi.Input[int] max_size: The maximum number of instances the group should have at any time. - :param pulumi.Input[int] min_size: The minimum number of instances the group should have at any time. - :param pulumi.Input[str] name: The group name. - :param pulumi.Input[Sequence[pulumi.Input[str]]] od_sizes: Available On-Demand sizes - :param pulumi.Input[str] region: The region your Azure group will be created in. - :param pulumi.Input[str] resource_group_name: Name of the Resource Group for Elastigroup. - """ - if custom_data is not None: - pulumi.set(__self__, "custom_data", custom_data) - if desired_capacity is not None: - pulumi.set(__self__, "desired_capacity", desired_capacity) - if health_check is not None: - pulumi.set(__self__, "health_check", health_check) - if images is not None: - pulumi.set(__self__, "images", images) - if integration_kubernetes is not None: - pulumi.set(__self__, "integration_kubernetes", integration_kubernetes) - if integration_multai_runtime is not None: - pulumi.set(__self__, "integration_multai_runtime", integration_multai_runtime) - if load_balancers is not None: - pulumi.set(__self__, "load_balancers", load_balancers) - if login is not None: - pulumi.set(__self__, "login", login) - if low_priority_sizes is not None: - pulumi.set(__self__, "low_priority_sizes", low_priority_sizes) - if managed_service_identities is not None: - pulumi.set(__self__, "managed_service_identities", managed_service_identities) - if max_size is not None: - pulumi.set(__self__, "max_size", max_size) - if min_size is not None: - pulumi.set(__self__, "min_size", min_size) - if name is not None: - pulumi.set(__self__, "name", name) - if network is not None: - pulumi.set(__self__, "network", network) - if od_sizes is not None: - pulumi.set(__self__, "od_sizes", od_sizes) - if product is not None: - pulumi.set(__self__, "product", product) - if region is not None: - pulumi.set(__self__, "region", region) - if resource_group_name is not None: - pulumi.set(__self__, "resource_group_name", resource_group_name) - if scaling_down_policies is not None: - pulumi.set(__self__, "scaling_down_policies", scaling_down_policies) - if scaling_up_policies is not None: - pulumi.set(__self__, "scaling_up_policies", scaling_up_policies) - if scheduled_tasks is not None: - pulumi.set(__self__, "scheduled_tasks", scheduled_tasks) - if shutdown_script is not None: - pulumi.set(__self__, "shutdown_script", shutdown_script) - if strategy is not None: - pulumi.set(__self__, "strategy", strategy) - if update_policy is not None: - pulumi.set(__self__, "update_policy", update_policy) - if user_data is not None: - pulumi.set(__self__, "user_data", user_data) - - @property - @pulumi.getter(name="customData") - def custom_data(self) -> Optional[pulumi.Input[str]]: - """ - Custom init script file or text in Base64 encoded format. - """ - return pulumi.get(self, "custom_data") - - @custom_data.setter - def custom_data(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "custom_data", value) - - @property - @pulumi.getter(name="desiredCapacity") - def desired_capacity(self) -> Optional[pulumi.Input[int]]: - """ - The desired number of instances the group should have at any time. - """ - return pulumi.get(self, "desired_capacity") - - @desired_capacity.setter - def desired_capacity(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "desired_capacity", value) - - @property - @pulumi.getter(name="healthCheck") - def health_check(self) -> Optional[pulumi.Input['ElastigroupHealthCheckArgs']]: - return pulumi.get(self, "health_check") - - @health_check.setter - def health_check(self, value: Optional[pulumi.Input['ElastigroupHealthCheckArgs']]): - pulumi.set(self, "health_check", value) - - @property - @pulumi.getter - def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]]: - return pulumi.get(self, "images") - - @images.setter - def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]]): - pulumi.set(self, "images", value) - - @property - @pulumi.getter(name="integrationKubernetes") - def integration_kubernetes(self) -> Optional[pulumi.Input['ElastigroupIntegrationKubernetesArgs']]: - return pulumi.get(self, "integration_kubernetes") - - @integration_kubernetes.setter - def integration_kubernetes(self, value: Optional[pulumi.Input['ElastigroupIntegrationKubernetesArgs']]): - pulumi.set(self, "integration_kubernetes", value) - - @property - @pulumi.getter(name="integrationMultaiRuntime") - def integration_multai_runtime(self) -> Optional[pulumi.Input['ElastigroupIntegrationMultaiRuntimeArgs']]: - return pulumi.get(self, "integration_multai_runtime") - - @integration_multai_runtime.setter - def integration_multai_runtime(self, value: Optional[pulumi.Input['ElastigroupIntegrationMultaiRuntimeArgs']]): - pulumi.set(self, "integration_multai_runtime", value) - - @property - @pulumi.getter(name="loadBalancers") - def load_balancers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupLoadBalancerArgs']]]]: - return pulumi.get(self, "load_balancers") - - @load_balancers.setter - def load_balancers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupLoadBalancerArgs']]]]): - pulumi.set(self, "load_balancers", value) - - @property - @pulumi.getter - def login(self) -> Optional[pulumi.Input['ElastigroupLoginArgs']]: - return pulumi.get(self, "login") - - @login.setter - def login(self, value: Optional[pulumi.Input['ElastigroupLoginArgs']]): - pulumi.set(self, "login", value) - - @property - @pulumi.getter(name="lowPrioritySizes") - def low_priority_sizes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: - return pulumi.get(self, "low_priority_sizes") - - @low_priority_sizes.setter - def low_priority_sizes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): - pulumi.set(self, "low_priority_sizes", value) - - @property - @pulumi.getter(name="managedServiceIdentities") - def managed_service_identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupManagedServiceIdentityArgs']]]]: - return pulumi.get(self, "managed_service_identities") - - @managed_service_identities.setter - def managed_service_identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupManagedServiceIdentityArgs']]]]): - pulumi.set(self, "managed_service_identities", value) - - @property - @pulumi.getter(name="maxSize") - def max_size(self) -> Optional[pulumi.Input[int]]: - """ - The maximum number of instances the group should have at any time. - """ - return pulumi.get(self, "max_size") - - @max_size.setter - def max_size(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "max_size", value) - - @property - @pulumi.getter(name="minSize") - def min_size(self) -> Optional[pulumi.Input[int]]: - """ - The minimum number of instances the group should have at any time. - """ - return pulumi.get(self, "min_size") - - @min_size.setter - def min_size(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "min_size", value) - - @property - @pulumi.getter - def name(self) -> Optional[pulumi.Input[str]]: - """ - The group name. - """ - return pulumi.get(self, "name") - - @name.setter - def name(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "name", value) - - @property - @pulumi.getter - def network(self) -> Optional[pulumi.Input['ElastigroupNetworkArgs']]: - return pulumi.get(self, "network") - - @network.setter - def network(self, value: Optional[pulumi.Input['ElastigroupNetworkArgs']]): - pulumi.set(self, "network", value) - - @property - @pulumi.getter(name="odSizes") - def od_sizes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: - """ - Available On-Demand sizes - """ - return pulumi.get(self, "od_sizes") - - @od_sizes.setter - def od_sizes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): - pulumi.set(self, "od_sizes", value) - - @property - @pulumi.getter - def product(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "product") - - @product.setter - def product(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "product", value) - - @property - @pulumi.getter - def region(self) -> Optional[pulumi.Input[str]]: - """ - The region your Azure group will be created in. - """ - return pulumi.get(self, "region") - - @region.setter - def region(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "region", value) - - @property - @pulumi.getter(name="resourceGroupName") - def resource_group_name(self) -> Optional[pulumi.Input[str]]: - """ - Name of the Resource Group for Elastigroup. - """ - return pulumi.get(self, "resource_group_name") - - @resource_group_name.setter - def resource_group_name(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "resource_group_name", value) - - @property - @pulumi.getter(name="scalingDownPolicies") - def scaling_down_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]]: - return pulumi.get(self, "scaling_down_policies") - - @scaling_down_policies.setter - def scaling_down_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]]): - pulumi.set(self, "scaling_down_policies", value) - - @property - @pulumi.getter(name="scalingUpPolicies") - def scaling_up_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]]: - return pulumi.get(self, "scaling_up_policies") - - @scaling_up_policies.setter - def scaling_up_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]]): - pulumi.set(self, "scaling_up_policies", value) - - @property - @pulumi.getter(name="scheduledTasks") - def scheduled_tasks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]]: - return pulumi.get(self, "scheduled_tasks") - - @scheduled_tasks.setter - def scheduled_tasks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]]): - pulumi.set(self, "scheduled_tasks", value) - - @property - @pulumi.getter(name="shutdownScript") - def shutdown_script(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "shutdown_script") - - @shutdown_script.setter - def shutdown_script(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "shutdown_script", value) - - @property - @pulumi.getter - def strategy(self) -> Optional[pulumi.Input['ElastigroupStrategyArgs']]: - return pulumi.get(self, "strategy") - - @strategy.setter - def strategy(self, value: Optional[pulumi.Input['ElastigroupStrategyArgs']]): - pulumi.set(self, "strategy", value) - - @property - @pulumi.getter(name="updatePolicy") - def update_policy(self) -> Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']]: - return pulumi.get(self, "update_policy") - - @update_policy.setter - def update_policy(self, value: Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']]): - pulumi.set(self, "update_policy", value) - - @property - @pulumi.getter(name="userData") - def user_data(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "user_data") - - @user_data.setter - def user_data(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "user_data", value) - - -class Elastigroup(pulumi.CustomResource): - @overload - def __init__(__self__, - resource_name: str, - opts: Optional[pulumi.ResourceOptions] = None, - custom_data: Optional[pulumi.Input[str]] = None, - desired_capacity: Optional[pulumi.Input[int]] = None, - health_check: Optional[pulumi.Input[pulumi.InputType['ElastigroupHealthCheckArgs']]] = None, - images: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupImageArgs']]]]] = None, - integration_kubernetes: Optional[pulumi.Input[pulumi.InputType['ElastigroupIntegrationKubernetesArgs']]] = None, - integration_multai_runtime: Optional[pulumi.Input[pulumi.InputType['ElastigroupIntegrationMultaiRuntimeArgs']]] = None, - load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupLoadBalancerArgs']]]]] = None, - login: Optional[pulumi.Input[pulumi.InputType['ElastigroupLoginArgs']]] = None, - low_priority_sizes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - managed_service_identities: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupManagedServiceIdentityArgs']]]]] = None, - max_size: Optional[pulumi.Input[int]] = None, - min_size: Optional[pulumi.Input[int]] = None, - name: Optional[pulumi.Input[str]] = None, - network: Optional[pulumi.Input[pulumi.InputType['ElastigroupNetworkArgs']]] = None, - od_sizes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - product: Optional[pulumi.Input[str]] = None, - region: Optional[pulumi.Input[str]] = None, - resource_group_name: Optional[pulumi.Input[str]] = None, - scaling_down_policies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupScalingDownPolicyArgs']]]]] = None, - scaling_up_policies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupScalingUpPolicyArgs']]]]] = None, - scheduled_tasks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupScheduledTaskArgs']]]]] = None, - shutdown_script: Optional[pulumi.Input[str]] = None, - strategy: Optional[pulumi.Input[pulumi.InputType['ElastigroupStrategyArgs']]] = None, - update_policy: Optional[pulumi.Input[pulumi.InputType['ElastigroupUpdatePolicyArgs']]] = None, - user_data: Optional[pulumi.Input[str]] = None, - __props__=None): - """ - Provides a Spotinst elastigroup Azure resource. - - ## Example Usage - - ```python - import pulumi - import pulumi_spotinst as spotinst - - test_azure_group = spotinst.ElastigroupAzureV3("test_azure_group", - name="example_elastigroup_azure", - resource_group_name="spotinst-azure", - region="eastus", - os="Linux", - min_size=0, - max_size=1, - desired_capacity=1, - od_sizes=[ - "standard_a1_v1", - "standard_a1_v2", - ], - spot_sizes=[ - "standard_a1_v1", - "standard_a1_v2", - ], - custom_data="IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=", - managed_service_identities=[spotinst.ElastigroupAzureV3ManagedServiceIdentityArgs( - resource_group_name="MC_ocean-westus-dev_ocean-westus-dev-aks_westus", - name="ocean-westus-dev-aks-agentpool", - )], - tags=[ - spotinst.ElastigroupAzureV3TagArgs( - key="key1", - value="value1", - ), - spotinst.ElastigroupAzureV3TagArgs( - key="key2", - value="value2", - ), - ], - images=[spotinst.ElastigroupAzureV3ImageArgs( - marketplaces=[spotinst.ElastigroupAzureV3ImageMarketplaceArgs( - publisher="Canonical", - offer="UbuntuServer", - sku="18.04-LTS", - version="latest", - )], - )], - spot_percentage=65, - draining_timeout=300, - fallback_to_on_demand=True, - network=spotinst.ElastigroupAzureV3NetworkArgs( - virtual_network_name="VirtualNetworkName", - resource_group_name="ResourceGroup", - network_interfaces=[spotinst.ElastigroupAzureV3NetworkNetworkInterfaceArgs( - subnet_name="default", - assign_public_ip=False, - is_primary=True, - additional_ip_configs=[spotinst.ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArgs( - name="SecondaryIPConfig", - private_ip_version="IPv4", - )], - application_security_groups=[spotinst.ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArgs( - name="ApplicationSecurityGroupName", - resource_group_name="ResourceGroup", - )], - )], - ), - login=spotinst.ElastigroupAzureV3LoginArgs( - user_name="admin", - ssh_public_key="33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==", - )) - ``` - - ## Strategy - - * `spot_percentage` - (Optional) Percentage of Spot-VMs to maintain. Required if `on_demand_count` is not specified. - * `on_demand_count` - (Optional) Number of On-Demand VMs to maintain. Required if `spot_percentage` is not specified. - * `fallback_to_on_demand` - - * `draining_timeout` - (Optional, Default `120`) Time (seconds) to allow the instance to be drained from incoming TCP connections and detached from MLB before terminating it during a scale-down operation. - - - - :param str resource_name: The name of the resource. - :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] custom_data: Custom init script file or text in Base64 encoded format. - :param pulumi.Input[int] desired_capacity: The desired number of instances the group should have at any time. - :param pulumi.Input[int] max_size: The maximum number of instances the group should have at any time. - :param pulumi.Input[int] min_size: The minimum number of instances the group should have at any time. - :param pulumi.Input[str] name: The group name. - :param pulumi.Input[Sequence[pulumi.Input[str]]] od_sizes: Available On-Demand sizes - :param pulumi.Input[str] region: The region your Azure group will be created in. - :param pulumi.Input[str] resource_group_name: Name of the Resource Group for Elastigroup. - """ - ... - @overload - def __init__(__self__, - resource_name: str, - args: ElastigroupArgs, - opts: Optional[pulumi.ResourceOptions] = None): - """ - Provides a Spotinst elastigroup Azure resource. - - ## Example Usage - - ```python - import pulumi - import pulumi_spotinst as spotinst - - test_azure_group = spotinst.ElastigroupAzureV3("test_azure_group", - name="example_elastigroup_azure", - resource_group_name="spotinst-azure", - region="eastus", - os="Linux", - min_size=0, - max_size=1, - desired_capacity=1, - od_sizes=[ - "standard_a1_v1", - "standard_a1_v2", - ], - spot_sizes=[ - "standard_a1_v1", - "standard_a1_v2", - ], - custom_data="IyEvYmluL2Jhc2gKZWNobyAidGVzdCI=", - managed_service_identities=[spotinst.ElastigroupAzureV3ManagedServiceIdentityArgs( - resource_group_name="MC_ocean-westus-dev_ocean-westus-dev-aks_westus", - name="ocean-westus-dev-aks-agentpool", - )], - tags=[ - spotinst.ElastigroupAzureV3TagArgs( - key="key1", - value="value1", - ), - spotinst.ElastigroupAzureV3TagArgs( - key="key2", - value="value2", - ), - ], - images=[spotinst.ElastigroupAzureV3ImageArgs( - marketplaces=[spotinst.ElastigroupAzureV3ImageMarketplaceArgs( - publisher="Canonical", - offer="UbuntuServer", - sku="18.04-LTS", - version="latest", - )], - )], - spot_percentage=65, - draining_timeout=300, - fallback_to_on_demand=True, - network=spotinst.ElastigroupAzureV3NetworkArgs( - virtual_network_name="VirtualNetworkName", - resource_group_name="ResourceGroup", - network_interfaces=[spotinst.ElastigroupAzureV3NetworkNetworkInterfaceArgs( - subnet_name="default", - assign_public_ip=False, - is_primary=True, - additional_ip_configs=[spotinst.ElastigroupAzureV3NetworkNetworkInterfaceAdditionalIpConfigArgs( - name="SecondaryIPConfig", - private_ip_version="IPv4", - )], - application_security_groups=[spotinst.ElastigroupAzureV3NetworkNetworkInterfaceApplicationSecurityGroupArgs( - name="ApplicationSecurityGroupName", - resource_group_name="ResourceGroup", - )], - )], - ), - login=spotinst.ElastigroupAzureV3LoginArgs( - user_name="admin", - ssh_public_key="33a2s1f3g5a1df5g1ad3f2g1adfg56dfg==", - )) - ``` - - ## Strategy - - * `spot_percentage` - (Optional) Percentage of Spot-VMs to maintain. Required if `on_demand_count` is not specified. - * `on_demand_count` - (Optional) Number of On-Demand VMs to maintain. Required if `spot_percentage` is not specified. - * `fallback_to_on_demand` - - * `draining_timeout` - (Optional, Default `120`) Time (seconds) to allow the instance to be drained from incoming TCP connections and detached from MLB before terminating it during a scale-down operation. - - - - :param str resource_name: The name of the resource. - :param ElastigroupArgs args: The arguments to use to populate this resource's properties. - :param pulumi.ResourceOptions opts: Options for the resource. - """ - ... - def __init__(__self__, resource_name: str, *args, **kwargs): - resource_args, opts = _utilities.get_resource_args_opts(ElastigroupArgs, pulumi.ResourceOptions, *args, **kwargs) - if resource_args is not None: - __self__._internal_init(resource_name, opts, **resource_args.__dict__) - else: - __self__._internal_init(resource_name, *args, **kwargs) - - def _internal_init(__self__, - resource_name: str, - opts: Optional[pulumi.ResourceOptions] = None, - custom_data: Optional[pulumi.Input[str]] = None, - desired_capacity: Optional[pulumi.Input[int]] = None, - health_check: Optional[pulumi.Input[pulumi.InputType['ElastigroupHealthCheckArgs']]] = None, - images: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupImageArgs']]]]] = None, - integration_kubernetes: Optional[pulumi.Input[pulumi.InputType['ElastigroupIntegrationKubernetesArgs']]] = None, - integration_multai_runtime: Optional[pulumi.Input[pulumi.InputType['ElastigroupIntegrationMultaiRuntimeArgs']]] = None, - load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupLoadBalancerArgs']]]]] = None, - login: Optional[pulumi.Input[pulumi.InputType['ElastigroupLoginArgs']]] = None, - low_priority_sizes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - managed_service_identities: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupManagedServiceIdentityArgs']]]]] = None, - max_size: Optional[pulumi.Input[int]] = None, - min_size: Optional[pulumi.Input[int]] = None, - name: Optional[pulumi.Input[str]] = None, - network: Optional[pulumi.Input[pulumi.InputType['ElastigroupNetworkArgs']]] = None, - od_sizes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - product: Optional[pulumi.Input[str]] = None, - region: Optional[pulumi.Input[str]] = None, - resource_group_name: Optional[pulumi.Input[str]] = None, - scaling_down_policies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupScalingDownPolicyArgs']]]]] = None, - scaling_up_policies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupScalingUpPolicyArgs']]]]] = None, - scheduled_tasks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupScheduledTaskArgs']]]]] = None, - shutdown_script: Optional[pulumi.Input[str]] = None, - strategy: Optional[pulumi.Input[pulumi.InputType['ElastigroupStrategyArgs']]] = None, - update_policy: Optional[pulumi.Input[pulumi.InputType['ElastigroupUpdatePolicyArgs']]] = None, - user_data: Optional[pulumi.Input[str]] = None, - __props__=None): - opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) - if not isinstance(opts, pulumi.ResourceOptions): - raise TypeError('Expected resource options to be a ResourceOptions instance') - if opts.id is None: - if __props__ is not None: - raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') - __props__ = ElastigroupArgs.__new__(ElastigroupArgs) - - __props__.__dict__["custom_data"] = custom_data - __props__.__dict__["desired_capacity"] = desired_capacity - __props__.__dict__["health_check"] = health_check - __props__.__dict__["images"] = images - __props__.__dict__["integration_kubernetes"] = integration_kubernetes - __props__.__dict__["integration_multai_runtime"] = integration_multai_runtime - __props__.__dict__["load_balancers"] = load_balancers - __props__.__dict__["login"] = login - if low_priority_sizes is None and not opts.urn: - raise TypeError("Missing required property 'low_priority_sizes'") - __props__.__dict__["low_priority_sizes"] = low_priority_sizes - __props__.__dict__["managed_service_identities"] = managed_service_identities - __props__.__dict__["max_size"] = max_size - __props__.__dict__["min_size"] = min_size - __props__.__dict__["name"] = name - if network is None and not opts.urn: - raise TypeError("Missing required property 'network'") - __props__.__dict__["network"] = network - if od_sizes is None and not opts.urn: - raise TypeError("Missing required property 'od_sizes'") - __props__.__dict__["od_sizes"] = od_sizes - if product is None and not opts.urn: - raise TypeError("Missing required property 'product'") - __props__.__dict__["product"] = product - if region is None and not opts.urn: - raise TypeError("Missing required property 'region'") - __props__.__dict__["region"] = region - if resource_group_name is None and not opts.urn: - raise TypeError("Missing required property 'resource_group_name'") - __props__.__dict__["resource_group_name"] = resource_group_name - __props__.__dict__["scaling_down_policies"] = scaling_down_policies - __props__.__dict__["scaling_up_policies"] = scaling_up_policies - __props__.__dict__["scheduled_tasks"] = scheduled_tasks - __props__.__dict__["shutdown_script"] = shutdown_script - if strategy is None and not opts.urn: - raise TypeError("Missing required property 'strategy'") - __props__.__dict__["strategy"] = strategy - __props__.__dict__["update_policy"] = update_policy - __props__.__dict__["user_data"] = user_data - super(Elastigroup, __self__).__init__( - 'spotinst:azure/elastigroup:Elastigroup', - resource_name, - __props__, - opts) - - @staticmethod - def get(resource_name: str, - id: pulumi.Input[str], - opts: Optional[pulumi.ResourceOptions] = None, - custom_data: Optional[pulumi.Input[str]] = None, - desired_capacity: Optional[pulumi.Input[int]] = None, - health_check: Optional[pulumi.Input[pulumi.InputType['ElastigroupHealthCheckArgs']]] = None, - images: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupImageArgs']]]]] = None, - integration_kubernetes: Optional[pulumi.Input[pulumi.InputType['ElastigroupIntegrationKubernetesArgs']]] = None, - integration_multai_runtime: Optional[pulumi.Input[pulumi.InputType['ElastigroupIntegrationMultaiRuntimeArgs']]] = None, - load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupLoadBalancerArgs']]]]] = None, - login: Optional[pulumi.Input[pulumi.InputType['ElastigroupLoginArgs']]] = None, - low_priority_sizes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - managed_service_identities: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupManagedServiceIdentityArgs']]]]] = None, - max_size: Optional[pulumi.Input[int]] = None, - min_size: Optional[pulumi.Input[int]] = None, - name: Optional[pulumi.Input[str]] = None, - network: Optional[pulumi.Input[pulumi.InputType['ElastigroupNetworkArgs']]] = None, - od_sizes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - product: Optional[pulumi.Input[str]] = None, - region: Optional[pulumi.Input[str]] = None, - resource_group_name: Optional[pulumi.Input[str]] = None, - scaling_down_policies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupScalingDownPolicyArgs']]]]] = None, - scaling_up_policies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupScalingUpPolicyArgs']]]]] = None, - scheduled_tasks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ElastigroupScheduledTaskArgs']]]]] = None, - shutdown_script: Optional[pulumi.Input[str]] = None, - strategy: Optional[pulumi.Input[pulumi.InputType['ElastigroupStrategyArgs']]] = None, - update_policy: Optional[pulumi.Input[pulumi.InputType['ElastigroupUpdatePolicyArgs']]] = None, - user_data: Optional[pulumi.Input[str]] = None) -> 'Elastigroup': - """ - Get an existing Elastigroup resource's state with the given name, id, and optional extra - properties used to qualify the lookup. - - :param str resource_name: The unique name of the resulting resource. - :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. - :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] custom_data: Custom init script file or text in Base64 encoded format. - :param pulumi.Input[int] desired_capacity: The desired number of instances the group should have at any time. - :param pulumi.Input[int] max_size: The maximum number of instances the group should have at any time. - :param pulumi.Input[int] min_size: The minimum number of instances the group should have at any time. - :param pulumi.Input[str] name: The group name. - :param pulumi.Input[Sequence[pulumi.Input[str]]] od_sizes: Available On-Demand sizes - :param pulumi.Input[str] region: The region your Azure group will be created in. - :param pulumi.Input[str] resource_group_name: Name of the Resource Group for Elastigroup. - """ - opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) - - __props__ = _ElastigroupState.__new__(_ElastigroupState) - - __props__.__dict__["custom_data"] = custom_data - __props__.__dict__["desired_capacity"] = desired_capacity - __props__.__dict__["health_check"] = health_check - __props__.__dict__["images"] = images - __props__.__dict__["integration_kubernetes"] = integration_kubernetes - __props__.__dict__["integration_multai_runtime"] = integration_multai_runtime - __props__.__dict__["load_balancers"] = load_balancers - __props__.__dict__["login"] = login - __props__.__dict__["low_priority_sizes"] = low_priority_sizes - __props__.__dict__["managed_service_identities"] = managed_service_identities - __props__.__dict__["max_size"] = max_size - __props__.__dict__["min_size"] = min_size - __props__.__dict__["name"] = name - __props__.__dict__["network"] = network - __props__.__dict__["od_sizes"] = od_sizes - __props__.__dict__["product"] = product - __props__.__dict__["region"] = region - __props__.__dict__["resource_group_name"] = resource_group_name - __props__.__dict__["scaling_down_policies"] = scaling_down_policies - __props__.__dict__["scaling_up_policies"] = scaling_up_policies - __props__.__dict__["scheduled_tasks"] = scheduled_tasks - __props__.__dict__["shutdown_script"] = shutdown_script - __props__.__dict__["strategy"] = strategy - __props__.__dict__["update_policy"] = update_policy - __props__.__dict__["user_data"] = user_data - return Elastigroup(resource_name, opts=opts, __props__=__props__) - - @property - @pulumi.getter(name="customData") - def custom_data(self) -> pulumi.Output[Optional[str]]: - """ - Custom init script file or text in Base64 encoded format. - """ - return pulumi.get(self, "custom_data") - - @property - @pulumi.getter(name="desiredCapacity") - def desired_capacity(self) -> pulumi.Output[Optional[int]]: - """ - The desired number of instances the group should have at any time. - """ - return pulumi.get(self, "desired_capacity") - - @property - @pulumi.getter(name="healthCheck") - def health_check(self) -> pulumi.Output[Optional['outputs.ElastigroupHealthCheck']]: - return pulumi.get(self, "health_check") - - @property - @pulumi.getter - def images(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupImage']]]: - return pulumi.get(self, "images") - - @property - @pulumi.getter(name="integrationKubernetes") - def integration_kubernetes(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationKubernetes']]: - return pulumi.get(self, "integration_kubernetes") - - @property - @pulumi.getter(name="integrationMultaiRuntime") - def integration_multai_runtime(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationMultaiRuntime']]: - return pulumi.get(self, "integration_multai_runtime") - - @property - @pulumi.getter(name="loadBalancers") - def load_balancers(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupLoadBalancer']]]: - return pulumi.get(self, "load_balancers") - - @property - @pulumi.getter - def login(self) -> pulumi.Output[Optional['outputs.ElastigroupLogin']]: - return pulumi.get(self, "login") - - @property - @pulumi.getter(name="lowPrioritySizes") - def low_priority_sizes(self) -> pulumi.Output[Sequence[str]]: - return pulumi.get(self, "low_priority_sizes") - - @property - @pulumi.getter(name="managedServiceIdentities") - def managed_service_identities(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupManagedServiceIdentity']]]: - return pulumi.get(self, "managed_service_identities") - - @property - @pulumi.getter(name="maxSize") - def max_size(self) -> pulumi.Output[int]: - """ - The maximum number of instances the group should have at any time. - """ - return pulumi.get(self, "max_size") - - @property - @pulumi.getter(name="minSize") - def min_size(self) -> pulumi.Output[int]: - """ - The minimum number of instances the group should have at any time. - """ - return pulumi.get(self, "min_size") - - @property - @pulumi.getter - def name(self) -> pulumi.Output[str]: - """ - The group name. - """ - return pulumi.get(self, "name") - - @property - @pulumi.getter - def network(self) -> pulumi.Output['outputs.ElastigroupNetwork']: - return pulumi.get(self, "network") - - @property - @pulumi.getter(name="odSizes") - def od_sizes(self) -> pulumi.Output[Sequence[str]]: - """ - Available On-Demand sizes - """ - return pulumi.get(self, "od_sizes") - - @property - @pulumi.getter - def product(self) -> pulumi.Output[str]: - return pulumi.get(self, "product") - - @property - @pulumi.getter - def region(self) -> pulumi.Output[str]: - """ - The region your Azure group will be created in. - """ - return pulumi.get(self, "region") - - @property - @pulumi.getter(name="resourceGroupName") - def resource_group_name(self) -> pulumi.Output[str]: - """ - Name of the Resource Group for Elastigroup. - """ - return pulumi.get(self, "resource_group_name") - - @property - @pulumi.getter(name="scalingDownPolicies") - def scaling_down_policies(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupScalingDownPolicy']]]: - return pulumi.get(self, "scaling_down_policies") - - @property - @pulumi.getter(name="scalingUpPolicies") - def scaling_up_policies(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupScalingUpPolicy']]]: - return pulumi.get(self, "scaling_up_policies") - - @property - @pulumi.getter(name="scheduledTasks") - def scheduled_tasks(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupScheduledTask']]]: - return pulumi.get(self, "scheduled_tasks") - - @property - @pulumi.getter(name="shutdownScript") - def shutdown_script(self) -> pulumi.Output[Optional[str]]: - return pulumi.get(self, "shutdown_script") - - @property - @pulumi.getter - def strategy(self) -> pulumi.Output['outputs.ElastigroupStrategy']: - return pulumi.get(self, "strategy") - - @property - @pulumi.getter(name="updatePolicy") - def update_policy(self) -> pulumi.Output[Optional['outputs.ElastigroupUpdatePolicy']]: - return pulumi.get(self, "update_policy") - - @property - @pulumi.getter(name="userData") - def user_data(self) -> pulumi.Output[Optional[str]]: - return pulumi.get(self, "user_data") - diff --git a/sdk/python/pulumi_spotinst/azure/ocean_np.py b/sdk/python/pulumi_spotinst/azure/ocean_np.py index f11010f8..acdb9e18 100644 --- a/sdk/python/pulumi_spotinst/azure/ocean_np.py +++ b/sdk/python/pulumi_spotinst/azure/ocean_np.py @@ -47,6 +47,29 @@ def __init__(__self__, *, vnet_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ The set of arguments for constructing a OceanNp resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + :param pulumi.Input[str] controller_cluster_id: Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + :param pulumi.Input['OceanNpAutoscalerArgs'] autoscaler: The Ocean Kubernetes Autoscaler object. + :param pulumi.Input[bool] enable_node_public_ip: Enable node public IP. + :param pulumi.Input[bool] fallback_to_ondemand: If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + :param pulumi.Input['OceanNpFiltersArgs'] filters: Filters for the VM sizes that can be launched from the virtual node group. + :param pulumi.Input[Sequence[pulumi.Input['OceanNpHeadroomArgs']]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. + :param pulumi.Input['OceanNpHealthArgs'] health: The Ocean AKS Health object. + :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + :param pulumi.Input[int] max_count: Maximum node count limit. + :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. + :param pulumi.Input[int] min_count: Minimum node count limit. + :param pulumi.Input[str] name: Add a name for the Ocean cluster. + :param pulumi.Input[int] os_disk_size_gb: The size of the OS disk in GB. + :param pulumi.Input[str] os_disk_type: The type of the OS disk. + :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. + :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + :param pulumi.Input['OceanNpSchedulingArgs'] scheduling: An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. + :param pulumi.Input[Sequence[pulumi.Input['OceanNpTaintArgs']]] taints: Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). """ pulumi.set(__self__, "aks_cluster_name", aks_cluster_name) pulumi.set(__self__, "aks_infrastructure_resource_group_name", aks_infrastructure_resource_group_name) @@ -140,6 +163,9 @@ def aks_resource_group_name(self, value: pulumi.Input[str]): @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + """ return pulumi.get(self, "availability_zones") @availability_zones.setter @@ -149,6 +175,9 @@ def availability_zones(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): @property @pulumi.getter(name="controllerClusterId") def controller_cluster_id(self) -> pulumi.Input[str]: + """ + Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + """ return pulumi.get(self, "controller_cluster_id") @controller_cluster_id.setter @@ -158,6 +187,9 @@ def controller_cluster_id(self, value: pulumi.Input[str]): @property @pulumi.getter def autoscaler(self) -> Optional[pulumi.Input['OceanNpAutoscalerArgs']]: + """ + The Ocean Kubernetes Autoscaler object. + """ return pulumi.get(self, "autoscaler") @autoscaler.setter @@ -167,6 +199,9 @@ def autoscaler(self, value: Optional[pulumi.Input['OceanNpAutoscalerArgs']]): @property @pulumi.getter(name="enableNodePublicIp") def enable_node_public_ip(self) -> Optional[pulumi.Input[bool]]: + """ + Enable node public IP. + """ return pulumi.get(self, "enable_node_public_ip") @enable_node_public_ip.setter @@ -176,6 +211,9 @@ def enable_node_public_ip(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter(name="fallbackToOndemand") def fallback_to_ondemand(self) -> Optional[pulumi.Input[bool]]: + """ + If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + """ return pulumi.get(self, "fallback_to_ondemand") @fallback_to_ondemand.setter @@ -185,6 +223,9 @@ def fallback_to_ondemand(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter def filters(self) -> Optional[pulumi.Input['OceanNpFiltersArgs']]: + """ + Filters for the VM sizes that can be launched from the virtual node group. + """ return pulumi.get(self, "filters") @filters.setter @@ -194,6 +235,9 @@ def filters(self, value: Optional[pulumi.Input['OceanNpFiltersArgs']]): @property @pulumi.getter def headrooms(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpHeadroomArgs']]]]: + """ + Specify the custom headroom per VNG. Provide a list of headroom objects. + """ return pulumi.get(self, "headrooms") @headrooms.setter @@ -203,6 +247,9 @@ def headrooms(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpH @property @pulumi.getter def health(self) -> Optional[pulumi.Input['OceanNpHealthArgs']]: + """ + The Ocean AKS Health object. + """ return pulumi.get(self, "health") @health.setter @@ -212,6 +259,9 @@ def health(self, value: Optional[pulumi.Input['OceanNpHealthArgs']]): @property @pulumi.getter(name="kubernetesVersion") def kubernetes_version(self) -> Optional[pulumi.Input[str]]: + """ + The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + """ return pulumi.get(self, "kubernetes_version") @kubernetes_version.setter @@ -221,6 +271,9 @@ def kubernetes_version(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + """ + An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + """ return pulumi.get(self, "labels") @labels.setter @@ -230,6 +283,9 @@ def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): @property @pulumi.getter(name="maxCount") def max_count(self) -> Optional[pulumi.Input[int]]: + """ + Maximum node count limit. + """ return pulumi.get(self, "max_count") @max_count.setter @@ -239,6 +295,9 @@ def max_count(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="maxPodsPerNode") def max_pods_per_node(self) -> Optional[pulumi.Input[int]]: + """ + The maximum number of pods per node in the node pools. + """ return pulumi.get(self, "max_pods_per_node") @max_pods_per_node.setter @@ -248,6 +307,9 @@ def max_pods_per_node(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="minCount") def min_count(self) -> Optional[pulumi.Input[int]]: + """ + Minimum node count limit. + """ return pulumi.get(self, "min_count") @min_count.setter @@ -257,6 +319,9 @@ def min_count(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: + """ + Add a name for the Ocean cluster. + """ return pulumi.get(self, "name") @name.setter @@ -266,6 +331,9 @@ def name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osDiskSizeGb") def os_disk_size_gb(self) -> Optional[pulumi.Input[int]]: + """ + The size of the OS disk in GB. + """ return pulumi.get(self, "os_disk_size_gb") @os_disk_size_gb.setter @@ -275,6 +343,9 @@ def os_disk_size_gb(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="osDiskType") def os_disk_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of the OS disk. + """ return pulumi.get(self, "os_disk_type") @os_disk_type.setter @@ -284,6 +355,9 @@ def os_disk_type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osSku") def os_sku(self) -> Optional[pulumi.Input[str]]: + """ + The OS SKU of the OS type. Must correlate with the os type. + """ return pulumi.get(self, "os_sku") @os_sku.setter @@ -293,6 +367,9 @@ def os_sku(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osType") def os_type(self) -> Optional[pulumi.Input[str]]: + """ + The OS type of the OS disk. Can't be modified once set. + """ return pulumi.get(self, "os_type") @os_type.setter @@ -302,6 +379,9 @@ def os_type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="podSubnetIds") def pod_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "pod_subnet_ids") @pod_subnet_ids.setter @@ -311,6 +391,9 @@ def pod_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @property @pulumi.getter def scheduling(self) -> Optional[pulumi.Input['OceanNpSchedulingArgs']]: + """ + An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + """ return pulumi.get(self, "scheduling") @scheduling.setter @@ -320,6 +403,9 @@ def scheduling(self, value: Optional[pulumi.Input['OceanNpSchedulingArgs']]): @property @pulumi.getter(name="spotPercentage") def spot_percentage(self) -> Optional[pulumi.Input[int]]: + """ + Percentage of spot VMs to maintain. + """ return pulumi.get(self, "spot_percentage") @spot_percentage.setter @@ -338,6 +424,9 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): @property @pulumi.getter def taints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpTaintArgs']]]]: + """ + Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + """ return pulumi.get(self, "taints") @taints.setter @@ -356,6 +445,9 @@ def update_policy(self, value: Optional[pulumi.Input['OceanNpUpdatePolicyArgs']] @property @pulumi.getter(name="vnetSubnetIds") def vnet_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "vnet_subnet_ids") @vnet_subnet_ids.setter @@ -397,6 +489,29 @@ def __init__(__self__, *, vnet_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ Input properties used for looking up and filtering OceanNp resources. + :param pulumi.Input['OceanNpAutoscalerArgs'] autoscaler: The Ocean Kubernetes Autoscaler object. + :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + :param pulumi.Input[str] controller_cluster_id: Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + :param pulumi.Input[bool] enable_node_public_ip: Enable node public IP. + :param pulumi.Input[bool] fallback_to_ondemand: If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + :param pulumi.Input['OceanNpFiltersArgs'] filters: Filters for the VM sizes that can be launched from the virtual node group. + :param pulumi.Input[Sequence[pulumi.Input['OceanNpHeadroomArgs']]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. + :param pulumi.Input['OceanNpHealthArgs'] health: The Ocean AKS Health object. + :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + :param pulumi.Input[int] max_count: Maximum node count limit. + :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. + :param pulumi.Input[int] min_count: Minimum node count limit. + :param pulumi.Input[str] name: Add a name for the Ocean cluster. + :param pulumi.Input[int] os_disk_size_gb: The size of the OS disk in GB. + :param pulumi.Input[str] os_disk_type: The type of the OS disk. + :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. + :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + :param pulumi.Input['OceanNpSchedulingArgs'] scheduling: An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. + :param pulumi.Input[Sequence[pulumi.Input['OceanNpTaintArgs']]] taints: Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). """ if aks_cluster_name is not None: pulumi.set(__self__, "aks_cluster_name", aks_cluster_name) @@ -496,6 +611,9 @@ def aks_resource_group_name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def autoscaler(self) -> Optional[pulumi.Input['OceanNpAutoscalerArgs']]: + """ + The Ocean Kubernetes Autoscaler object. + """ return pulumi.get(self, "autoscaler") @autoscaler.setter @@ -505,6 +623,9 @@ def autoscaler(self, value: Optional[pulumi.Input['OceanNpAutoscalerArgs']]): @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + """ return pulumi.get(self, "availability_zones") @availability_zones.setter @@ -514,6 +635,9 @@ def availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ @property @pulumi.getter(name="controllerClusterId") def controller_cluster_id(self) -> Optional[pulumi.Input[str]]: + """ + Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + """ return pulumi.get(self, "controller_cluster_id") @controller_cluster_id.setter @@ -523,6 +647,9 @@ def controller_cluster_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="enableNodePublicIp") def enable_node_public_ip(self) -> Optional[pulumi.Input[bool]]: + """ + Enable node public IP. + """ return pulumi.get(self, "enable_node_public_ip") @enable_node_public_ip.setter @@ -532,6 +659,9 @@ def enable_node_public_ip(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter(name="fallbackToOndemand") def fallback_to_ondemand(self) -> Optional[pulumi.Input[bool]]: + """ + If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + """ return pulumi.get(self, "fallback_to_ondemand") @fallback_to_ondemand.setter @@ -541,6 +671,9 @@ def fallback_to_ondemand(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter def filters(self) -> Optional[pulumi.Input['OceanNpFiltersArgs']]: + """ + Filters for the VM sizes that can be launched from the virtual node group. + """ return pulumi.get(self, "filters") @filters.setter @@ -550,6 +683,9 @@ def filters(self, value: Optional[pulumi.Input['OceanNpFiltersArgs']]): @property @pulumi.getter def headrooms(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpHeadroomArgs']]]]: + """ + Specify the custom headroom per VNG. Provide a list of headroom objects. + """ return pulumi.get(self, "headrooms") @headrooms.setter @@ -559,6 +695,9 @@ def headrooms(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpH @property @pulumi.getter def health(self) -> Optional[pulumi.Input['OceanNpHealthArgs']]: + """ + The Ocean AKS Health object. + """ return pulumi.get(self, "health") @health.setter @@ -568,6 +707,9 @@ def health(self, value: Optional[pulumi.Input['OceanNpHealthArgs']]): @property @pulumi.getter(name="kubernetesVersion") def kubernetes_version(self) -> Optional[pulumi.Input[str]]: + """ + The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + """ return pulumi.get(self, "kubernetes_version") @kubernetes_version.setter @@ -577,6 +719,9 @@ def kubernetes_version(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + """ + An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + """ return pulumi.get(self, "labels") @labels.setter @@ -586,6 +731,9 @@ def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): @property @pulumi.getter(name="maxCount") def max_count(self) -> Optional[pulumi.Input[int]]: + """ + Maximum node count limit. + """ return pulumi.get(self, "max_count") @max_count.setter @@ -595,6 +743,9 @@ def max_count(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="maxPodsPerNode") def max_pods_per_node(self) -> Optional[pulumi.Input[int]]: + """ + The maximum number of pods per node in the node pools. + """ return pulumi.get(self, "max_pods_per_node") @max_pods_per_node.setter @@ -604,6 +755,9 @@ def max_pods_per_node(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="minCount") def min_count(self) -> Optional[pulumi.Input[int]]: + """ + Minimum node count limit. + """ return pulumi.get(self, "min_count") @min_count.setter @@ -613,6 +767,9 @@ def min_count(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: + """ + Add a name for the Ocean cluster. + """ return pulumi.get(self, "name") @name.setter @@ -622,6 +779,9 @@ def name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osDiskSizeGb") def os_disk_size_gb(self) -> Optional[pulumi.Input[int]]: + """ + The size of the OS disk in GB. + """ return pulumi.get(self, "os_disk_size_gb") @os_disk_size_gb.setter @@ -631,6 +791,9 @@ def os_disk_size_gb(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="osDiskType") def os_disk_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of the OS disk. + """ return pulumi.get(self, "os_disk_type") @os_disk_type.setter @@ -640,6 +803,9 @@ def os_disk_type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osSku") def os_sku(self) -> Optional[pulumi.Input[str]]: + """ + The OS SKU of the OS type. Must correlate with the os type. + """ return pulumi.get(self, "os_sku") @os_sku.setter @@ -649,6 +815,9 @@ def os_sku(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osType") def os_type(self) -> Optional[pulumi.Input[str]]: + """ + The OS type of the OS disk. Can't be modified once set. + """ return pulumi.get(self, "os_type") @os_type.setter @@ -658,6 +827,9 @@ def os_type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="podSubnetIds") def pod_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "pod_subnet_ids") @pod_subnet_ids.setter @@ -667,6 +839,9 @@ def pod_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @property @pulumi.getter def scheduling(self) -> Optional[pulumi.Input['OceanNpSchedulingArgs']]: + """ + An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + """ return pulumi.get(self, "scheduling") @scheduling.setter @@ -676,6 +851,9 @@ def scheduling(self, value: Optional[pulumi.Input['OceanNpSchedulingArgs']]): @property @pulumi.getter(name="spotPercentage") def spot_percentage(self) -> Optional[pulumi.Input[int]]: + """ + Percentage of spot VMs to maintain. + """ return pulumi.get(self, "spot_percentage") @spot_percentage.setter @@ -694,6 +872,9 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): @property @pulumi.getter def taints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpTaintArgs']]]]: + """ + Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + """ return pulumi.get(self, "taints") @taints.setter @@ -712,6 +893,9 @@ def update_policy(self, value: Optional[pulumi.Input['OceanNpUpdatePolicyArgs']] @property @pulumi.getter(name="vnetSubnetIds") def vnet_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "vnet_subnet_ids") @vnet_subnet_ids.setter @@ -755,9 +939,55 @@ def __init__(__self__, vnet_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): """ - Create a OceanNp resource with the given unique name, props, and options. + Manages a Spotinst Ocean AKS resource. + + ## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters + + ```python + import pulumi + import pulumi_spotinst as spotinst + + example = spotinst.azure.OceanNp("example", + name="test", + aks_region="eastus", + aks_cluster_name="test-cluster", + aks_infrastructure_resource_group_name="MC_TestResourceGroup_test-cluster_eastus", + aks_resource_group_name="TestResourceGroup", + controller_cluster_id="test-123124", + availability_zones=[ + "1", + "2", + "3", + ]) + ``` + + ## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values + :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['OceanNpAutoscalerArgs']] autoscaler: The Ocean Kubernetes Autoscaler object. + :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + :param pulumi.Input[str] controller_cluster_id: Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + :param pulumi.Input[bool] enable_node_public_ip: Enable node public IP. + :param pulumi.Input[bool] fallback_to_ondemand: If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + :param pulumi.Input[pulumi.InputType['OceanNpFiltersArgs']] filters: Filters for the VM sizes that can be launched from the virtual node group. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpHeadroomArgs']]]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. + :param pulumi.Input[pulumi.InputType['OceanNpHealthArgs']] health: The Ocean AKS Health object. + :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + :param pulumi.Input[int] max_count: Maximum node count limit. + :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. + :param pulumi.Input[int] min_count: Minimum node count limit. + :param pulumi.Input[str] name: Add a name for the Ocean cluster. + :param pulumi.Input[int] os_disk_size_gb: The size of the OS disk in GB. + :param pulumi.Input[str] os_disk_type: The type of the OS disk. + :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. + :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + :param pulumi.Input[pulumi.InputType['OceanNpSchedulingArgs']] scheduling: An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpTaintArgs']]]] taints: Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). """ ... @overload @@ -766,7 +996,30 @@ def __init__(__self__, args: OceanNpArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Create a OceanNp resource with the given unique name, props, and options. + Manages a Spotinst Ocean AKS resource. + + ## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters + + ```python + import pulumi + import pulumi_spotinst as spotinst + + example = spotinst.azure.OceanNp("example", + name="test", + aks_region="eastus", + aks_cluster_name="test-cluster", + aks_infrastructure_resource_group_name="MC_TestResourceGroup_test-cluster_eastus", + aks_resource_group_name="TestResourceGroup", + controller_cluster_id="test-123124", + availability_zones=[ + "1", + "2", + "3", + ]) + ``` + + ## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values + :param str resource_name: The name of the resource. :param OceanNpArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. @@ -907,6 +1160,29 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['OceanNpAutoscalerArgs']] autoscaler: The Ocean Kubernetes Autoscaler object. + :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + :param pulumi.Input[str] controller_cluster_id: Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + :param pulumi.Input[bool] enable_node_public_ip: Enable node public IP. + :param pulumi.Input[bool] fallback_to_ondemand: If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + :param pulumi.Input[pulumi.InputType['OceanNpFiltersArgs']] filters: Filters for the VM sizes that can be launched from the virtual node group. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpHeadroomArgs']]]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. + :param pulumi.Input[pulumi.InputType['OceanNpHealthArgs']] health: The Ocean AKS Health object. + :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + :param pulumi.Input[int] max_count: Maximum node count limit. + :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. + :param pulumi.Input[int] min_count: Minimum node count limit. + :param pulumi.Input[str] name: Add a name for the Ocean cluster. + :param pulumi.Input[int] os_disk_size_gb: The size of the OS disk in GB. + :param pulumi.Input[str] os_disk_type: The type of the OS disk. + :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. + :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + :param pulumi.Input[pulumi.InputType['OceanNpSchedulingArgs']] scheduling: An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpTaintArgs']]]] taints: Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -966,106 +1242,169 @@ def aks_resource_group_name(self) -> pulumi.Output[str]: @property @pulumi.getter def autoscaler(self) -> pulumi.Output[Optional['outputs.OceanNpAutoscaler']]: + """ + The Ocean Kubernetes Autoscaler object. + """ return pulumi.get(self, "autoscaler") @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> pulumi.Output[Sequence[str]]: + """ + An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + """ return pulumi.get(self, "availability_zones") @property @pulumi.getter(name="controllerClusterId") def controller_cluster_id(self) -> pulumi.Output[str]: + """ + Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string. + """ return pulumi.get(self, "controller_cluster_id") @property @pulumi.getter(name="enableNodePublicIp") def enable_node_public_ip(self) -> pulumi.Output[Optional[bool]]: + """ + Enable node public IP. + """ return pulumi.get(self, "enable_node_public_ip") @property @pulumi.getter(name="fallbackToOndemand") def fallback_to_ondemand(self) -> pulumi.Output[Optional[bool]]: + """ + If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead. + """ return pulumi.get(self, "fallback_to_ondemand") @property @pulumi.getter def filters(self) -> pulumi.Output[Optional['outputs.OceanNpFilters']]: + """ + Filters for the VM sizes that can be launched from the virtual node group. + """ return pulumi.get(self, "filters") @property @pulumi.getter def headrooms(self) -> pulumi.Output[Optional[Sequence['outputs.OceanNpHeadroom']]]: + """ + Specify the custom headroom per VNG. Provide a list of headroom objects. + """ return pulumi.get(self, "headrooms") @property @pulumi.getter def health(self) -> pulumi.Output[Optional['outputs.OceanNpHealth']]: + """ + The Ocean AKS Health object. + """ return pulumi.get(self, "health") @property @pulumi.getter(name="kubernetesVersion") def kubernetes_version(self) -> pulumi.Output[Optional[str]]: + """ + The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + """ return pulumi.get(self, "kubernetes_version") @property @pulumi.getter def labels(self) -> pulumi.Output[Optional[Mapping[str, Any]]]: + """ + An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + """ return pulumi.get(self, "labels") @property @pulumi.getter(name="maxCount") def max_count(self) -> pulumi.Output[Optional[int]]: + """ + Maximum node count limit. + """ return pulumi.get(self, "max_count") @property @pulumi.getter(name="maxPodsPerNode") def max_pods_per_node(self) -> pulumi.Output[Optional[int]]: + """ + The maximum number of pods per node in the node pools. + """ return pulumi.get(self, "max_pods_per_node") @property @pulumi.getter(name="minCount") def min_count(self) -> pulumi.Output[Optional[int]]: + """ + Minimum node count limit. + """ return pulumi.get(self, "min_count") @property @pulumi.getter def name(self) -> pulumi.Output[str]: + """ + Add a name for the Ocean cluster. + """ return pulumi.get(self, "name") @property @pulumi.getter(name="osDiskSizeGb") def os_disk_size_gb(self) -> pulumi.Output[Optional[int]]: + """ + The size of the OS disk in GB. + """ return pulumi.get(self, "os_disk_size_gb") @property @pulumi.getter(name="osDiskType") def os_disk_type(self) -> pulumi.Output[Optional[str]]: + """ + The type of the OS disk. + """ return pulumi.get(self, "os_disk_type") @property @pulumi.getter(name="osSku") def os_sku(self) -> pulumi.Output[Optional[str]]: + """ + The OS SKU of the OS type. Must correlate with the os type. + """ return pulumi.get(self, "os_sku") @property @pulumi.getter(name="osType") def os_type(self) -> pulumi.Output[Optional[str]]: + """ + The OS type of the OS disk. Can't be modified once set. + """ return pulumi.get(self, "os_type") @property @pulumi.getter(name="podSubnetIds") def pod_subnet_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "pod_subnet_ids") @property @pulumi.getter def scheduling(self) -> pulumi.Output[Optional['outputs.OceanNpScheduling']]: + """ + An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. + """ return pulumi.get(self, "scheduling") @property @pulumi.getter(name="spotPercentage") def spot_percentage(self) -> pulumi.Output[Optional[int]]: + """ + Percentage of spot VMs to maintain. + """ return pulumi.get(self, "spot_percentage") @property @@ -1076,6 +1415,9 @@ def tags(self) -> pulumi.Output[Optional[Mapping[str, Any]]]: @property @pulumi.getter def taints(self) -> pulumi.Output[Optional[Sequence['outputs.OceanNpTaint']]]: + """ + Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. + """ return pulumi.get(self, "taints") @property @@ -1086,5 +1428,8 @@ def update_policy(self) -> pulumi.Output[Optional['outputs.OceanNpUpdatePolicy'] @property @pulumi.getter(name="vnetSubnetIds") def vnet_subnet_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "vnet_subnet_ids") diff --git a/sdk/python/pulumi_spotinst/azure/ocean_np_virtual_node_group.py b/sdk/python/pulumi_spotinst/azure/ocean_np_virtual_node_group.py index 90ecf4f1..fc967d0d 100644 --- a/sdk/python/pulumi_spotinst/azure/ocean_np_virtual_node_group.py +++ b/sdk/python/pulumi_spotinst/azure/ocean_np_virtual_node_group.py @@ -40,6 +40,26 @@ def __init__(__self__, *, vnet_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ The set of arguments for constructing a OceanNpVirtualNodeGroup resource. + :param pulumi.Input[str] ocean_id: The Ocean cluster identifier. Required for Launch Spec creation. + :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + :param pulumi.Input[bool] enable_node_public_ip: Enable node public IP. + :param pulumi.Input[bool] fallback_to_ondemand: If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + :param pulumi.Input['OceanNpVirtualNodeGroupFiltersArgs'] filters: Filters for the VM sizes that can be launched from the virtual node group. + :param pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupHeadroomArgs']]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. + :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + :param pulumi.Input[int] max_count: Maximum node count limit. + :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. + :param pulumi.Input[int] min_count: Minimum node count limit. + :param pulumi.Input[str] name: Enter a name for the virtual node group. + :param pulumi.Input[int] os_disk_size_gb: The size of the OS disk in GB. + :param pulumi.Input[str] os_disk_type: The type of the OS disk. + :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. + :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. + :param pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupTaintArgs']]] taints: Add taints to a virtual node group. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). """ pulumi.set(__self__, "ocean_id", ocean_id) if availability_zones is not None: @@ -88,6 +108,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="oceanId") def ocean_id(self) -> pulumi.Input[str]: + """ + The Ocean cluster identifier. Required for Launch Spec creation. + """ return pulumi.get(self, "ocean_id") @ocean_id.setter @@ -97,6 +120,9 @@ def ocean_id(self, value: pulumi.Input[str]): @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + """ return pulumi.get(self, "availability_zones") @availability_zones.setter @@ -106,6 +132,9 @@ def availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ @property @pulumi.getter(name="enableNodePublicIp") def enable_node_public_ip(self) -> Optional[pulumi.Input[bool]]: + """ + Enable node public IP. + """ return pulumi.get(self, "enable_node_public_ip") @enable_node_public_ip.setter @@ -115,6 +144,9 @@ def enable_node_public_ip(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter(name="fallbackToOndemand") def fallback_to_ondemand(self) -> Optional[pulumi.Input[bool]]: + """ + If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + """ return pulumi.get(self, "fallback_to_ondemand") @fallback_to_ondemand.setter @@ -124,6 +156,9 @@ def fallback_to_ondemand(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter def filters(self) -> Optional[pulumi.Input['OceanNpVirtualNodeGroupFiltersArgs']]: + """ + Filters for the VM sizes that can be launched from the virtual node group. + """ return pulumi.get(self, "filters") @filters.setter @@ -133,6 +168,9 @@ def filters(self, value: Optional[pulumi.Input['OceanNpVirtualNodeGroupFiltersAr @property @pulumi.getter def headrooms(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupHeadroomArgs']]]]: + """ + Specify the custom headroom per VNG. Provide a list of headroom objects. + """ return pulumi.get(self, "headrooms") @headrooms.setter @@ -142,6 +180,9 @@ def headrooms(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpV @property @pulumi.getter(name="kubernetesVersion") def kubernetes_version(self) -> Optional[pulumi.Input[str]]: + """ + The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + """ return pulumi.get(self, "kubernetes_version") @kubernetes_version.setter @@ -151,6 +192,9 @@ def kubernetes_version(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + """ + An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + """ return pulumi.get(self, "labels") @labels.setter @@ -160,6 +204,9 @@ def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): @property @pulumi.getter(name="maxCount") def max_count(self) -> Optional[pulumi.Input[int]]: + """ + Maximum node count limit. + """ return pulumi.get(self, "max_count") @max_count.setter @@ -169,6 +216,9 @@ def max_count(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="maxPodsPerNode") def max_pods_per_node(self) -> Optional[pulumi.Input[int]]: + """ + The maximum number of pods per node in the node pools. + """ return pulumi.get(self, "max_pods_per_node") @max_pods_per_node.setter @@ -178,6 +228,9 @@ def max_pods_per_node(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="minCount") def min_count(self) -> Optional[pulumi.Input[int]]: + """ + Minimum node count limit. + """ return pulumi.get(self, "min_count") @min_count.setter @@ -187,6 +240,9 @@ def min_count(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: + """ + Enter a name for the virtual node group. + """ return pulumi.get(self, "name") @name.setter @@ -196,6 +252,9 @@ def name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osDiskSizeGb") def os_disk_size_gb(self) -> Optional[pulumi.Input[int]]: + """ + The size of the OS disk in GB. + """ return pulumi.get(self, "os_disk_size_gb") @os_disk_size_gb.setter @@ -205,6 +264,9 @@ def os_disk_size_gb(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="osDiskType") def os_disk_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of the OS disk. + """ return pulumi.get(self, "os_disk_type") @os_disk_type.setter @@ -214,6 +276,9 @@ def os_disk_type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osSku") def os_sku(self) -> Optional[pulumi.Input[str]]: + """ + The OS SKU of the OS type. Must correlate with the os type. + """ return pulumi.get(self, "os_sku") @os_sku.setter @@ -223,6 +288,9 @@ def os_sku(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osType") def os_type(self) -> Optional[pulumi.Input[str]]: + """ + The OS type of the OS disk. Can't be modified once set. + """ return pulumi.get(self, "os_type") @os_type.setter @@ -232,6 +300,9 @@ def os_type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="podSubnetIds") def pod_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "pod_subnet_ids") @pod_subnet_ids.setter @@ -241,6 +312,9 @@ def pod_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @property @pulumi.getter(name="spotPercentage") def spot_percentage(self) -> Optional[pulumi.Input[int]]: + """ + Percentage of spot VMs to maintain. + """ return pulumi.get(self, "spot_percentage") @spot_percentage.setter @@ -259,6 +333,9 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): @property @pulumi.getter def taints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupTaintArgs']]]]: + """ + Add taints to a virtual node group. + """ return pulumi.get(self, "taints") @taints.setter @@ -277,6 +354,9 @@ def update_policy(self, value: Optional[pulumi.Input['OceanNpVirtualNodeGroupUpd @property @pulumi.getter(name="vnetSubnetIds") def vnet_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "vnet_subnet_ids") @vnet_subnet_ids.setter @@ -311,6 +391,26 @@ def __init__(__self__, *, vnet_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ Input properties used for looking up and filtering OceanNpVirtualNodeGroup resources. + :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + :param pulumi.Input[bool] enable_node_public_ip: Enable node public IP. + :param pulumi.Input[bool] fallback_to_ondemand: If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + :param pulumi.Input['OceanNpVirtualNodeGroupFiltersArgs'] filters: Filters for the VM sizes that can be launched from the virtual node group. + :param pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupHeadroomArgs']]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. + :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + :param pulumi.Input[int] max_count: Maximum node count limit. + :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. + :param pulumi.Input[int] min_count: Minimum node count limit. + :param pulumi.Input[str] name: Enter a name for the virtual node group. + :param pulumi.Input[str] ocean_id: The Ocean cluster identifier. Required for Launch Spec creation. + :param pulumi.Input[int] os_disk_size_gb: The size of the OS disk in GB. + :param pulumi.Input[str] os_disk_type: The type of the OS disk. + :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. + :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. + :param pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupTaintArgs']]] taints: Add taints to a virtual node group. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). """ if availability_zones is not None: pulumi.set(__self__, "availability_zones", availability_zones) @@ -360,6 +460,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + """ return pulumi.get(self, "availability_zones") @availability_zones.setter @@ -369,6 +472,9 @@ def availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ @property @pulumi.getter(name="enableNodePublicIp") def enable_node_public_ip(self) -> Optional[pulumi.Input[bool]]: + """ + Enable node public IP. + """ return pulumi.get(self, "enable_node_public_ip") @enable_node_public_ip.setter @@ -378,6 +484,9 @@ def enable_node_public_ip(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter(name="fallbackToOndemand") def fallback_to_ondemand(self) -> Optional[pulumi.Input[bool]]: + """ + If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + """ return pulumi.get(self, "fallback_to_ondemand") @fallback_to_ondemand.setter @@ -387,6 +496,9 @@ def fallback_to_ondemand(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter def filters(self) -> Optional[pulumi.Input['OceanNpVirtualNodeGroupFiltersArgs']]: + """ + Filters for the VM sizes that can be launched from the virtual node group. + """ return pulumi.get(self, "filters") @filters.setter @@ -396,6 +508,9 @@ def filters(self, value: Optional[pulumi.Input['OceanNpVirtualNodeGroupFiltersAr @property @pulumi.getter def headrooms(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupHeadroomArgs']]]]: + """ + Specify the custom headroom per VNG. Provide a list of headroom objects. + """ return pulumi.get(self, "headrooms") @headrooms.setter @@ -405,6 +520,9 @@ def headrooms(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpV @property @pulumi.getter(name="kubernetesVersion") def kubernetes_version(self) -> Optional[pulumi.Input[str]]: + """ + The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + """ return pulumi.get(self, "kubernetes_version") @kubernetes_version.setter @@ -414,6 +532,9 @@ def kubernetes_version(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + """ + An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + """ return pulumi.get(self, "labels") @labels.setter @@ -423,6 +544,9 @@ def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): @property @pulumi.getter(name="maxCount") def max_count(self) -> Optional[pulumi.Input[int]]: + """ + Maximum node count limit. + """ return pulumi.get(self, "max_count") @max_count.setter @@ -432,6 +556,9 @@ def max_count(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="maxPodsPerNode") def max_pods_per_node(self) -> Optional[pulumi.Input[int]]: + """ + The maximum number of pods per node in the node pools. + """ return pulumi.get(self, "max_pods_per_node") @max_pods_per_node.setter @@ -441,6 +568,9 @@ def max_pods_per_node(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="minCount") def min_count(self) -> Optional[pulumi.Input[int]]: + """ + Minimum node count limit. + """ return pulumi.get(self, "min_count") @min_count.setter @@ -450,6 +580,9 @@ def min_count(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: + """ + Enter a name for the virtual node group. + """ return pulumi.get(self, "name") @name.setter @@ -459,6 +592,9 @@ def name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="oceanId") def ocean_id(self) -> Optional[pulumi.Input[str]]: + """ + The Ocean cluster identifier. Required for Launch Spec creation. + """ return pulumi.get(self, "ocean_id") @ocean_id.setter @@ -468,6 +604,9 @@ def ocean_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osDiskSizeGb") def os_disk_size_gb(self) -> Optional[pulumi.Input[int]]: + """ + The size of the OS disk in GB. + """ return pulumi.get(self, "os_disk_size_gb") @os_disk_size_gb.setter @@ -477,6 +616,9 @@ def os_disk_size_gb(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="osDiskType") def os_disk_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of the OS disk. + """ return pulumi.get(self, "os_disk_type") @os_disk_type.setter @@ -486,6 +628,9 @@ def os_disk_type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osSku") def os_sku(self) -> Optional[pulumi.Input[str]]: + """ + The OS SKU of the OS type. Must correlate with the os type. + """ return pulumi.get(self, "os_sku") @os_sku.setter @@ -495,6 +640,9 @@ def os_sku(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="osType") def os_type(self) -> Optional[pulumi.Input[str]]: + """ + The OS type of the OS disk. Can't be modified once set. + """ return pulumi.get(self, "os_type") @os_type.setter @@ -504,6 +652,9 @@ def os_type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="podSubnetIds") def pod_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "pod_subnet_ids") @pod_subnet_ids.setter @@ -513,6 +664,9 @@ def pod_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @property @pulumi.getter(name="spotPercentage") def spot_percentage(self) -> Optional[pulumi.Input[int]]: + """ + Percentage of spot VMs to maintain. + """ return pulumi.get(self, "spot_percentage") @spot_percentage.setter @@ -531,6 +685,9 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): @property @pulumi.getter def taints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupTaintArgs']]]]: + """ + Add taints to a virtual node group. + """ return pulumi.get(self, "taints") @taints.setter @@ -549,6 +706,9 @@ def update_policy(self, value: Optional[pulumi.Input['OceanNpVirtualNodeGroupUpd @property @pulumi.getter(name="vnetSubnetIds") def vnet_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "vnet_subnet_ids") @vnet_subnet_ids.setter @@ -585,9 +745,111 @@ def __init__(__self__, vnet_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): """ - Create a OceanNpVirtualNodeGroup resource with the given unique name, props, and options. + Manages a Spotinst Ocean AKS Virtual Node Groups resource. + + ## Example Usage + + ```python + import pulumi + import pulumi_spotinst as spotinst + + example = spotinst.azure.OceanNpVirtualNodeGroup("example", + name="testVng", + ocean_id="o-134abcd", + headrooms=[spotinst.azure.OceanNpVirtualNodeGroupHeadroomArgs( + cpu_per_unit=1024, + memory_per_unit=512, + gpu_per_unit=0, + num_of_units=2, + )], + availability_zones=[ + "1", + "2", + "3", + ], + labels={ + "key": "env", + "value": "test", + }, + min_count=1, + max_count=100, + max_pods_per_node=30, + enable_node_public_ip=True, + os_disk_size_gb=30, + os_disk_type="Managed", + os_type="Linux", + os_sku="Ubuntu", + kubernetes_version="1.26", + pod_subnet_ids=["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], + vnet_subnet_ids=["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], + spot_percentage=50, + fallback_to_ondemand=True, + taints=[spotinst.azure.OceanNpVirtualNodeGroupTaintArgs( + key="taintKey", + value="taintValue", + effect="NoSchedule", + )], + tags={ + "tagKey": "env", + "tagValue": "staging", + }, + filters=spotinst.azure.OceanNpVirtualNodeGroupFiltersArgs( + min_vcpu=2, + max_vcpu=16, + min_memory_gib=8, + max_memory_gib=128, + architectures=[ + "x86_64", + "arm64", + ], + series=[ + "D v3", + "Dds_v4", + "Dsv2", + ], + exclude_series=[ + "Av2", + "A", + "Bs", + "D", + "E", + ], + accelerated_networking="Enabled", + disk_performance="Premium", + min_gpu=1, + max_gpu=2, + min_nics=1, + vm_types=[ + "generalPurpose", + "GPU", + ], + min_disk=1, + gpu_types=["nvidia-tesla-t4"], + )) + ``` + :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + :param pulumi.Input[bool] enable_node_public_ip: Enable node public IP. + :param pulumi.Input[bool] fallback_to_ondemand: If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + :param pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupFiltersArgs']] filters: Filters for the VM sizes that can be launched from the virtual node group. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupHeadroomArgs']]]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. + :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + :param pulumi.Input[int] max_count: Maximum node count limit. + :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. + :param pulumi.Input[int] min_count: Minimum node count limit. + :param pulumi.Input[str] name: Enter a name for the virtual node group. + :param pulumi.Input[str] ocean_id: The Ocean cluster identifier. Required for Launch Spec creation. + :param pulumi.Input[int] os_disk_size_gb: The size of the OS disk in GB. + :param pulumi.Input[str] os_disk_type: The type of the OS disk. + :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. + :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupTaintArgs']]]] taints: Add taints to a virtual node group. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). """ ... @overload @@ -596,7 +858,89 @@ def __init__(__self__, args: OceanNpVirtualNodeGroupArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Create a OceanNpVirtualNodeGroup resource with the given unique name, props, and options. + Manages a Spotinst Ocean AKS Virtual Node Groups resource. + + ## Example Usage + + ```python + import pulumi + import pulumi_spotinst as spotinst + + example = spotinst.azure.OceanNpVirtualNodeGroup("example", + name="testVng", + ocean_id="o-134abcd", + headrooms=[spotinst.azure.OceanNpVirtualNodeGroupHeadroomArgs( + cpu_per_unit=1024, + memory_per_unit=512, + gpu_per_unit=0, + num_of_units=2, + )], + availability_zones=[ + "1", + "2", + "3", + ], + labels={ + "key": "env", + "value": "test", + }, + min_count=1, + max_count=100, + max_pods_per_node=30, + enable_node_public_ip=True, + os_disk_size_gb=30, + os_disk_type="Managed", + os_type="Linux", + os_sku="Ubuntu", + kubernetes_version="1.26", + pod_subnet_ids=["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], + vnet_subnet_ids=["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], + spot_percentage=50, + fallback_to_ondemand=True, + taints=[spotinst.azure.OceanNpVirtualNodeGroupTaintArgs( + key="taintKey", + value="taintValue", + effect="NoSchedule", + )], + tags={ + "tagKey": "env", + "tagValue": "staging", + }, + filters=spotinst.azure.OceanNpVirtualNodeGroupFiltersArgs( + min_vcpu=2, + max_vcpu=16, + min_memory_gib=8, + max_memory_gib=128, + architectures=[ + "x86_64", + "arm64", + ], + series=[ + "D v3", + "Dds_v4", + "Dsv2", + ], + exclude_series=[ + "Av2", + "A", + "Bs", + "D", + "E", + ], + accelerated_networking="Enabled", + disk_performance="Premium", + min_gpu=1, + max_gpu=2, + min_nics=1, + vm_types=[ + "generalPurpose", + "GPU", + ], + min_disk=1, + gpu_types=["nvidia-tesla-t4"], + )) + ``` + :param str resource_name: The name of the resource. :param OceanNpVirtualNodeGroupArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. @@ -706,6 +1050,26 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + :param pulumi.Input[bool] enable_node_public_ip: Enable node public IP. + :param pulumi.Input[bool] fallback_to_ondemand: If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + :param pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupFiltersArgs']] filters: Filters for the VM sizes that can be launched from the virtual node group. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupHeadroomArgs']]]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. + :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + :param pulumi.Input[int] max_count: Maximum node count limit. + :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. + :param pulumi.Input[int] min_count: Minimum node count limit. + :param pulumi.Input[str] name: Enter a name for the virtual node group. + :param pulumi.Input[str] ocean_id: The Ocean cluster identifier. Required for Launch Spec creation. + :param pulumi.Input[int] os_disk_size_gb: The size of the OS disk in GB. + :param pulumi.Input[str] os_disk_type: The type of the OS disk. + :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. + :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. + :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupTaintArgs']]]] taints: Add taints to a virtual node group. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -738,91 +1102,145 @@ def get(resource_name: str, @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG. + """ return pulumi.get(self, "availability_zones") @property @pulumi.getter(name="enableNodePublicIp") def enable_node_public_ip(self) -> pulumi.Output[Optional[bool]]: + """ + Enable node public IP. + """ return pulumi.get(self, "enable_node_public_ip") @property @pulumi.getter(name="fallbackToOndemand") def fallback_to_ondemand(self) -> pulumi.Output[Optional[bool]]: + """ + If no spot instance markets are available, enable Ocean to launch on-demand instances instead. + """ return pulumi.get(self, "fallback_to_ondemand") @property @pulumi.getter def filters(self) -> pulumi.Output[Optional['outputs.OceanNpVirtualNodeGroupFilters']]: + """ + Filters for the VM sizes that can be launched from the virtual node group. + """ return pulumi.get(self, "filters") @property @pulumi.getter def headrooms(self) -> pulumi.Output[Optional[Sequence['outputs.OceanNpVirtualNodeGroupHeadroom']]]: + """ + Specify the custom headroom per VNG. Provide a list of headroom objects. + """ return pulumi.get(self, "headrooms") @property @pulumi.getter(name="kubernetesVersion") def kubernetes_version(self) -> pulumi.Output[Optional[str]]: + """ + The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. + """ return pulumi.get(self, "kubernetes_version") @property @pulumi.getter def labels(self) -> pulumi.Output[Optional[Mapping[str, Any]]]: + """ + An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + """ return pulumi.get(self, "labels") @property @pulumi.getter(name="maxCount") def max_count(self) -> pulumi.Output[Optional[int]]: + """ + Maximum node count limit. + """ return pulumi.get(self, "max_count") @property @pulumi.getter(name="maxPodsPerNode") def max_pods_per_node(self) -> pulumi.Output[Optional[int]]: + """ + The maximum number of pods per node in the node pools. + """ return pulumi.get(self, "max_pods_per_node") @property @pulumi.getter(name="minCount") def min_count(self) -> pulumi.Output[Optional[int]]: + """ + Minimum node count limit. + """ return pulumi.get(self, "min_count") @property @pulumi.getter def name(self) -> pulumi.Output[str]: + """ + Enter a name for the virtual node group. + """ return pulumi.get(self, "name") @property @pulumi.getter(name="oceanId") def ocean_id(self) -> pulumi.Output[str]: + """ + The Ocean cluster identifier. Required for Launch Spec creation. + """ return pulumi.get(self, "ocean_id") @property @pulumi.getter(name="osDiskSizeGb") def os_disk_size_gb(self) -> pulumi.Output[Optional[int]]: + """ + The size of the OS disk in GB. + """ return pulumi.get(self, "os_disk_size_gb") @property @pulumi.getter(name="osDiskType") def os_disk_type(self) -> pulumi.Output[Optional[str]]: + """ + The type of the OS disk. + """ return pulumi.get(self, "os_disk_type") @property @pulumi.getter(name="osSku") def os_sku(self) -> pulumi.Output[Optional[str]]: + """ + The OS SKU of the OS type. Must correlate with the os type. + """ return pulumi.get(self, "os_sku") @property @pulumi.getter(name="osType") def os_type(self) -> pulumi.Output[Optional[str]]: + """ + The OS type of the OS disk. Can't be modified once set. + """ return pulumi.get(self, "os_type") @property @pulumi.getter(name="podSubnetIds") def pod_subnet_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "pod_subnet_ids") @property @pulumi.getter(name="spotPercentage") def spot_percentage(self) -> pulumi.Output[Optional[int]]: + """ + Percentage of spot VMs to maintain. + """ return pulumi.get(self, "spot_percentage") @property @@ -833,6 +1251,9 @@ def tags(self) -> pulumi.Output[Optional[Mapping[str, Any]]]: @property @pulumi.getter def taints(self) -> pulumi.Output[Optional[Sequence['outputs.OceanNpVirtualNodeGroupTaint']]]: + """ + Add taints to a virtual node group. + """ return pulumi.get(self, "taints") @property @@ -843,5 +1264,8 @@ def update_policy(self) -> pulumi.Output[Optional['outputs.OceanNpVirtualNodeGro @property @pulumi.getter(name="vnetSubnetIds") def vnet_subnet_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). + """ return pulumi.get(self, "vnet_subnet_ids") diff --git a/sdk/python/pulumi_spotinst/azure/outputs.py b/sdk/python/pulumi_spotinst/azure/outputs.py index dbc1ec2f..a7336e04 100644 --- a/sdk/python/pulumi_spotinst/azure/outputs.py +++ b/sdk/python/pulumi_spotinst/azure/outputs.py @@ -11,25 +11,6 @@ from . import outputs __all__ = [ - 'ElastigroupHealthCheck', - 'ElastigroupImage', - 'ElastigroupImageCustom', - 'ElastigroupImageMarketplace', - 'ElastigroupIntegrationKubernetes', - 'ElastigroupIntegrationMultaiRuntime', - 'ElastigroupLoadBalancer', - 'ElastigroupLogin', - 'ElastigroupManagedServiceIdentity', - 'ElastigroupNetwork', - 'ElastigroupNetworkAdditionalIpConfig', - 'ElastigroupScalingDownPolicy', - 'ElastigroupScalingDownPolicyDimension', - 'ElastigroupScalingUpPolicy', - 'ElastigroupScalingUpPolicyDimension', - 'ElastigroupScheduledTask', - 'ElastigroupStrategy', - 'ElastigroupUpdatePolicy', - 'ElastigroupUpdatePolicyRollConfig', 'OceanAutoscaler', 'OceanAutoscalerAutoscaleDown', 'OceanAutoscalerAutoscaleHeadroom', @@ -77,1120 +58,6 @@ 'OceanVmSize', ] -@pulumi.output_type -class ElastigroupHealthCheck(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "healthCheckType": - suggest = "health_check_type" - elif key == "autoHealing": - suggest = "auto_healing" - elif key == "gracePeriod": - suggest = "grace_period" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupHealthCheck. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupHealthCheck.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupHealthCheck.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - health_check_type: str, - auto_healing: Optional[bool] = None, - grace_period: Optional[int] = None): - pulumi.set(__self__, "health_check_type", health_check_type) - if auto_healing is not None: - pulumi.set(__self__, "auto_healing", auto_healing) - if grace_period is not None: - pulumi.set(__self__, "grace_period", grace_period) - - @property - @pulumi.getter(name="healthCheckType") - def health_check_type(self) -> str: - return pulumi.get(self, "health_check_type") - - @property - @pulumi.getter(name="autoHealing") - def auto_healing(self) -> Optional[bool]: - return pulumi.get(self, "auto_healing") - - @property - @pulumi.getter(name="gracePeriod") - def grace_period(self) -> Optional[int]: - return pulumi.get(self, "grace_period") - - -@pulumi.output_type -class ElastigroupImage(dict): - def __init__(__self__, *, - customs: Optional[Sequence['outputs.ElastigroupImageCustom']] = None, - marketplaces: Optional[Sequence['outputs.ElastigroupImageMarketplace']] = None): - if customs is not None: - pulumi.set(__self__, "customs", customs) - if marketplaces is not None: - pulumi.set(__self__, "marketplaces", marketplaces) - - @property - @pulumi.getter - def customs(self) -> Optional[Sequence['outputs.ElastigroupImageCustom']]: - return pulumi.get(self, "customs") - - @property - @pulumi.getter - def marketplaces(self) -> Optional[Sequence['outputs.ElastigroupImageMarketplace']]: - return pulumi.get(self, "marketplaces") - - -@pulumi.output_type -class ElastigroupImageCustom(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "imageName": - suggest = "image_name" - elif key == "resourceGroupName": - suggest = "resource_group_name" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupImageCustom. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupImageCustom.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupImageCustom.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - image_name: str, - resource_group_name: str): - """ - :param str resource_group_name: Name of the Resource Group for Elastigroup. - """ - pulumi.set(__self__, "image_name", image_name) - pulumi.set(__self__, "resource_group_name", resource_group_name) - - @property - @pulumi.getter(name="imageName") - def image_name(self) -> str: - return pulumi.get(self, "image_name") - - @property - @pulumi.getter(name="resourceGroupName") - def resource_group_name(self) -> str: - """ - Name of the Resource Group for Elastigroup. - """ - return pulumi.get(self, "resource_group_name") - - -@pulumi.output_type -class ElastigroupImageMarketplace(dict): - def __init__(__self__, *, - offer: str, - publisher: str, - sku: str): - pulumi.set(__self__, "offer", offer) - pulumi.set(__self__, "publisher", publisher) - pulumi.set(__self__, "sku", sku) - - @property - @pulumi.getter - def offer(self) -> str: - return pulumi.get(self, "offer") - - @property - @pulumi.getter - def publisher(self) -> str: - return pulumi.get(self, "publisher") - - @property - @pulumi.getter - def sku(self) -> str: - return pulumi.get(self, "sku") - - -@pulumi.output_type -class ElastigroupIntegrationKubernetes(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "clusterIdentifier": - suggest = "cluster_identifier" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupIntegrationKubernetes. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupIntegrationKubernetes.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupIntegrationKubernetes.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - cluster_identifier: str): - pulumi.set(__self__, "cluster_identifier", cluster_identifier) - - @property - @pulumi.getter(name="clusterIdentifier") - def cluster_identifier(self) -> str: - return pulumi.get(self, "cluster_identifier") - - -@pulumi.output_type -class ElastigroupIntegrationMultaiRuntime(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "deploymentId": - suggest = "deployment_id" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupIntegrationMultaiRuntime. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupIntegrationMultaiRuntime.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupIntegrationMultaiRuntime.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - deployment_id: str): - pulumi.set(__self__, "deployment_id", deployment_id) - - @property - @pulumi.getter(name="deploymentId") - def deployment_id(self) -> str: - return pulumi.get(self, "deployment_id") - - -@pulumi.output_type -class ElastigroupLoadBalancer(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "autoWeight": - suggest = "auto_weight" - elif key == "balancerId": - suggest = "balancer_id" - elif key == "targetSetId": - suggest = "target_set_id" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupLoadBalancer. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupLoadBalancer.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupLoadBalancer.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - type: str, - auto_weight: Optional[bool] = None, - balancer_id: Optional[str] = None, - target_set_id: Optional[str] = None): - pulumi.set(__self__, "type", type) - if auto_weight is not None: - pulumi.set(__self__, "auto_weight", auto_weight) - if balancer_id is not None: - pulumi.set(__self__, "balancer_id", balancer_id) - if target_set_id is not None: - pulumi.set(__self__, "target_set_id", target_set_id) - - @property - @pulumi.getter - def type(self) -> str: - return pulumi.get(self, "type") - - @property - @pulumi.getter(name="autoWeight") - def auto_weight(self) -> Optional[bool]: - return pulumi.get(self, "auto_weight") - - @property - @pulumi.getter(name="balancerId") - def balancer_id(self) -> Optional[str]: - return pulumi.get(self, "balancer_id") - - @property - @pulumi.getter(name="targetSetId") - def target_set_id(self) -> Optional[str]: - return pulumi.get(self, "target_set_id") - - -@pulumi.output_type -class ElastigroupLogin(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "userName": - suggest = "user_name" - elif key == "sshPublicKey": - suggest = "ssh_public_key" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupLogin. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupLogin.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupLogin.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - user_name: str, - password: Optional[str] = None, - ssh_public_key: Optional[str] = None): - pulumi.set(__self__, "user_name", user_name) - if password is not None: - pulumi.set(__self__, "password", password) - if ssh_public_key is not None: - pulumi.set(__self__, "ssh_public_key", ssh_public_key) - - @property - @pulumi.getter(name="userName") - def user_name(self) -> str: - return pulumi.get(self, "user_name") - - @property - @pulumi.getter - def password(self) -> Optional[str]: - return pulumi.get(self, "password") - - @property - @pulumi.getter(name="sshPublicKey") - def ssh_public_key(self) -> Optional[str]: - return pulumi.get(self, "ssh_public_key") - - -@pulumi.output_type -class ElastigroupManagedServiceIdentity(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "resourceGroupName": - suggest = "resource_group_name" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupManagedServiceIdentity. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupManagedServiceIdentity.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupManagedServiceIdentity.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - name: str, - resource_group_name: str): - """ - :param str name: The group name. - :param str resource_group_name: Name of the Resource Group for Elastigroup. - """ - pulumi.set(__self__, "name", name) - pulumi.set(__self__, "resource_group_name", resource_group_name) - - @property - @pulumi.getter - def name(self) -> str: - """ - The group name. - """ - return pulumi.get(self, "name") - - @property - @pulumi.getter(name="resourceGroupName") - def resource_group_name(self) -> str: - """ - Name of the Resource Group for Elastigroup. - """ - return pulumi.get(self, "resource_group_name") - - -@pulumi.output_type -class ElastigroupNetwork(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "resourceGroupName": - suggest = "resource_group_name" - elif key == "subnetName": - suggest = "subnet_name" - elif key == "virtualNetworkName": - suggest = "virtual_network_name" - elif key == "additionalIpConfigs": - suggest = "additional_ip_configs" - elif key == "assignPublicIp": - suggest = "assign_public_ip" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupNetwork. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupNetwork.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupNetwork.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - resource_group_name: str, - subnet_name: str, - virtual_network_name: str, - additional_ip_configs: Optional[Sequence['outputs.ElastigroupNetworkAdditionalIpConfig']] = None, - assign_public_ip: Optional[bool] = None): - """ - :param str resource_group_name: Name of the Resource Group for Elastigroup. - """ - pulumi.set(__self__, "resource_group_name", resource_group_name) - pulumi.set(__self__, "subnet_name", subnet_name) - pulumi.set(__self__, "virtual_network_name", virtual_network_name) - if additional_ip_configs is not None: - pulumi.set(__self__, "additional_ip_configs", additional_ip_configs) - if assign_public_ip is not None: - pulumi.set(__self__, "assign_public_ip", assign_public_ip) - - @property - @pulumi.getter(name="resourceGroupName") - def resource_group_name(self) -> str: - """ - Name of the Resource Group for Elastigroup. - """ - return pulumi.get(self, "resource_group_name") - - @property - @pulumi.getter(name="subnetName") - def subnet_name(self) -> str: - return pulumi.get(self, "subnet_name") - - @property - @pulumi.getter(name="virtualNetworkName") - def virtual_network_name(self) -> str: - return pulumi.get(self, "virtual_network_name") - - @property - @pulumi.getter(name="additionalIpConfigs") - def additional_ip_configs(self) -> Optional[Sequence['outputs.ElastigroupNetworkAdditionalIpConfig']]: - return pulumi.get(self, "additional_ip_configs") - - @property - @pulumi.getter(name="assignPublicIp") - def assign_public_ip(self) -> Optional[bool]: - return pulumi.get(self, "assign_public_ip") - - -@pulumi.output_type -class ElastigroupNetworkAdditionalIpConfig(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "privateIpVersion": - suggest = "private_ip_version" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupNetworkAdditionalIpConfig. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupNetworkAdditionalIpConfig.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupNetworkAdditionalIpConfig.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - name: str, - private_ip_version: Optional[str] = None): - """ - :param str name: The group name. - """ - pulumi.set(__self__, "name", name) - if private_ip_version is not None: - pulumi.set(__self__, "private_ip_version", private_ip_version) - - @property - @pulumi.getter - def name(self) -> str: - """ - The group name. - """ - return pulumi.get(self, "name") - - @property - @pulumi.getter(name="privateIpVersion") - def private_ip_version(self) -> Optional[str]: - return pulumi.get(self, "private_ip_version") - - -@pulumi.output_type -class ElastigroupScalingDownPolicy(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "metricName": - suggest = "metric_name" - elif key == "policyName": - suggest = "policy_name" - elif key == "actionType": - suggest = "action_type" - elif key == "evaluationPeriods": - suggest = "evaluation_periods" - elif key == "maxTargetCapacity": - suggest = "max_target_capacity" - elif key == "minTargetCapacity": - suggest = "min_target_capacity" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupScalingDownPolicy. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupScalingDownPolicy.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupScalingDownPolicy.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - metric_name: str, - namespace: str, - policy_name: str, - threshold: float, - action_type: Optional[str] = None, - adjustment: Optional[str] = None, - cooldown: Optional[int] = None, - dimensions: Optional[Sequence['outputs.ElastigroupScalingDownPolicyDimension']] = None, - evaluation_periods: Optional[int] = None, - max_target_capacity: Optional[str] = None, - maximum: Optional[str] = None, - min_target_capacity: Optional[str] = None, - minimum: Optional[str] = None, - operator: Optional[str] = None, - period: Optional[int] = None, - statistic: Optional[str] = None, - target: Optional[str] = None, - unit: Optional[str] = None): - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "policy_name", policy_name) - pulumi.set(__self__, "threshold", threshold) - if action_type is not None: - pulumi.set(__self__, "action_type", action_type) - if adjustment is not None: - pulumi.set(__self__, "adjustment", adjustment) - if cooldown is not None: - pulumi.set(__self__, "cooldown", cooldown) - if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) - if evaluation_periods is not None: - pulumi.set(__self__, "evaluation_periods", evaluation_periods) - if max_target_capacity is not None: - pulumi.set(__self__, "max_target_capacity", max_target_capacity) - if maximum is not None: - pulumi.set(__self__, "maximum", maximum) - if min_target_capacity is not None: - pulumi.set(__self__, "min_target_capacity", min_target_capacity) - if minimum is not None: - pulumi.set(__self__, "minimum", minimum) - if operator is not None: - pulumi.set(__self__, "operator", operator) - if period is not None: - pulumi.set(__self__, "period", period) - if statistic is not None: - pulumi.set(__self__, "statistic", statistic) - if target is not None: - pulumi.set(__self__, "target", target) - if unit is not None: - pulumi.set(__self__, "unit", unit) - - @property - @pulumi.getter(name="metricName") - def metric_name(self) -> str: - return pulumi.get(self, "metric_name") - - @property - @pulumi.getter - def namespace(self) -> str: - return pulumi.get(self, "namespace") - - @property - @pulumi.getter(name="policyName") - def policy_name(self) -> str: - return pulumi.get(self, "policy_name") - - @property - @pulumi.getter - def threshold(self) -> float: - return pulumi.get(self, "threshold") - - @property - @pulumi.getter(name="actionType") - def action_type(self) -> Optional[str]: - return pulumi.get(self, "action_type") - - @property - @pulumi.getter - def adjustment(self) -> Optional[str]: - return pulumi.get(self, "adjustment") - - @property - @pulumi.getter - def cooldown(self) -> Optional[int]: - return pulumi.get(self, "cooldown") - - @property - @pulumi.getter - def dimensions(self) -> Optional[Sequence['outputs.ElastigroupScalingDownPolicyDimension']]: - return pulumi.get(self, "dimensions") - - @property - @pulumi.getter(name="evaluationPeriods") - def evaluation_periods(self) -> Optional[int]: - return pulumi.get(self, "evaluation_periods") - - @property - @pulumi.getter(name="maxTargetCapacity") - def max_target_capacity(self) -> Optional[str]: - return pulumi.get(self, "max_target_capacity") - - @property - @pulumi.getter - def maximum(self) -> Optional[str]: - return pulumi.get(self, "maximum") - - @property - @pulumi.getter(name="minTargetCapacity") - def min_target_capacity(self) -> Optional[str]: - return pulumi.get(self, "min_target_capacity") - - @property - @pulumi.getter - def minimum(self) -> Optional[str]: - return pulumi.get(self, "minimum") - - @property - @pulumi.getter - def operator(self) -> Optional[str]: - return pulumi.get(self, "operator") - - @property - @pulumi.getter - def period(self) -> Optional[int]: - return pulumi.get(self, "period") - - @property - @pulumi.getter - def statistic(self) -> Optional[str]: - return pulumi.get(self, "statistic") - - @property - @pulumi.getter - def target(self) -> Optional[str]: - return pulumi.get(self, "target") - - @property - @pulumi.getter - def unit(self) -> Optional[str]: - return pulumi.get(self, "unit") - - -@pulumi.output_type -class ElastigroupScalingDownPolicyDimension(dict): - def __init__(__self__, *, - name: str, - value: Optional[str] = None): - """ - :param str name: The group name. - """ - pulumi.set(__self__, "name", name) - if value is not None: - pulumi.set(__self__, "value", value) - - @property - @pulumi.getter - def name(self) -> str: - """ - The group name. - """ - return pulumi.get(self, "name") - - @property - @pulumi.getter - def value(self) -> Optional[str]: - return pulumi.get(self, "value") - - -@pulumi.output_type -class ElastigroupScalingUpPolicy(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "metricName": - suggest = "metric_name" - elif key == "policyName": - suggest = "policy_name" - elif key == "actionType": - suggest = "action_type" - elif key == "evaluationPeriods": - suggest = "evaluation_periods" - elif key == "maxTargetCapacity": - suggest = "max_target_capacity" - elif key == "minTargetCapacity": - suggest = "min_target_capacity" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupScalingUpPolicy. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupScalingUpPolicy.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupScalingUpPolicy.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - metric_name: str, - namespace: str, - policy_name: str, - threshold: float, - action_type: Optional[str] = None, - adjustment: Optional[str] = None, - cooldown: Optional[int] = None, - dimensions: Optional[Sequence['outputs.ElastigroupScalingUpPolicyDimension']] = None, - evaluation_periods: Optional[int] = None, - max_target_capacity: Optional[str] = None, - maximum: Optional[str] = None, - min_target_capacity: Optional[str] = None, - minimum: Optional[str] = None, - operator: Optional[str] = None, - period: Optional[int] = None, - statistic: Optional[str] = None, - target: Optional[str] = None, - unit: Optional[str] = None): - pulumi.set(__self__, "metric_name", metric_name) - pulumi.set(__self__, "namespace", namespace) - pulumi.set(__self__, "policy_name", policy_name) - pulumi.set(__self__, "threshold", threshold) - if action_type is not None: - pulumi.set(__self__, "action_type", action_type) - if adjustment is not None: - pulumi.set(__self__, "adjustment", adjustment) - if cooldown is not None: - pulumi.set(__self__, "cooldown", cooldown) - if dimensions is not None: - pulumi.set(__self__, "dimensions", dimensions) - if evaluation_periods is not None: - pulumi.set(__self__, "evaluation_periods", evaluation_periods) - if max_target_capacity is not None: - pulumi.set(__self__, "max_target_capacity", max_target_capacity) - if maximum is not None: - pulumi.set(__self__, "maximum", maximum) - if min_target_capacity is not None: - pulumi.set(__self__, "min_target_capacity", min_target_capacity) - if minimum is not None: - pulumi.set(__self__, "minimum", minimum) - if operator is not None: - pulumi.set(__self__, "operator", operator) - if period is not None: - pulumi.set(__self__, "period", period) - if statistic is not None: - pulumi.set(__self__, "statistic", statistic) - if target is not None: - pulumi.set(__self__, "target", target) - if unit is not None: - pulumi.set(__self__, "unit", unit) - - @property - @pulumi.getter(name="metricName") - def metric_name(self) -> str: - return pulumi.get(self, "metric_name") - - @property - @pulumi.getter - def namespace(self) -> str: - return pulumi.get(self, "namespace") - - @property - @pulumi.getter(name="policyName") - def policy_name(self) -> str: - return pulumi.get(self, "policy_name") - - @property - @pulumi.getter - def threshold(self) -> float: - return pulumi.get(self, "threshold") - - @property - @pulumi.getter(name="actionType") - def action_type(self) -> Optional[str]: - return pulumi.get(self, "action_type") - - @property - @pulumi.getter - def adjustment(self) -> Optional[str]: - return pulumi.get(self, "adjustment") - - @property - @pulumi.getter - def cooldown(self) -> Optional[int]: - return pulumi.get(self, "cooldown") - - @property - @pulumi.getter - def dimensions(self) -> Optional[Sequence['outputs.ElastigroupScalingUpPolicyDimension']]: - return pulumi.get(self, "dimensions") - - @property - @pulumi.getter(name="evaluationPeriods") - def evaluation_periods(self) -> Optional[int]: - return pulumi.get(self, "evaluation_periods") - - @property - @pulumi.getter(name="maxTargetCapacity") - def max_target_capacity(self) -> Optional[str]: - return pulumi.get(self, "max_target_capacity") - - @property - @pulumi.getter - def maximum(self) -> Optional[str]: - return pulumi.get(self, "maximum") - - @property - @pulumi.getter(name="minTargetCapacity") - def min_target_capacity(self) -> Optional[str]: - return pulumi.get(self, "min_target_capacity") - - @property - @pulumi.getter - def minimum(self) -> Optional[str]: - return pulumi.get(self, "minimum") - - @property - @pulumi.getter - def operator(self) -> Optional[str]: - return pulumi.get(self, "operator") - - @property - @pulumi.getter - def period(self) -> Optional[int]: - return pulumi.get(self, "period") - - @property - @pulumi.getter - def statistic(self) -> Optional[str]: - return pulumi.get(self, "statistic") - - @property - @pulumi.getter - def target(self) -> Optional[str]: - return pulumi.get(self, "target") - - @property - @pulumi.getter - def unit(self) -> Optional[str]: - return pulumi.get(self, "unit") - - -@pulumi.output_type -class ElastigroupScalingUpPolicyDimension(dict): - def __init__(__self__, *, - name: str, - value: Optional[str] = None): - """ - :param str name: The group name. - """ - pulumi.set(__self__, "name", name) - if value is not None: - pulumi.set(__self__, "value", value) - - @property - @pulumi.getter - def name(self) -> str: - """ - The group name. - """ - return pulumi.get(self, "name") - - @property - @pulumi.getter - def value(self) -> Optional[str]: - return pulumi.get(self, "value") - - -@pulumi.output_type -class ElastigroupScheduledTask(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "cronExpression": - suggest = "cron_expression" - elif key == "taskType": - suggest = "task_type" - elif key == "adjustmentPercentage": - suggest = "adjustment_percentage" - elif key == "batchSizePercentage": - suggest = "batch_size_percentage" - elif key == "gracePeriod": - suggest = "grace_period" - elif key == "isEnabled": - suggest = "is_enabled" - elif key == "scaleMaxCapacity": - suggest = "scale_max_capacity" - elif key == "scaleMinCapacity": - suggest = "scale_min_capacity" - elif key == "scaleTargetCapacity": - suggest = "scale_target_capacity" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupScheduledTask. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupScheduledTask.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupScheduledTask.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - cron_expression: str, - task_type: str, - adjustment: Optional[str] = None, - adjustment_percentage: Optional[str] = None, - batch_size_percentage: Optional[str] = None, - grace_period: Optional[str] = None, - is_enabled: Optional[bool] = None, - scale_max_capacity: Optional[str] = None, - scale_min_capacity: Optional[str] = None, - scale_target_capacity: Optional[str] = None): - pulumi.set(__self__, "cron_expression", cron_expression) - pulumi.set(__self__, "task_type", task_type) - if adjustment is not None: - pulumi.set(__self__, "adjustment", adjustment) - if adjustment_percentage is not None: - pulumi.set(__self__, "adjustment_percentage", adjustment_percentage) - if batch_size_percentage is not None: - pulumi.set(__self__, "batch_size_percentage", batch_size_percentage) - if grace_period is not None: - pulumi.set(__self__, "grace_period", grace_period) - if is_enabled is not None: - pulumi.set(__self__, "is_enabled", is_enabled) - if scale_max_capacity is not None: - pulumi.set(__self__, "scale_max_capacity", scale_max_capacity) - if scale_min_capacity is not None: - pulumi.set(__self__, "scale_min_capacity", scale_min_capacity) - if scale_target_capacity is not None: - pulumi.set(__self__, "scale_target_capacity", scale_target_capacity) - - @property - @pulumi.getter(name="cronExpression") - def cron_expression(self) -> str: - return pulumi.get(self, "cron_expression") - - @property - @pulumi.getter(name="taskType") - def task_type(self) -> str: - return pulumi.get(self, "task_type") - - @property - @pulumi.getter - def adjustment(self) -> Optional[str]: - return pulumi.get(self, "adjustment") - - @property - @pulumi.getter(name="adjustmentPercentage") - def adjustment_percentage(self) -> Optional[str]: - return pulumi.get(self, "adjustment_percentage") - - @property - @pulumi.getter(name="batchSizePercentage") - def batch_size_percentage(self) -> Optional[str]: - return pulumi.get(self, "batch_size_percentage") - - @property - @pulumi.getter(name="gracePeriod") - def grace_period(self) -> Optional[str]: - return pulumi.get(self, "grace_period") - - @property - @pulumi.getter(name="isEnabled") - def is_enabled(self) -> Optional[bool]: - return pulumi.get(self, "is_enabled") - - @property - @pulumi.getter(name="scaleMaxCapacity") - def scale_max_capacity(self) -> Optional[str]: - return pulumi.get(self, "scale_max_capacity") - - @property - @pulumi.getter(name="scaleMinCapacity") - def scale_min_capacity(self) -> Optional[str]: - return pulumi.get(self, "scale_min_capacity") - - @property - @pulumi.getter(name="scaleTargetCapacity") - def scale_target_capacity(self) -> Optional[str]: - return pulumi.get(self, "scale_target_capacity") - - -@pulumi.output_type -class ElastigroupStrategy(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "drainingTimeout": - suggest = "draining_timeout" - elif key == "lowPriorityPercentage": - suggest = "low_priority_percentage" - elif key == "odCount": - suggest = "od_count" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupStrategy. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupStrategy.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupStrategy.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - draining_timeout: Optional[int] = None, - low_priority_percentage: Optional[int] = None, - od_count: Optional[int] = None): - if draining_timeout is not None: - pulumi.set(__self__, "draining_timeout", draining_timeout) - if low_priority_percentage is not None: - pulumi.set(__self__, "low_priority_percentage", low_priority_percentage) - if od_count is not None: - pulumi.set(__self__, "od_count", od_count) - - @property - @pulumi.getter(name="drainingTimeout") - def draining_timeout(self) -> Optional[int]: - return pulumi.get(self, "draining_timeout") - - @property - @pulumi.getter(name="lowPriorityPercentage") - def low_priority_percentage(self) -> Optional[int]: - return pulumi.get(self, "low_priority_percentage") - - @property - @pulumi.getter(name="odCount") - def od_count(self) -> Optional[int]: - return pulumi.get(self, "od_count") - - -@pulumi.output_type -class ElastigroupUpdatePolicy(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "shouldRoll": - suggest = "should_roll" - elif key == "rollConfig": - suggest = "roll_config" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupUpdatePolicy. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupUpdatePolicy.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupUpdatePolicy.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - should_roll: bool, - roll_config: Optional['outputs.ElastigroupUpdatePolicyRollConfig'] = None): - pulumi.set(__self__, "should_roll", should_roll) - if roll_config is not None: - pulumi.set(__self__, "roll_config", roll_config) - - @property - @pulumi.getter(name="shouldRoll") - def should_roll(self) -> bool: - return pulumi.get(self, "should_roll") - - @property - @pulumi.getter(name="rollConfig") - def roll_config(self) -> Optional['outputs.ElastigroupUpdatePolicyRollConfig']: - return pulumi.get(self, "roll_config") - - -@pulumi.output_type -class ElastigroupUpdatePolicyRollConfig(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "batchSizePercentage": - suggest = "batch_size_percentage" - elif key == "gracePeriod": - suggest = "grace_period" - elif key == "healthCheckType": - suggest = "health_check_type" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in ElastigroupUpdatePolicyRollConfig. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - ElastigroupUpdatePolicyRollConfig.__key_warning(key) - return super().__getitem__(key) - - def get(self, key: str, default = None) -> Any: - ElastigroupUpdatePolicyRollConfig.__key_warning(key) - return super().get(key, default) - - def __init__(__self__, *, - batch_size_percentage: int, - grace_period: Optional[int] = None, - health_check_type: Optional[str] = None): - pulumi.set(__self__, "batch_size_percentage", batch_size_percentage) - if grace_period is not None: - pulumi.set(__self__, "grace_period", grace_period) - if health_check_type is not None: - pulumi.set(__self__, "health_check_type", health_check_type) - - @property - @pulumi.getter(name="batchSizePercentage") - def batch_size_percentage(self) -> int: - return pulumi.get(self, "batch_size_percentage") - - @property - @pulumi.getter(name="gracePeriod") - def grace_period(self) -> Optional[int]: - return pulumi.get(self, "grace_period") - - @property - @pulumi.getter(name="healthCheckType") - def health_check_type(self) -> Optional[str]: - return pulumi.get(self, "health_check_type") - - @pulumi.output_type class OceanAutoscaler(dict): @staticmethod @@ -1954,6 +821,12 @@ def __init__(__self__, *, autoscale_headroom: Optional['outputs.OceanNpAutoscalerAutoscaleHeadroom'] = None, autoscale_is_enabled: Optional[bool] = None, resource_limits: Optional['outputs.OceanNpAutoscalerResourceLimits'] = None): + """ + :param 'OceanNpAutoscalerAutoscaleDownArgs' autoscale_down: Auto Scaling scale down operations. + :param 'OceanNpAutoscalerAutoscaleHeadroomArgs' autoscale_headroom: Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + :param bool autoscale_is_enabled: Enable the Ocean Kubernetes Autoscaler. + :param 'OceanNpAutoscalerResourceLimitsArgs' resource_limits: Optionally set upper and lower bounds on the resource usage of the cluster. + """ if autoscale_down is not None: pulumi.set(__self__, "autoscale_down", autoscale_down) if autoscale_headroom is not None: @@ -1966,21 +839,33 @@ def __init__(__self__, *, @property @pulumi.getter(name="autoscaleDown") def autoscale_down(self) -> Optional['outputs.OceanNpAutoscalerAutoscaleDown']: + """ + Auto Scaling scale down operations. + """ return pulumi.get(self, "autoscale_down") @property @pulumi.getter(name="autoscaleHeadroom") def autoscale_headroom(self) -> Optional['outputs.OceanNpAutoscalerAutoscaleHeadroom']: + """ + Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch. + """ return pulumi.get(self, "autoscale_headroom") @property @pulumi.getter(name="autoscaleIsEnabled") def autoscale_is_enabled(self) -> Optional[bool]: + """ + Enable the Ocean Kubernetes Autoscaler. + """ return pulumi.get(self, "autoscale_is_enabled") @property @pulumi.getter(name="resourceLimits") def resource_limits(self) -> Optional['outputs.OceanNpAutoscalerResourceLimits']: + """ + Optionally set upper and lower bounds on the resource usage of the cluster. + """ return pulumi.get(self, "resource_limits") @@ -2164,6 +1049,25 @@ def __init__(__self__, *, min_vcpu: Optional[int] = None, series: Optional[Sequence[str]] = None, vm_types: Optional[Sequence[str]] = None): + """ + :param str accelerated_networking: In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + :param Sequence[str] architectures: The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + :param str disk_performance: The filtered vm sizes will support at least one of the classes from this list. + :param Sequence[str] exclude_series: Vm sizes belonging to a series from the list will not be available for scaling + :param Sequence[str] gpu_types: The filtered gpu types will belong to one of the gpu types from this list. + + + :param float max_gpu: Maximum number of GPUs available. + :param float max_memory_gib: Maximum amount of Memory (GiB). + :param int max_vcpu: Maximum number of vcpus available. + :param int min_disk: Minimum number of data disks available. + :param float min_gpu: Minimum number of GPUs available. + :param float min_memory_gib: Minimum amount of Memory (GiB). + :param int min_nics: Minimum number of network interfaces. + :param int min_vcpu: Minimum number of vcpus available. + :param Sequence[str] series: Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + :param Sequence[str] vm_types: The filtered vm types will belong to one of the vm types from this list. + """ if accelerated_networking is not None: pulumi.set(__self__, "accelerated_networking", accelerated_networking) if architectures is not None: @@ -2198,76 +1102,123 @@ def __init__(__self__, *, @property @pulumi.getter(name="acceleratedNetworking") def accelerated_networking(self) -> Optional[str]: + """ + In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + """ return pulumi.get(self, "accelerated_networking") @property @pulumi.getter def architectures(self) -> Optional[Sequence[str]]: + """ + The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + """ return pulumi.get(self, "architectures") @property @pulumi.getter(name="diskPerformance") def disk_performance(self) -> Optional[str]: + """ + The filtered vm sizes will support at least one of the classes from this list. + """ return pulumi.get(self, "disk_performance") @property @pulumi.getter(name="excludeSeries") def exclude_series(self) -> Optional[Sequence[str]]: + """ + Vm sizes belonging to a series from the list will not be available for scaling + """ return pulumi.get(self, "exclude_series") @property @pulumi.getter(name="gpuTypes") def gpu_types(self) -> Optional[Sequence[str]]: + """ + The filtered gpu types will belong to one of the gpu types from this list. + + + """ return pulumi.get(self, "gpu_types") @property @pulumi.getter(name="maxGpu") def max_gpu(self) -> Optional[float]: + """ + Maximum number of GPUs available. + """ return pulumi.get(self, "max_gpu") @property @pulumi.getter(name="maxMemoryGib") def max_memory_gib(self) -> Optional[float]: + """ + Maximum amount of Memory (GiB). + """ return pulumi.get(self, "max_memory_gib") @property @pulumi.getter(name="maxVcpu") def max_vcpu(self) -> Optional[int]: + """ + Maximum number of vcpus available. + """ return pulumi.get(self, "max_vcpu") @property @pulumi.getter(name="minDisk") def min_disk(self) -> Optional[int]: + """ + Minimum number of data disks available. + """ return pulumi.get(self, "min_disk") @property @pulumi.getter(name="minGpu") def min_gpu(self) -> Optional[float]: + """ + Minimum number of GPUs available. + """ return pulumi.get(self, "min_gpu") @property @pulumi.getter(name="minMemoryGib") def min_memory_gib(self) -> Optional[float]: + """ + Minimum amount of Memory (GiB). + """ return pulumi.get(self, "min_memory_gib") @property @pulumi.getter(name="minNics") def min_nics(self) -> Optional[int]: + """ + Minimum number of network interfaces. + """ return pulumi.get(self, "min_nics") @property @pulumi.getter(name="minVcpu") def min_vcpu(self) -> Optional[int]: + """ + Minimum number of vcpus available. + """ return pulumi.get(self, "min_vcpu") @property @pulumi.getter def series(self) -> Optional[Sequence[str]]: + """ + Vm sizes belonging to a series from the list will be available for scaling. We can specify include list and series can be specified with capital or small letters, with space, without space or with underscore '_' . For example all of these "DSv2", "Ds v2", "ds_v2" refer to same DS_v2 series. + """ return pulumi.get(self, "series") @property @pulumi.getter(name="vmTypes") def vm_types(self) -> Optional[Sequence[str]]: + """ + The filtered vm types will belong to one of the vm types from this list. + """ return pulumi.get(self, "vm_types") @@ -2301,6 +1252,12 @@ def __init__(__self__, *, gpu_per_unit: Optional[int] = None, memory_per_unit: Optional[int] = None, num_of_units: Optional[int] = None): + """ + :param int cpu_per_unit: Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + :param int gpu_per_unit: Amount of GPU to allocate for headroom unit. + :param int memory_per_unit: Configure the amount of memory (MiB) to allocate the headroom. + :param int num_of_units: The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + """ if cpu_per_unit is not None: pulumi.set(__self__, "cpu_per_unit", cpu_per_unit) if gpu_per_unit is not None: @@ -2313,21 +1270,33 @@ def __init__(__self__, *, @property @pulumi.getter(name="cpuPerUnit") def cpu_per_unit(self) -> Optional[int]: + """ + Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + """ return pulumi.get(self, "cpu_per_unit") @property @pulumi.getter(name="gpuPerUnit") def gpu_per_unit(self) -> Optional[int]: + """ + Amount of GPU to allocate for headroom unit. + """ return pulumi.get(self, "gpu_per_unit") @property @pulumi.getter(name="memoryPerUnit") def memory_per_unit(self) -> Optional[int]: + """ + Configure the amount of memory (MiB) to allocate the headroom. + """ return pulumi.get(self, "memory_per_unit") @property @pulumi.getter(name="numOfUnits") def num_of_units(self) -> Optional[int]: + """ + The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + """ return pulumi.get(self, "num_of_units") @@ -2352,12 +1321,18 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, grace_period: Optional[int] = None): + """ + :param int grace_period: The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + """ if grace_period is not None: pulumi.set(__self__, "grace_period", grace_period) @property @pulumi.getter(name="gracePeriod") def grace_period(self) -> Optional[int]: + """ + The amount of time to wait, in seconds, from the moment the instance has launched until monitoring of its health checks begins. + """ return pulumi.get(self, "grace_period") @@ -2382,12 +1357,18 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, shutdown_hours: Optional['outputs.OceanNpSchedulingShutdownHours'] = None): + """ + :param 'OceanNpSchedulingShutdownHoursArgs' shutdown_hours: [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + """ if shutdown_hours is not None: pulumi.set(__self__, "shutdown_hours", shutdown_hours) @property @pulumi.getter(name="shutdownHours") def shutdown_hours(self) -> Optional['outputs.OceanNpSchedulingShutdownHours']: + """ + [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + """ return pulumi.get(self, "shutdown_hours") @@ -2436,6 +1417,11 @@ def __init__(__self__, *, effect: str, key: str, value: str): + """ + :param str effect: Set taint effect. + :param str key: Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + :param str value: Set taint value. + """ pulumi.set(__self__, "effect", effect) pulumi.set(__self__, "key", key) pulumi.set(__self__, "value", value) @@ -2443,16 +1429,25 @@ def __init__(__self__, *, @property @pulumi.getter def effect(self) -> str: + """ + Set taint effect. + """ return pulumi.get(self, "effect") @property @pulumi.getter def key(self) -> str: + """ + Set taint key. The following taint keys are not allowed: ["node.kubernetes.io/not-ready", "node.kubernetes.io/unreachable", "node.kubernetes.io/unschedulable", "node.kubernetes.io/memory-pressure", "node.kubernetes.io/disk-pressure", "node.kubernetes.io/network-unavailable", "node.kubernetes.io/pid-pressure", "node.kubernetes.io/out-of-service", "node.cloudprovider.kubernetes.io/uninitialized", "node.cloudprovider.kubernetes.io/shutdown", "kubernetes.azure.com/scalesetpriority"] + """ return pulumi.get(self, "key") @property @pulumi.getter def value(self) -> str: + """ + Set taint value. + """ return pulumi.get(self, "value") @@ -2662,6 +1657,24 @@ def __init__(__self__, *, min_vcpu: Optional[int] = None, series: Optional[Sequence[str]] = None, vm_types: Optional[Sequence[str]] = None): + """ + :param str accelerated_networking: In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + :param Sequence[str] architectures: The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + :param str disk_performance: The filtered vm sizes will support at least one of the classes from this list. + :param Sequence[str] exclude_series: Vm sizes belonging to a series from the list will not be available for scaling. + :param Sequence[str] gpu_types: The filtered gpu types will belong to one of the gpu types from this list. + + :param float max_gpu: Maximum number of GPUs available. + :param float max_memory_gib: Maximum amount of Memory (GiB). + :param int max_vcpu: Maximum number of vcpus available. + :param int min_disk: Minimum number of data disks available. + :param float min_gpu: Minimum number of GPUs available. + :param float min_memory_gib: Minimum amount of Memory (GiB). + :param int min_nics: Minimum number of network interfaces. + :param int min_vcpu: Minimum number of vcpus available. + :param Sequence[str] series: Vm sizes belonging to a series from the list will be available for scaling. + :param Sequence[str] vm_types: The filtered vm types will belong to one of the vm types from this list. + """ if accelerated_networking is not None: pulumi.set(__self__, "accelerated_networking", accelerated_networking) if architectures is not None: @@ -2696,76 +1709,122 @@ def __init__(__self__, *, @property @pulumi.getter(name="acceleratedNetworking") def accelerated_networking(self) -> Optional[str]: + """ + In case acceleratedNetworking is set to Enabled, accelerated networking applies only to the VM that enables it. + """ return pulumi.get(self, "accelerated_networking") @property @pulumi.getter def architectures(self) -> Optional[Sequence[str]]: + """ + The filtered vm sizes will support at least one of the architectures from this list. x86_64 includes both intel64 and amd64. + """ return pulumi.get(self, "architectures") @property @pulumi.getter(name="diskPerformance") def disk_performance(self) -> Optional[str]: + """ + The filtered vm sizes will support at least one of the classes from this list. + """ return pulumi.get(self, "disk_performance") @property @pulumi.getter(name="excludeSeries") def exclude_series(self) -> Optional[Sequence[str]]: + """ + Vm sizes belonging to a series from the list will not be available for scaling. + """ return pulumi.get(self, "exclude_series") @property @pulumi.getter(name="gpuTypes") def gpu_types(self) -> Optional[Sequence[str]]: + """ + The filtered gpu types will belong to one of the gpu types from this list. + + """ return pulumi.get(self, "gpu_types") @property @pulumi.getter(name="maxGpu") def max_gpu(self) -> Optional[float]: + """ + Maximum number of GPUs available. + """ return pulumi.get(self, "max_gpu") @property @pulumi.getter(name="maxMemoryGib") def max_memory_gib(self) -> Optional[float]: + """ + Maximum amount of Memory (GiB). + """ return pulumi.get(self, "max_memory_gib") @property @pulumi.getter(name="maxVcpu") def max_vcpu(self) -> Optional[int]: + """ + Maximum number of vcpus available. + """ return pulumi.get(self, "max_vcpu") @property @pulumi.getter(name="minDisk") def min_disk(self) -> Optional[int]: + """ + Minimum number of data disks available. + """ return pulumi.get(self, "min_disk") @property @pulumi.getter(name="minGpu") def min_gpu(self) -> Optional[float]: + """ + Minimum number of GPUs available. + """ return pulumi.get(self, "min_gpu") @property @pulumi.getter(name="minMemoryGib") def min_memory_gib(self) -> Optional[float]: + """ + Minimum amount of Memory (GiB). + """ return pulumi.get(self, "min_memory_gib") @property @pulumi.getter(name="minNics") def min_nics(self) -> Optional[int]: + """ + Minimum number of network interfaces. + """ return pulumi.get(self, "min_nics") @property @pulumi.getter(name="minVcpu") def min_vcpu(self) -> Optional[int]: + """ + Minimum number of vcpus available. + """ return pulumi.get(self, "min_vcpu") @property @pulumi.getter def series(self) -> Optional[Sequence[str]]: + """ + Vm sizes belonging to a series from the list will be available for scaling. + """ return pulumi.get(self, "series") @property @pulumi.getter(name="vmTypes") def vm_types(self) -> Optional[Sequence[str]]: + """ + The filtered vm types will belong to one of the vm types from this list. + """ return pulumi.get(self, "vm_types") @@ -2799,6 +1858,12 @@ def __init__(__self__, *, gpu_per_unit: Optional[int] = None, memory_per_unit: Optional[int] = None, num_of_units: Optional[int] = None): + """ + :param int cpu_per_unit: Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + :param int gpu_per_unit: Amount of GPU to allocate for headroom unit. + :param int memory_per_unit: Configure the amount of memory (MiB) to allocate the headroom. + :param int num_of_units: The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + """ if cpu_per_unit is not None: pulumi.set(__self__, "cpu_per_unit", cpu_per_unit) if gpu_per_unit is not None: @@ -2811,21 +1876,33 @@ def __init__(__self__, *, @property @pulumi.getter(name="cpuPerUnit") def cpu_per_unit(self) -> Optional[int]: + """ + Configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. + """ return pulumi.get(self, "cpu_per_unit") @property @pulumi.getter(name="gpuPerUnit") def gpu_per_unit(self) -> Optional[int]: + """ + Amount of GPU to allocate for headroom unit. + """ return pulumi.get(self, "gpu_per_unit") @property @pulumi.getter(name="memoryPerUnit") def memory_per_unit(self) -> Optional[int]: + """ + Configure the amount of memory (MiB) to allocate the headroom. + """ return pulumi.get(self, "memory_per_unit") @property @pulumi.getter(name="numOfUnits") def num_of_units(self) -> Optional[int]: + """ + The number of units to retain as headroom, where each unit has the defined headroom CPU and memory. + """ return pulumi.get(self, "num_of_units") @@ -2835,6 +1912,11 @@ def __init__(__self__, *, effect: str, key: str, value: str): + """ + :param str effect: Set taint effect. + :param str key: Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + :param str value: Set taint value. + """ pulumi.set(__self__, "effect", effect) pulumi.set(__self__, "key", key) pulumi.set(__self__, "value", value) @@ -2842,16 +1924,25 @@ def __init__(__self__, *, @property @pulumi.getter def effect(self) -> str: + """ + Set taint effect. + """ return pulumi.get(self, "effect") @property @pulumi.getter def key(self) -> str: + """ + Set taint key. The following are not allowed: "kubernetes.azure.com/scalesetpriority". + """ return pulumi.get(self, "key") @property @pulumi.getter def value(self) -> str: + """ + Set taint value. + """ return pulumi.get(self, "value") diff --git a/upstream b/upstream index 3196013d..39ed4c49 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit 3196013d010b15354db947e332e9ae340db97ae0 +Subproject commit 39ed4c49a71bd953799e1e76b30af86c12a35743