openapi: 3.2.0 info: title: Graphiant Sites API version: 1.0.0 description: Graphiant API documentation. servers: - url: https://api.graphiant.com security: - jwtAuth: [] tags: - name: Sites paths: /v1/sites: post: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/v1SitesPostRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1SitesPostResponse' description: Create an enterprise site tags: - Sites get: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1SitesGetResponse' description: Get sites for the current enterprise tags: - Sites /v1/sites/{siteId}: delete: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: siteId in: path required: true description: '' schema: type: integer format: int64 example: 1234567891011 responses: '204': description: No Content description: Delete a site tags: - Sites post: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: siteId in: path required: true description: '' schema: type: integer format: int64 example: 1234567891011 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/v1SitesSiteIdPostRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1SitesSiteIdPostResponse' description: Update a site tags: - Sites /v1/sites/{siteId}/circuits: get: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: siteId in: path required: true description: '' schema: type: integer format: int64 example: 1234567891011 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1SitesSiteIdCircuitsGetResponse' description: Get Circuits for the site tags: - Sites /v1/sites/{siteId}/devices: get: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: siteId in: path required: true description: '' schema: type: integer format: int64 example: 12345678910 minimum: 0 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1SitesSiteIdDevicesGetResponse' description: Get Devices for the site tags: - Sites /v1/sites/details: get: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1SitesDetailsGetResponse' description: Get a list of sites with aggregated values and site wide status tags: - Sites /v1/sites/map/details: get: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: lanSegmentIds in: query description: '' required: false schema: type: array items: type: integer format: int64 example: 1234567891011 example: - 0 style: form explode: true - name: siteIds in: query description: '' required: false schema: type: array items: type: integer format: int64 example: 1234567891011 example: - 0 style: form explode: true - name: siteListIds in: query description: '' required: false schema: type: array items: type: integer format: int64 example: 1234567891011 example: - 0 style: form explode: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1SitesMapDetailsGetResponse' description: Per LAN segment (VRF), sites touched by that segment and device lists with/without the segment on each site tags: - Sites components: schemas: manaV2SiteDeviceStub: type: object properties: hostname: type: string example: example string id: type: integer format: int64 example: 1234567891011 additionalProperties: false v1SitesDetailsGetResponse: type: object properties: sites: type: array items: $ref: '#/components/schemas/manaV2Site' additionalProperties: false manaV2BgpMultipath: type: object properties: enabled: type: boolean example: true vrfId: type: integer format: int64 example: 1234567891011 additionalProperties: false v1SitesSiteIdDevicesGetResponse: type: object properties: device: type: array items: $ref: '#/components/schemas/manaV2topology_device' additionalProperties: false manaV2Site: type: object properties: address: type: string example: example string createdAt: $ref: '#/components/schemas/googleProtobufTimestamp' devices: type: array items: $ref: '#/components/schemas/manaV2SiteDeviceStub' edgeCount: type: integer format: int32 example: 123 minimum: 0 id: type: integer format: int64 example: 1234567891011 location: $ref: '#/components/schemas/manaV2Location' name: type: string example: example string notes: type: string example: example string policyReferenceCount: type: integer format: int32 example: 123 minimum: 0 policyTag: $ref: '#/components/schemas/manaV2SingleRouteTag' segmentCount: type: integer format: int32 example: 123 minimum: 0 siteListReferenceCount: type: integer format: int32 example: 123 minimum: 0 tags: type: array items: type: string example: example string updatedAt: $ref: '#/components/schemas/googleProtobufTimestamp' additionalProperties: false manaV2BfdNeighbor: type: object properties: desiredMinimumTxInterval: type: integer format: int32 example: 123 minimum: 0 ifIndex: type: integer format: int32 example: 123 minimum: 0 interface: type: string example: example string lastUpdated: $ref: '#/components/schemas/googleProtobufTimestamp' localDiag: type: string example: ENUM_VALUE peerAddress: type: string example: example string remoteDiag: type: string example: ENUM_VALUE requiredMinimumRxInterval: type: integer format: int32 example: 123 minimum: 0 segmentName: type: string example: example string sourceAddress: type: string example: example string state: type: string example: ENUM_VALUE timeInState: $ref: '#/components/schemas/googleProtobufDuration' up: type: boolean example: true additionalProperties: false manaV2StaticRouteNexthop: type: object properties: circuit: type: string example: example string id: type: integer format: int64 example: 1234567891011 metric: type: integer format: int32 example: 123 minimum: 0 nextHopAddress: type: string example: example string nexthop: type: string example: example string outgoingInterface: type: string example: example string thirdPartyIpsecTunnel: type: string example: example string additionalProperties: false v1SitesSiteIdCircuitsGetResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/v1SitesSiteIdCircuitsGetResponseData' additionalProperties: false v1SitesSiteIdCircuitsGetResponseData: type: object properties: circuits: type: array items: $ref: '#/components/schemas/manaV2Circuit' deviceId: type: integer format: int64 example: 12345678910 minimum: 0 additionalProperties: false manaV2LanSegmentSitesMap: type: object properties: siteIds: type: object additionalProperties: $ref: '#/components/schemas/manaV2SiteLanSegmentDeviceBuckets' siteListIds: type: object additionalProperties: $ref: '#/components/schemas/manaV2SiteLanSegmentDeviceBuckets' additionalProperties: false commonPageInfo: type: object properties: currentPage: type: integer format: int32 example: 1 minimum: 0 description: The page number we are currently on (required) endCursor: type: string example: xxxxxxy description: Cursor pointing to the last record on the current page hasNextPage: type: boolean example: true description: An indicator whether there is a page after this one in the resultset based on current position hasPrevPage: type: boolean example: true description: An indicator whether there is a page before this one in the resultset based on current position startCursor: type: string example: xxxxxx description: Cursor pointing to the first record on the current page totalPages: type: integer format: int32 example: 4 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 example: 400 minimum: 0 description: Describes the total number of records in the complete resultset (required) additionalProperties: false v1SitesSiteIdPostResponse: type: object properties: site: $ref: '#/components/schemas/manaV2Site' additionalProperties: false manaV2BgpAggregation: type: object properties: asSet: type: boolean example: true id: type: integer format: int64 example: 1234567891011 prefix: type: string example: example string summaryOnly: type: boolean example: true additionalProperties: false manaV2RouteTag: type: object properties: levelOne: type: string example: example string levelTwo: type: string example: example string levelZero: type: string example: example string additionalProperties: false manaV2SingleRouteTag: type: object properties: levelOne: $ref: '#/components/schemas/manaV2SingleRouteTagRouteTagElement' levelTwo: $ref: '#/components/schemas/manaV2SingleRouteTagRouteTagElement' levelZero: $ref: '#/components/schemas/manaV2SingleRouteTagRouteTagElement' additionalProperties: false googleProtobufTimestamp: type: object properties: nanos: type: integer format: int32 example: 123 seconds: type: integer format: int64 example: 1234567891011 additionalProperties: false manaV2topology_device: type: object properties: deviceId: type: integer format: int64 example: 12345678910 minimum: 0 hostname: type: string example: example string location: type: string example: example string maintenanceMode: type: boolean example: true managementIp: type: string example: example string model: type: string example: example string role: type: string example: ENUM_VALUE serialNumber: type: string example: example string siteId: type: integer format: int64 example: 12345678910 minimum: 0 softwareVersion: type: string example: example string stagingMode: type: boolean example: true uptime: $ref: '#/components/schemas/googleProtobufDuration' vrrpInterface: type: string example: example string vrrpState: type: string example: ENUM_VALUE additionalProperties: false manaV2Location: type: object properties: addressLine1: type: string example: example string addressLine2: type: string example: example string city: type: string example: example string country: type: string example: example string countryCode: type: string example: example string latitude: type: number format: double example: 123.45 longitude: type: number format: double example: 123.45 notes: type: string example: example string provinceCode: type: string example: example string state: type: string example: example string stateCode: type: string example: example string additionalProperties: false v1SitesPostRequest: type: object properties: enterpriseId: type: integer format: int64 example: 1234567891011 site: $ref: '#/components/schemas/manaV2NewSite' additionalProperties: false manaV2SingleRouteTagRouteTagElement: type: object properties: id: type: integer format: int64 example: 1234567891011 tag: type: string example: example string tagValue: type: integer format: int32 example: 123 additionalProperties: false manaV2BgpDynamicNeighborOperPeer: type: object properties: lastOperStatusChange: $ref: '#/components/schemas/googleProtobufTimestamp' localAddress: type: string example: example string description: Local address used for this peer session, if known from oper operStatus: type: boolean example: true description: True when the BGP session to this peer is operationally up (e.g. established) peerAsn: type: integer format: int32 example: 123 minimum: 0 description: Peer ASN from oper, if reported remoteAddress: type: string example: example string description: Peer address from device oper state (IPv4/IPv6; may include IPv6 zone id) state: type: string example: ENUM_VALUE description: BGP FSM state for this peer session additionalProperties: false manaV2BgpNeighborAddressFamily: type: object properties: addressFamily: type: string example: ENUM_VALUE id: type: integer format: int64 example: 1234567891011 inboundPolicy: type: string example: example string outboundPolicy: type: string example: example string additionalProperties: false manaV2SiteDeviceSummary: type: object properties: deviceId: type: integer format: int64 example: 12345678910 minimum: 0 hostname: type: string example: example string siteId: type: integer format: int64 example: 1234567891011 additionalProperties: false manaV2NullableSiteInterfaceName: type: object properties: interface: type: string example: example string additionalProperties: false manaV2BgpNeighbor: type: object properties: addressFamilies: type: array items: $ref: '#/components/schemas/manaV2BgpNeighborAddressFamily' allowAsIn: type: integer format: int32 example: 123 minimum: 0 asOverride: type: boolean example: true bfd: $ref: '#/components/schemas/manaV2BfdInstance' bfdNeighbor: $ref: '#/components/schemas/manaV2BfdNeighbor' bgpType: type: string example: ENUM_VALUE defaultOriginate: type: string example: ENUM_VALUE description: Set when default route needs to be advertised in BGP domain dynamicNeighborPeers: type: array items: $ref: '#/components/schemas/manaV2BgpDynamicNeighborOperPeer' enabled: type: boolean example: true holdTimer: type: integer format: int32 example: 123 minimum: 0 id: type: integer format: int64 example: 1234567891011 keepaliveTimer: type: integer format: int32 example: 123 minimum: 0 localAddress: type: string example: example string localInterface: type: string example: example string maxPrefix: type: integer format: int32 example: 10000 minimum: 0 description: Maximum number of prefixes that can be received from neighbor md5Password: type: string example: example string multiHop: type: integer format: int32 example: 5 minimum: 0 description: Set when EBGP multi-hop functionality is enabled peerAsn: type: integer format: int32 example: 123 minimum: 0 remoteAddress: type: string example: example string removePrivateAs: type: boolean example: true sendCommunity: type: boolean example: true description: Flag for sending standard, extended, and large communities state: type: string example: ENUM_VALUE timeSinceLastOperChange: $ref: '#/components/schemas/googleProtobufDuration' up: type: boolean example: true additionalProperties: false manaV2BgpRedistribute: type: object properties: bgp: type: boolean example: true connected: type: boolean example: true dia: type: boolean example: true ospfv2: type: boolean example: true static: type: boolean example: true additionalProperties: false manaV2NewSite: type: object properties: globalPrefixSetOps: type: object additionalProperties: type: string example: ENUM_VALUE ipfixExporterOps: type: object additionalProperties: type: string example: ENUM_VALUE ipfixExporterOpsV2: type: object additionalProperties: $ref: '#/components/schemas/manaV2GlobalObjectOperationConfig' location: $ref: '#/components/schemas/manaV2Location' name: type: string example: example string notes: type: string example: example string ntpOps: type: object additionalProperties: type: string example: ENUM_VALUE prefixSetOps: type: object additionalProperties: type: string example: ENUM_VALUE routeTag: $ref: '#/components/schemas/manaV2RouteTag' routingPolicyOps: type: object additionalProperties: type: string example: ENUM_VALUE snmpOps: type: object additionalProperties: type: string example: ENUM_VALUE syslogServerOps: type: object additionalProperties: type: string example: ENUM_VALUE syslogServerOpsV2: type: object additionalProperties: $ref: '#/components/schemas/manaV2GlobalObjectOperationConfig' trafficPolicyOps: type: object additionalProperties: type: string example: ENUM_VALUE additionalProperties: false manaV2QoSProfileQueue: type: object properties: bandwidthPercent: type: integer format: int32 example: 123 minimum: 0 defaultQueue: type: boolean example: true slaClass: type: string example: ENUM_VALUE additionalProperties: false manaV2StaticRoute: type: object properties: administrativeDistance: type: integer format: int32 example: 123 minimum: 0 description: type: string example: example string id: type: integer format: int64 example: 1234567891011 nextHop: $ref: '#/components/schemas/manaV2StaticRouteNexthop' nextHops: type: array items: $ref: '#/components/schemas/manaV2StaticRouteNexthop' prefix: type: string example: example string additionalProperties: false manaV2SiteLanSegmentDeviceBuckets: type: object properties: lanSegmentExists: type: array items: $ref: '#/components/schemas/manaV2SiteDeviceSummary' lanSegmentMissing: type: array items: $ref: '#/components/schemas/manaV2SiteDeviceSummary' additionalProperties: false manaV2GlobalObjectOperationConfig: type: object properties: interface: $ref: '#/components/schemas/manaV2NullableSiteInterfaceName' operation: type: string example: ENUM_VALUE additionalProperties: false manaV2CircuitInterface: type: object properties: adminStatus: type: boolean example: true id: type: integer format: int64 example: 1234567891011 index: type: integer format: int64 example: 1234567891011 name: type: string example: example string operStatus: type: boolean example: true additionalProperties: false v1SitesMapDetailsGetResponse: type: object properties: lanSegmentIds: type: object additionalProperties: $ref: '#/components/schemas/manaV2LanSegmentSitesMap' additionalProperties: false manaV2QoSProfile: type: object properties: kind: type: string example: ENUM_VALUE profile: type: string example: ENUM_VALUE queues: type: array items: $ref: '#/components/schemas/manaV2QoSProfileQueue' additionalProperties: false manaV2Circuit: type: object properties: bgpAggregations: type: array items: $ref: '#/components/schemas/manaV2BgpAggregation' bgpMultipath: $ref: '#/components/schemas/manaV2BgpMultipath' bgpNeighbors: type: array items: $ref: '#/components/schemas/manaV2BgpNeighbor' bgpRedistributions: $ref: '#/components/schemas/manaV2BgpRedistribute' carrier: type: string example: example string circuitType: type: string example: ENUM_VALUE connectionType: type: string example: ENUM_VALUE coreLogicalInterfacesV2: type: array items: $ref: '#/components/schemas/manaV2CircuitInterface' description: type: string example: example string diaEnabled: type: boolean example: true diaSnmpIndex: type: integer format: int64 example: 1234567891011 discoveredPublicIp: type: string example: example string dropMechanism: type: string example: ENUM_VALUE id: type: integer format: int64 example: 1234567891011 interfaceName: type: string example: example string label: type: string example: ENUM_VALUE lastResort: type: boolean example: true linkDownSpeedMbps: type: integer format: int32 example: 123 minimum: 0 linkUpSpeedMbps: type: integer format: int32 example: 123 minimum: 0 loopback: type: boolean example: true name: type: string example: example string patAddresses: type: array items: type: string example: example string privateIp: type: string example: example string profile: $ref: '#/components/schemas/manaV2QoSProfile' qosProfile: type: string example: ENUM_VALUE qosProfileType: type: string example: ENUM_VALUE snmpIndex: type: integer format: int64 example: 1234567891011 staticRoutes: type: array items: $ref: '#/components/schemas/manaV2StaticRoute' wanInterfaceV2: $ref: '#/components/schemas/manaV2CircuitInterface' additionalProperties: false v1SitesSiteIdPostRequest: type: object properties: site: $ref: '#/components/schemas/manaV2NewSite' additionalProperties: false googleProtobufDuration: type: object properties: nanos: type: integer format: int32 example: 123 seconds: type: integer format: int64 example: 1234567891011 additionalProperties: false manaV2BfdInstance: type: object properties: enabled: type: boolean example: true minimumInterval: type: integer format: int32 example: 123 minimum: 0 multiplier: type: integer format: int32 example: 123 minimum: 0 additionalProperties: false v1SitesGetResponse: type: object properties: pageInfo: $ref: '#/components/schemas/commonPageInfo' sites: type: array items: $ref: '#/components/schemas/manaV2Site' additionalProperties: false v1SitesPostResponse: type: object properties: site: $ref: '#/components/schemas/manaV2Site' additionalProperties: false securitySchemes: jwtAuth: type: apiKey in: header name: authorization description: Use `Bearer `