{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure/json-schema/microsoft-azure-aksassessment-schema.json",
  "title": "AKSAssessment",
  "description": "ARM model of AKS Assessment.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-aksassessmentoperations-api-openapi.yml#/components/schemas/AKSAssessment",
  "type": "object",
  "properties": {
    "properties": {
      "$ref": "#/$defs/AKSAssessmentProperties",
      "description": "The resource-specific properties for this resource.",
      "x-ms-client-flatten": true,
      "x-ms-mutability": [
        "read",
        "create"
      ]
    },
    "eTag": {
      "type": "string",
      "description": "If eTag is provided in the response body, it may also be provided as a header per the normal etag convention.  Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.",
      "readOnly": true
    }
  },
  "allOf": [
    {
      "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource"
    }
  ],
  "$defs": {
    "AKSAssessmentDetails": {
      "type": "object",
      "description": "Data model of AKS Assessment Details.",
      "properties": {
        "webAppCount": {
          "type": "integer",
          "format": "int32",
          "description": "Gets the number of web apps.",
          "readOnly": true
        },
        "webServerCount": {
          "type": "integer",
          "format": "int32",
          "description": "Gets the number of web servers.",
          "readOnly": true
        },
        "machineCount": {
          "type": "integer",
          "format": "int32",
          "description": "Gets the number of machines.",
          "readOnly": true
        },
        "totalMonthlyCost": {
          "type": "number",
          "format": "float",
          "description": "Gets the total monthly cost.",
          "readOnly": true
        }
      },
      "required": [
        "webAppCount",
        "webServerCount",
        "machineCount",
        "totalMonthlyCost"
      ],
      "allOf": [
        {
          "$ref": "#/$defs/AssessmentDetails"
        }
      ]
    },
    "AKSAssessmentProperties": {
      "type": "object",
      "description": "ARM model of AKS Assessment Properties.",
      "properties": {
        "settings": {
          "$ref": "#/$defs/AKSAssessmentSettings",
          "description": "Gets or sets AKS Assessment Settings."
        },
        "details": {
          "$ref": "#/$defs/AKSAssessmentDetails",
          "description": "Gets AKS Assessment Details.",
          "readOnly": true
        }
      },
      "required": [
        "settings"
      ],
      "allOf": [
        {
          "$ref": "#/$defs/AssessmentPropertiesBase"
        }
      ]
    },
    "AKSAssessmentSettings": {
      "type": "object",
      "description": "Data model of AKS Assessment Settings.",
      "properties": {
        "category": {
          "$ref": "#/$defs/AzureVmCategory",
          "description": "Gets or sets azure VM category."
        },
        "savingsOptions": {
          "$ref": "#/$defs/SavingsOptions",
          "description": "Gets or sets savings options."
        },
        "consolidation": {
          "$ref": "#/$defs/ConsolidationType",
          "description": "Gets or sets consolidation type."
        },
        "pricingTier": {
          "$ref": "#/$defs/PricingTier",
          "description": "Gets or sets pricing tier."
        }
      },
      "required": [
        "category",
        "savingsOptions",
        "consolidation",
        "pricingTier"
      ],
      "allOf": [
        {
          "$ref": "#/$defs/AssessmentSettings"
        }
      ]
    },
    "AssessmentDetails": {
      "type": "object",
      "description": "Data model of Details of Assessment Computation.",
      "properties": {
        "pricesTimestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Gets last time when rates were queried.",
          "readOnly": true
        },
        "confidenceRatingInPercentage": {
          "type": "number",
          "format": "float",
          "description": "Gets Confidence score.",
          "readOnly": true
        },
        "createdTimestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Gets date and time when assessment was created.",
          "readOnly": true
        },
        "updatedTimestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Gets date and time when assessment was last updated.",
          "readOnly": true
        },
        "status": {
          "$ref": "#/$defs/AssessmentStatus",
          "description": "Gets assessment status.",
          "readOnly": true
        }
      },
      "required": [
        "createdTimestamp",
        "updatedTimestamp",
        "status"
      ]
    },
    "AssessmentPropertiesBase": {
      "type": "object",
      "description": "Base ARM model of Assessment ARM properties.",
      "properties": {
        "scope": {
          "$ref": "#/$defs/AssessmentScopeParameters",
          "description": "Gets or sets scope parameters to identify inventory items for assessment."
        }
      },
      "allOf": [
        {
          "$ref": "#/$defs/MutableArmResource"
        }
      ]
    },
    "AssessmentScopeParameters": {
      "type": "object",
      "description": "Data model of Assessment Scope Parameters.",
      "properties": {
        "serverGroupId": {
          "type": "string",
          "description": "Gets or sets the server group id."
        }
      }
    },
    "AssessmentSettings": {
      "type": "object",
      "description": "Base data model of Assessment Settings.",
      "properties": {
        "azureLocation": {
          "type": "string",
          "description": "Gets or sets azure location."
        },
        "environmentType": {
          "$ref": "#/$defs/AzureEnvironmentType",
          "description": "Gets or sets environment type."
        },
        "licensingProgram": {
          "$ref": "#/$defs/LicensingProgram",
          "description": "Gets or sets licensing program."
        },
        "currency": {
          "$ref": "#/$defs/AzureCurrency",
          "description": "Gets or sets currency."
        },
        "discountPercentage": {
          "type": "number",
          "format": "float",
          "description": "Gets or sets discount percentage."
        },
        "sizingCriteria": {
          "$ref": "#/$defs/AssessmentSizingCriterion",
          "description": "Gets or sets sizing criteria."
        },
        "performanceData": {
          "$ref": "#/$defs/PerfDataSettings",
          "description": "Gets or sets performance data settings."
        },
        "scalingFactor": {
          "type": "number",
          "format": "float",
          "description": "Gets or sets scaling factor."
        }
      },
      "required": [
        "azureLocation",
        "environmentType",
        "licensingProgram",
        "currency",
        "sizingCriteria"
      ]
    },
    "AssessmentSizingCriterion": {
      "type": "string",
      "description": "Assessment Sizing Criteria.",
      "enum": [
        "PerformanceBased",
        "AsOnPremises"
      ],
      "x-ms-enum": {
        "name": "AssessmentSizingCriterion",
        "modelAsString": true,
        "values": [
          {
            "name": "PerformanceBased",
            "value": "PerformanceBased",
            "description": "Performance Data based Sizing."
          },
          {
            "name": "AsOnPremises",
            "value": "AsOnPremises",
            "description": "As On Premises or Static Data based Sizing."
          }
        ]
      }
    },
    "AssessmentStatus": {
      "type": "string",
      "description": "Assessment Status.",
      "enum": [
        "Created",
        "Updated",
        "Running",
        "Completed",
        "Invalid",
        "OutOfSync",
        "OutDated",
        "Deleted"
      ],
      "x-ms-enum": {
        "name": "AssessmentStatus",
        "modelAsString": true,
        "values": [
          {
            "name": "Created",
            "value": "Created",
            "description": "Assessment is Created."
          },
          {
            "name": "Updated",
            "value": "Updated",
            "description": "Assessment is Updated."
          },
          {
            "name": "Running",
            "value": "Running",
            "description": "Assessment is currently running."
          },
          {
            "name": "Completed",
            "value": "Completed",
            "description": "Assessment is Completed or Ready."
          },
          {
            "name": "Invalid",
            "value": "Invalid",
            "description": "Assessment is Failed i.e. it is now invalid."
          },
          {
            "name": "OutOfSync",
            "value": "OutOfSync",
            "description": "Assessment is Out of Sync."
          },
          {
            "name": "OutDated",
            "value": "OutDated",
            "description": "Assessment is Out Dated."
          },
          {
            "name": "Deleted",
            "value": "Deleted",
            "description": "Assessment is Deleted."
          }
        ]
      }
    },
    "AzureCurrency": {
      "type": "string",
      "description": "Currency for Azure.",
      "enum": [
        "Unknown",
        "USD",
        "DKK",
        "CAD",
        "IDR",
        "JPY",
        "KRW",
        "NZD",
        "NOK",
        "RUB",
        "SAR",
        "ZAR",
        "SEK",
        "TRY",
        "GBP",
        "MXN",
        "MYR",
        "INR",
        "HKD",
        "BRL",
        "TWD",
        "EUR",
        "CHF",
        "ARS",
        "AUD",
        "CNY"
      ],
      "x-ms-enum": {
        "name": "AzureCurrency",
        "modelAsString": true
      }
    },
    "AzureEnvironmentType": {
      "type": "string",
      "description": "Environment Type for Azure.",
      "enum": [
        "Unknown",
        "DevTest",
        "Production"
      ],
      "x-ms-enum": {
        "name": "AzureEnvironmentType",
        "modelAsString": true,
        "values": [
          {
            "name": "Unknown",
            "value": "Unknown",
            "description": "Unknown. Indicates missing data."
          },
          {
            "name": "DevTest",
            "value": "DevTest",
            "description": "Development or Test Environment."
          },
          {
            "name": "Production",
            "value": "Production",
            "description": "Production Environment."
          }
        ]
      }
    },
    "AzureVmCategory": {
      "type": "string",
      "description": "Azure VM Category.",
      "enum": [
        "All",
        "ComputeOptimized",
        "GeneralPurpose",
        "GpuOptimized",
        "HighPerformanceCompute",
        "MemoryOptimized",
        "StorageOptimized",
        "Isolated"
      ],
      "x-ms-enum": {
        "name": "AzureVmCategory",
        "modelAsString": true,
        "values": [
          {
            "name": "All",
            "value": "All",
            "description": "Indicates All categories of VM."
          },
          {
            "name": "ComputeOptimized",
            "value": "ComputeOptimized",
            "description": "Compute Optimized."
          },
          {
            "name": "GeneralPurpose",
            "value": "GeneralPurpose",
            "description": "General Purpose."
          },
          {
            "name": "GpuOptimized",
            "value": "GpuOptimized",
            "description": "GPU Optimized."
          },
          {
            "name": "HighPerformanceCompute",
            "value": "HighPerformanceCompute",
            "description": "High Performance Compute."
          },
          {
            "name": "MemoryOptimized",
            "value": "MemoryOptimized",
            "description": "Memory Optimized."
          },
          {
            "name": "StorageOptimized",
            "value": "StorageOptimized",
            "description": "Storage Optimized."
          },
          {
            "name": "Isolated",
            "value": "Isolated",
            "description": "Isolated VM."
          }
        ]
      }
    },
    "ConsolidationType": {
      "type": "string",
      "description": "Consolidation Type.",
      "enum": [
        "Full",
        "AsOnSource"
      ],
      "x-ms-enum": {
        "name": "ConsolidationType",
        "modelAsString": true,
        "values": [
          {
            "name": "Full",
            "value": "Full",
            "description": "Full Consolidation."
          },
          {
            "name": "AsOnSource",
            "value": "AsOnSource",
            "description": "As On Source or On Premises Consolidation."
          }
        ]
      }
    },
    "LicensingProgram": {
      "type": "string",
      "description": "Licensing Program for Azure.",
      "enum": [
        "Default",
        "EA"
      ],
      "x-ms-enum": {
        "name": "LicensingProgram",
        "modelAsString": true,
        "values": [
          {
            "name": "Default",
            "value": "Default",
            "description": "Default value. Indicates Pay As You Go."
          },
          {
            "name": "EA",
            "value": "EA",
            "description": "Enterprise Agreement."
          }
        ]
      }
    },
    "MutableArmResource": {
      "type": "object",
      "description": "ARM model of Assessment ARM object.",
      "properties": {
        "provisioningState": {
          "$ref": "#/$defs/ProvisioningStatus",
          "description": "Gets the provisioning state.",
          "readOnly": true
        }
      }
    },
    "Percentile": {
      "type": "string",
      "description": "Percentile for Performance Data.",
      "enum": [
        "Percentile50",
        "Percentile90",
        "Percentile95",
        "Percentile99"
      ],
      "x-ms-enum": {
        "name": "Percentile",
        "modelAsString": true,
        "values": [
          {
            "name": "Percentile50",
            "value": "Percentile50",
            "description": "Percentile 50."
          },
          {
            "name": "Percentile90",
            "value": "Percentile90",
            "description": "Percentile 90."
          },
          {
            "name": "Percentile95",
            "value": "Percentile95",
            "description": "Percentile 95."
          },
          {
            "name": "Percentile99",
            "value": "Percentile99",
            "description": "Percentile 99."
          }
        ]
      }
    },
    "PerfDataSettings": {
      "type": "object",
      "description": "Data model of Performance Data Settings.",
      "properties": {
        "timeRange": {
          "$ref": "#/$defs/TimeRange",
          "description": "Gets perf data time range."
        },
        "perfDataStartTime": {
          "type": "string",
          "format": "date-time",
          "description": "Gets or sets perf data start time."
        },
        "perfDataEndTime": {
          "type": "string",
          "format": "date-time",
          "description": "Gets or sets perf data end time."
        },
        "percentile": {
          "$ref": "#/$defs/Percentile",
          "description": "Gets percentile utilization for performance data."
        }
      },
      "required": [
        "timeRange",
        "percentile"
      ]
    },
    "PricingTier": {
      "type": "string",
      "description": "Pricing Tier for Azure.",
      "enum": [
        "Standard",
        "Free"
      ],
      "x-ms-enum": {
        "name": "PricingTier",
        "modelAsString": true,
        "values": [
          {
            "name": "Standard",
            "value": "Standard",
            "description": "Standard Pricing Tier."
          },
          {
            "name": "Free",
            "value": "Free",
            "description": "Free Pricing Tier."
          }
        ]
      }
    },
    "ProvisioningStatus": {
      "type": "string",
      "description": "Provisioning Status.",
      "enum": [
        "Unknown",
        "Succeeded",
        "Failed",
        "Canceled",
        "InProgress"
      ],
      "x-ms-enum": {
        "name": "ProvisioningStatus",
        "modelAsString": true,
        "values": [
          {
            "name": "Unknown",
            "value": "Unknown",
            "description": "Unknown. Indicates missing data."
          },
          {
            "name": "Succeeded",
            "value": "Succeeded",
            "description": "Resource has been created."
          },
          {
            "name": "Failed",
            "value": "Failed",
            "description": "Resource creation failed."
          },
          {
            "name": "Canceled",
            "value": "Canceled",
            "description": "Resource creation was canceled."
          },
          {
            "name": "InProgress",
            "value": "InProgress",
            "description": "Provisioning is in Progress."
          }
        ]
      },
      "readOnly": true
    },
    "SavingsOptions": {
      "type": "string",
      "description": "Savings Options for Azure.",
      "enum": [
        "None",
        "OneYearSavings",
        "ThreeYearsSavings",
        "OneYearReserved",
        "ThreeYearsReserved"
      ],
      "x-ms-enum": {
        "name": "SavingsOptions",
        "modelAsString": true,
        "values": [
          {
            "name": "None",
            "value": "None",
            "description": "Savings Options is not applicable."
          },
          {
            "name": "OneYearSavings",
            "value": "OneYearSavings",
            "description": "One Year Savings Plan."
          },
          {
            "name": "ThreeYearsSavings",
            "value": "ThreeYearsSavings",
            "description": "Three Years Savings Plan."
          },
          {
            "name": "OneYearReserved",
            "value": "OneYearReserved",
            "description": "One Year Reserved Instances."
          },
          {
            "name": "ThreeYearsReserved",
            "value": "ThreeYearsReserved",
            "description": "Three Years Reserved Instances."
          }
        ]
      }
    },
    "TimeRange": {
      "type": "string",
      "description": "Time Range for Performance Data.",
      "enum": [
        "Day",
        "Week",
        "Month",
        "Custom"
      ],
      "x-ms-enum": {
        "name": "TimeRange",
        "modelAsString": true,
        "values": [
          {
            "name": "Day",
            "value": "Day",
            "description": "Daily."
          },
          {
            "name": "Week",
            "value": "Week",
            "description": "Weekly."
          },
          {
            "name": "Month",
            "value": "Month",
            "description": "Monthly."
          },
          {
            "name": "Custom",
            "value": "Custom",
            "description": "Custom Time Range."
          }
        ]
      }
    }
  }
}