openapi: 3.0.3 info: title: 'SaaS: Family' description: API for interacting with SaaS family subscription endpoints. version: 1.0.0 contact: name: Flexera url: https://www.flexera.com servers: - url: https://{region}.snowsoftware.io variables: region: enum: - westeurope - australiasoutheast - eastus2 - uksouth default: westeurope tags: - name: Generic description: Tag for Generic endpoints. - name: Salesforce description: Tag for Salesforce endpoints. - name: Servicenow description: Tag for ServiceNow endpoints. paths: /api/saas/consolidated-view/v2/subscription-family/applications/kpi: get: summary: Get application KPIs description: Returns the details of a family's application KPIs. operationId: getFamilyApplicationsKpi tags: - Generic parameters: - $ref: '#/components/parameters/FromDateQuery' - $ref: '#/components/parameters/ToDateQuery' - $ref: '#/components/parameters/SubscriptionIdsQuery' - $ref: '#/components/parameters/SubscriptionPlanIdsQuery' responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilyApplicationsKPI' '400': $ref: '#/components/responses/400Response' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r /api/saas/consolidated-view/v1/subscription-family/servicenow/subscriptions: get: summary: Get ServiceNow subscriptions description: Returns a collection of ServiceNow subscriptions for a family. operationId: getSaasConsolidatedViewV1SubscriptionFamilyServiceNowSubscriptions parameters: - $ref: '#/components/parameters/SubscriptionIdsQuery' - $ref: '#/components/parameters/PageNumberQuery' - $ref: '#/components/parameters/PageSizeQuery' - $ref: '#/components/parameters/FilterQuery' - $ref: '#/components/parameters/SortQuery' responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilyServiceNowSubscriptionsResponse' '400': $ref: '#/components/responses/400Response' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r tags: - Servicenow /api/saas/consolidated-view/v1/subscription-family/servicenow/users: get: summary: Get ServiceNow users description: Returns a collection of ServiceNow users of a family based on filter query if given. If an insightRuleId is provided, users will be returned from the perspective of the provided insights instead. operationId: getSaasConsolidatedViewV1SubscriptionFamilyServiceNowUsers parameters: - $ref: '#/components/parameters/SubscriptionIdsQuery' - $ref: '#/components/parameters/PageNumberQuery' - $ref: '#/components/parameters/PageSizeQuery' - $ref: '#/components/parameters/FilterQuery' - $ref: '#/components/parameters/SortQuery' responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilyServiceNowUsersResponse' '400': $ref: '#/components/responses/400Response' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r tags: - Servicenow /api/saas/consolidated-view/v1/subscription-family/salesforce/organizations: get: summary: Get Salesforce organizations description: Returns a collection of Salesforce organizations for a family. operationId: getSaasConsolidatedViewV1SubscriptionFamilySalesforceOrganizations parameters: - $ref: '#/components/parameters/SubscriptionPlanIdsQuery' - $ref: '#/components/parameters/PageNumberQuery' - $ref: '#/components/parameters/PageSizeQuery' - $ref: '#/components/parameters/FilterQuery' - $ref: '#/components/parameters/SortQuery' responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilySalesforceOrganizationsResponse' '400': $ref: '#/components/responses/400Response' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r tags: - Salesforce /api/saas/consolidated-view/v1/subscription-family/salesforce/organizations/kpi: get: summary: Get Salesforce organization KPIs description: Returns a collection of Salesforce organizations' key performance indicators. operationId: getSaasConsolidatedViewV1SubscriptionFamilySalesforceOrganizationsKpis parameters: - $ref: '#/components/parameters/SubscriptionPlanIdsQuery' responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilySalesforceOrganizationsKPIResponse' '400': $ref: '#/components/responses/400Response' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r tags: - Salesforce /api/saas/consolidated-view/v1/subscription-family/salesforce/users: get: summary: Get Salesforce users description: Returns a collection of Salesforce users for a family. operationId: getSaasConsolidatedViewV1SubscriptionFamilySalesforceUsers parameters: - $ref: '#/components/parameters/SubscriptionPlanIdsQuery' - $ref: '#/components/parameters/PageNumberQuery' - $ref: '#/components/parameters/PageSizeQuery' - $ref: '#/components/parameters/FilterQuery' - $ref: '#/components/parameters/SortQuery' responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilySalesforceUsersResponse' '400': $ref: '#/components/responses/400Response' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r - bearerAuth: - saas.consolidation.view.crud tags: - Salesforce /api/saas/consolidated-view/v1/subscription-family/salesforce/users/kpi: get: summary: Get Salesforce users KPI description: Returns salesforce users KPI. operationId: getSaasConsolidatedViewV1SubscriptionFamilySalesforceUsersKpi parameters: - $ref: '#/components/parameters/SubscriptionPlanIdsQuery' responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilySalesforceUsersKPIResponse' '400': $ref: '#/components/responses/400Response' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r - bearerAuth: - saas.consolidation.view.crud tags: - Salesforce /api/saas/consolidated-view/v1/subscription-family/salesforce/users/lookup-values: get: summary: Get Salesforce users lookup values description: Returns values that can be used as for lookup values for filters. operationId: getSaasConsolidatedViewV1SubscriptionFamilySalesforceUsersLookupVlues responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilySalesforceUsersLookupValuesResponse' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r - bearerAuth: - saas.consolidation.view.crud tags: - Salesforce /api/saas/consolidated-view/v1/subscription-family/salesforce/subscriptions: get: summary: Get Salesforce family subscriptions description: Returns a list of Salesforce subscriptions. operationId: getFamilySalesforceSubscriptions parameters: - $ref: '#/components/parameters/PageNumberQuery' - $ref: '#/components/parameters/PageSizeQuery' - $ref: '#/components/parameters/FilterQuery' - $ref: '#/components/parameters/SortQuery' responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilySalesforceSubscriptionsResponse' '400': $ref: '#/components/responses/400Response' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r - bearerAuth: - saas.consolidation.view.crud tags: - Salesforce /api/saas/consolidated-view/v1/subscription-family/salesforce/consumptions: get: summary: Get Salesforce family consumptions description: Returns a list of Salesforce consumptions. operationId: getFamilySalesforceConsumptions parameters: - $ref: '#/components/parameters/PageNumberQuery' - $ref: '#/components/parameters/PageSizeQuery' - $ref: '#/components/parameters/FilterQuery' - $ref: '#/components/parameters/SortQuery' responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilySalesforceConsumptionsResponse' '400': $ref: '#/components/responses/400Response' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r - bearerAuth: - saas.consolidation.view.crud tags: - Salesforce /api/saas/consolidated-view/v1/subscription-family/{familyId}/subscriptionplanids: get: summary: Get subscription plan IDs description: Returns a list of subscription plan IDs associated with the specified subscription family. operationId: getSubscriptionPlanIdsForFamily parameters: - $ref: '#/components/parameters/FamilyIdPath' - $ref: '#/components/parameters/SubscriptionIdsQuery' - $ref: '#/components/parameters/PageNumberQuery' - $ref: '#/components/parameters/PageSizeQuery' responses: '200': description: 'OK: Your request succeeded.' content: application/json: schema: $ref: '#/components/schemas/FamilySubscriptionPlanIdsResponse' '404': $ref: '#/components/responses/404Response' '500': $ref: '#/components/responses/500Response' security: - bearerAuth: - saas.consolidation.view.r - bearerAuth: - saas.consolidation.view.crud tags: - Generic components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT parameters: FromDateQuery: required: true in: query name: fromDate description: Starting date from which to calculate KPI. schema: type: string example: '2024-11-26' format: date ToDateQuery: required: true in: query name: toDate description: Starting date until which to calculate KPI. schema: type: string example: '2024-11-26' format: date SubscriptionIdsQuery: description: Comma separated list of subscription IDs. required: false name: subscriptionIds in: query schema: type: string example: 5b35aa33-e7a8-47a3-b1b6-19099ebb6bfd,b10f3e61-bf51-4e87-88fe-f3d22e3194bd,b12ce8d7-2ca6-4b2d-80ca-eb5d1a57ceca SubscriptionPlanIdsQuery: description: A comma-separated list of subscription plan IDs. required: false name: subscriptionPlanIds in: query schema: type: string example: 5b35aa33-e7a8-47a3-b1b6-19099ebb6bfd,b10f3e61-bf51-4e87-88fe-f3d22e3194bd,b12ce8d7-2ca6-4b2d-80ca-eb5d1a57ceca PageNumberQuery: name: page_number description: The page number. in: query schema: type: integer format: int32 default: 1 PageSizeQuery: name: page_size description: The maximum number of items in the response. in: query schema: type: integer format: int32 default: 100 FilterQuery: name: filter in: query description: For more information on the available operators and which data types those operators work on, see [Filter API call results](https://docs.snowsoftware.io/snow-atlas-api/resources/get-started-with-apis/api-conventions#filter-api-call-results). required: false schema: type: string example: '?filter=field1 -eq ''abc''' SortQuery: name: sort in: query description: For more information on sorting capability and examples, see [Sort API call results](https://docs.snowsoftware.io/snow-atlas-api/resources/get-started-with-apis/api-conventions#sort-api-call-results). required: false schema: type: string example: '?sort=field1:asc' FamilyIdPath: name: familyId in: path required: true description: The unique ID of the subscription family. schema: type: string format: uuid example: 82da0ce3-acba-4089-b765-6fe883617968 schemas: FamilyApplicationsKPI: title: FamilyApplicationsKPI type: object properties: notApproved: description: Total count of the users that are not approved. example: 71 type: integer format: int32 total: description: Total count of users. example: 56 type: integer format: int32 required: - total - notApproved ValidationError: type: object description: Validation error. properties: code: type: integer description: The HTTP status code. format: int32 example: 400 message: type: string description: The error message. example: Filter field name needs to be formatted as a string. required: - code - message ErrorValidationResponse: title: ErrorValidationResponse description: Bad Request - Your request is invalid or improperly formed. Consequently, the API server could not understand your request. type: object properties: error: $ref: '#/components/schemas/ValidationError' required: - error InternalError: type: object description: Internal error. properties: code: type: integer description: The HTTP status code. format: int32 example: 500 message: type: string description: The error message. example: The service encountered an unexpected condition that prevented it from fulfilling the request. required: - code - message ErrorResponse: description: Internal Server Error - Your request failed due to an internal error. type: object properties: error: $ref: '#/components/schemas/InternalError' required: - error AttachedApp: title: AttachedApp type: object description: Application attached to Subscription. properties: appCategoryName: type: string description: Application category name. example: Document Management applicationId: type: string format: uuid example: 0dd14c40-965f-432d-b5de-fe8e50677519 description: The unique ID of the application. applicationName: type: string example: Adobe Acrobat. description: Application name. disServiceId: type: string format: uuid example: a5b52a55-515c-48f6-9939-10b12191fe6d description: The unique ID of the Data Intelligence Service. required: - applicationName - appCategoryName - applicationId - disServiceId DiscoverySource: description: The type of discovery sources for the application, For information on discovery source types, see https://docs.snowsoftware.io/snow-atlas/user-documentation/saas/saas-discovery#discovery-sources. type: array example: - 1 - 2 x-enumDescriptions: '0': SaaS connector - Represents integration with SaaS applications for automated data collection and management. '1': Manually added - Indicates resources or applications manually added by users without automated discovery. '2': Browser unverified - Refers to browser-based applications that have not been verified for compliance or usage. '3': SSO - Represents Single Sign-On integrations for centralized user authentication. '4': Device - Refers to physical or virtual devices managed within the IT environment. '7': Browser verified - Denotes browser-based applications that have been verified for compliance or usage. '8': CASB - Represents Cloud Access Security Broker integrations to enhance cloud security and compliance. items: type: integer format: int32 Subscription: description: Subscription. type: object properties: purchased: type: integer format: int32 description: Total purchased subscription quantity. example: 10 assigned: type: integer format: int32 description: Number of subscriptions assigned to a user. example: 3 unassigned: type: integer format: int32 description: Number of subscriptions not assigned to a user. example: 2 overassigned: type: integer format: int32 description: Number of assigned subscriptions that exceed the purchased quantity. example: 1 id: type: string format: uuid example: 2f86b198-04f3-4770-ad08-b32518206da0 description: The unique ID of the Subscription. active: type: integer format: int32 example: 10 description: Number of subscriptions with user activity withing the last 30 days. inactive: type: integer format: int32 example: 10 description: Number of subscriptions with user activity more than 30 days. noActivity: type: integer format: int32 example: 1 description: Number of subscriptions with no recorded user activity. application: type: string example: ServiceNow application name description: Application name. applicationId: type: string format: uuid example: d8fdde78-60e4-4f81-9e32-6b769176eac0 description: The unique ID of the ServiceNow application. applications: type: array items: $ref: '#/components/schemas/AttachedApp' description: Applications that belong to family subscription. automaticallyAdded: type: boolean example: false description: '```true``` if was automatically added; otherwise, ```false```.' connectorName: type: string example: ServiceNow connector description: Connector name used to obtain information. costPerUnit: type: number format: double example: 32.1 description: Cost per subscription. currency: type: string example: USD description: Subscription currency. disServiceId: type: string format: uuid example: f3924b69-140c-4587-a15e-ecbb4a9e9998 description: The unique ID of the Data Intelligence Service. discovered: type: integer format: int32 example: 3 description: Discovery source where the item was detected. discoveryTypes: type: array items: $ref: '#/components/schemas/DiscoverySource' description: All discovery sources the item was detected through. excludedFromMetrics: type: boolean example: false description: '```true``` if the subscription is excluded from total usage and cost metrics; otherwise, ```false```.' expirationDate: type: string format: date-time example: '2030-01-02T15:04:05' description: The last day on which subscription can be used. familyId: type: string format: uuid example: 6c12ebe7-4098-443c-b5b0-80ab0b544a60 description: The unique ID of the Family. familyName: type: string example: ServiceNow Family name description: Family name. free: type: boolean example: true description: '```true``` if subscription is free and excluded from total usage and cost metrics; otherwise, ```false```.' isBundled: type: boolean example: true description: '```true``` if subscription includes multiple applications; otherwise, ```false```.' name: type: string example: ServiceNow subscription name description: Full subscription name. notMonitored: type: integer format: int32 example: 3 description: Number of subscriptions without monitored application activity. purchasedDate: type: string format: date-time example: '2006-01-02T15:04:05' description: The date when the subscription was purchased. quantity: type: integer format: int32 example: 1 description: Quantity. rrpPeriod: type: string example: Annually description: Recommended Retail Pricing period. rrpValue: type: number format: double example: 155.88 description: Recommended Retail Pricing value. startDate: type: string format: date-time example: '2006-01-02T15:04:05' description: First day the subscription can be used. usage: type: number format: double example: 0.1 description: Ratio of active users to the total of active, inactive, and users with no activity in assigned subscriptions. utilization: type: number format: double example: 98 description: Utilization. vendor: type: string example: Adobe Inc. description: Vendor name. vendorId: type: string format: uuid example: 0dd14c40-965f-432d-b5de-fe8e50677519 description: The unique ID of the vendor. required: - discoveryTypes - expirationDate - familyId - notMonitored - unassigned - id - connectorName - currency - isBundled - utilization - purchased - active - noActivity - free - inactive - automaticallyAdded - purchasedDate - rrpValue - usage - vendorId - costPerUnit - overassigned - name - startDate - vendor - application - applicationId - disServiceId - excludeFromMetrics - familyName - assigned - applications - discovered - quantity - rrpPeriod ServiceNowSubscription: title: ServiceNowSubscription description: ServiceNow subscription. type: object properties: measuredRoleTypes: type: array items: type: string description: ServiceNow role type defines the specific access and capabilities a user has within the platform. example: - Fulfiller - Requester applicationTypes: type: array items: type: string example: - Case Management - Incident Management - Request Management description: ServiceNow application types refer to the various categories of applications that serve different business functions. required: - applicationTypes - measuredRoleTypes PaginationResponse: description: The pagination details. type: object required: - page_size - page_number properties: page_size: type: integer description: The page size you requested. example: 100 page_number: type: integer format: int64 description: The page number you requested. example: 1 total_pages: type: integer format: int64 description: The total number of pages. example: 1 total_items: type: integer format: int64 description: The total number of items. example: 1 FamilyServiceNowSubscriptionsResponse: title: FamilyServiceNowSubscriptionsResponse type: object properties: items: type: array items: allOf: - $ref: '#/components/schemas/Subscription' - $ref: '#/components/schemas/ServiceNowSubscription' description: A collection of ServiceNow subscriptions. pagination: $ref: '#/components/schemas/PaginationResponse' required: - items - pagination FamilyUserDetail: type: object properties: applicationName: type: string example: Zoom. description: Application name. lastActive: type: string format: date-time example: '2030-01-02T15:04:05' description: Last date of activity. lastActiveValueInInt: type: integer format: int32 example: 1 description: Last active value in int. lastActiveValueType: type: integer format: int32 example: 1 description: Last active value type. subscriptionName: type: string example: Video calls software pro delux edition. description: Full subscription name. required: - applicationName - lastActive - lastActiveValueInInt - lastActiveValueType - subscriptionName FamilyUser: type: object properties: country: type: string description: Country code of the user. example: Se createdDate: type: string format: date-time description: Date the user was added. example: '2030-01-02T15:04:05' department: type: string description: Department of the user. example: Sales. details: type: array items: $ref: '#/components/schemas/FamilyUserDetail' description: Additional details. discoveryTypes: type: array items: $ref: '#/components/schemas/DiscoverySource' description: All discovery sources the item was detected through. displayName: type: string description: Display name of the user. example: John Doe. email: type: string description: User's email address. example: john@example.com id: type: string format: uuid description: The unique ID of the user. example: c6851b0a-6b85-4c8c-9b27-bfa4d357276c isInReview: type: boolean description: '```true``` if user should be reviewed; otherwise, ```false```.' example: true isOnline: type: boolean description: '```true``` if user is working on non-inventoried device; otherwise, ```false```.' example: true isQualified: type: boolean description: '```true``` if the user is included in the cost of Snow''s services; otherwise, ```false```.' example: true lastActive: type: string format: date-time description: Time of last user activity in relevant applications. example: '2030-01-02T15:04:05' manuallyAssigned: type: boolean description: '```true``` if user was manually assigned; otherwise, ```false```.' example: true monthlyCost: type: number format: double description: Monthly cost of user's subscriptions. example: 90.99 status: type: string description: Activity status of the user in relevant applications. example: Not monitored. username: type: string description: User's email address. example: john@example.com required: - country - createdDate - department - details - discoveryTypes - displayName - email - id - isInReview - isOnline - isQualified - lastActive - manuallyAssigned - monthlyCost - status - username ServiceNowFamilyUser: type: object properties: roleTypes: type: array items: type: string example: - Admin - Fulfiller - Requester description: Roles types assigned to ServiceNow user. oobRoles: type: array items: type: string example: - pa_viewer - catalog_editor - ais_admin description: Out-of-the-box (OOB) roles. customRoles: type: array items: type: string example: - catalog - client_user - awa_admin description: ServiceNow custom roles. webServiceUser: type: boolean description: '```true``` if this is a service account; otherwise, ```false```.' example: true applicationTypes: type: array items: type: string example: - Incident management - Request management - Case management - Security operations description: Categories of applications user is using. groups: type: array items: type: string example: - Analyst - Application dev - Legal service management team description: List of groups user belongs to. required: - roleTypes - oobRoles - customRoles - webServiceUser - applications - groups FamilyServiceNowUsersResponse: type: object properties: items: type: array items: allOf: - $ref: '#/components/schemas/FamilyUser' - $ref: '#/components/schemas/ServiceNowFamilyUser' description: A collection of ServiceNow users. pagination: $ref: '#/components/schemas/PaginationResponse' required: - items - pagination SalesforceOrganization: title: SalesforceOrganization description: Salesforce organization. type: object properties: active: type: integer format: int32 example: 10 description: Number of subscriptions with user activity within the last 30 days. id: type: string format: uuid example: 2f86b198-04f3-4770-ad08-b32518206da0 description: The unique ID of the Organization. inactive: type: integer format: int32 example: 10 description: Number of subscriptions with user activity more than 30 days. name: type: string example: Salesforce organization name description: Name of the organization. noActivity: type: integer format: int32 example: 1 description: Number of subscriptions with no recorded user activity. potentialSavings: type: number format: double example: 100 description: Cost of subscriptions that are unassigned or where assigned users are inactive or have no activity. subscriptionIds: type: array description: IDs of subscriptions in the organization. items: type: string example: 2f86b198-04f3-4770-ad08-b32518206da0 description: The unique ID of the subscription. subscriptions: type: integer format: int32 example: 20 description: Total number of subscriptions in the organization. totalCost: type: number format: double example: 100 description: Monthly purchased value for the organization's subscriptions. totalCostPerYear: type: number format: double example: 100 description: Yearly purchased value for the organization's subscriptions. usage: type: number format: double example: 0.1 description: Ratio of active users to the total of active, inactive, and users with no activity, in assigned subscriptions. users: type: integer format: int32 example: 20 description: Total number of users connected to the organization. utilization: type: number format: double example: 98 description: Ratio of assigned subscriptions to the total quantity of purchased subscriptions. required: - active - id - inactive - name - noActivity - potentialSavings - subscriptionIds - subscriptions - totalCost - totalCostPerYear - usage - users - utilization FamilySalesforceOrganizationsResponse: type: object properties: items: type: array description: A collection of Salesforce organizations. items: $ref: '#/components/schemas/SalesforceOrganization' pagination: $ref: '#/components/schemas/PaginationResponse' required: - items - pagination FamilySalesforceOrganizationsKPIResponse: title: SalesforceOrganizationsKPI description: The data for the Salesforce Organization key performance indicators. type: object properties: total: type: integer format: int32 example: 10 description: The total number of discovered organizations as of today. totalCostPerYear: type: number format: double example: 157.35 description: The yearly cost of all organizations' subscriptions. required: - total - totalCostPerYear SalesforceFamilyUserSubscriptionAccount: type: object properties: subscriptionId: type: string description: The unique ID of the subscription. example: FeatureLicense_257c2af2-834d-4735-893d-e5a65f98adf3_KnowledgeUser subscriptionPlanId: type: string description: The unique ID of the subscription plan. example: e3225d5f-ce1e-49ec-b119-8083d3b2acb5 subscriptionName: type: string description: Name of the subscription. example: KnowledgeUserSubscription subscriptionType: type: string description: Type of the subscription. example: Feature lastActive: type: string format: date-time example: '2025-03-25T15:04:05' description: Last date of user's activity on the subscription's account. monthlyCost: type: number format: double description: Monthly cost of the subscription. example: 157.35 orgId: type: string description: The unique ID of the organization assigned to the subscription. example: aaf72770-1521-4ae8-8872-ac7bd71e292e orgName: type: string description: Name of organization assigned to the subscription. example: Clutterbusters required: - subscriptionId - subscriptionPlanId - subscriptionName - subscriptionType - lastActive - monthlyCost - orgId - orgName SalesforceFamilyUser: type: object properties: id: type: string description: The unique ID of the user. example: 05f333f7-9b1a-4324-af10-7911efe3888b email: type: string description: Email of the user. example: johndoe@email.com displayName: type: string description: Name of the user that should be displayed. example: John Doe userIds: type: array items: type: string description: The list of unique user IDs of user's salesforce family accounts. example: - User_257c2af2-834d-4735-893d-e5a65f98adf3_0051M00000AOvl3QAD aliases: type: array items: type: string description: The list of unique user aliases of user's salesforce family accounts. example: - J Doe userNames: type: array items: type: string description: The list of unique user names of user's salesforce family accounts. example: - johndoe@email.com orgsCount: type: integer format: int32 description: Count of organizations the user is assigned to. example: 1 orgNames: type: array items: type: string description: The list of organizations user is assigned to. example: - Clutterbusters lastActive: type: string format: date-time example: '2025-03-25T15:04:05' description: Last date of user's activity. status: type: string description: Status of the user. example: Active userTypes: type: array items: type: string description: The list of user types of user's salesforce family accounts. example: - Standard roles: type: array items: type: string description: The list of roles user is assigned to. example: - GCS Support Engineer profiles: type: array items: type: string description: The list of profiles user is assigned to. example: - Support country: type: string description: Country code of the user. example: Se department: type: string description: Department of the user. example: Sales locale: type: string description: Status of the user. example: sv-SE monthlyCost: type: number format: double description: Monthly cost of all user's salesforce family accounts. example: 157.35 subscriptionAccounts: type: array items: $ref: '#/components/schemas/SalesforceFamilyUserSubscriptionAccount' description: Salesforce family accounts of the user. required: - id - tenantId - email - displayName - userIds - aliases - userNames - orgsCount - orgNames - lastActive - status - userTypes - roles - profiles - country - department - locale - monthlyCost - subscriptionAccounts FamilySalesforceUsersResponse: type: object properties: items: type: array description: A collection of Salesforce users. items: $ref: '#/components/schemas/SalesforceFamilyUser' pagination: $ref: '#/components/schemas/PaginationResponse' required: - items - pagination FamilySalesforceUsersKPIResponse: type: object properties: totalUsers: description: Total number of Salesforce users. example: 56 type: integer format: int32 active: description: Total number of [active](https://docs-snow.flexera.com/snow-atlas/user-documentation/saas/user-activity/#definition-of-activity) Salesforce users. example: 12 type: integer format: int32 inactive: description: Total number of [inactive](https://docs-snow.flexera.com/snow-atlas/user-documentation/saas/user-activity/#definition-of-activity) Salesforce users. example: 44 type: integer format: int32 noActivity: description: Total number of Salesforce users with [no recorded activity](https://docs-snow.flexera.com/snow-atlas/user-documentation/saas/user-activity/#definition-of-activity). example: 15 type: integer format: int32 usersWithMultipleOrgs: description: Total number of Salesforce users with accounts in multiple organizations. example: 5 type: integer format: int32 required: - totalUsers - active - inactive - noActivity - usersWithMultipleOrgs FamilySalesforceUsersLookupValuesResponse: type: object properties: userTypes: type: array description: A collection of possible user types when getting salesforce user. items: type: string example: - Standard - PowerCustomerSuccess orgNames: type: array description: A collection of possible organization names when getting salesforce user. items: type: string example: - Clutterbusters - Space Matters roles: type: array description: A collection of possible roles when getting salesforce user. items: type: string example: - GCS Consultant NAM - Sales MAM NAM West profiles: type: array description: A collection of possible profiles when getting salesforce user. items: type: string example: - Engineering Management - Standard Platform User required: - userTypes - orgNames - roles - profiles SalesforceSubscriptionBase: description: Common subtype for salesforce subscription and grouped salesforce family. type: object properties: name: description: The name of the subscription type. example: Chatter External type: string purchased: description: Number of purchased subscriptions. type: integer example: 10 assigned: description: Amount of assigned subscriptions. type: integer example: 5 utilization: description: 'Percentage value expressed by the formula: (assigned / purchased) * 100.' type: number format: float example: 12.5 potentialSavings: description: The monthly subscription costs for users who are inactive or have no activity. type: number format: float example: 5000 usage: description: 'Percentage value expressed by the formula: ((active / (active + inactive + noactivity)) * 100.' type: number format: float example: 1000 type: description: Type of the subscription. type: string example: User totalCost: description: The cost of all subscriptions for the current month. type: number format: float example: 1000.5 totalCostPerYear: description: Value expressed by the formula totalCost * 12. type: number format: float example: 2000 active: description: Number of active subscriptions. type: integer example: 10 discoveryTypes: description: The unique IDs of the discovery source type where the user was detected. For information on IDs, (see https://docs.snowsoftware.io/snow-atlas/user-documentation/saas/saas-discovery#discovery-sources). type: array items: type: integer notMonitored: description: Amount of subscriptions for which user activity in the respective applications cannot be monitored. type: integer example: 100 noActivity: description: Number subscriptions without activity. type: integer example: 100 inactive: description: Number inactive subscriptions. type: integer example: 20 totalCostPerMonth: type: integer description: Cost of a subscription per month. example: 10 overAssigned: description: Number of over assigned subscriptions. type: integer example: 11 unassigned: description: Amount of unassigned subscriptions. type: integer example: 15 required: - name - purchased - assigned - utilization - potentialSavings - usage - type - totalCost - totalCostPerYear - active - discoveryTypes - notMonitored - noActivity - inactive - totalCostPerMonth - overAssigned - unassigned SalesforceSubscription: allOf: - $ref: '#/components/schemas/SalesforceSubscriptionBase' - type: object properties: organizationName: type: string description: Name of the Salesforce organization. example: Salesforce Org 1 skuName: type: string description: Name of the SKU mapped to the subscription. example: SKU 1 id: description: The unique ID of the subscription. example: 2f86b198-04f3-4770-ad08-b32518206da0 type: string required: - organizationName - skuName - id SalesforceSubscriptionFamily: allOf: - $ref: '#/components/schemas/SalesforceSubscriptionBase' - type: object properties: details: type: array description: List of grouped subscriptions with the same subscription plan ID. items: $ref: '#/components/schemas/SalesforceSubscription' organizationNames: description: Set of unique organization names within group. type: array items: type: string example: - Salesforce Org 1 - Salesforce Org 2 - Salesforce Org 3 skuNames: description: Set of unique SKU names within group. type: array items: type: string example: - SKU 1 - SKU 2 - SKU 3 required: - organizationNames - skuNames - details FamilySalesforceSubscriptionsResponse: type: object properties: items: type: array items: $ref: '#/components/schemas/SalesforceSubscriptionFamily' description: A collection of Salesforce family subscriptions. pagination: $ref: '#/components/schemas/PaginationResponse' required: - items - pagination SalesforceConsumptionBase: description: Common subtype for salesforce consumption and grouped salesforce family. type: object properties: originalId: description: ID of the original consumption record. example: 0UTG0000000004wOAA type: string name: description: The name of the consumption. example: API Request Limit per Month type: string resourceId: description: ID of the resource that identifies the specific segment of a resource tracked under an entitlement. example: (tenant) type: string purchased: description: Number of purchased amount of the entitlement. type: integer example: 10 consumed: description: Number of consumed amount of the entitlement. type: integer example: 10 remaining: description: Number of remaining amount of the entitlement. type: integer example: 10 utilization: description: 'Percentage value expressed by the formula: (consumed / purchased) * 100.' type: number format: float example: 12.5 usageDate: description: The date an event occurred that deducted from the tenant's entitlement. type: string format: date-time frequency: description: Indicates how often the tenant's entitlement usage data is automatically reviewed and updated. example: Daily type: string SalesforceConsumption: allOf: - $ref: '#/components/schemas/SalesforceConsumptionBase' - type: object properties: organizationName: type: string description: Name of the Salesforce organization. example: Salesforce Org 1 required: - organizationName - id SalesforceConsumptionFamily: allOf: - $ref: '#/components/schemas/SalesforceConsumptionBase' - type: object properties: details: type: array description: List of grouped consumptions with the same name. items: $ref: '#/components/schemas/SalesforceConsumption' organizationNames: description: Set of unique organization names within group. type: array items: type: string example: - Salesforce Org 1 - Salesforce Org 2 - Salesforce Org 3 required: - organizationNames - details FamilySalesforceConsumptionsResponse: type: object properties: items: type: array items: $ref: '#/components/schemas/SalesforceConsumptionFamily' description: A collection of Salesforce family consumptions. pagination: $ref: '#/components/schemas/PaginationResponse' required: - items - pagination FamilySubscriptionPlanId: type: object properties: name: type: string description: Name of the subscription plan. example: Premium Salesforce Plan id: type: string description: The unique ID of the subscription plan ID. example: plan_12345 required: - name - id FamilySubscriptionPlanIdsResponse: type: object properties: items: type: array description: A collection of family subscription plan IDs. items: $ref: '#/components/schemas/FamilySubscriptionPlanId' pagination: $ref: '#/components/schemas/PaginationResponse' required: - items - pagination NotFoundError: type: object description: Not found error. properties: code: type: integer description: The HTTP status code. format: int32 example: 404 message: type: string description: The error message. example: Resource with ID '32aeda0a-80dc-475a-907f-2d250a3a8614' not found. required: - code - message NotFoundResponse: description: The requested resource could not be found. type: object properties: error: $ref: '#/components/schemas/NotFoundError' required: - error responses: 400Response: description: 'Bad Request: Your request is invalid or improperly formed. Consequently, the API server could not understand your request.' content: application/json: schema: $ref: '#/components/schemas/ErrorValidationResponse' 500Response: description: 'Internal Server Error: Your request failed due to an internal error.' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 404Response: description: 'Not Found: The operation you requested failed because a resource associated with your request could not be found.' content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse'