{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/graphiant/main/json-schema/graphiant-v1-sites-get-response-schema.json",
  "title": "v1SitesGetResponse",
  "x-generated": "2026-10-20",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/graphiant-sites-api-openapi.yml#/components/schemas/v1SitesGetResponse",
  "type": "object",
  "properties": {
    "pageInfo": {
      "$ref": "#/$defs/commonPageInfo"
    },
    "sites": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/manaV2Site"
      }
    }
  },
  "additionalProperties": false,
  "$defs": {
    "commonPageInfo": {
      "type": "object",
      "properties": {
        "currentPage": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "description": "The page number we are currently on (required)"
        },
        "endCursor": {
          "type": "string",
          "description": "Cursor pointing to the last record on the current page"
        },
        "hasNextPage": {
          "type": "boolean",
          "description": "An indicator whether there is a page after this one in the resultset based on current position"
        },
        "hasPrevPage": {
          "type": "boolean",
          "description": "An indicator whether there is a page before this one in the resultset based on current position"
        },
        "startCursor": {
          "type": "string",
          "description": "Cursor pointing to the first record on the current page"
        },
        "totalPages": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "description": "The number of pages in the complete resultset based on the current length of the page (required)"
        },
        "totalRecords": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "description": "Describes the total number of records in the complete resultset (required)"
        }
      },
      "additionalProperties": false
    },
    "googleProtobufTimestamp": {
      "type": "object",
      "properties": {
        "nanos": {
          "type": "integer",
          "format": "int32"
        },
        "seconds": {
          "type": "integer",
          "format": "int64"
        }
      },
      "additionalProperties": false
    },
    "manaV2Location": {
      "type": "object",
      "properties": {
        "addressLine1": {
          "type": "string"
        },
        "addressLine2": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "latitude": {
          "type": "number",
          "format": "double"
        },
        "longitude": {
          "type": "number",
          "format": "double"
        },
        "notes": {
          "type": "string"
        },
        "provinceCode": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "stateCode": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "manaV2SingleRouteTag": {
      "type": "object",
      "properties": {
        "levelOne": {
          "$ref": "#/$defs/manaV2SingleRouteTagRouteTagElement"
        },
        "levelTwo": {
          "$ref": "#/$defs/manaV2SingleRouteTagRouteTagElement"
        },
        "levelZero": {
          "$ref": "#/$defs/manaV2SingleRouteTagRouteTagElement"
        }
      },
      "additionalProperties": false
    },
    "manaV2SingleRouteTagRouteTagElement": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "tag": {
          "type": "string"
        },
        "tagValue": {
          "type": "integer",
          "format": "int32"
        }
      },
      "additionalProperties": false
    },
    "manaV2Site": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string"
        },
        "createdAt": {
          "$ref": "#/$defs/googleProtobufTimestamp"
        },
        "devices": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/manaV2SiteDeviceStub"
          }
        },
        "edgeCount": {
          "type": "integer",
          "format": "int32",
          "minimum": 0
        },
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "location": {
          "$ref": "#/$defs/manaV2Location"
        },
        "name": {
          "type": "string"
        },
        "notes": {
          "type": "string"
        },
        "policyReferenceCount": {
          "type": "integer",
          "format": "int32",
          "minimum": 0
        },
        "policyTag": {
          "$ref": "#/$defs/manaV2SingleRouteTag"
        },
        "segmentCount": {
          "type": "integer",
          "format": "int32",
          "minimum": 0
        },
        "siteListReferenceCount": {
          "type": "integer",
          "format": "int32",
          "minimum": 0
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "updatedAt": {
          "$ref": "#/$defs/googleProtobufTimestamp"
        }
      },
      "additionalProperties": false
    },
    "manaV2SiteDeviceStub": {
      "type": "object",
      "properties": {
        "hostname": {
          "type": "string"
        },
        "id": {
          "type": "integer",
          "format": "int64"
        }
      },
      "additionalProperties": false
    }
  }
}