openapi: 3.0.4 info: title: VirtoCommerce.Cart Catalog VirtoCommerce Platform API version: v1 description: Easily manage your products, categories, variations, and properties tags: - name: VirtoCommerce Platform description: B2B Innovation Platform paths: /externalsignin: get: tags: - VirtoCommerce Platform operationId: ExternalSignIn_SignIn parameters: - name: AuthenticationType in: query schema: type: string - name: ReturnUrl in: query schema: type: string - name: StoreId in: query schema: type: string - name: OidcUrl in: query schema: type: string - name: CallbackUrl in: query schema: type: string responses: '200': description: OK x-virtocommerce-module-id: VirtoCommerce.Platform /externalsignin/signout: get: tags: - VirtoCommerce Platform operationId: ExternalSignIn_SignOut parameters: - name: authenticationType in: query schema: type: string - name: returnUrl in: query schema: type: string responses: '200': description: OK x-virtocommerce-module-id: VirtoCommerce.Platform /externalsignin/callback: get: tags: - VirtoCommerce Platform operationId: ExternalSignIn_SignInCallback parameters: - name: returnUrl in: query schema: type: string responses: '200': description: OK x-virtocommerce-module-id: VirtoCommerce.Platform /externalsignin/providers: get: tags: - VirtoCommerce Platform operationId: ExternalSignIn_GetExternalLoginProviders responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/ExternalSignInProviderInfo' application/json: schema: type: array items: $ref: '#/components/schemas/ExternalSignInProviderInfo' text/json: schema: type: array items: $ref: '#/components/schemas/ExternalSignInProviderInfo' x-virtocommerce-module-id: VirtoCommerce.Platform /api/apps/{appId}/manifest: get: tags: - VirtoCommerce Platform summary: 'Returns the host app''s plugin manifest. In production: cacheable — responds 304 on matching `If-None-Match`. The descriptor is built and hashed once at the service layer (VirtoCommerce.Platform.Core.Modularity.IAppManifestService) and cached for the process lifetime, so 304 cache-hits short-circuit without touching the filesystem. In Development: `Cache-Control: no-store` is emitted and the 304 fast path is skipped — every request returns 200 with a freshly built body. This makes `yarn build` in a plugin folder visible on the next page reload without restarting the platform.' operationId: AppManifest_GetManifest parameters: - name: appId in: path required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/AppManifestResponse' application/json: schema: $ref: '#/components/schemas/AppManifestResponse' text/json: schema: $ref: '#/components/schemas/AppManifestResponse' x-virtocommerce-module-id: VirtoCommerce.Platform /api/apps/manifest/invalidate: post: tags: - VirtoCommerce Platform summary: 'Force-invalidate the manifest cache for every `appId`. The next call to `GET /api/apps/{appId}/manifest` will rebuild the descriptor from disk, picking up any plugin changes since the last build (new module installs, drop-in plugin replacements, plugin rebuilds). In Development this isn''t normally needed (the service bypasses its cache anyway), but the endpoint works in any environment for operators who want to refresh without restarting the platform.' operationId: AppManifest_InvalidateManifestCache responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/apps: get: tags: - VirtoCommerce Platform summary: Gets the list of available apps, filtered by user permissions. operationId: Apps_GetApps responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/AppDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/AppDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/AppDescriptor' x-virtocommerce-module-id: VirtoCommerce.Platform /revoke/token: post: tags: - VirtoCommerce Platform operationId: Authorization_RevokeCurrentUserToken responses: '200': description: OK x-virtocommerce-module-id: VirtoCommerce.Platform /connect/token: post: tags: - VirtoCommerce Platform operationId: Authorization_Exchange requestBody: content: application/x-www-form-urlencoded: schema: required: - grant_type type: object properties: grant_type: type: string scope: type: string username: type: string password: type: string storeId: type: string user_id: type: string required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OpenIddictResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/OpenIddictResponse' x-virtocommerce-module-id: VirtoCommerce.Platform /connect/authorize: get: tags: - VirtoCommerce Platform operationId: Authorization_Authorize responses: '200': description: OK x-virtocommerce-module-id: VirtoCommerce.Platform post: tags: - VirtoCommerce Platform operationId: Authorization_Authorize responses: '200': description: OK x-virtocommerce-module-id: VirtoCommerce.Platform /connect/userinfo: get: tags: - VirtoCommerce Platform operationId: Authorization_Userinfo responses: '200': description: OK x-virtocommerce-module-id: VirtoCommerce.Platform post: tags: - VirtoCommerce Platform operationId: Authorization_Userinfo responses: '200': description: OK x-virtocommerce-module-id: VirtoCommerce.Platform /connect/logout: get: tags: - VirtoCommerce Platform operationId: Authorization_Logout responses: '200': description: OK x-virtocommerce-module-id: VirtoCommerce.Platform /api/changes/force: post: tags: - VirtoCommerce Platform summary: Force set changes last modified date operationId: ChangeLog_ForceChanges parameters: - name: Scope in: query schema: type: string responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - cache:reset - api_key: - cache:reset - api_key_header: - cache:reset - http-signature: - cache:reset - basic: - cache:reset x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform-cache/reset: post: tags: - VirtoCommerce Platform operationId: ChangeLog_ResetPlatformCache responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - cache:reset - api_key: - cache:reset - api_key_header: - cache:reset - http-signature: - cache:reset - basic: - cache:reset x-virtocommerce-module-id: VirtoCommerce.Platform /api/changes/lastmodifieddate: get: tags: - VirtoCommerce Platform summary: 'Get last modified date for given scope Used for signal of what something changed and for cache invalidation in external platform clients' operationId: ChangeLog_GetLastModifiedDate parameters: - name: scope in: query description: '' schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/LastModifiedResponse' application/json: schema: $ref: '#/components/schemas/LastModifiedResponse' text/json: schema: $ref: '#/components/schemas/LastModifiedResponse' x-virtocommerce-module-id: VirtoCommerce.Platform /api/changes/changed-entities: post: tags: - VirtoCommerce Platform operationId: ChangeLog_GetChangedEntities requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ChangedEntitiesRequest' application/json: schema: allOf: - $ref: '#/components/schemas/ChangedEntitiesRequest' text/json: schema: allOf: - $ref: '#/components/schemas/ChangedEntitiesRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ChangedEntitiesResponse' application/json: schema: $ref: '#/components/schemas/ChangedEntitiesResponse' text/json: schema: $ref: '#/components/schemas/ChangedEntitiesResponse' x-virtocommerce-module-id: VirtoCommerce.Platform /api/changes/changed-entities/reset: post: tags: - VirtoCommerce Platform operationId: ChangeLog_ResetChangedEntities requestBody: content: application/json-patch+json: schema: type: array items: type: string application/json: schema: type: array items: type: string text/json: schema: type: array items: type: string responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - cache:reset - api_key: - cache:reset - api_key_header: - cache:reset - http-signature: - cache:reset - basic: - cache:reset x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/changelog/search: post: tags: - VirtoCommerce Platform operationId: ChangeLog_SearchChanges requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ChangeLogSearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/ChangeLogSearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/ChangeLogSearchCriteria' responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/OperationLog' application/json: schema: type: array items: $ref: '#/components/schemas/OperationLog' text/json: schema: type: array items: $ref: '#/components/schemas/OperationLog' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/changelog/v2/search: post: tags: - VirtoCommerce Platform operationId: ChangeLog_SearchChangesV2 requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ChangeLogSearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/ChangeLogSearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/ChangeLogSearchCriteria' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ChangeLogSearchResult' application/json: schema: $ref: '#/components/schemas/ChangeLogSearchResult' text/json: schema: $ref: '#/components/schemas/ChangeLogSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/changelog/{type}/changes: get: tags: - VirtoCommerce Platform operationId: ChangeLog_SearchTypeChangeHistory parameters: - name: type in: path required: true schema: type: string - name: start in: query schema: type: string format: date-time - name: end in: query schema: type: string format: date-time responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/OperationLog' application/json: schema: type: array items: $ref: '#/components/schemas/OperationLog' text/json: schema: type: array items: $ref: '#/components/schemas/OperationLog' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/developer-tools: get: tags: - VirtoCommerce Platform operationId: DeveloperTools_GetDeveloperTools responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/DeveloperToolDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/DeveloperToolDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/DeveloperToolDescriptor' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:developer-tools:access - api_key: - platform:developer-tools:access - api_key_header: - platform:developer-tools:access - http-signature: - platform:developer-tools:access - basic: - platform:developer-tools:access x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/diagnostics/systeminfo: get: tags: - VirtoCommerce Platform operationId: Diagnostics_GetSystemInfo responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SystemInfo' application/json: schema: $ref: '#/components/schemas/SystemInfo' text/json: schema: $ref: '#/components/schemas/SystemInfo' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/diagnostics/errors: get: tags: - VirtoCommerce Platform summary: Get installed modules with errors operationId: Diagnostics_GetModulesErrors responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/dynamic/types: get: tags: - VirtoCommerce Platform summary: Get object types which support dynamic properties operationId: DynamicProperties_GetObjectTypes responses: '200': description: OK content: application/json: schema: type: array items: type: string '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - api_key: - platform:dynamic_properties:read - api_key_header: - platform:dynamic_properties:read - http-signature: - platform:dynamic_properties:read - basic: - platform:dynamic_properties:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/dynamic/properties: get: tags: - VirtoCommerce Platform operationId: DynamicProperties_GetAllDynamicProperties parameters: - name: id in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/DynamicProperty' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - api_key: - platform:dynamic_properties:read - api_key_header: - platform:dynamic_properties:read - http-signature: - platform:dynamic_properties:read - basic: - platform:dynamic_properties:read x-virtocommerce-module-id: VirtoCommerce.Platform post: tags: - VirtoCommerce Platform summary: Add new dynamic property operationId: DynamicProperties_CreatePropertyAsync requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/DynamicProperty' application/json: schema: allOf: - $ref: '#/components/schemas/DynamicProperty' text/json: schema: allOf: - $ref: '#/components/schemas/DynamicProperty' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DynamicProperty' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - platform:dynamic_properties:create - api_key: - platform:dynamic_properties:read - platform:dynamic_properties:create - api_key_header: - platform:dynamic_properties:read - platform:dynamic_properties:create - http-signature: - platform:dynamic_properties:read - platform:dynamic_properties:create - basic: - platform:dynamic_properties:read - platform:dynamic_properties:create x-virtocommerce-module-id: VirtoCommerce.Platform put: tags: - VirtoCommerce Platform summary: Update existing dynamic property operationId: DynamicProperties_UpdatePropertyAsync requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/DynamicProperty' application/json: schema: allOf: - $ref: '#/components/schemas/DynamicProperty' text/json: schema: allOf: - $ref: '#/components/schemas/DynamicProperty' responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - platform:dynamic_properties:update - api_key: - platform:dynamic_properties:read - platform:dynamic_properties:update - api_key_header: - platform:dynamic_properties:read - platform:dynamic_properties:update - http-signature: - platform:dynamic_properties:read - platform:dynamic_properties:update - basic: - platform:dynamic_properties:read - platform:dynamic_properties:update x-virtocommerce-module-id: VirtoCommerce.Platform delete: tags: - VirtoCommerce Platform summary: Delete dynamic property operationId: DynamicProperties_DeletePropertyAsync parameters: - name: propertyIds in: query schema: type: array items: type: string responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - platform:dynamic_properties:delete - api_key: - platform:dynamic_properties:read - platform:dynamic_properties:delete - api_key_header: - platform:dynamic_properties:read - platform:dynamic_properties:delete - http-signature: - platform:dynamic_properties:read - platform:dynamic_properties:delete - basic: - platform:dynamic_properties:read - platform:dynamic_properties:delete x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/dynamic/properties/search: post: tags: - VirtoCommerce Platform summary: Get dynamic properties registered for object type operationId: DynamicProperties_SearchDynamicProperties requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/DynamicPropertySearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/DynamicPropertySearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/DynamicPropertySearchCriteria' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DynamicPropertySearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - api_key: - platform:dynamic_properties:read - api_key_header: - platform:dynamic_properties:read - http-signature: - platform:dynamic_properties:read - basic: - platform:dynamic_properties:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/dynamic: post: tags: - VirtoCommerce Platform summary: Does nothing. Just a way to expose DynamicObjectProperty thru Swagger. operationId: DynamicProperties_ExposeDynamicObjectProperty responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DynamicObjectProperty' '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - api_key: - platform:dynamic_properties:read - api_key_header: - platform:dynamic_properties:read - http-signature: - platform:dynamic_properties:read - basic: - platform:dynamic_properties:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/dynamic/dictionaryitems: get: tags: - VirtoCommerce Platform operationId: DynamicProperties_GetAllDictionaryItems parameters: - name: propertyId in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/DynamicPropertyDictionaryItem' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - api_key: - platform:dynamic_properties:read - api_key_header: - platform:dynamic_properties:read - http-signature: - platform:dynamic_properties:read - basic: - platform:dynamic_properties:read x-virtocommerce-module-id: VirtoCommerce.Platform post: tags: - VirtoCommerce Platform summary: Add or update dictionary items description: Fill item ID to update existing item or leave it empty to create a new item. operationId: DynamicProperties_SaveDictionaryItemsAsync requestBody: content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/DynamicPropertyDictionaryItem' application/json: schema: type: array items: $ref: '#/components/schemas/DynamicPropertyDictionaryItem' text/json: schema: type: array items: $ref: '#/components/schemas/DynamicPropertyDictionaryItem' responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - platform:dynamic_properties:update - api_key: - platform:dynamic_properties:read - platform:dynamic_properties:update - api_key_header: - platform:dynamic_properties:read - platform:dynamic_properties:update - http-signature: - platform:dynamic_properties:read - platform:dynamic_properties:update - basic: - platform:dynamic_properties:read - platform:dynamic_properties:update x-virtocommerce-module-id: VirtoCommerce.Platform delete: tags: - VirtoCommerce Platform summary: Delete dictionary items operationId: DynamicProperties_DeleteDictionaryItemAsync parameters: - name: ids in: query description: IDs of dictionary items to delete. schema: type: array items: type: string responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - platform:dynamic_properties:update - api_key: - platform:dynamic_properties:read - platform:dynamic_properties:update - api_key_header: - platform:dynamic_properties:read - platform:dynamic_properties:update - http-signature: - platform:dynamic_properties:read - platform:dynamic_properties:update - basic: - platform:dynamic_properties:read - platform:dynamic_properties:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/dynamic/dictionaryitems/search: post: tags: - VirtoCommerce Platform summary: Get dictionary items operationId: DynamicProperties_SearchDictionaryItems requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/DynamicPropertyDictionaryItemSearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/DynamicPropertyDictionaryItemSearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/DynamicPropertyDictionaryItemSearchCriteria' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DynamicPropertyDictionaryItemSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:dynamic_properties:read - api_key: - platform:dynamic_properties:read - api_key_header: - platform:dynamic_properties:read - http-signature: - platform:dynamic_properties:read - basic: - platform:dynamic_properties:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/jobs/{id}: get: tags: - VirtoCommerce Platform summary: Get background job status operationId: Jobs_GetStatus parameters: - name: id in: path description: Job ID. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Job' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - background_jobs:manage - api_key: - background_jobs:manage - api_key_header: - background_jobs:manage - http-signature: - background_jobs:manage - basic: - background_jobs:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/localizable-settings: get: tags: - VirtoCommerce Platform operationId: LocalizableSettings_GetSettingsAndLanguages responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/LocalizableSettingsAndLanguages' application/json: schema: $ref: '#/components/schemas/LocalizableSettingsAndLanguages' text/json: schema: $ref: '#/components/schemas/LocalizableSettingsAndLanguages' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:read - api_key: - platform:setting:read - api_key_header: - platform:setting:read - http-signature: - platform:setting:read - basic: - platform:setting:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/localizable-settings/{name}/dictionary-items/{language}/values: get: tags: - VirtoCommerce Platform operationId: LocalizableSettings_GetDictionaryValues parameters: - name: name in: path required: true schema: type: string - name: language in: path required: true schema: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/KeyValue' application/json: schema: type: array items: $ref: '#/components/schemas/KeyValue' text/json: schema: type: array items: $ref: '#/components/schemas/KeyValue' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:read - api_key: - platform:setting:read - api_key_header: - platform:setting:read - http-signature: - platform:setting:read - basic: - platform:setting:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/localizable-settings/{name}/dictionary-items: post: tags: - VirtoCommerce Platform operationId: LocalizableSettings_SaveDictionaryItems parameters: - name: name in: path required: true schema: type: string requestBody: content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/DictionaryItem' application/json: schema: type: array items: $ref: '#/components/schemas/DictionaryItem' text/json: schema: type: array items: $ref: '#/components/schemas/DictionaryItem' responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:update - api_key: - platform:setting:update - api_key_header: - platform:setting:update - http-signature: - platform:setting:update - basic: - platform:setting:update x-virtocommerce-module-id: VirtoCommerce.Platform delete: tags: - VirtoCommerce Platform operationId: LocalizableSettings_DeleteDictionaryItems parameters: - name: name in: path required: true schema: type: string - name: values in: query schema: type: array items: type: string responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:update - api_key: - platform:setting:update - api_key_header: - platform:setting:update - http-signature: - platform:setting:update - basic: - platform:setting:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/reload: post: tags: - VirtoCommerce Platform summary: Reload modules operationId: Modules_ReloadModules responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:read - api_key: - platform:module:read - api_key_header: - platform:module:read - http-signature: - platform:module:read - basic: - platform:module:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules: get: tags: - VirtoCommerce Platform summary: Get installed modules operationId: Modules_GetModules responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:read - api_key: - platform:module:read - api_key_header: - platform:module:read - http-signature: - platform:module:read - basic: - platform:module:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/getdependents: post: tags: - VirtoCommerce Platform summary: Get all dependent modules for a module operationId: Modules_GetDependingModules requestBody: description: modules descriptors content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:read - api_key: - platform:module:read - api_key_header: - platform:module:read - http-signature: - platform:module:read - basic: - platform:module:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/getmissingdependencies: post: tags: - VirtoCommerce Platform summary: Returns a flat expanded list of modules that depend on passed modules operationId: Modules_GetMissingDependencies requestBody: description: modules descriptors content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:read - api_key: - platform:module:read - api_key_header: - platform:module:read - http-signature: - platform:module:read - basic: - platform:module:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/localstorage: post: tags: - VirtoCommerce Platform summary: Upload module package for installation or update operationId: Modules_UploadModuleArchive responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModuleDescriptor' application/json: schema: $ref: '#/components/schemas/ModuleDescriptor' text/json: schema: $ref: '#/components/schemas/ModuleDescriptor' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/install: post: tags: - VirtoCommerce Platform summary: Install modules operationId: Modules_InstallModules requestBody: description: modules for install content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModulePushNotification' application/json: schema: $ref: '#/components/schemas/ModulePushNotification' text/json: schema: $ref: '#/components/schemas/ModulePushNotification' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/install/v2: post: tags: - VirtoCommerce Platform summary: Install modules using lightweight requests operationId: Modules_InstallModuleRequests requestBody: description: module install requests (id + optional version) content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/ModuleInstallRequest' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleInstallRequest' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleInstallRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModulePushNotification' application/json: schema: $ref: '#/components/schemas/ModulePushNotification' text/json: schema: $ref: '#/components/schemas/ModulePushNotification' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/update: post: tags: - VirtoCommerce Platform summary: Update modules operationId: Modules_UpdateModules requestBody: description: modules for update content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModulePushNotification' application/json: schema: $ref: '#/components/schemas/ModulePushNotification' text/json: schema: $ref: '#/components/schemas/ModulePushNotification' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/update/v2: post: tags: - VirtoCommerce Platform summary: Update modules using lightweight requests operationId: Modules_UpdateModuleRequests requestBody: description: module install requests (id + optional version) content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/ModuleInstallRequest' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleInstallRequest' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleInstallRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModulePushNotification' application/json: schema: $ref: '#/components/schemas/ModulePushNotification' text/json: schema: $ref: '#/components/schemas/ModulePushNotification' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/uninstall: post: tags: - VirtoCommerce Platform summary: Uninstall module operationId: Modules_UninstallModule requestBody: description: modules content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleDescriptor' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModulePushNotification' application/json: schema: $ref: '#/components/schemas/ModulePushNotification' text/json: schema: $ref: '#/components/schemas/ModulePushNotification' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/uninstall/v2: post: tags: - VirtoCommerce Platform summary: Uninstall modules using lightweight requests operationId: Modules_UninstallModuleRequests requestBody: description: module install requests (id only, version ignored) content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/ModuleInstallRequest' application/json: schema: type: array items: $ref: '#/components/schemas/ModuleInstallRequest' text/json: schema: type: array items: $ref: '#/components/schemas/ModuleInstallRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModulePushNotification' application/json: schema: $ref: '#/components/schemas/ModulePushNotification' text/json: schema: $ref: '#/components/schemas/ModulePushNotification' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/restart: post: tags: - VirtoCommerce Platform summary: Restart web application operationId: Modules_Restart responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/autoinstall: post: tags: - VirtoCommerce Platform summary: Auto-install modules with specified groups operationId: Modules_TryToAutoInstallModules responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModuleAutoInstallPushNotification' application/json: schema: $ref: '#/components/schemas/ModuleAutoInstallPushNotification' text/json: schema: $ref: '#/components/schemas/ModuleAutoInstallPushNotification' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/loading-order: get: tags: - VirtoCommerce Platform summary: Get module loading order operationId: Modules_GetModulesLoadingOrder responses: '200': description: OK content: text/plain: schema: type: array items: type: string application/json: schema: type: array items: type: string text/json: schema: type: array items: type: string '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/{moduleId}/versions/{version}/validate: get: tags: - VirtoCommerce Platform summary: Validate that a specific module version package exists at the download URL. operationId: Modules_ValidateModuleVersion parameters: - name: moduleId in: path description: Module identifier required: true schema: type: string - name: version in: path description: Version to validate required: true schema: type: string responses: '200': description: OK content: text/plain: schema: type: boolean application/json: schema: type: boolean text/json: schema: type: boolean '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/{moduleId}/versions/{version}/install: post: tags: - VirtoCommerce Platform summary: 'Install a specific version of a module. Validates the package URL, registers the custom version, and schedules installation.' operationId: Modules_InstallModuleVersion parameters: - name: moduleId in: path description: Module identifier required: true schema: type: string - name: version in: path description: Version to install required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModulePushNotification' application/json: schema: $ref: '#/components/schemas/ModulePushNotification' text/json: schema: $ref: '#/components/schemas/ModulePushNotification' '404': description: Not Found '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/{moduleId}/install: post: tags: - VirtoCommerce Platform summary: Install the latest available version of a module. operationId: Modules_InstallModule parameters: - name: moduleId in: path description: Module identifier required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModulePushNotification' application/json: schema: $ref: '#/components/schemas/ModulePushNotification' text/json: schema: $ref: '#/components/schemas/ModulePushNotification' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/modules/{moduleId}/uninstall: post: tags: - VirtoCommerce Platform summary: Uninstall a module. operationId: Modules_UninstallSingleModule parameters: - name: moduleId in: path description: Module identifier required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ModulePushNotification' application/json: schema: $ref: '#/components/schemas/ModulePushNotification' text/json: schema: $ref: '#/components/schemas/ModulePushNotification' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:module:manage - api_key: - platform:module:manage - api_key_header: - platform:module:manage - http-signature: - platform:module:manage - basic: - platform:module:manage x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/oauthapps/new: get: tags: - VirtoCommerce Platform operationId: OAuthApps_New responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/OpenIddictApplicationDescriptor' application/json: schema: $ref: '#/components/schemas/OpenIddictApplicationDescriptor' text/json: schema: $ref: '#/components/schemas/OpenIddictApplicationDescriptor' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:oauth_applications:create - api_key: - platform:security:oauth_applications:create - api_key_header: - platform:security:oauth_applications:create - http-signature: - platform:security:oauth_applications:create - basic: - platform:security:oauth_applications:create x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/oauthapps: post: tags: - VirtoCommerce Platform operationId: OAuthApps_SaveAsync requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/OpenIddictApplicationDescriptor' application/json: schema: allOf: - $ref: '#/components/schemas/OpenIddictApplicationDescriptor' text/json: schema: allOf: - $ref: '#/components/schemas/OpenIddictApplicationDescriptor' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/OpenIddictApplicationDescriptor' application/json: schema: $ref: '#/components/schemas/OpenIddictApplicationDescriptor' text/json: schema: $ref: '#/components/schemas/OpenIddictApplicationDescriptor' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:oauth_applications:update - api_key: - platform:security:oauth_applications:update - api_key_header: - platform:security:oauth_applications:update - http-signature: - platform:security:oauth_applications:update - basic: - platform:security:oauth_applications:update x-virtocommerce-module-id: VirtoCommerce.Platform delete: tags: - VirtoCommerce Platform operationId: OAuthApps_DeleteAsync parameters: - name: clientIds in: query schema: type: array items: type: string responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:oauth_applications:delete - api_key: - platform:security:oauth_applications:delete - api_key_header: - platform:security:oauth_applications:delete - http-signature: - platform:security:oauth_applications:delete - basic: - platform:security:oauth_applications:delete x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/oauthapps/search: post: tags: - VirtoCommerce Platform operationId: OAuthApps_SearchAsync requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/OAuthAppSearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/OAuthAppSearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/OAuthAppSearchCriteria' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/OAuthAppSearchResult' application/json: schema: $ref: '#/components/schemas/OAuthAppSearchResult' text/json: schema: $ref: '#/components/schemas/OAuthAppSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:oauth_applications:read - api_key: - platform:security:oauth_applications:read - api_key_header: - platform:security:oauth_applications:read - http-signature: - platform:security:oauth_applications:read - basic: - platform:security:oauth_applications:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/pushnotifications: post: tags: - VirtoCommerce Platform summary: SearchAsync push notifications operationId: PushNotification_SearchPushNotification requestBody: description: SearchAsync parameters. content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/PushNotificationSearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/PushNotificationSearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/PushNotificationSearchCriteria' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PushNotificationSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/pushnotifications/markAllAsRead: post: tags: - VirtoCommerce Platform summary: Mark all notifications as read operationId: PushNotification_MarkAllAsRead responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PushNotificationSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/sessions/search: post: tags: - VirtoCommerce Platform operationId: Security_SearchUserSessions parameters: - name: userId in: path required: true schema: type: string requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/UserSessionSearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/UserSessionSearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/UserSessionSearchCriteria' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/UserSessionSearchResult' application/json: schema: $ref: '#/components/schemas/UserSessionSearchResult' text/json: schema: $ref: '#/components/schemas/UserSessionSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/sessions/{id}: delete: tags: - VirtoCommerce Platform operationId: Security_TerminateUserSession parameters: - name: userId in: path required: true schema: type: string - name: id in: path required: true schema: type: string responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:revokeToken - api_key: - platform:security:revokeToken - api_key_header: - platform:security:revokeToken - http-signature: - platform:security:revokeToken - basic: - platform:security:revokeToken x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/sessions: delete: tags: - VirtoCommerce Platform operationId: Security_TerminateAllUserSessions parameters: - name: userId in: path required: true schema: type: string responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:revokeToken - api_key: - platform:security:revokeToken - api_key_header: - platform:security:revokeToken - http-signature: - platform:security:revokeToken - basic: - platform:security:revokeToken x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/login: post: tags: - VirtoCommerce Platform summary: Sign in with user name and password description: Verifies provided credentials and if succeeded returns full user details, otherwise returns 401 Unauthorized. operationId: Security_Login requestBody: description: Login request. content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/LoginRequest' application/json: schema: allOf: - $ref: '#/components/schemas/LoginRequest' text/json: schema: allOf: - $ref: '#/components/schemas/LoginRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SignInResult' application/json: schema: $ref: '#/components/schemas/SignInResult' text/json: schema: $ref: '#/components/schemas/SignInResult' x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/logout: get: tags: - VirtoCommerce Platform summary: Sign out operationId: Security_Logout responses: '204': description: No Content x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/currentuser: get: tags: - VirtoCommerce Platform summary: Get current user details operationId: Security_GetCurrentUser responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/UserDetail' application/json: schema: $ref: '#/components/schemas/UserDetail' text/json: schema: $ref: '#/components/schemas/UserDetail' x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/userinfo: get: tags: - VirtoCommerce Platform operationId: Security_Userinfo responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/Claim' application/json: schema: type: array items: $ref: '#/components/schemas/Claim' text/json: schema: type: array items: $ref: '#/components/schemas/Claim' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/permissions: get: tags: - VirtoCommerce Platform summary: Get all registered permissions operationId: Security_GetAllRegisteredPermissions responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/Permission' application/json: schema: type: array items: $ref: '#/components/schemas/Permission' text/json: schema: type: array items: $ref: '#/components/schemas/Permission' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/roles/search: post: tags: - VirtoCommerce Platform summary: SearchAsync roles by keyword operationId: Security_SearchRoles requestBody: description: SearchAsync parameters. content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/RoleSearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/RoleSearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/RoleSearchCriteria' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/RoleSearchResult' application/json: schema: $ref: '#/components/schemas/RoleSearchResult' text/json: schema: $ref: '#/components/schemas/RoleSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/roles/{roleName}: get: tags: - VirtoCommerce Platform summary: Get role by ID operationId: Security_GetRole parameters: - name: roleName in: path description: '' required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/Role' application/json: schema: $ref: '#/components/schemas/Role' text/json: schema: $ref: '#/components/schemas/Role' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/roles: delete: tags: - VirtoCommerce Platform summary: Delete roles by ID operationId: Security_DeleteRoles parameters: - name: ids in: query description: An array of role IDs. schema: type: array items: type: string responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:delete - api_key: - platform:security:delete - api_key_header: - platform:security:delete - http-signature: - platform:security:delete - basic: - platform:security:delete x-virtocommerce-module-id: VirtoCommerce.Platform put: tags: - VirtoCommerce Platform summary: Update an existing role or create new operationId: Security_UpdateRole requestBody: description: '' content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/Role' application/json: schema: allOf: - $ref: '#/components/schemas/Role' text/json: schema: allOf: - $ref: '#/components/schemas/Role' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SecurityResult' application/json: schema: $ref: '#/components/schemas/SecurityResult' text/json: schema: $ref: '#/components/schemas/SecurityResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:update - api_key: - platform:security:update - api_key_header: - platform:security:update - http-signature: - platform:security:update - basic: - platform:security:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/search: post: tags: - VirtoCommerce Platform summary: SearchAsync users by keyword operationId: Security_SearchUsers requestBody: description: Search criteria. content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/UserSearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/UserSearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/UserSearchCriteria' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/UserSearchResult' application/json: schema: $ref: '#/components/schemas/UserSearchResult' text/json: schema: $ref: '#/components/schemas/UserSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users: get: tags: - VirtoCommerce Platform summary: Get users by IDs operationId: Security_GetUsersByIds parameters: - name: ids in: query description: An array of user IDs. schema: type: array items: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/ApplicationUser' application/json: schema: type: array items: $ref: '#/components/schemas/ApplicationUser' text/json: schema: type: array items: $ref: '#/components/schemas/ApplicationUser' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform put: tags: - VirtoCommerce Platform summary: Update user details by user ID operationId: Security_Update requestBody: description: User details. content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ApplicationUser' application/json: schema: allOf: - $ref: '#/components/schemas/ApplicationUser' text/json: schema: allOf: - $ref: '#/components/schemas/ApplicationUser' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SecurityResult' application/json: schema: $ref: '#/components/schemas/SecurityResult' text/json: schema: $ref: '#/components/schemas/SecurityResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:update - api_key: - platform:security:update - api_key_header: - platform:security:update - http-signature: - platform:security:update - basic: - platform:security:update x-virtocommerce-module-id: VirtoCommerce.Platform delete: tags: - VirtoCommerce Platform summary: Delete users by name operationId: Security_Delete parameters: - name: names in: query description: An array of user names. schema: type: array items: type: string responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:delete - api_key: - platform:security:delete - api_key_header: - platform:security:delete - http-signature: - platform:security:delete - basic: - platform:security:delete x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userName}: get: tags: - VirtoCommerce Platform summary: Get user details by user name operationId: Security_GetUserByName parameters: - name: userName in: path description: '' required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ApplicationUser' application/json: schema: $ref: '#/components/schemas/ApplicationUser' text/json: schema: $ref: '#/components/schemas/ApplicationUser' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/id/{id}: get: tags: - VirtoCommerce Platform summary: Get user details by user ID operationId: Security_GetUserById parameters: - name: id in: path description: '' required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ApplicationUser' application/json: schema: $ref: '#/components/schemas/ApplicationUser' text/json: schema: $ref: '#/components/schemas/ApplicationUser' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/email/{email}: get: tags: - VirtoCommerce Platform summary: Get user details by user email operationId: Security_GetUserByEmail parameters: - name: email in: path description: '' required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ApplicationUser' application/json: schema: $ref: '#/components/schemas/ApplicationUser' text/json: schema: $ref: '#/components/schemas/ApplicationUser' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/login/external/{loginProvider}/{providerKey}: get: tags: - VirtoCommerce Platform summary: Get user details by external login provider operationId: Security_GetUserByLogin parameters: - name: loginProvider in: path required: true schema: type: string - name: providerKey in: path required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/ApplicationUser' application/json: schema: $ref: '#/components/schemas/ApplicationUser' text/json: schema: $ref: '#/components/schemas/ApplicationUser' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/create: post: tags: - VirtoCommerce Platform summary: Create new user operationId: Security_Create requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ApplicationUser' application/json: schema: allOf: - $ref: '#/components/schemas/ApplicationUser' text/json: schema: allOf: - $ref: '#/components/schemas/ApplicationUser' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SecurityResult' application/json: schema: $ref: '#/components/schemas/SecurityResult' text/json: schema: $ref: '#/components/schemas/SecurityResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:create - api_key: - platform:security:create - api_key_header: - platform:security:create - http-signature: - platform:security:create - basic: - platform:security:create x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/currentuser/changepassword: post: tags: - VirtoCommerce Platform summary: Change password for current user. operationId: Security_ChangeCurrentUserPassword requestBody: description: Old and new passwords. content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ChangePasswordRequest' application/json: schema: allOf: - $ref: '#/components/schemas/ChangePasswordRequest' text/json: schema: allOf: - $ref: '#/components/schemas/ChangePasswordRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SecurityResult' application/json: schema: $ref: '#/components/schemas/SecurityResult' text/json: schema: $ref: '#/components/schemas/SecurityResult' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userName}/changepassword: post: tags: - VirtoCommerce Platform summary: Change password operationId: Security_ChangePassword parameters: - name: userName in: path description: user name required: true schema: type: string requestBody: description: Old and new passwords. content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ChangePasswordRequest' application/json: schema: allOf: - $ref: '#/components/schemas/ChangePasswordRequest' text/json: schema: allOf: - $ref: '#/components/schemas/ChangePasswordRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SecurityResult' application/json: schema: $ref: '#/components/schemas/SecurityResult' text/json: schema: $ref: '#/components/schemas/SecurityResult' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:update - api_key: - platform:security:update - api_key_header: - platform:security:update - http-signature: - platform:security:update - basic: - platform:security:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userName}/resetpassword: post: tags: - VirtoCommerce Platform summary: Reset password confirmation operationId: Security_ResetPassword parameters: - name: userName in: path description: '' required: true schema: type: string requestBody: description: Password reset information. content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ResetPasswordRequest' application/json: schema: allOf: - $ref: '#/components/schemas/ResetPasswordRequest' text/json: schema: allOf: - $ref: '#/components/schemas/ResetPasswordRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SecurityResult' application/json: schema: $ref: '#/components/schemas/SecurityResult' text/json: schema: $ref: '#/components/schemas/SecurityResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:update - api_key: - platform:security:update - api_key_header: - platform:security:update - http-signature: - platform:security:update - basic: - platform:security:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/resetpasswordconfirm: post: tags: - VirtoCommerce Platform summary: Reset password confirmation operationId: Security_ResetPasswordByToken parameters: - name: userId in: path description: '' required: true schema: type: string requestBody: description: Password reset information. content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ResetPasswordConfirmRequest' application/json: schema: allOf: - $ref: '#/components/schemas/ResetPasswordConfirmRequest' text/json: schema: allOf: - $ref: '#/components/schemas/ResetPasswordConfirmRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SecurityResult' application/json: schema: $ref: '#/components/schemas/SecurityResult' text/json: schema: $ref: '#/components/schemas/SecurityResult' x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/validatepasswordresettoken: post: tags: - VirtoCommerce Platform summary: Validate password reset token operationId: Security_ValidatePasswordResetToken parameters: - name: userId in: path required: true schema: type: string requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ValidatePasswordResetTokenRequest' application/json: schema: allOf: - $ref: '#/components/schemas/ValidatePasswordResetTokenRequest' text/json: schema: allOf: - $ref: '#/components/schemas/ValidatePasswordResetTokenRequest' responses: '200': description: OK content: text/plain: schema: type: boolean application/json: schema: type: boolean text/json: schema: type: boolean x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{loginOrEmail}/requestpasswordreset: post: tags: - VirtoCommerce Platform summary: Send email with instructions on how to reset user password. description: Verifies provided userName and (if succeeded) sends email. operationId: Security_RequestPasswordReset parameters: - name: loginOrEmail in: path required: true schema: type: string responses: '200': description: OK x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/validatepassword: post: tags: - VirtoCommerce Platform operationId: Security_ValidatePassword requestBody: content: application/json-patch+json: schema: type: string application/json: schema: type: string text/json: schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/IdentityResult' application/json: schema: $ref: '#/components/schemas/IdentityResult' text/json: schema: $ref: '#/components/schemas/IdentityResult' x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/validateuserpassword: post: tags: - VirtoCommerce Platform operationId: Security_ValidateUserPassword requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ChangePasswordRequest' application/json: schema: allOf: - $ref: '#/components/schemas/ChangePasswordRequest' text/json: schema: allOf: - $ref: '#/components/schemas/ChangePasswordRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/IdentityResult' application/json: schema: $ref: '#/components/schemas/IdentityResult' text/json: schema: $ref: '#/components/schemas/IdentityResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:update - api_key: - platform:security:update - api_key_header: - platform:security:update - http-signature: - platform:security:update - basic: - platform:security:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{id}/locked: get: tags: - VirtoCommerce Platform summary: Checks if user locked operationId: Security_IsUserLocked parameters: - name: id in: path description: User id required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/UserLockedResult' application/json: schema: $ref: '#/components/schemas/UserLockedResult' text/json: schema: $ref: '#/components/schemas/UserLockedResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/passwordchangeenabled: get: tags: - VirtoCommerce Platform summary: Checks if manual password change is enabled operationId: Security_PasswordChangeEnabled responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/UserLockedResult' application/json: schema: $ref: '#/components/schemas/UserLockedResult' text/json: schema: $ref: '#/components/schemas/UserLockedResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{id}/lock: post: tags: - VirtoCommerce Platform summary: Lock user operationId: Security_LockUser parameters: - name: id in: path description: '>User id' required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SecurityResult' application/json: schema: $ref: '#/components/schemas/SecurityResult' text/json: schema: $ref: '#/components/schemas/SecurityResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:update - api_key: - platform:security:update - api_key_header: - platform:security:update - http-signature: - platform:security:update - basic: - platform:security:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{id}/unlock: post: tags: - VirtoCommerce Platform summary: Unlock user operationId: Security_UnlockUser parameters: - name: id in: path description: '>User id' required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SecurityResult' application/json: schema: $ref: '#/components/schemas/SecurityResult' text/json: schema: $ref: '#/components/schemas/SecurityResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:update - api_key: - platform:security:update - api_key_header: - platform:security:update - http-signature: - platform:security:update - basic: - platform:security:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{id}/apikeys: get: tags: - VirtoCommerce Platform operationId: Security_GetUserApiKeys parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/UserApiKey' application/json: schema: type: array items: $ref: '#/components/schemas/UserApiKey' text/json: schema: type: array items: $ref: '#/components/schemas/UserApiKey' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:read - api_key: - platform:security:read - api_key_header: - platform:security:read - http-signature: - platform:security:read - basic: - platform:security:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/apikeys: post: tags: - VirtoCommerce Platform operationId: Security_SaveUserApiKey requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/UserApiKey' application/json: schema: allOf: - $ref: '#/components/schemas/UserApiKey' text/json: schema: allOf: - $ref: '#/components/schemas/UserApiKey' responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/UserApiKey' application/json: schema: type: array items: $ref: '#/components/schemas/UserApiKey' text/json: schema: type: array items: $ref: '#/components/schemas/UserApiKey' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:update - api_key: - platform:security:update - api_key_header: - platform:security:update - http-signature: - platform:security:update - basic: - platform:security:update x-virtocommerce-module-id: VirtoCommerce.Platform put: tags: - VirtoCommerce Platform operationId: Security_UpdateUserApiKey requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/UserApiKey' application/json: schema: allOf: - $ref: '#/components/schemas/UserApiKey' text/json: schema: allOf: - $ref: '#/components/schemas/UserApiKey' responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/UserApiKey' application/json: schema: type: array items: $ref: '#/components/schemas/UserApiKey' text/json: schema: type: array items: $ref: '#/components/schemas/UserApiKey' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:update - api_key: - platform:security:update - api_key_header: - platform:security:update - http-signature: - platform:security:update - basic: - platform:security:update x-virtocommerce-module-id: VirtoCommerce.Platform delete: tags: - VirtoCommerce Platform operationId: Security_DeleteUserApiKeys parameters: - name: ids in: query schema: type: array items: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/UserApiKey' application/json: schema: type: array items: $ref: '#/components/schemas/UserApiKey' text/json: schema: type: array items: $ref: '#/components/schemas/UserApiKey' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:delete - api_key: - platform:security:delete - api_key_header: - platform:security:delete - http-signature: - platform:security:delete - basic: - platform:security:delete x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/logintypes: get: tags: - VirtoCommerce Platform summary: Get allowed login types operationId: Security_GetLoginTypes responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/LoginType' application/json: schema: type: array items: $ref: '#/components/schemas/LoginType' text/json: schema: type: array items: $ref: '#/components/schemas/LoginType' x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/sendVerificationEmail: post: tags: - VirtoCommerce Platform summary: Verify user email operationId: Security_SendVerificationEmail parameters: - name: userId in: path description: '' required: true schema: type: string responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:verifyEmail - api_key: - platform:security:verifyEmail - api_key_header: - platform:security:verifyEmail - http-signature: - platform:security:verifyEmail - basic: - platform:security:verifyEmail x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/confirmEmail: post: tags: - VirtoCommerce Platform operationId: Security_ConfirmEmail parameters: - name: userId in: path required: true schema: type: string requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/ConfirmEmailRequest' application/json: schema: allOf: - $ref: '#/components/schemas/ConfirmEmailRequest' text/json: schema: allOf: - $ref: '#/components/schemas/ConfirmEmailRequest' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/SecurityResult' application/json: schema: $ref: '#/components/schemas/SecurityResult' text/json: schema: $ref: '#/components/schemas/SecurityResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:confirmEmail - api_key: - platform:security:confirmEmail - api_key_header: - platform:security:confirmEmail - http-signature: - platform:security:confirmEmail - basic: - platform:security:confirmEmail x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/generateChangeEmailToken: get: tags: - VirtoCommerce Platform operationId: Security_GenerateChangeEmailToken parameters: - name: userId in: path required: true schema: type: string - name: newEmail in: query schema: type: string responses: '200': description: OK content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:generateToken - api_key: - platform:security:generateToken - api_key_header: - platform:security:generateToken - http-signature: - platform:security:generateToken - basic: - platform:security:generateToken x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/generateEmailConfirmationToken: get: tags: - VirtoCommerce Platform operationId: Security_GenerateEmailConfirmationToken parameters: - name: userId in: path required: true schema: type: string responses: '200': description: OK content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:generateToken - api_key: - platform:security:generateToken - api_key_header: - platform:security:generateToken - http-signature: - platform:security:generateToken - basic: - platform:security:generateToken x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/generatePasswordResetToken: get: tags: - VirtoCommerce Platform operationId: Security_GeneratePasswordResetToken parameters: - name: userId in: path required: true schema: type: string responses: '200': description: OK content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:generateToken - api_key: - platform:security:generateToken - api_key_header: - platform:security:generateToken - http-signature: - platform:security:generateToken - basic: - platform:security:generateToken x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/generateToken: get: tags: - VirtoCommerce Platform operationId: Security_GenerateUserToken parameters: - name: userId in: path required: true schema: type: string - name: tokenProvider in: query schema: type: string - name: purpose in: query schema: type: string responses: '200': description: OK content: text/plain: schema: type: string application/json: schema: type: string text/json: schema: type: string '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:generateToken - api_key: - platform:security:generateToken - api_key_header: - platform:security:generateToken - http-signature: - platform:security:generateToken - basic: - platform:security:generateToken x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/security/users/{userId}/verifyToken: post: tags: - VirtoCommerce Platform operationId: Security_VerifyUserToken parameters: - name: userId in: path required: true schema: type: string requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/VerifyTokenRequest' application/json: schema: allOf: - $ref: '#/components/schemas/VerifyTokenRequest' text/json: schema: allOf: - $ref: '#/components/schemas/VerifyTokenRequest' responses: '200': description: OK content: text/plain: schema: type: boolean application/json: schema: type: boolean text/json: schema: type: boolean '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:security:verifyToken - api_key: - platform:security:verifyToken - api_key_header: - platform:security:verifyToken - http-signature: - platform:security:verifyToken - basic: - platform:security:verifyToken x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/settings: get: tags: - VirtoCommerce Platform summary: Get all settings operationId: Setting_GetAllGlobalSettings responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/ObjectSettingEntry' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:read - api_key: - platform:setting:read - api_key_header: - platform:setting:read - http-signature: - platform:setting:read - basic: - platform:setting:read x-virtocommerce-module-id: VirtoCommerce.Platform post: tags: - VirtoCommerce Platform summary: Update settings values operationId: Setting_UpdateAsync requestBody: description: '' content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/ObjectSettingEntry' application/json: schema: type: array items: $ref: '#/components/schemas/ObjectSettingEntry' text/json: schema: type: array items: $ref: '#/components/schemas/ObjectSettingEntry' responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:update - api_key: - platform:setting:update - api_key_header: - platform:setting:update - http-signature: - platform:setting:update - basic: - platform:setting:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/settings/modules/{id}: get: tags: - VirtoCommerce Platform summary: Get settings registered by specific module operationId: Setting_GetGlobalModuleSettingsAsync parameters: - name: id in: path description: Module ID. required: true schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/ObjectSettingEntry' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:read - api_key: - platform:setting:read - api_key_header: - platform:setting:read - http-signature: - platform:setting:read - basic: - platform:setting:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/settings/{name}: get: tags: - VirtoCommerce Platform summary: Get setting details by name operationId: Setting_GetGlobalSettingAsync parameters: - name: name in: path description: Setting system name. required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ObjectSettingEntry' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:read - api_key: - platform:setting:read - api_key_header: - platform:setting:read - http-signature: - platform:setting:read - basic: - platform:setting:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/settings/ui/customization: get: tags: - VirtoCommerce Platform summary: Get UI customization setting operationId: Setting_GetUICustomizationSetting responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ObjectSettingEntry' x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/settings/v2/global/schema: get: tags: - VirtoCommerce Platform summary: Get global settings schema (metadata only, no values) operationId: SettingsV2_GetGlobalSchema parameters: - name: moduleId in: query schema: type: string - name: keyword in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/SettingPropertySchema' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:read - api_key: - platform:setting:read - api_key_header: - platform:setting:read - http-signature: - platform:setting:read - basic: - platform:setting:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/settings/v2/global/values: get: tags: - VirtoCommerce Platform summary: 'Get global settings values as a flat { name: value } dictionary. Optional moduleId narrows the response to a single module''s settings — same filter as M:VirtoCommerce.Platform.Web.Controllers.Api.SettingsV2Controller.GetGlobalSchema(System.String,System.String), so a frontend can read+use one module''s values in one round-trip without a follow-up /schema lookup.' operationId: SettingsV2_GetGlobalValues parameters: - name: modifiedOnly in: query schema: type: boolean default: false - name: moduleId in: query schema: type: string responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:read - api_key: - platform:setting:read - api_key_header: - platform:setting:read - http-signature: - platform:setting:read - basic: - platform:setting:read x-virtocommerce-module-id: VirtoCommerce.Platform post: tags: - VirtoCommerce Platform operationId: SettingsV2_SaveGlobalValues parameters: - name: replaceAll in: query schema: type: boolean default: false requestBody: content: application/json-patch+json: schema: type: object additionalProperties: type: object application/json: schema: type: object additionalProperties: type: object text/json: schema: type: object additionalProperties: type: object responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:update - api_key: - platform:setting:update - api_key_header: - platform:setting:update - http-signature: - platform:setting:update - basic: - platform:setting:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/settings/v2/tenant/{tenantType}/schema: get: tags: - VirtoCommerce Platform summary: 'Get tenant settings schema (metadata only, no values). Schema depends only on tenantType registration, not on a specific tenant instance.' operationId: SettingsV2_GetTenantSchema parameters: - name: tenantType in: path required: true schema: type: string - name: moduleId in: query schema: type: string - name: keyword in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/SettingPropertySchema' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:read - api_key: - platform:setting:read - api_key_header: - platform:setting:read - http-signature: - platform:setting:read - basic: - platform:setting:read x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/settings/v2/tenant/{tenantType}/{tenantId}/values: get: tags: - VirtoCommerce Platform summary: 'Get tenant settings values as a flat { name: value } dictionary. Optional moduleId narrows the response to a single module''s settings.' operationId: SettingsV2_GetTenantValues parameters: - name: tenantType in: path required: true schema: type: string - name: tenantId in: path required: true schema: type: string - name: modifiedOnly in: query schema: type: boolean default: false - name: moduleId in: query schema: type: string responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:read - api_key: - platform:setting:read - api_key_header: - platform:setting:read - http-signature: - platform:setting:read - basic: - platform:setting:read x-virtocommerce-module-id: VirtoCommerce.Platform post: tags: - VirtoCommerce Platform operationId: SettingsV2_SaveTenantValues parameters: - name: tenantType in: path required: true schema: type: string - name: tenantId in: path required: true schema: type: string - name: replaceAll in: query schema: type: boolean default: false requestBody: content: application/json-patch+json: schema: type: object additionalProperties: type: object application/json: schema: type: object additionalProperties: type: object text/json: schema: type: object additionalProperties: type: object responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - platform:setting:update - api_key: - platform:setting:update - api_key_header: - platform:setting:update - http-signature: - platform:setting:update - basic: - platform:setting:update x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/settings/v2/me/schema: get: tags: - VirtoCommerce Platform summary: 'Get the current user''s UserProfile settings schema (metadata only). Schema is the same for every user — it''s defined by the platform''s UserProfile-tenant registration. Optionally filter by moduleId so a frontend only fetches its own module''s per-user settings.' operationId: SettingsV2_GetMeSchema parameters: - name: moduleId in: query schema: type: string - name: keyword in: query schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/SettingPropertySchema' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform /api/platform/settings/v2/me/values: get: tags: - VirtoCommerce Platform summary: 'Get the current user''s effective UserProfile settings values as a flat { name: value } dictionary. Optional moduleId narrows the response to a single module''s per-user settings — same filter M:VirtoCommerce.Platform.Web.Controllers.Api.SettingsV2Controller.GetMeSchema(System.String,System.String) accepts, so a frontend can do a single round-trip read without a follow-up /me/schema lookup.' operationId: SettingsV2_GetMeValues parameters: - name: modifiedOnly in: query schema: type: boolean default: false - name: moduleId in: query schema: type: string responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform post: tags: - VirtoCommerce Platform operationId: SettingsV2_SaveMeValues parameters: - name: replaceAll in: query schema: type: boolean default: false requestBody: content: application/json-patch+json: schema: type: object additionalProperties: type: object application/json: schema: type: object additionalProperties: type: object text/json: schema: type: object additionalProperties: type: object responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Platform components: schemas: DynamicPropertyDictionaryItem: type: object properties: propertyId: type: string nullable: true name: type: string nullable: true displayNames: type: array items: $ref: '#/components/schemas/DynamicPropertyDictionaryItemName' nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false AppManifestResponse: type: object properties: appId: type: string description: Echo of the requested app id (e.g. `vc-shell-marketplace`, `system-operations`, `platform`). nullable: true version: type: string description: 'Version of the host app — taken from the running platform when VirtoCommerce.Platform.Web.Model.Modularity.AppManifestResponse.AppId is the reserved `platform` id, otherwise from the module that declares the `` in its `module.manifest`. Useful for clients that want to surface the host''s version (e.g. footer banner, support diagnostics) without a second round-trip.' nullable: true title: type: string description: 'Display title of the host app, taken from the owning module''s `` declaration in `module.manifest`.' nullable: true plugins: type: array items: $ref: '#/components/schemas/PluginEntry' description: 'Plugins to load, in topological dependency order of their owning modules. Already filtered by current user permissions and (for Module Federation hosts) by host-app discovery folder convention.' nullable: true additionalProperties: false description: 'Response shape for `GET /api/apps/{appId}/manifest`. Returns the host app metadata plus a topologically ordered, permission-filtered list of plugins the host should load.' UserLockedResult: type: object properties: locked: type: boolean additionalProperties: false PushNotificationSearchCriteria: type: object properties: ids: type: array items: type: string nullable: true onlyNew: type: boolean startDate: type: string format: date-time nullable: true endDate: type: string format: date-time nullable: true responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false ChangeLogSearchResult: type: object properties: totalCount: type: integer format: int32 results: type: array items: $ref: '#/components/schemas/OperationLog' nullable: true additionalProperties: false IdentityResult: type: object properties: succeeded: type: boolean readOnly: true errors: type: array items: $ref: '#/components/schemas/IdentityError' nullable: true readOnly: true additionalProperties: false SecurityResult: type: object properties: succeeded: type: boolean errors: type: array items: type: string nullable: true additionalProperties: false Job: type: object properties: state: type: string nullable: true completed: type: boolean id: type: string nullable: true additionalProperties: false RoleSearchCriteria: type: object properties: responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false OperationLog: type: object properties: objectType: type: string nullable: true objectId: type: string nullable: true operationType: allOf: - $ref: '#/components/schemas/EntryState' detail: type: string nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false DynamicPropertyDictionaryItemSearchResult: type: object properties: totalCount: type: integer format: int32 results: type: array items: $ref: '#/components/schemas/DynamicPropertyDictionaryItem' nullable: true additionalProperties: false PushNotificationSearchResult: type: object properties: totalCount: type: integer format: int32 newCount: type: integer format: int32 notifyEvents: type: array items: $ref: '#/components/schemas/PushNotification' nullable: true additionalProperties: false ModuleDescriptor: type: object properties: version: type: string nullable: true platformVersion: type: string nullable: true title: type: string nullable: true description: type: string nullable: true authors: type: array items: type: string nullable: true owners: type: array items: type: string nullable: true licenseUrl: type: string nullable: true projectUrl: type: string nullable: true iconUrl: type: string nullable: true requireLicenseAcceptance: type: boolean releaseNotes: type: string nullable: true copyright: type: string nullable: true tags: type: string nullable: true groups: type: array items: type: string nullable: true dependencies: type: array items: $ref: '#/components/schemas/ModuleIdentity' nullable: true validationErrors: type: array items: type: string nullable: true isRemovable: type: boolean isInstalled: type: boolean installedVersion: allOf: - $ref: '#/components/schemas/ModuleIdentity' nullable: true packageUrl: type: string nullable: true id: type: string nullable: true additionalProperties: false AppDescriptor: type: object properties: title: type: string nullable: true description: type: string nullable: true iconUrl: type: string nullable: true relativeUrl: type: string nullable: true permission: type: string nullable: true placement: allOf: - $ref: '#/components/schemas/AppPlacement' description: 'Where the app surfaces in the admin navigation (`AppMenu` / `MainMenu` / `Hidden`).' supportEmbeddedMode: type: boolean description: 'Deprecated. Use VirtoCommerce.Platform.Web.Model.Modularity.AppDescriptor.Placement instead. Equivalent to `Placement == AppPlacement.MainMenu`; kept on the JSON contract for backwards compatibility.' id: type: string nullable: true additionalProperties: false DeveloperToolDescriptor: type: object properties: name: type: string nullable: true url: type: string nullable: true isExternal: type: boolean sortOrder: type: integer format: int32 permission: type: string nullable: true additionalProperties: false OpenIddictApplicationDescriptor: type: object properties: applicationType: type: string nullable: true clientId: type: string nullable: true clientSecret: type: string nullable: true clientType: type: string nullable: true consentType: type: string nullable: true displayName: type: string nullable: true displayNames: type: object additionalProperties: type: string nullable: true readOnly: true jsonWebKeySet: allOf: - $ref: '#/components/schemas/JsonWebKeySet' nullable: true permissions: uniqueItems: true type: array items: type: string nullable: true readOnly: true postLogoutRedirectUris: uniqueItems: true type: array items: type: string format: uri nullable: true readOnly: true properties: type: object additionalProperties: $ref: '#/components/schemas/JsonElement' nullable: true readOnly: true redirectUris: uniqueItems: true type: array items: type: string format: uri nullable: true readOnly: true requirements: uniqueItems: true type: array items: type: string nullable: true readOnly: true settings: type: object additionalProperties: type: string nullable: true readOnly: true additionalProperties: false ResetPasswordConfirmRequest: type: object properties: token: type: string nullable: true newPassword: type: string nullable: true additionalProperties: false ModuleInstallRequest: type: object properties: id: type: string nullable: true version: type: string nullable: true additionalProperties: false ModulePushNotification: type: object properties: started: type: string format: date-time nullable: true finished: type: string format: date-time nullable: true progressLog: type: array items: $ref: '#/components/schemas/ProgressMessage' nullable: true totalCount: type: integer format: int32 errorCount: type: integer format: int32 readOnly: true serverId: type: string nullable: true creator: type: string nullable: true created: type: string format: date-time isNew: type: boolean notifyType: type: string nullable: true description: type: string nullable: true title: type: string nullable: true repeatCount: type: integer format: int32 id: type: string nullable: true additionalProperties: false ObjectSettingEntry: type: object properties: itHasValues: type: boolean readOnly: true objectId: type: string nullable: true objectType: type: string nullable: true isReadOnly: type: boolean value: type: object nullable: true id: type: string nullable: true restartRequired: type: boolean moduleId: type: string nullable: true groupName: type: string nullable: true name: type: string nullable: true displayName: type: string nullable: true isRequired: type: boolean isHidden: type: boolean isPublic: type: boolean valueType: allOf: - $ref: '#/components/schemas/SettingValueType' allowedValues: type: array items: type: object nullable: true defaultValue: type: object nullable: true isDictionary: type: boolean isLocalizable: type: boolean tenant: type: string nullable: true additionalProperties: false ContentFile: type: object properties: type: type: string description: 'Asset kind. See VirtoCommerce.Platform.Core.Modularity.ContentFileTypes for the canonical values. Lower-case string so the JSON contract is stable against future C# enum renames.' nullable: true path: type: string description: 'Absolute URL path served by the platform''s static-file middleware, e.g. `/modules/$(VirtoCommerce.Catalog)/dist/app.js`.' nullable: true hash: type: string description: 'Cache-busting hash (`?v={hash}`). Stable across requests as long as the file''s last-write time is unchanged. `null` when the file doesn''t exist on disk (e.g. a manifest reference that fell back to convention defaults).' nullable: true additionalProperties: false description: 'One asset belonging to a plugin (script, stylesheet, etc.). Carries the information a client-side loader needs to build the right HTML element with proper cache busting.' ResetPasswordRequest: type: object properties: newPassword: type: string nullable: true forcePasswordChangeOnNextSignIn: type: boolean additionalProperties: false Permission: type: object properties: name: type: string nullable: true moduleId: type: string nullable: true groupName: type: string nullable: true assignedScopes: type: array items: $ref: '#/components/schemas/PermissionScope' nullable: true availableScopes: type: array items: $ref: '#/components/schemas/PermissionScope' nullable: true readOnly: true additionalProperties: false DynamicPropertyValueType: enum: - Undefined - ShortText - LongText - Integer - Decimal - DateTime - Boolean - Html - Image type: string UserApiKey: type: object properties: apiKey: type: string nullable: true userName: type: string nullable: true userId: type: string nullable: true isActive: type: boolean createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false ApplicationUser: type: object properties: storeId: type: string nullable: true memberId: type: string nullable: true isAdministrator: type: boolean photoUrl: type: string nullable: true userType: type: string nullable: true status: type: string nullable: true password: type: string nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: type: string nullable: true modifiedBy: type: string nullable: true roles: type: array items: $ref: '#/components/schemas/Role' nullable: true logins: type: array items: $ref: '#/components/schemas/ApplicationUserLogin' nullable: true passwordExpired: type: boolean lastPasswordChangedDate: type: string format: date-time nullable: true lastPasswordChangeRequestDate: type: string format: date-time nullable: true lastLoginDate: type: string format: date-time nullable: true id: type: string nullable: true userName: type: string nullable: true normalizedUserName: type: string nullable: true email: type: string nullable: true normalizedEmail: type: string nullable: true emailConfirmed: type: boolean passwordHash: type: string nullable: true securityStamp: type: string nullable: true concurrencyStamp: type: string nullable: true phoneNumber: type: string nullable: true phoneNumberConfirmed: type: boolean twoFactorEnabled: type: boolean lockoutEnd: type: string format: date-time nullable: true lockoutEnabled: type: boolean accessFailedCount: type: integer format: int32 additionalProperties: false SemanticVersion: type: object properties: major: type: integer format: int32 readOnly: true minor: type: integer format: int32 readOnly: true patch: type: integer format: int32 readOnly: true prerelease: type: string nullable: true readOnly: true additionalProperties: false JsonWebKey: type: object properties: additionalData: type: object additionalProperties: type: object nullable: true nullable: true readOnly: true alg: type: string nullable: true crv: type: string nullable: true d: type: string nullable: true dp: type: string nullable: true dq: type: string nullable: true e: type: string nullable: true k: type: string nullable: true keyId: type: string nullable: true keyOps: type: array items: type: string nullable: true readOnly: true kid: type: string nullable: true kty: type: string nullable: true n: type: string nullable: true oth: type: array items: type: string nullable: true readOnly: true p: type: string nullable: true q: type: string nullable: true qi: type: string nullable: true use: type: string nullable: true x: type: string nullable: true x5c: type: array items: type: string nullable: true readOnly: true x5t: type: string nullable: true x5tS256: type: string nullable: true x5u: type: string nullable: true y: type: string nullable: true keySize: type: integer format: int32 readOnly: true hasPrivateKey: type: boolean readOnly: true cryptoProviderFactory: allOf: - $ref: '#/components/schemas/CryptoProviderFactory' nullable: true additionalProperties: false CryptoProviderCache: type: object additionalProperties: false LastModifiedResponse: type: object properties: scope: type: string nullable: true lastModifiedDate: type: string format: date-time additionalProperties: false JsonWebKeySet: type: object properties: additionalData: type: object additionalProperties: type: object nullable: true nullable: true readOnly: true keys: type: array items: $ref: '#/components/schemas/JsonWebKey' nullable: true readOnly: true skipUnresolvedJsonWebKeys: type: boolean default: true jsonData: type: string nullable: true additionalProperties: false JsonValueKind: enum: - Undefined - Object - Array - String - Number - 'True' - 'False' - 'Null' type: string LocalizableSetting: type: object properties: name: type: string nullable: true isLocalizable: type: boolean items: type: array items: $ref: '#/components/schemas/DictionaryItem' nullable: true additionalProperties: false ApplicationUserLogin: type: object properties: loginProvider: type: string nullable: true providerKey: type: string nullable: true additionalProperties: false Claim: type: object properties: issuer: type: string nullable: true originalIssuer: type: string nullable: true properties: type: object additionalProperties: type: string nullable: true readOnly: true subject: allOf: - $ref: '#/components/schemas/ClaimsIdentity' nullable: true type: type: string nullable: true value: type: string nullable: true valueType: type: string nullable: true additionalProperties: false ClaimsIdentity: type: object properties: authenticationType: type: string nullable: true isAuthenticated: type: boolean readOnly: true actor: allOf: - $ref: '#/components/schemas/ClaimsIdentity' nullable: true bootstrapContext: type: object nullable: true claims: type: array items: $ref: '#/components/schemas/Claim' nullable: true label: type: string nullable: true name: type: string nullable: true readOnly: true nameClaimType: type: string nullable: true readOnly: true roleClaimType: type: string nullable: true readOnly: true additionalProperties: false LocalizedValue: type: object properties: languageCode: type: string nullable: true value: type: string nullable: true additionalProperties: false Role: type: object properties: description: type: string nullable: true permissions: type: array items: $ref: '#/components/schemas/Permission' nullable: true id: type: string nullable: true name: type: string nullable: true normalizedName: type: string nullable: true concurrencyStamp: type: string nullable: true additionalProperties: false PushNotification: type: object properties: serverId: type: string nullable: true creator: type: string nullable: true created: type: string format: date-time isNew: type: boolean notifyType: type: string nullable: true description: type: string nullable: true title: type: string nullable: true repeatCount: type: integer format: int32 id: type: string nullable: true additionalProperties: false ProgressMessage: type: object properties: message: type: string nullable: true level: allOf: - $ref: '#/components/schemas/ProgressMessageLevel' additionalProperties: false UserSessionSearchResult: type: object properties: totalCount: type: integer format: int32 results: type: array items: $ref: '#/components/schemas/UserSession' nullable: true additionalProperties: false LocalizableSettingsAndLanguages: type: object properties: settings: type: array items: $ref: '#/components/schemas/LocalizableSetting' nullable: true languages: type: array items: type: string nullable: true additionalProperties: false PermissionScope: type: object properties: type: type: string nullable: true label: type: string nullable: true scope: type: string nullable: true additionalProperties: false UserSearchResult: type: object properties: users: type: array items: $ref: '#/components/schemas/ApplicationUser' nullable: true readOnly: true totalCount: type: integer format: int32 results: type: array items: $ref: '#/components/schemas/ApplicationUser' nullable: true additionalProperties: false ChangedEntitiesResponse: type: object properties: entities: type: array items: $ref: '#/components/schemas/ChangedEntity' nullable: true additionalProperties: false JsonElement: type: object properties: valueKind: allOf: - $ref: '#/components/schemas/JsonValueKind' readOnly: true additionalProperties: false SortInfo: type: object properties: sortColumn: type: string nullable: true sortDirection: allOf: - $ref: '#/components/schemas/SortDirection' additionalProperties: false ModuleAutoInstallPushNotification: type: object properties: started: type: string format: date-time nullable: true finished: type: string format: date-time nullable: true progressLog: type: array items: $ref: '#/components/schemas/ProgressMessage' nullable: true totalCount: type: integer format: int32 errorCount: type: integer format: int32 readOnly: true serverId: type: string nullable: true creator: type: string nullable: true created: type: string format: date-time isNew: type: boolean notifyType: type: string nullable: true description: type: string nullable: true title: type: string nullable: true repeatCount: type: integer format: int32 id: type: string nullable: true additionalProperties: false LoginType: type: object properties: enabled: type: boolean hasLoginForm: type: boolean authenticationType: type: string nullable: true priority: type: integer format: int32 additionalProperties: false ProgressMessageLevel: enum: - Info - Warning - Debug - Error type: string UserSessionSearchCriteria: type: object properties: userId: type: string nullable: true responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false DynamicPropertyName: type: object properties: locale: type: string nullable: true name: type: string nullable: true additionalProperties: false DynamicPropertySearchResult: type: object properties: totalCount: type: integer format: int32 results: type: array items: $ref: '#/components/schemas/DynamicProperty' nullable: true additionalProperties: false UserSearchCriteria: type: object properties: memberId: type: string nullable: true memberIds: type: array items: type: string nullable: true modifiedSinceDate: type: string format: date-time nullable: true roles: type: array items: type: string nullable: true lasLoginDate: type: string format: date-time nullable: true deprecated: true onlyUnlocked: type: boolean onlyLocked: type: boolean emailConfirmed: type: boolean nullable: true userType: type: string nullable: true status: type: string nullable: true storeId: type: string nullable: true loginStartDate: type: string format: date-time nullable: true loginEndDate: type: string format: date-time nullable: true responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false SignInResult: type: object properties: succeeded: type: boolean readOnly: true isLockedOut: type: boolean readOnly: true isNotAllowed: type: boolean readOnly: true requiresTwoFactor: type: boolean readOnly: true additionalProperties: false RoleSearchResult: type: object properties: roles: type: array items: $ref: '#/components/schemas/Role' nullable: true readOnly: true totalCount: type: integer format: int32 results: type: array items: $ref: '#/components/schemas/Role' nullable: true additionalProperties: false OpenIddictResponse: type: object properties: accessToken: type: string nullable: true code: type: string nullable: true deviceCode: type: string nullable: true error: type: string nullable: true errorDescription: type: string nullable: true errorUri: type: string nullable: true expiresIn: type: integer format: int64 nullable: true idToken: type: string nullable: true iss: type: string nullable: true issuedTokenType: type: string nullable: true refreshToken: type: string nullable: true requestUri: type: string nullable: true scope: type: string nullable: true state: type: string nullable: true tokenType: type: string nullable: true userCode: type: string nullable: true verificationUri: type: string nullable: true verificationUriComplete: type: string nullable: true count: type: integer format: int32 readOnly: true additionalProperties: false ChangeLogSearchCriteria: type: object properties: operationTypes: type: array items: $ref: '#/components/schemas/EntryState' nullable: true startDate: type: string format: date-time nullable: true endDate: type: string format: date-time nullable: true responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false PluginEntry: type: object properties: id: type: string description: 'Unique plugin id within the (host app, request) tuple. Defaults to the owning .NET module id (e.g. `VirtoCommerce.MarketplaceReviews`).' nullable: true version: type: string description: Plugin version. Defaults to the parent module version. nullable: true entry: allOf: - $ref: '#/components/schemas/ContentFile' description: 'The plugin''s primary file. For Module Federation plugins this is the federation entry (`remoteEntry.js`). For the legacy AngularJS host it is the module bundle (`dist/app.js`). Always a script.' nullable: true contentFiles: type: array items: $ref: '#/components/schemas/ContentFile' description: 'Additional assets the host should preload alongside VirtoCommerce.Platform.Web.Model.Modularity.PluginEntry.Entry (typically stylesheets). Each carries its own type so a generic loader can dispatch on it.' nullable: true remote: allOf: - $ref: '#/components/schemas/PluginRemote' description: Module Federation coordinates. `null` for the legacy AngularJS host. nullable: true additionalProperties: false description: 'One plugin contribution to a host app, returned by `GET /api/apps/{appId}/manifest`.' OAuthAppSearchResult: type: object properties: totalCount: type: integer format: int32 results: type: array items: $ref: '#/components/schemas/OpenIddictApplicationDescriptor' nullable: true additionalProperties: false UserDetail: type: object properties: permissions: type: array items: type: string nullable: true userName: type: string nullable: true isAdministrator: type: boolean passwordExpired: type: boolean daysTillPasswordExpiry: type: integer format: int32 authenticationMethod: type: string nullable: true isSsoAuthenticationMethod: type: boolean memberId: type: string nullable: true id: type: string nullable: true additionalProperties: false LoginRequest: type: object properties: userName: type: string nullable: true password: type: string nullable: true rememberMe: type: boolean additionalProperties: false ConfirmEmailRequest: type: object properties: token: type: string nullable: true additionalProperties: false UserSession: type: object properties: sessionGroupId: type: string nullable: true createdDate: type: string format: date-time expirationDate: type: string format: date-time ipAddress: type: string nullable: true userAgent: type: string nullable: true id: type: string nullable: true additionalProperties: false PluginRemote: type: object properties: name: type: string nullable: true exposed: type: string nullable: true additionalProperties: false description: 'Module Federation remote coordinates for a plugin. Mirrors the shape expected by `@module-federation/runtime`.' SettingPropertySchema: type: object properties: name: type: string nullable: true displayName: type: string nullable: true groupName: type: string nullable: true moduleId: type: string nullable: true valueType: allOf: - $ref: '#/components/schemas/SettingValueType' defaultValue: type: object nullable: true allowedValues: type: array items: type: object nullable: true isRequired: type: boolean isReadOnly: type: boolean isDictionary: type: boolean isLocalizable: type: boolean restartRequired: type: boolean assignedToTenants: type: array items: type: string nullable: true additionalProperties: false OAuthAppSearchCriteria: type: object properties: responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false KeyValue: type: object properties: key: type: string nullable: true value: type: string nullable: true additionalProperties: false DynamicPropertyDictionaryItemName: type: object properties: locale: type: string nullable: true name: type: string nullable: true additionalProperties: false ChangedEntitiesRequest: type: object properties: entityNames: type: array items: type: string nullable: true modifiedSince: type: string format: date-time additionalProperties: false AppPlacement: enum: - AppMenu - MainMenu - Hidden type: string ExternalSignInProviderInfo: type: object properties: authenticationType: type: string nullable: true displayName: type: string nullable: true logoUrl: type: string nullable: true additionalProperties: false CryptoProviderFactory: type: object properties: cryptoProviderCache: allOf: - $ref: '#/components/schemas/CryptoProviderCache' nullable: true readOnly: true customCryptoProvider: allOf: - $ref: '#/components/schemas/ICryptoProvider' nullable: true cacheSignatureProviders: type: boolean default: true signatureProviderObjectPoolCacheSize: type: integer format: int32 additionalProperties: false DynamicPropertyObjectValue: type: object properties: objectType: type: string nullable: true objectId: type: string nullable: true locale: type: string nullable: true value: type: object nullable: true valueId: type: string nullable: true valueType: allOf: - $ref: '#/components/schemas/DynamicPropertyValueType' propertyId: type: string nullable: true propertyName: type: string nullable: true additionalProperties: false DynamicObjectProperty: type: object properties: objectId: type: string nullable: true values: type: array items: $ref: '#/components/schemas/DynamicPropertyObjectValue' nullable: true name: type: string nullable: true description: type: string nullable: true objectType: type: string nullable: true isArray: type: boolean isDictionary: type: boolean isMultilingual: type: boolean isRequired: type: boolean displayOrder: type: integer format: int32 nullable: true valueType: allOf: - $ref: '#/components/schemas/DynamicPropertyValueType' displayNames: type: array items: $ref: '#/components/schemas/DynamicPropertyName' nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false EntryState: enum: - Detached - Unchanged - Added - Deleted - Modified type: string DictionaryItem: type: object properties: alias: type: string nullable: true localizedValues: type: array items: $ref: '#/components/schemas/LocalizedValue' nullable: true additionalProperties: false DynamicProperty: type: object properties: name: type: string nullable: true description: type: string nullable: true objectType: type: string nullable: true isArray: type: boolean isDictionary: type: boolean isMultilingual: type: boolean isRequired: type: boolean displayOrder: type: integer format: int32 nullable: true valueType: allOf: - $ref: '#/components/schemas/DynamicPropertyValueType' displayNames: type: array items: $ref: '#/components/schemas/DynamicPropertyName' nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false DynamicPropertySearchCriteria: type: object properties: typeName: type: string nullable: true readOnly: true responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false SettingValueType: enum: - ShortText - LongText - Integer - Decimal - DateTime - Boolean - SecureString - Json - PositiveInteger type: string ModuleIdentity: type: object properties: id: type: string nullable: true version: allOf: - $ref: '#/components/schemas/SemanticVersion' nullable: true optional: type: boolean additionalProperties: false License: type: object properties: type: type: string nullable: true customerName: type: string nullable: true customerEmail: type: string nullable: true expirationDate: type: string format: date-time rawLicense: type: string nullable: true additionalProperties: false VerifyTokenRequest: type: object properties: tokenProvider: type: string nullable: true purpose: type: string nullable: true token: type: string nullable: true additionalProperties: false ChangePasswordRequest: type: object properties: userName: type: string nullable: true oldPassword: type: string nullable: true newPassword: type: string nullable: true additionalProperties: false SortDirection: enum: - Ascending - Descending type: string IdentityError: type: object properties: code: type: string nullable: true description: type: string nullable: true additionalProperties: false ValidatePasswordResetTokenRequest: type: object properties: token: type: string nullable: true additionalProperties: false ICryptoProvider: type: object additionalProperties: false DynamicPropertyDictionaryItemSearchCriteria: type: object properties: propertyId: type: string nullable: true responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false SystemInfo: type: object properties: platformVersion: type: string nullable: true license: allOf: - $ref: '#/components/schemas/License' nullable: true installedModules: type: array items: $ref: '#/components/schemas/ModuleDescriptor' nullable: true version: type: string nullable: true is64BitOperatingSystem: type: boolean is64BitProcess: type: boolean databaseProvider: type: string nullable: true environmentName: type: string nullable: true runtimeIdentifier: type: string nullable: true additionalProperties: false ChangedEntity: type: object properties: name: type: string nullable: true modifiedDate: type: string format: date-time additionalProperties: false securitySchemes: oauth2: type: oauth2 description: OAuth2 Resource Owner Password Grant flow flows: password: tokenUrl: /connect/token scopes: {} clientCredentials: tokenUrl: /connect/token scopes: {} api_key: type: apiKey description: API Key authentication name: api_key in: query api_key_header: type: apiKey description: API Key authentication (alternative via header) name: api_key in: header http-signature: type: http description: HTTP Signature authentication using Authorization header scheme: signature basic: type: http description: Basic authentication using username and password scheme: basic