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