{
  "description": "CustomMachine represents an unmanaged CAPI\nmachine registered to a Rancher custom cluster.",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "Spec represents the desired configuration of the machine.",
      "properties": {
        "providerID": {
          "description": "ProviderID is a reference to the CAPI Node object corresponding to\nthis machine. This field is automatically set by CAPI during the\nmachine provisioning process.",
          "nullable": true,
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "Status represents the most recently observed status of the machine.",
      "properties": {
        "addresses": {
          "description": "Addresses contains the associated addresses for the machine.",
          "items": {
            "description": "MachineAddress contains information for the node's address.",
            "properties": {
              "address": {
                "description": "address is the machine address.",
                "maxLength": 256,
                "minLength": 1,
                "type": "string"
              },
              "type": {
                "description": "type is the machine address type, one of Hostname, ExternalIP, InternalIP, ExternalDNS or InternalDNS.",
                "enum": [
                  "Hostname",
                  "ExternalIP",
                  "InternalIP",
                  "ExternalDNS",
                  "InternalDNS"
                ],
                "type": "string"
              }
            },
            "required": [
              "address",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "conditions": {
          "description": "Conditions is a representation of the current state of the machine.",
          "items": {
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "type": "string"
              },
              "lastUpdateTime": {
                "description": "The last time this condition was updated.",
                "type": "string"
              },
              "message": {
                "description": "Human-readable message indicating details about last transition",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type of cluster condition.",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "ready": {
          "description": "Ready indicates that the machine infrastructure is fully provisioned,\nand is a requirement of the Cluster API contract. The value of this\nfield is never updated after provisioning has completed.\nPlease use Conditions to determine the current state of the machine.",
          "type": "boolean"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
