import { FromSchema } from 'json-schema-to-ts'; export const instanceAdminStatsSchema = { $id: '#/components/schemas/instanceAdminStatsSchema', type: 'object', additionalProperties: false, description: 'Information about an instance and statistics about usage of various features of Unleash', required: ['instanceId'], properties: { instanceId: { type: 'string', description: 'A unique identifier for this instance. Generated by the database migration scripts at first run. Typically a UUID.', example: 'ed3861ae-78f9-4e8c-8e57-b57efc15f82b', }, timestamp: { type: 'string', format: 'date-time', nullable: true, description: 'When these statistics were produced', example: '2023-06-12T12:25:06Z', }, versionOSS: { type: 'string', description: 'The version of Unleash OSS that is bundled in this instance', example: '5.1.7', }, versionEnterprise: { type: 'string', description: 'The version of Unleash Enterprise that is bundled in this instance', example: '5.1.7', }, users: { type: 'number', description: 'The number of users this instance has', example: 8, minimum: 0, }, activeUsers: { type: 'object', description: 'The number of active users in the last 7, 30 and 90 days', properties: { last7: { type: 'number', description: 'The number of active users in the last 7 days', example: 5, minimum: 0, }, last30: { type: 'number', description: 'The number of active users in the last 30 days', example: 10, minimum: 0, }, last60: { type: 'number', description: 'The number of active users in the last 60 days', example: 12, minimum: 0, }, last90: { type: 'number', description: 'The number of active users in the last 90 days', example: 15, minimum: 0, }, }, }, productionChanges: { type: 'object', description: 'The number of changes to the production environment in the last 30, 60 and 90 days', properties: { last30: { type: 'number', description: 'The number of changes in production in the last 30 days', example: 10, minimum: 0, }, last60: { type: 'number', description: 'The number of changes in production in the last 60 days', example: 12, minimum: 0, }, last90: { type: 'number', description: 'The number of changes in production in the last 90 days', example: 15, minimum: 0, }, }, }, featureToggles: { type: 'number', description: 'The number of feature-toggles this instance has', example: 47, minimum: 0, }, projects: { type: 'number', description: 'The number of projects defined in this instance.', example: 3, minimum: 0, }, contextFields: { type: 'number', description: 'The number of context fields defined in this instance.', example: 7, minimum: 0, }, roles: { type: 'number', description: 'The number of roles defined in this instance', example: 5, minimum: 0, }, groups: { type: 'number', description: 'The number of groups defined in this instance', example: 12, minimum: 0, }, environments: { type: 'number', description: 'The number of environments defined in this instance', example: 3, minimum: 0, }, segments: { type: 'number', description: 'The number of segments defined in this instance', example: 19, minimum: 0, }, strategies: { type: 'number', description: 'The number of strategies defined in this instance', example: 8, minimum: 0, }, SAMLenabled: { type: 'boolean', description: 'Whether or not SAML authentication is enabled for this instance', example: false, }, OIDCenabled: { type: 'boolean', description: 'Whether or not OIDC authentication is enabled for this instance', example: true, }, clientApps: { type: 'array', description: 'A count of connected applications in the last week, last month and all time since last restart', items: { type: 'object', description: 'An entry describing how many client applications has been observed over the defined range', properties: { range: { type: 'string', description: 'A description of a time range', enum: ['allTime', '30d', '7d'], example: '30d', }, count: { type: 'number', description: 'The number of client applications that have been observed in this period', example: 1, }, }, }, }, featureExports: { type: 'number', description: 'The number of export operations on this instance', example: 0, minimum: 0, }, featureImports: { type: 'number', description: 'The number of import operations on this instance', example: 0, minimum: 0, }, sum: { type: 'string', description: 'A SHA-256 checksum of the instance statistics to be used to verify that the data in this object has not been tampered with', example: 'b023323477abb1eb145bebf3cdb30a1c2063e3edc1f7ae474ed8ed6c80de9a3b', }, }, components: {}, } as const; export type InstanceAdminStatsSchema = FromSchema< typeof instanceAdminStatsSchema >;