{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-service-fabric/json-schema/microsoft-azure-service-fabric-node-info-schema.json",
  "title": "NodeInfo",
  "description": "Information about a node in Service Fabric cluster.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-service-fabric-client-api-openapi.yml#/components/schemas/NodeInfo",
  "properties": {
    "Name": {
      "$ref": "#/$defs/NodeName"
    },
    "IpAddressOrFQDN": {
      "type": "string",
      "description": "The IP address or fully qualified domain name of the node."
    },
    "Type": {
      "type": "string",
      "description": "The type of the node."
    },
    "CodeVersion": {
      "type": "string",
      "description": "The version of Service Fabric binaries that the node is running."
    },
    "ConfigVersion": {
      "type": "string",
      "description": "The version of Service Fabric cluster manifest that the node is using."
    },
    "NodeStatus": {
      "$ref": "#/$defs/NodeStatus"
    },
    "NodeUpTimeInSeconds": {
      "type": "string",
      "description": "Time in seconds since the node has been in NodeStatus Up. Value zero indicates that the node is not Up."
    },
    "HealthState": {
      "$ref": "#/$defs/HealthState"
    },
    "IsSeedNode": {
      "type": "boolean",
      "description": "Indicates if the node is a seed node or not. Returns true if the node is a seed node, otherwise false. A quorum of seed nodes are required for proper operation of Service Fabric cluster."
    },
    "UpgradeDomain": {
      "type": "string",
      "description": "The upgrade domain of the node."
    },
    "FaultDomain": {
      "type": "string",
      "description": "The fault domain of the node."
    },
    "Id": {
      "$ref": "#/$defs/NodeId"
    },
    "InstanceId": {
      "type": "string",
      "description": "The ID representing the node instance. While the ID of the node is deterministically generated from the node name and remains same across restarts, the InstanceId changes every time node restarts."
    },
    "NodeDeactivationInfo": {
      "$ref": "#/$defs/NodeDeactivationInfo"
    },
    "IsStopped": {
      "type": "boolean",
      "description": "Indicates if the node is stopped by calling stop node API or not. Returns true if the node is stopped, otherwise false."
    },
    "NodeDownTimeInSeconds": {
      "type": "string",
      "description": "Time in seconds since the node has been in NodeStatus Down. Value zero indicates node is not NodeStatus Down."
    },
    "NodeUpAt": {
      "type": "string",
      "format": "date-time",
      "description": "Date time in UTC when the node came up. If the node has never been up then this value will be zero date time."
    },
    "NodeDownAt": {
      "type": "string",
      "format": "date-time",
      "description": "Date time in UTC when the node went down. If node has never been down then this value will be zero date time."
    },
    "NodeTags": {
      "$ref": "#/$defs/NodeTagsList"
    },
    "IsNodeByNodeUpgradeInProgress": {
      "type": "boolean",
      "description": "Indicates if a node-by-node upgrade is currently being performed on this node."
    },
    "InfrastructurePlacementID": {
      "type": "string",
      "description": "PlacementID used by the InfrastructureService."
    }
  },
  "$defs": {
    "HealthState": {
      "type": "string",
      "description": "The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc.",
      "enum": [
        "Invalid",
        "Ok",
        "Warning",
        "Error",
        "Unknown"
      ],
      "x-ms-enum": {
        "name": "HealthState",
        "modelAsString": true,
        "values": [
          {
            "value": "Invalid",
            "description": "Indicates an invalid health state. All Service Fabric enumerations have the invalid type. The value is zero."
          },
          {
            "value": "Ok",
            "description": "Indicates the health state is okay. The value is 1."
          },
          {
            "value": "Warning",
            "description": "Indicates the health state is at a warning level. The value is 2."
          },
          {
            "value": "Error",
            "description": "Indicates the health state is at an error level. Error health state should be investigated, as they can impact the correct functionality of the cluster. The value is 3."
          },
          {
            "value": "Unknown",
            "description": "Indicates an unknown health status. The value is 65535."
          }
        ]
      }
    },
    "NodeDeactivationInfo": {
      "description": "Information about the node deactivation. This information is valid for a node that is undergoing deactivation or has already been deactivated.",
      "properties": {
        "NodeDeactivationIntent": {
          "$ref": "#/$defs/NodeDeactivationIntent"
        },
        "NodeDeactivationStatus": {
          "$ref": "#/$defs/NodeDeactivationStatus"
        },
        "NodeDeactivationTask": {
          "$ref": "#/$defs/NodeDeactivationTaskList"
        },
        "PendingSafetyChecks": {
          "$ref": "#/$defs/SafetyCheckInfoList"
        }
      }
    },
    "NodeDeactivationIntent": {
      "type": "string",
      "description": "The intent or the reason for deactivating the node. Following are the possible values for it.",
      "enum": [
        "Invalid",
        "Pause",
        "Restart",
        "RemoveData",
        "RemoveNode"
      ],
      "x-ms-enum": {
        "name": "NodeDeactivationIntent",
        "modelAsString": true,
        "values": [
          {
            "value": "Invalid",
            "description": "Indicates the node deactivation intent is invalid. All Service Fabric enumerations have the invalid type. The value is zero. This value is not used."
          },
          {
            "value": "Pause",
            "description": "Indicates that the node should be paused. The value is 1."
          },
          {
            "value": "Restart",
            "description": "Indicates that the intent is for the node to be restarted after a short period of time. Service Fabric does not restart the node, this action is done outside of Service Fabric. The value is 2."
          },
          {
            "value": "RemoveData",
            "description": "Indicates that the intent is to reimage the node. Service Fabric does not reimage the node, this action is done outside of Service Fabric. The value is 3."
          },
          {
            "value": "RemoveNode",
            "description": "Indicates that the node is being decommissioned and is not expected to return. Service Fabric does not decommission the node, this action is done outside of Service Fabric. The value is 4."
          }
        ]
      }
    },
    "NodeDeactivationStatus": {
      "type": "string",
      "description": "The status of node deactivation operation. Following are the possible values.",
      "enum": [
        "None",
        "SafetyCheckInProgress",
        "SafetyCheckComplete",
        "Completed"
      ],
      "x-ms-enum": {
        "name": "NodeDeactivationStatus",
        "modelAsString": true,
        "values": [
          {
            "value": "None",
            "description": "No status is associated with the task. The value is zero."
          },
          {
            "value": "SafetyCheckInProgress",
            "description": "When a node is deactivated Service Fabric performs checks to ensure that the operation is safe to proceed to ensure availability of the service and reliability of the state. This value indicates that one or more safety checks are in progress. The value is 1."
          },
          {
            "value": "SafetyCheckComplete",
            "description": "When a node is deactivated Service Fabric performs checks to ensure that the operation is safe to proceed to ensure availability of the service and reliability of the state. This value indicates that all safety checks have been completed. The value is 2."
          },
          {
            "value": "Completed",
            "description": "The task is completed. The value is 3."
          }
        ]
      }
    },
    "NodeDeactivationTask": {
      "description": "The task representing the deactivation operation on the node.",
      "properties": {
        "NodeDeactivationTaskId": {
          "$ref": "#/$defs/NodeDeactivationTaskId"
        },
        "NodeDeactivationIntent": {
          "$ref": "#/$defs/NodeDeactivationIntent"
        }
      }
    },
    "NodeDeactivationTaskId": {
      "description": "Identity of the task related to deactivation operation on the node.",
      "properties": {
        "Id": {
          "type": "string",
          "description": "Value of the task id."
        },
        "NodeDeactivationTaskType": {
          "$ref": "#/$defs/NodeDeactivationTaskType"
        }
      }
    },
    "NodeDeactivationTaskList": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/NodeDeactivationTask"
      },
      "description": "List of tasks representing the deactivation operation on the node."
    },
    "NodeDeactivationTaskType": {
      "type": "string",
      "description": "The type of the task that performed the node deactivation. Following are the possible values.",
      "enum": [
        "Invalid",
        "Infrastructure",
        "Repair",
        "Client"
      ],
      "x-ms-enum": {
        "name": "NodeDeactivationTaskType",
        "modelAsString": true,
        "values": [
          {
            "value": "Invalid",
            "description": "Indicates the node deactivation task type is invalid. All Service Fabric enumerations have the invalid type. The value is zero. This value is not used."
          },
          {
            "value": "Infrastructure",
            "description": "Specifies the task created by Infrastructure hosting the nodes. The value is 1."
          },
          {
            "value": "Repair",
            "description": "Specifies the task that was created by the Repair Manager service. The value is 2."
          },
          {
            "value": "Client",
            "description": "Specifies that the task was created by using the public API. The value is 3."
          }
        ]
      }
    },
    "NodeId": {
      "description": "An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name.",
      "properties": {
        "Id": {
          "type": "string",
          "description": "Value of the node Id. This is a 128 bit integer."
        }
      }
    },
    "NodeName": {
      "type": "string",
      "description": "The name of a Service Fabric node."
    },
    "NodeStatus": {
      "type": "string",
      "description": "The status of the node.",
      "enum": [
        "Invalid",
        "Up",
        "Down",
        "Enabling",
        "Disabling",
        "Disabled",
        "Unknown",
        "Removed"
      ],
      "x-ms-enum": {
        "name": "NodeStatus",
        "modelAsString": true,
        "values": [
          {
            "value": "Invalid",
            "description": "Indicates the node status is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
          },
          {
            "value": "Up",
            "description": "Indicates the node is up. The value is 1."
          },
          {
            "value": "Down",
            "description": "Indicates the node is down. The value is 2."
          },
          {
            "value": "Enabling",
            "description": "Indicates the node is in process of being enabled. The value is 3."
          },
          {
            "value": "Disabling",
            "description": "Indicates the node is in the process of being disabled. The value is 4."
          },
          {
            "value": "Disabled",
            "description": "Indicates the node is disabled. The value is 5."
          },
          {
            "value": "Unknown",
            "description": "Indicates the node is unknown. A node would be in Unknown state if Service Fabric does not have authoritative information about that node. This can happen if the system learns about a node at runtime.The value is 6."
          },
          {
            "value": "Removed",
            "description": "Indicates the node is removed. A node would be in Removed state if NodeStateRemoved API has been called for this node. In other words, Service Fabric has been informed that the persisted state on the node has been permanently lost. The value is 7."
          }
        ]
      }
    },
    "NodeTagsList": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List that contains tags, which will be applied to the nodes."
    },
    "SafetyCheck": {
      "description": "Represents a safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state.",
      "properties": {
        "Kind": {
          "$ref": "#/$defs/SafetyCheckKind"
        }
      },
      "required": [
        "Kind"
      ]
    },
    "SafetyCheckInfoList": {
      "type": "array",
      "description": "List of pending safety checks",
      "items": {
        "$ref": "#/$defs/SafetyCheckWrapper"
      }
    },
    "SafetyCheckKind": {
      "type": "string",
      "description": "The kind of safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state. Following are the kinds of safety checks.",
      "enum": [
        "Invalid",
        "EnsureSeedNodeQuorum",
        "EnsurePartitionQuorum",
        "WaitForPrimaryPlacement",
        "WaitForPrimarySwap",
        "WaitForReconfiguration",
        "WaitForInbuildReplica",
        "EnsureAvailability"
      ],
      "x-ms-enum": {
        "name": "SafetyCheckKind",
        "modelAsString": true,
        "values": [
          {
            "value": "Invalid",
            "description": "Indicates that the upgrade safety check kind is invalid. All Service Fabric enumerations have the invalid type. The value is zero."
          },
          {
            "value": "EnsureSeedNodeQuorum",
            "description": "Indicates that if we bring down the node then this will result in global seed node quorum loss. The value is 1."
          },
          {
            "value": "EnsurePartitionQuorum",
            "description": "Indicates that there is some partition for which if we bring down the replica on the node, it will result in quorum loss for that partition. The value is 2."
          },
          {
            "value": "WaitForPrimaryPlacement",
            "description": "Indicates that there is some replica on the node that was moved out of this node due to upgrade. Service Fabric is now waiting for the primary to be moved back to this node. The value is 3."
          },
          {
            "value": "WaitForPrimarySwap",
            "description": "Indicates that Service Fabric is waiting for a primary replica to be moved out of the node before starting upgrade on that node. The value is 4."
          },
          {
            "value": "WaitForReconfiguration",
            "description": "Indicates that there is some replica on the node that is involved in a reconfiguration. Service Fabric is waiting for the reconfiguration to be complete before staring upgrade on that node. The value is 5."
          },
          {
            "value": "WaitForInbuildReplica",
            "description": "Indicates that there is either a replica on the node that is going through copy, or there is a primary replica on the node that is copying data to some other replica. In both cases, bringing down the replica on the node due to upgrade will abort the copy. The value is 6."
          },
          {
            "value": "EnsureAvailability",
            "description": "Indicates that there is either a stateless service partition on the node having exactly one instance, or there is a primary replica on the node for which the partition is quorum loss. In both cases, bringing down the replicas due to upgrade will result in loss of availability. The value is 7."
          }
        ]
      }
    },
    "SafetyCheckWrapper": {
      "description": "A wrapper for the safety check object. Safety checks are performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state.",
      "properties": {
        "SafetyCheck": {
          "$ref": "#/$defs/SafetyCheck"
        }
      }
    }
  }
}