{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "definitions": {
        "CreateOnBehalfOfSchema": {
            "properties": {
                "$schema": {
                    "title": "$schema",
                    "type": "string",
                    "readonly": true
                },
                "user_object_id": {
                    "title": "user_object_id",
                    "type": "string"
                },
                "user_tenant_id": {
                    "title": "user_tenant_id",
                    "type": "string"
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "CustomApplicationsSchema": {
            "properties": {
                "bind_mounts": {
                    "title": "bind_mounts",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "$ref": "#/definitions/VolumeSettingsSchema"
                    }
                },
                "endpoints": {
                    "title": "endpoints",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "$ref": "#/definitions/EndpointsSettingsSchema"
                    }
                },
                "environment_variables": {
                    "title": "environment_variables",
                    "type": "object",
                    "additionalProperties": {}
                },
                "image": {
                    "type": "object",
                    "$ref": "#/definitions/ImageSettingsSchema"
                },
                "name": {
                    "title": "name",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "docker"
                    ],
                    "title": "type"
                }
            },
            "type": "object",
            "required": [
                "name"
            ],
            "additionalProperties": false
        },
        "VolumeSettingsSchema": {
            "properties": {
                "source": {
                    "title": "source",
                    "type": "string"
                },
                "target": {
                    "title": "target",
                    "type": "string"
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "EndpointsSettingsSchema": {
            "properties": {
                "published": {
                    "title": "published",
                    "type": "number",
                    "format": "integer"
                },
                "target": {
                    "title": "target",
                    "type": "number",
                    "format": "integer"
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "ImageSettingsSchema": {
            "properties": {
                "reference": {
                    "title": "reference",
                    "type": "string"
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "IdentitySchema": {
            "properties": {
                "principal_id": {
                    "title": "principal_id",
                    "type": "string",
                    "readonly": true
                },
                "$schema": {
                    "title": "$schema",
                    "type": "string",
                    "readonly": true
                },
                "tenant_id": {
                    "title": "tenant_id",
                    "type": "string",
                    "readonly": true
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "system_assigned",
                        "user_assigned",
                        "none",
                        "system_assigned,user_assigned"
                    ],
                    "title": "type"
                },
                "user_assigned_identities": {
                    "title": "user_assigned_identities",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "$ref": "#/definitions/UserAssignedIdentitySchema"
                    }
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "UserAssignedIdentitySchema": {
            "properties": {
                "client_id": {
                    "title": "client_id",
                    "type": "string",
                    "readonly": true
                },
                "principal_id": {
                    "title": "principal_id",
                    "type": "string",
                    "readonly": true
                },
                "resource_id": {
                    "title": "resource_id",
                    "type": "string"
                },
                "$schema": {
                    "title": "$schema",
                    "type": "string",
                    "readonly": true
                },
                "tenant_id": {
                    "title": "tenant_id",
                    "type": "string",
                    "readonly": true
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "NetworkSettingsSchema": {
            "properties": {
                "private_ip_address": {
                    "title": "private_ip_address",
                    "type": "string",
                    "readonly": true
                },
                "public_ip_address": {
                    "title": "public_ip_address",
                    "type": "string",
                    "readonly": true
                },
                "$schema": {
                    "title": "$schema",
                    "type": "string",
                    "readonly": true
                },
                "subnet": {
                    "title": "subnet",
                    "type": "string"
                },
                "vnet_name": {
                    "title": "vnet_name",
                    "type": "string"
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "OsImageMetadataSchema": {
            "properties": {
                "current_image_version": {
                    "title": "current_image_version",
                    "type": "string",
                    "readonly": true
                },
                "is_latest_os_image_version": {
                    "title": "is_latest_os_image_version",
                    "type": "boolean",
                    "readonly": true
                },
                "latest_image_version": {
                    "title": "latest_image_version",
                    "type": "string",
                    "readonly": true
                },
                "$schema": {
                    "title": "$schema",
                    "type": "string",
                    "readonly": true
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "ComputeSchedulesSchema": {
            "properties": {
                "compute_start_stop": {
                    "title": "compute_start_stop",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "$ref": "#/definitions/ComputeStartStopScheduleSchema"
                    }
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "ComputeStartStopScheduleSchema": {
            "properties": {
                "action": {
                    "type": "string",
                    "enum": [
                        "start",
                        "stop"
                    ],
                    "title": "action"
                },
                "provisioning_state": {
                    "title": "provisioning_state",
                    "type": "string",
                    "readonly": true
                },
                "schedule_id": {
                    "title": "schedule_id",
                    "type": "string",
                    "readonly": true
                },
                "state": {
                    "type": "string",
                    "enum": [
                        "enabled",
                        "disabled"
                    ],
                    "title": "state"
                },
                "trigger": {
                    "anyOf": [
                        {
                            "type": "object",
                            "$ref": "#/definitions/CronTriggerSchema"
                        },
                        {
                            "type": "object",
                            "$ref": "#/definitions/RecurrenceTriggerSchema"
                        }
                    ]
                }
            },
            "type": "object",
            "required": [
                "action"
            ],
            "additionalProperties": false
        },
        "CronTriggerSchema": {
            "properties": {
                "expression": {
                    "title": "expression",
                    "type": "string"
                },
                "start_time": {
                    "title": "start_time",
                    "type": "string"
                },
                "time_zone": {
                    "title": "time_zone",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "cron"
                    ],
                    "title": "type"
                }
            },
            "type": "object",
            "required": [
                "expression",
                "type"
            ],
            "additionalProperties": false
        },
        "RecurrenceTriggerSchema": {
            "properties": {
                "frequency": {
                    "type": "string",
                    "enum": [
                        "minute",
                        "hour",
                        "day",
                        "week",
                        "month"
                    ],
                    "title": "frequency"
                },
                "interval": {
                    "title": "interval",
                    "type": "number",
                    "format": "integer"
                },
                "schedule": {
                    "type": "object",
                    "$ref": "#/definitions/RecurrenceScheduleSchema"
                },
                "start_time": {
                    "title": "start_time",
                    "type": "string"
                },
                "time_zone": {
                    "title": "time_zone",
                    "type": "string"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "recurrence"
                    ],
                    "title": "type"
                }
            },
            "type": "object",
            "required": [
                "frequency",
                "type"
            ],
            "additionalProperties": false
        },
        "RecurrenceScheduleSchema": {
            "properties": {
                "hours": {
                    "title": "hours",
                    "type": "array",
                    "items": {
                        "title": "hours",
                        "type": "number",
                        "format": "integer"
                    }
                },
                "minutes": {
                    "title": "minutes",
                    "type": "array",
                    "items": {
                        "title": "minutes",
                        "type": "number",
                        "format": "integer"
                    }
                },
                "week_days": {
                    "title": "week_days",
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": [
                            "sunday",
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday"
                        ],
                        "title": "week_days"
                    }
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "SetupScriptsSchema": {
            "properties": {
                "creation_script": {
                    "type": "object",
                    "$ref": "#/definitions/ScriptReferenceSchema"
                },
                "startup_script": {
                    "type": "object",
                    "$ref": "#/definitions/ScriptReferenceSchema"
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "ScriptReferenceSchema": {
            "properties": {
                "command": {
                    "title": "command",
                    "type": "string"
                },
                "path": {
                    "title": "path",
                    "type": "string"
                },
                "timeout_minutes": {
                    "title": "timeout_minutes",
                    "type": "number",
                    "format": "integer"
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "ComputeInstanceSshSettingsSchema": {
            "properties": {
                "admin_username": {
                    "title": "admin_username",
                    "type": "string",
                    "readonly": true
                },
                "$schema": {
                    "title": "$schema",
                    "type": "string",
                    "readonly": true
                },
                "ssh_key_value": {
                    "title": "ssh_key_value",
                    "type": "string"
                },
                "ssh_port": {
                    "title": "ssh_port",
                    "type": "string",
                    "readonly": true
                }
            },
            "type": "object",
            "additionalProperties": false
        },
        "ComputeInstanceSchema": {
            "properties": {
                "create_on_behalf_of": {
                    "type": "object",
                    "$ref": "#/definitions/CreateOnBehalfOfSchema"
                },
                "created_on": {
                    "title": "created_on",
                    "type": "string",
                    "readonly": true
                },
                "custom_applications": {
                    "title": "custom_applications",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "$ref": "#/definitions/CustomApplicationsSchema"
                    }
                },
                "description": {
                    "title": "description",
                    "type": "string"
                },
                "enable_node_public_ip": {
                    "title": "enable_node_public_ip",
                    "type": "boolean",
                    "description": "Enable or disable node public IP address provisioning."
                },
                "enable_os_patching": {
                    "title": "enable_os_patching",
                    "type": "boolean",
                    "description": "Enable or disable OS patching for the compute instance. Defaults to False."
                },
                "enable_root_access": {
                    "title": "enable_root_access",
                    "type": "boolean",
                    "description": "Enable or disable root access for the compute instance."
                },
                "enable_sso": {
                    "title": "enable_sso",
                    "type": "boolean",
                    "description": "Enable or disable single sign-on for the compute instance."
                },
                "id": {
                    "title": "id",
                    "type": "string",
                    "readonly": true
                },
                "identity": {
                    "type": "object",
                    "$ref": "#/definitions/IdentitySchema"
                },
                "idle_time_before_shutdown": {
                    "title": "idle_time_before_shutdown",
                    "type": "string"
                },
                "idle_time_before_shutdown_minutes": {
                    "title": "idle_time_before_shutdown_minutes",
                    "type": "number",
                    "format": "integer"
                },
                "last_operation": {
                    "title": "last_operation",
                    "type": "object",
                    "additionalProperties": {
                        "title": "last_operation",
                        "type": "string"
                    }
                },
                "location": {
                    "title": "location",
                    "type": "string"
                },
                "name": {
                    "title": "name",
                    "type": "string"
                },
                "network_settings": {
                    "type": "object",
                    "$ref": "#/definitions/NetworkSettingsSchema"
                },
                "os_image_metadata": {
                    "type": "object",
                    "$ref": "#/definitions/OsImageMetadataSchema"
                },
                "provisioning_errors": {
                    "title": "provisioning_errors",
                    "type": "string",
                    "readonly": true
                },
                "provisioning_state": {
                    "title": "provisioning_state",
                    "type": "string",
                    "readonly": true
                },
                "release_quota_on_stop": {
                    "title": "release_quota_on_stop",
                    "type": "boolean",
                    "description": "Release quota on stop for the compute instance. Defaults to False."
                },
                "resource_id": {
                    "title": "resource_id",
                    "type": "string"
                },
                "schedules": {
                    "type": "object",
                    "$ref": "#/definitions/ComputeSchedulesSchema"
                },
                "$schema": {
                    "title": "$schema",
                    "type": "string",
                    "readonly": true
                },
                "services": {
                    "title": "services",
                    "type": "array",
                    "readonly": true,
                    "items": {
                        "title": "services",
                        "type": "object",
                        "additionalProperties": {
                            "title": "services",
                            "type": "string"
                        }
                    }
                },
                "setup_scripts": {
                    "type": "object",
                    "$ref": "#/definitions/SetupScriptsSchema"
                },
                "size": {
                    "title": "size",
                    "type": "string",
                    "arm_type": "computeInstanceVMSize"
                },
                "ssh_public_access_enabled": {
                    "title": "ssh_public_access_enabled",
                    "type": "boolean",
                    "default": null
                },
                "ssh_settings": {
                    "type": "object",
                    "$ref": "#/definitions/ComputeInstanceSshSettingsSchema"
                },
                "state": {
                    "title": "state",
                    "type": "string",
                    "readonly": true
                },
                "tags": {
                    "title": "tags",
                    "type": "object",
                    "additionalProperties": {
                        "title": "tags",
                        "type": "string"
                    }
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "computeinstance"
                    ],
                    "title": "type"
                }
            },
            "type": "object",
            "required": [
                "name",
                "type"
            ],
            "additionalProperties": false
        }
    },
    "$ref": "#/definitions/ComputeInstanceSchema"
}