openapi: 3.2.0 info: title: Graphiant Enterprises API version: 1.0.0 description: Graphiant API documentation. servers: - url: https://api.graphiant.com security: - jwtAuth: [] tags: - name: Enterprises paths: /v1/enterprises/eula: 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/v1EnterprisesEulaPostRequest' responses: '204': description: No Content description: Accept End User License Agreement for the enterprise. tags: - Enterprises /v1/enterprises: put: 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/v1EnterprisesPutRequest' responses: '204': description: No Content description: Create a new enterprise with company details, account type, and admin user. MSP callers creating a managed enterprise supply pool credit allocation fields (allocated_credits and optional term end). tags: - Enterprises get: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: enterpriseIds in: query description: Lists enterprises 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/v1EnterprisesGetResponse' description: Get specific enterprises by their IDs with detailed information. Query just your own enterprise Id for more detailed info. tags: - Enterprises patch: 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/v1EnterprisesPatchRequest' responses: '204': description: No Content description: Updates all relevent enterprise information. tags: - Enterprises /v1/enterprises/{enterpriseId}: delete: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: enterpriseId in: path required: true description: '' schema: type: integer format: int64 example: 1234567891011 responses: '204': description: No Content description: Delete a specific enterprise by ID (you must manage this tenant). tags: - Enterprises /v1/enterprises/{enterpriseId}/admin: get: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: enterpriseId in: path required: true description: '' schema: type: integer format: int64 example: 1234567891011 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1EnterprisesEnterpriseIdAdminGetResponse' description: Get the admin account for an enterprise. tags: - Enterprises /v1/enterprises/managed: get: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: type in: query description: msp or enterprise required: true schema: type: string example: ENUM_VALUE responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1EnterprisesManagedGetResponse' description: Get enterprises managed by your tenant, filtered by enterprise type. For MSP-managed enterprises, responses include MSP pool fields such as allocated_credits and credit_allocation_contract_expiration when applicable. tags: - Enterprises /v1/enterprises/{enterpriseId}/device-status: get: security: - jwtAuth: [] parameters: - in: header name: Authorization required: true schema: type: string description: 'Bearer token. Format: Bearer ' - name: enterpriseId in: path required: true description: '' schema: type: integer format: int64 example: 12345678910 minimum: 0 - name: role in: query description: '' required: false schema: type: string example: ENUM_VALUE responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1EnterprisesEnterpriseIdDeviceStatusGetResponse' tags: - Enterprises components: schemas: v1EnterprisesManagedGetResponse: type: object properties: counts: $ref: '#/components/schemas/iamCounts' enterprises: type: array items: $ref: '#/components/schemas/iamEnterprise' additionalProperties: false v1EnterprisesEulaPostRequest: type: object properties: {} additionalProperties: false v1EnterprisesGetResponse: type: object properties: enterprises: type: array items: $ref: '#/components/schemas/iamEnterprise' additionalProperties: false v1EnterprisesPatchRequest: type: object properties: adminEmail: type: string example: example string cloudProvider: type: string example: ENUM_VALUE companyName: type: string example: example string creditLimit: type: integer format: int32 example: 123 description: type: string example: example string enterpriseContract: $ref: '#/components/schemas/commonBillingContract' enterpriseId: type: integer format: int64 example: 1234567891011 description: ' (required)' impersonationEnabled: type: boolean example: true logo: type: string example: example string marketplaceId: type: string example: example string portalBanner: type: string example: example string proxyTenantId: type: integer format: int64 example: 1234567891011 smallLogo: type: string example: example string tokenExpiry: $ref: '#/components/schemas/v1EnterprisesPatchRequestTokenExpiry' additionalProperties: false required: - enterpriseId googleProtobufTimestamp: type: object properties: nanos: type: integer format: int32 example: 123 seconds: type: integer format: int64 example: 1234567891011 additionalProperties: false iamEnterprise: type: object properties: acceptEula: type: boolean example: true accountType: type: string example: ENUM_VALUE adminEmail: type: string example: example string cloudProvider: type: string example: ENUM_VALUE companyName: type: string example: example string counts: $ref: '#/components/schemas/iamCounts' creditLimit: type: integer format: int32 example: 123 customers: type: object additionalProperties: $ref: '#/components/schemas/iamCustomer' description: type: string example: example string enterpriseId: type: integer format: int64 example: 1234567891011 eulaAgreementDate: $ref: '#/components/schemas/googleProtobufTimestamp' impersonationEnabled: type: boolean example: true logo: type: string example: example string marketplaceId: type: string example: example string parentCompanyName: type: string example: example string parentEnterpriseId: type: integer format: int64 example: 1234567891011 portalBanner: type: string example: example string proxyTenantId: type: integer format: int64 example: 1234567891011 smallLogo: type: string example: example string tokenExpiry: type: string example: example string additionalProperties: false v1EnterprisesEnterpriseIdAdminGetResponse: type: object properties: adminEmail: type: string example: example string additionalProperties: false iamCounts: type: object properties: activeDownCount: type: integer format: int64 example: 1234567891011 activeUpCount: type: integer format: int64 example: 1234567891011 deactivatedDownCount: type: integer format: int64 example: 1234567891011 downSitesCount: type: integer format: int64 example: 1234567891011 emptySitesCount: type: integer format: int64 example: 1234567891011 impairedSitesCount: type: integer format: int64 example: 1234567891011 stagingDownCount: type: integer format: int64 example: 1234567891011 stagingUpCount: type: integer format: int64 example: 1234567891011 totalCustomers: type: integer format: int64 example: 1234567891011 totalEdges: type: integer format: int64 example: 1234567891011 totalMsps: type: integer format: int64 example: 1234567891011 totalSites: type: integer format: int64 example: 1234567891011 upSitesCount: type: integer format: int64 example: 1234567891011 additionalProperties: false v1EnterprisesEnterpriseIdDeviceStatusGetResponse: type: object properties: mappings: type: array items: $ref: '#/components/schemas/pokedexDeviceMappingInfo' additionalProperties: false commonBillingTimePeriod: type: object properties: month: type: integer format: int32 example: 123 year: type: integer format: int32 example: 123 additionalProperties: false v1EnterprisesPutRequest: type: object properties: accountType: type: string example: ENUM_VALUE description: ' (required)' adminEmail: type: string example: example string adminFirstName: type: string example: example string adminLastName: type: string example: example string adminTimeZone: type: string example: example string cloudProvider: type: string example: ENUM_VALUE companyName: type: string example: example string description: ' (required)' creditLimit: type: integer format: int32 example: 123 description: type: string example: example string enterpriseContract: $ref: '#/components/schemas/commonBillingContract' logo: type: string example: example string marketplaceId: type: string example: example string smallLogo: type: string example: example string additionalProperties: false required: - accountType - companyName - enterpriseContract pokedexDeviceMappingInfo: type: object properties: connectTime: $ref: '#/components/schemas/googleProtobufTimestamp' deviceId: type: integer format: int64 example: 12345678910 minimum: 0 enterpriseId: type: integer format: int64 example: 12345678910 minimum: 0 hostname: type: string example: example string ipaddress: type: string example: example string ttIdentity: type: string example: example string additionalProperties: false iamCustomer: type: object properties: adminEmail: type: string example: example string companyName: type: string example: example string counts: $ref: '#/components/schemas/iamCounts' description: type: string example: example string enterpriseId: type: integer format: int64 example: 1234567891011 impersonationEnabled: type: boolean example: true marketplaceId: type: string example: example string additionalProperties: false commonBillingContract: type: object properties: contractedCredits: type: number format: float example: 12.34 description: Number of credits agreed upon for the entirety of the current contract expirationDate: $ref: '#/components/schemas/commonBillingTimePeriod' additionalProperties: false v1EnterprisesPatchRequestTokenExpiry: type: object properties: length: type: integer format: int32 example: 123 timeUnit: type: string example: ENUM_VALUE additionalProperties: false securitySchemes: jwtAuth: type: apiKey in: header name: authorization description: Use `Bearer `