Spot by NetApp · JSON Structure
Spot By Netapp Structure
JSON structure documentation for Spot by NetApp cloud optimization API resources
Type:
Properties: 0
Cloud OptimizationFinOpsKubernetesAzureGCPCost OptimizationAuto Scaling
Spot by NetApp API Structure is a JSON Structure definition published by Spot by NetApp.
Meta-schema:
JSON Structure
{
"name": "Spot by NetApp API Structure",
"description": "JSON structure documentation for Spot by NetApp cloud optimization API resources",
"version": "1.0",
"structures": [
{
"name": "ElastigroupAWS",
"description": "Intelligent auto-scaling group using Spot instances on AWS",
"fields": [
{"name": "id", "type": "string", "required": false, "description": "Unique Elastigroup identifier (assigned on creation)"},
{"name": "name", "type": "string", "required": true, "description": "Descriptive name (max 36 characters)"},
{"name": "description", "type": "string", "required": false, "description": "Optional description"},
{"name": "region", "type": "string", "required": true, "description": "AWS region (e.g., us-east-1, eu-west-1)"},
{"name": "capacity", "type": "Capacity object", "required": true, "description": "Min/max/target instance counts"},
{"name": "strategy", "type": "Strategy object", "required": false, "description": "Spot vs On-Demand balance strategy"},
{"name": "compute", "type": "Compute object", "required": true, "description": "Instance types and launch configuration"},
{"name": "scaling", "type": "Scaling object", "required": false, "description": "Auto-scaling policy configuration"},
{"name": "scheduling", "type": "Scheduling object", "required": false, "description": "Scheduled scaling actions"},
{"name": "createdAt", "type": "string (ISO 8601)", "required": false, "description": "Creation timestamp"},
{"name": "updatedAt", "type": "string (ISO 8601)", "required": false, "description": "Last update timestamp"}
]
},
{
"name": "Capacity",
"description": "Instance count bounds for an Elastigroup or Ocean cluster",
"fields": [
{"name": "minimum", "type": "integer", "required": true, "description": "Minimum number of instances (>= 0)"},
{"name": "maximum", "type": "integer", "required": true, "description": "Maximum number of instances"},
{"name": "target", "type": "integer", "required": true, "description": "Desired instance count"},
{"name": "unit", "type": "string enum", "required": false, "description": "Unit type: instance | weight"}
]
},
{
"name": "Strategy",
"description": "Spot instance usage and fallback strategy",
"fields": [
{"name": "risk", "type": "integer (0-100)", "required": false, "description": "Percentage of Spot instances target"},
{"name": "onDemandCount", "type": "integer", "required": false, "description": "Fixed On-Demand instance count"},
{"name": "availabilityVsCost", "type": "string enum", "required": false, "description": "balanced | availabilityOriented | costOriented"},
{"name": "fallbackToOnDemand", "type": "boolean", "required": false, "description": "Fall back to On-Demand when Spot unavailable"},
{"name": "utilizeReservedInstances", "type": "boolean", "required": false, "description": "Use Reserved Instances before Spot"}
]
},
{
"name": "OceanCluster",
"description": "Kubernetes cost optimization cluster using Spot instances",
"fields": [
{"name": "id", "type": "string", "required": false, "description": "Unique Ocean cluster identifier"},
{"name": "name", "type": "string", "required": true, "description": "Cluster name"},
{"name": "region", "type": "string", "required": true, "description": "Cloud provider region"},
{"name": "cloudProvider", "type": "string enum", "required": true, "description": "Cloud provider: aws | azure | gcp"},
{"name": "autoScaler", "type": "AutoScaler object", "required": false, "description": "Auto-scaling configuration"},
{"name": "capacity", "type": "Capacity object", "required": false, "description": "Node count bounds"},
{"name": "compute", "type": "Compute object", "required": false, "description": "Node instance type configuration"}
]
},
{
"name": "CostSavings",
"description": "Cloud cost savings report from Spot optimization",
"fields": [
{"name": "actualCost", "type": "number", "required": true, "description": "Actual spend with Spot optimization"},
{"name": "potentialCost", "type": "number", "required": true, "description": "Estimated cost without optimization"},
{"name": "savings", "type": "number", "required": true, "description": "Absolute cost savings amount"},
{"name": "savingsPercentage", "type": "number", "required": true, "description": "Percentage saved vs. unoptimized"},
{"name": "currency", "type": "string", "required": false, "description": "Currency code (default: USD)"}
]
},
{
"name": "AuditEvent",
"description": "An audit log entry recording API or console activity",
"fields": [
{"name": "id", "type": "string", "required": true, "description": "Unique audit event ID"},
{"name": "eventType", "type": "string", "required": true, "description": "Type of action performed"},
{"name": "resourceType", "type": "string", "required": true, "description": "Type of resource affected"},
{"name": "resourceId", "type": "string", "required": false, "description": "ID of the affected resource"},
{"name": "accountId", "type": "string", "required": true, "description": "Spot account where event occurred"},
{"name": "userId", "type": "string", "required": true, "description": "User who performed the action"},
{"name": "timestamp", "type": "string (ISO 8601)", "required": true, "description": "When the event occurred"},
{"name": "data", "type": "object", "required": false, "description": "Event-specific payload data"}
]
}
]
}