> ## Documentation Index
> Fetch the complete documentation index at: https://insightsoftware.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Import sources



## OpenAPI

````yaml /simba-embedded-analytics/docs/self-service-analytics/26.3/api-swagger/ssa-api-docs-26-3.json post /api/sources/import
openapi: 3.1.0
info:
  title: Logi Composer Rest API
  description: >-
    The Composer REST API provides methods for retrieving, updating, and
    deleting Composer metadata. With the API endpoints, you can manage
    connections, data sources, accounts, groups, and users quickly and easily.


    ## Authentication


    This API supports the following authentication schemes:


    - **basicAuth** – HTTP Basic authentication using global administrator
    credentials (username and password). Required for most endpoints.

    - **trustedAccessAuth** – HTTP Basic authentication using Trusted Access
    client credentials. Use the **client ID** as the username and the **client
    secret** as the password. Required for Trusted Access token and session
    endpoints.

    - **bearerAuth** – HTTP Bearer token authentication. Supply a token
    previously obtained from a Trusted Access token endpoint
    (`/api/trusted-access/push/tokens` or `/api/trusted-access/pull/tokens`).
  contact:
    name: Logi Support
    url: https://help.insightsoftware.com
    email: logisupport@insightsoftware.com
  version: '1.0'
servers:
  - url: http://10.2.4.166:8080/composer
    description: Generated server url
security:
  - basicAuth: []
tags:
  - name: account-attributes
    description: Reserved Account attributes configuration
  - name: accounts
    description: Manage Accounts
  - name: accounts / admins
    description: Manage Account Administrators
  - name: accounts / users
    description: Manage Account Users
  - name: actions
    description: Manage Action Templates
  - name: activity
    description: Manages Activity Logging
  - name: alerts
    description: Manage Alerts
  - name: branding
    description: Manage branding configuration
  - name: branding-extentions
    description: Manage branding extensions (chart colors, etc.)
  - name: calendars
    description: (experimental) Manage calendars
  - name: comments
    description: Dashboard comments
  - name: connection-types
    description: Manage Connection Types
  - name: connections
    description: Manage Source Connections
  - name: connectors
    description: Manage Connectors
  - name: conversations
    description: Manage Workspace Conversations
  - name: customization
    description: Manage customization configuration
  - name: dashboard-conversion
    description: (experimental) Convert dashboards layout
  - name: dashboard-migration
    description: New Dashboards Migration API
  - name: dashboard-reports
    description: Manage Dashboard Reports
  - name: dashboard-sharing
    description: (experimental) Manage dashboard access level
  - name: dashboards
    description: Manage Dashboards
  - name: export
    description: Export Source Data
  - name: favorites
    description: Favorite Items
  - name: filter-sets
    description: Filter Visualizations Data
  - name: folders
    description: Manage folders
  - name: frontend / environment variables
    description: Get environment variables for frontend
  - name: global
    description: Manage global security configuration
  - name: group-membership
    description: Manages Group Membership
  - name: groups
    description: Manage User Groups
  - name: interactivity
    description: Dashboard interactivity
  - name: inventory
    description: Manage Composer Items
  - name: jobs
    description: List of available scheduler jobs
  - name: joins
    description: Manage joins metadata and suggestions
  - name: json-datasets
    description: Manage JSON datasets
  - name: kerberos
    description: Manage Kerberos Config
  - name: keyset
    description: Manage keysets
  - name: ldap
    description: Manage LDAP Configuration
  - name: license
    description: Manage Composer License
  - name: locale, currency, language
    description: Locale, currency, and language info
  - name: materialized-view
    description: (deprecated since 23.1) Manage Materialized Views
  - name: odata
    description: (experimental) Source Data Retrieval OData service
  - name: password-reset
    description: Self-service forgot-password flow
  - name: permissions
    description: Manage Permissions
  - name: Publish
    description: Publish Workspace Artifacts
  - name: quota
    description: Manage Quotas
  - name: recentlyAccessed
    description: Recently Accessed Elements
  - name: register
    description: User registration
  - name: saml
    description: Manage SAML
  - name: security
    description: Retrieve all sids info
  - name: self-service-reports
    description: Self Service Reports
  - name: sharing
    description: (experimental) Manage dashboard sharing
  - name: snapshots
    description: Create and manage entity snapshots
  - name: snippets
    description: (experimental) Manage snippets
  - name: sources
    description: Manage Sources
  - name: sources / cache-settings
    description: Manages sources cache settings
  - name: sources / custom-metrics
    description: Manage Source Custom Metrics
  - name: sources / dictionaries
    description: Manage Source Dictionaries
  - name: sources / fields
    description: Manage Source Fields
  - name: sources / global-settings
    description: Manages sources global settings
  - name: sources / migration
    description: Source Migration API
  - name: sources / preview and describe
    description: Source preview and describe
  - name: sources / raw data
    description: (experimental) Get source raw data
  - name: sources / security
    description: Manage Sources Security
  - name: sources / security / custom metrics
    description: (experimental) Manage Sources Custom Metric Security
  - name: sources / security / fields
    description: Manage Sources Fields Security
  - name: sources / security / row
    description: Manage Sources Row Security
  - name: sources / unique-key
    description: Manages sources unique key
  - name: sources / visual-types
    description: Manages source visual types
  - name: start-vis
    description: (experimental) Execute start-vis or meta request
  - name: stream
    description: Search stream sources
  - name: tags
    description: Manage tags
  - name: timezones
    description: Timezone Information
  - name: toggle
    description: Toggle Features
  - name: topics
    description: Manage topics
  - name: trusted-access-client
    description: Manage Trusted Access clients
  - name: trusted-access-session
    description: Manage user sessions via Trusted Access
  - name: trusted-access-token
    description: Manage Trusted Access tokens
  - name: uploads
    description: Manage Uploads
  - name: user
    description: Manage User
  - name: users
    description: Manage Users
  - name: users segregation
    description: Segregate users into tenants
  - name: version
    description: System version
  - name: visual-types
    description: Manage Visual Types
  - name: visuals
    description: Manage Visuals
  - name: visuals / migration
    description: New Visuals Migration API
  - name: workspaces
    description: Manage Workspaces
paths:
  /api/sources/import:
    post:
      tags:
        - sources / migration
      summary: Import sources
      operationId: importSources
      parameters:
        - name: accountId
          in: query
          description: Target Account
          required: false
          schema:
            type: string
        - name: suppressWarnings
          in: query
          description: >-
            The response to this API endpoint may return a validation error with
            a list of problems. Each problem has a level (ERROR, WARNING).
            Passing suppressWarnings=true will suppress all warnings and the
            request will succeed if there were no errors.
          required: false
          schema:
            type: boolean
            default: false
        - name: enableDefaultRead
          in: query
          description: >-
            Will enable data read permissions for sources imported for all the
            users in the tenant.
          required: false
          schema:
            type: boolean
            default: false
      requestBody:
        content:
          application/vnd.composer.v3+json:
            schema:
              $ref: '#/components/schemas/SourcesMigrationResource'
        required: true
      responses:
        '200':
          description: The sources were imported
          content:
            application/vnd.composer.v3+json:
              schema:
                $ref: '#/components/schemas/ImportResultResource'
        '400':
          description: The request is invalid
          content:
            application/vnd.composer.v3+json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: The user must be logged in
          content:
            application/vnd.composer.v3+json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '403':
          description: The user doesn't have privilege to perform the operation
          content:
            application/vnd.composer.v3+json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Target account does not exist
          content:
            application/vnd.composer.v3+json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
components:
  schemas:
    SourcesMigrationResource:
      type: object
      description: Defines a sources migration payload
      properties:
        version:
          type: string
          description: Defines an application version
          minLength: 1
        importSettings:
          $ref: '#/components/schemas/ImportSettingsResource'
          description: Defines import settings
        connections:
          type: array
          description: Defines used connections
          items:
            $ref: '#/components/schemas/SourceConnectionResource'
          uniqueItems: true
        sources:
          type: array
          description: Defines used sources
          items:
            $ref: '#/components/schemas/SourceMigrationResource'
          uniqueItems: true
      required:
        - version
    ImportResultResource:
      type: object
      description: Defines result of dashboard import
      properties:
        dashboards:
          type: array
          description: Defines imported dashboards
          items:
            $ref: '#/components/schemas/ImportedResource'
          uniqueItems: true
        visuals:
          type: array
          description: Defines imported visuals
          items:
            $ref: '#/components/schemas/ImportedResource'
          uniqueItems: true
        sources:
          type: array
          description: Defines imported sources
          items:
            $ref: '#/components/schemas/ImportedResource'
          uniqueItems: true
        uploads:
          type: array
          description: Defines imported uploads
          items:
            $ref: '#/components/schemas/ImportedResource'
          uniqueItems: true
        visualTypes:
          type: array
          description: Defines imported visual types
          items:
            $ref: '#/components/schemas/ImportedResource'
          uniqueItems: true
        connections:
          type: array
          description: Defines imported connections
          items:
            $ref: '#/components/schemas/ImportedResource'
          uniqueItems: true
        snippets:
          type: array
          description: Defines imported snippets
          items:
            $ref: '#/components/schemas/ImportedResource'
          uniqueItems: true
        calendars:
          type: array
          description: Defines imported calendars
          items:
            $ref: '#/components/schemas/ImportedResource'
          uniqueItems: true
    ErrorMessage:
      type: object
      description: Generic error message
      properties:
        error:
          type: string
        details:
          type: string
        message:
          type: string
        path:
          type: string
        status:
          type: string
        code:
          type: string
        errorCode:
          type: string
        timestamp:
          type: string
        problems:
          type: array
          items:
            $ref: '#/components/schemas/ProblemResource'
    ImportSettingsResource:
      type: object
      description: Defines a import settings payload
      properties:
        globalLevel:
          $ref: '#/components/schemas/InsertionStrategyResource'
          description: Defines import settings for global level
        objectClassLevel:
          $ref: '#/components/schemas/ObjectClassLevelSettingsResource'
          description: Defines import settings for object class level
        objectLevel:
          $ref: '#/components/schemas/ObjectLevelSettingsResource'
          description: Defines import settings for object level
        warningTags:
          type: array
          description: Warning tags to to mark broken objects during force import
          items:
            type: string
          uniqueItems: true
    SourceConnectionResource:
      type: object
      description: Source connection with its features
      properties:
        createdByUserID:
          type: string
          readOnly: true
        lastModifiedByUserID:
          type: string
          readOnly: true
        createdDate:
          type: string
          format: date-time
          readOnly: true
        lastModifiedDate:
          type: string
          format: date-time
          readOnly: true
        id:
          type: string
        name:
          type: string
          minLength: 1
        type:
          type: string
        internal:
          type: boolean
          description: >-
            Indicates whether a connection is managed internally by the system,
            for example flat files
          readOnly: true
        accountId:
          type: string
        creatingUserName:
          type: string
        disabled:
          type: boolean
        connectionTypeId:
          type: string
        subStorageType:
          type: string
        features:
          type: array
          description: >-
            A collection of features supported by a connector supporting this
            connection
          items:
            $ref: '#/components/schemas/ConnectorFeatureResource'
          readOnly: true
          uniqueItems: true
        allParameters:
          type: array
          description: >-
            A set of connection parameters containing both standard parameters,
            and those used by the system to provide stateless connections
          items:
            $ref: '#/components/schemas/ConnectionParameterResource'
          uniqueItems: true
        originId:
          type: string
          description: Id of the exported connection
          readOnly: true
        projectId:
          type: string
          description: >-
            Project ID where this connection is organized. This field is
            read-only and only.
          example: 2222
          readOnly: true
        folderId:
          type: string
          description: Optional folder ID for organizing the connection within a project.
          example: 1111
      required:
        - name
        - subStorageType
        - type
    SourceMigrationResource:
      type: object
      description: Defines a source migration payload
      properties:
        definition:
          $ref: '#/components/schemas/SourceResource'
          description: Defines a source definition
        fields:
          type: array
          description: Defines source fields
          items:
            $ref: '#/components/schemas/SourceFieldResource'
        customMetrics:
          type: array
          description: Defines source custom metrics
          items:
            $ref: '#/components/schemas/CustomMetricResource'
          uniqueItems: true
        globalSettings:
          $ref: '#/components/schemas/SourceGlobalSettingsResource'
          description: Defines source global settings
        cacheSettings:
          $ref: '#/components/schemas/SourceCacheSettingsResource'
          description: Defines source cache settings
        uniqueKey:
          type: array
          description: Defines source unique key
          items:
            type: string
        enabledSourceVisualTypes:
          type: array
          description: Defines enabled system visual types for source
          items:
            $ref: '#/components/schemas/SourceVisualTypeResource'
          uniqueItems: true
    ImportedResource:
      type: object
      description: Defines imported resource
      properties:
        id:
          type: string
          description: Id of imported resource
        name:
          type: string
          description: Name of imported resource
        status:
          type: string
          description: Status of imported resource
          enum:
            - CREATED
            - REUSED
            - UPDATED
            - FAILED
            - CAN_BE_CREATED
            - CAN_BE_REUSED
            - CAN_BE_UPDATED
        href:
          type: string
          description: Link to imported resource
        dependencies:
          type: array
          description: Dependencies of imported resource
          items:
            $ref: '#/components/schemas/ImportDependencyResource'
          uniqueItems: true
        problems:
          type: array
          description: Validation problems of imported resource
          items:
            $ref: '#/components/schemas/ProblemResource'
    ProblemResource:
      type: object
      properties:
        name:
          type: string
        message:
          type: string
        level:
          type: string
          enum:
            - ERROR
            - WARNING
        dependencies:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ObjectUsageResource'
    InsertionStrategyResource:
      type: object
      description: Defines an insertion strategy
      properties:
        ifDoesNotExist:
          type: string
          description: >-
            Defines an insertion strategy for entities that do not exist.
            Supported strategies: CREATE, ERROR
          enum:
            - CREATE
            - REUSE
            - UPDATE
            - ERROR
        ifExists:
          type: string
          description: >-
            Defines an insertion strategy for entities that exist. Supported
            strategies: CREATE, REUSE, UPDATE
          enum:
            - CREATE
            - REUSE
            - UPDATE
            - ERROR
      required:
        - ifDoesNotExist
        - ifExists
    ObjectClassLevelSettingsResource:
      type: object
      description: Defines object class level import settings payload
      properties:
        visuals:
          $ref: '#/components/schemas/CompositeStrategyResource'
          description: Defines import settings for visuals
        connections:
          $ref: '#/components/schemas/CompositeStrategyResource'
          description: Defines import settings for connections
        sources:
          $ref: '#/components/schemas/CompositeStrategyResource'
          description: Defines import settings for sources
        dashboards:
          $ref: '#/components/schemas/CompositeStrategyResource'
          description: Defines import settings for dashboards
    ObjectLevelSettingsResource:
      type: object
      description: Defines object level import settings payload
      properties:
        visuals:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/InsertionStrategyResource'
          description: Defines import settings for specific visuals
        connections:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/InsertionStrategyResource'
          description: Defines import settings for specific connections
        sources:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/InsertionStrategyResource'
          description: Defines import settings for specific sources
        dashboards:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/InsertionStrategyResource'
          description: Defines import settings for specific dashboards
    ConnectorFeatureResource:
      type: object
      description: Connector Feature Resource
      properties:
        name:
          type: string
        params:
          type: object
          additionalProperties:
            type: string
        status:
          type: string
          enum:
            - ENABLED
            - UNKNOWN
    ConnectionParameterResource:
      type: object
      description: A source connection parameter
      properties:
        key:
          type: string
          description: >-
            The connection key. These should be enumerated by the connection
            type
        value:
          type: string
          description: >-
            The value of the parameter. May be a placeholder that can be
            resolved dynamically from the current user's session in an attribute
            passthrough scenario
        isSystemAccess:
          type: boolean
          writeOnly: true
        systemAccess:
          type: boolean
    SourceResource:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the source
          example: 59ba04795b542f60838ce0ea
          readOnly: true
        name:
          type: string
          description: Source name. It must be unique within the account
          example: Source Name
          maxLength: 255
          minLength: 0
        description:
          type: string
          maxLength: 1500
          minLength: 0
        auditable:
          $ref: '#/components/schemas/AuditableResource'
          readOnly: true
        storage:
          $ref: '#/components/schemas/SourceStorageResource'
        tags:
          type: array
          description: >-
            Tags. Note: Tags are not supported as a sort parameter in the
            pagination API.
          items:
            type: string
          uniqueItems: true
        originId:
          type: string
          description: Id of the exported source
          readOnly: true
        scope:
          type: string
          description: >-
            Scope of the source: ACCOUNT (visible account-wide) or WORKSPACE
            (visible only inside the owning workspace). Derived from the
            caller's active workspace at creation time and cannot be set
            directly.
          enum:
            - ACCOUNT
            - WORKSPACE
          readOnly: true
        workspaceId:
          type: string
          description: >-
            Id of the workspace this source belongs to, when scope is WORKSPACE.
            This field is read-only.
          readOnly: true
        projectId:
          type: string
          description: Project ID where this source is organized. This field is read-only.
          example: 2222
          readOnly: true
        folderId:
          type: string
          description: Optional folder ID for organizing the source within a project.
          example: 1111
        positionConfiguration:
          type: object
          additionalProperties: {}
          description: Defines position configuration of collections in canvas
      required:
        - name
    SourceFieldResource:
      type: object
      properties:
        origin:
          $ref: '#/components/schemas/FieldOriginResource'
        name:
          type: string
          description: >-
            Unique identifier of the field within the source across all fields
            and custom metrics. It's immutable and may be specified in create
            request only. It will be generated if it's missing in the request
          example: field_name
          maxLength: 255
          minLength: 0
          pattern: ^[\p{L}_][\p{L}_\p{N}\.]*$
        label:
          type: string
          description: >-
            User visible representation of the field. It will be generated if
            it's missing in the request
          example: Field Label
          maxLength: 255
          minLength: 0
        visible:
          type: boolean
          description: Whether the custom metric should be visible to users on a visual
        defaultMetric:
          type: string
          description: >-
            Data author can control default metric selected for this field. All
            metric pickers will choose this metric by default. 

            Possible values: AVG/MIN/MAX/SUM/DISTINCT_COUNT/COUNT 

            Default value: COUNT for ATTRIBUTES and SUM for NUMBER
          enum:
            - avg
            - min
            - max
            - sum
            - stddev_pop
            - stddev_samp
            - var_pop
            - var_samp
            - distinct_count
            - last_value
            - first_value
            - count
            - calc
            - percentile
            - median
            - listagg
        dataType:
          type: string
          description: >-
            Data type of the field. It’s detected automatically based on the
            field origin if it wasn't defined
          enum:
            - ATTRIBUTE
            - NUMBER
            - INTEGER
            - TIME
            - TEXT
            - HIERARCHY
            - 'NULL'
        format:
          $ref: '#/components/schemas/FieldFormatResource'
          description: Format of the field value display
        statistics:
          $ref: '#/components/schemas/StatisticsConfigurationResource'
          description: Field statistics configuration
        facetFiltering:
          $ref: '#/components/schemas/FacetFilteringResource'
          description: >-
            Facet filtering cofiguration. Available only for sources with
            TEXT_SEARCH feature
        granularity:
          type: string
          deprecated: true
          description: >-
            The minimum time granularity of this field. Composer optimizes
            queries based on this field. Also, it controls allowed granularities
            on group by time picker. It is auto detected based on the sample
            from the data set if it’s missed in the create request
          enum:
            - MILLISECOND
            - SECOND
            - MINUTE
            - HOUR
            - DAY
            - WEEK
            - MONTH
            - QUARTER
            - YEAR
        disabledCapabilities:
          type: array
          description: List of disabled field capabilities
          items:
            type: string
        fieldMetadata:
          type: object
          additionalProperties:
            type: string
          description: Field metadata as a JSON blob of key-value pairs
        rawFormatSupportTimeGroup:
          type: boolean
          deprecated: true
        fieldName:
          type: string
          deprecated: true
          description: >-
            Deprecated legacy property, which duplicates 'name' parameter. Will
            be removed at 23.3
        originalFieldName:
          type: string
          deprecated: true
          description: >-
            Deprecated legacy property, which duplicates
            'origin.nativeOrigin.originalName' parameter. Will be removed at
            23.3
      required:
        - origin
    CustomMetricResource:
      type: object
      description: Custom metric representation
      properties:
        name:
          type: string
          description: >-
            Unique identifier of the custom metric within the source across all
            custom metrics and fields. It's immutable and may be specified in
            create request only
          example: sum_of_sales
          maxLength: 255
          minLength: 0
        label:
          type: string
          description: User visible representation of the custom metric.
          example: Sum of Sales
          maxLength: 255
          minLength: 0
        visible:
          type: boolean
          description: Whether the custom metric should be visible to users on a visual
        numberFormat:
          $ref: '#/components/schemas/NumberFormatResource'
          description: Number format of the custom metric value display
        timeFormat:
          $ref: '#/components/schemas/BaseTimeFormatResource'
          description: Time format of the custom metric value display
        granularity:
          type: string
          deprecated: true
          description: The minimum time granularity of this field.
          enum:
            - MILLISECOND
            - SECOND
            - MINUTE
            - HOUR
            - DAY
            - WEEK
            - MONTH
            - QUARTER
            - YEAR
        expression:
          type: string
          description: Expression that defines the custom metric
          example: SUM(sales_in_usd) + SUM(sales_in_uah) * uah_to_usd_exchange_rate
        dataType:
          type: string
          description: >-
            Data type of the custom metric. It’s detected automatically based on
            the metric expression
          enum:
            - ATTRIBUTE
            - NUMBER
            - INTEGER
            - TIME
            - TEXT
            - HIERARCHY
            - 'NULL'
      required:
        - expression
    SourceGlobalSettingsResource:
      type: object
      description: Source global settings that affects initial and existing visuals
      properties:
        textSearchEnabled:
          type: boolean
          description: >-
            Enables or disables text search on the dashboard. Can be enabled
            only of the source supports TEXT_SEARCH feature
        nestedFiltersEnabled:
          type: boolean
          description: >-
            Nested filter is shown for filters at sources when this flag is
            enabled. Will be enabled only if source connector has
            NO_NESTED_FILTERS with value as false 
          readOnly: true
        timebar:
          $ref: '#/components/schemas/TimeBarResource'
          description: Timebar settings
        tileProvider:
          $ref: '#/components/schemas/TileProviderResource'
          description: Maps tile provider settings
        defaultVisualFilters:
          type: array
          description: >-
            Row filters used to limit requested data for initial visual
            rendering of all visuals associated with this source.
          items:
            $ref: '#/components/schemas/RowFilterResource'
        allowedCalendarIds:
          type: array
          description: List of ids of calendars which are allowed to be used by this source
          items:
            type: string
          uniqueItems: true
        countryFormat:
          type: string
          enum:
            - NAME_LONG
            - FORMAL_EN
            - ISO_A2
            - ISO_A3
    SourceCacheSettingsResource:
      type: object
      description: Source cache configuration
      properties:
        dataCache:
          $ref: '#/components/schemas/DataCacheResource'
          description: Data cache configuration
        statisticsCache:
          $ref: '#/components/schemas/StatisticsCacheResource'
          description: Statistics cache configuration
    SourceVisualTypeResource:
      type: object
      description: Visual type in relation to the source
      properties:
        visualTypeId:
          type: string
          description: Visual type id
        name:
          type: string
          description: Visual type name
        type:
          type: string
          description: Visual type type
        enabled:
          type: boolean
          description: Enables or disables visual type for the source
        restriction:
          $ref: '#/components/schemas/Restriction'
          description: >-
            Contains information about restriction of using this visual type for
            the source. This information is returned only if it was explicitly
            requested
    ImportDependencyResource:
      type: object
      description: >-
        Shows on which entities imported entity depends. Can be used to build
        dependency tree
      properties:
        type:
          type: string
          description: Type of entity that imported entity depends on
          enum:
            - DASHBOARD
            - VISUAL
            - VISUAL_TYPE
            - SOURCE
            - CONNECTION
            - UPLOAD
            - SNIPPET
            - CALENDAR
        id:
          type: string
          description: Id of entity that imported entity depends on
    ObjectUsageResource:
      type: object
      properties:
        hasOtherUsages:
          type: boolean
        accessible:
          type: array
          items:
            $ref: '#/components/schemas/AccessibleObjectUsageResource'
    CompositeStrategyResource:
      type: object
      description: Defines an insertion strategy
      properties:
        ifDoesNotExist:
          type: string
          description: >-
            Defines an insertion strategy for entities that do not exist.
            Supported strategies: CREATE, ERROR
          enum:
            - CREATE
            - REUSE
            - UPDATE
            - ERROR
        ifExists:
          type: string
          description: >-
            Defines an insertion strategy for entities that exist. Supported
            strategies: CREATE, REUSE, UPDATE
          enum:
            - CREATE
            - REUSE
            - UPDATE
            - ERROR
        matchingStrategy:
          type: array
          description: Defines matching strategy
          items:
            type: string
            enum:
              - BY_ORIGIN_ID
              - BY_ID_AND_TYPE_AND_PARAMS
              - BY_TYPE_AND_PARAMETERS
              - BY_NAME_AND_TYPE
              - BY_TYPE_AND_PARAM_KEYS
              - BY_ID
              - BY_NAME
      required:
        - ifDoesNotExist
        - ifExists
    AuditableResource:
      type: object
      description: >-
        Contains information about users and time of creating and updating this
        object
      properties:
        createdByUserId:
          type: string
          description: Id of a user who created this object
          example: 59ba04795b542f60838ce0e1
          readOnly: true
        createdByUserName:
          type: string
          description: Username of a user who created this object
          example: user_name
          readOnly: true
        createdDate:
          type: string
          format: date-time
          description: Date when this object was created
          readOnly: true
        lastModifiedByUserId:
          type: string
          description: Id of a user who updated this object last time
          example: 59ba04795b542f60838ce0e2
          readOnly: true
        lastModifiedDate:
          type: string
          format: date-time
          description: Date when this object was updated last time
          readOnly: true
    SourceStorageResource:
      type: object
      description: Describes how and from where we get data
      properties:
        dataEntities:
          type: array
          description: >-
            There might be one or more data entities. All data entities must be
            combined using joins
          items:
            $ref: '#/components/schemas/DataEntityResource'
        joins:
          type: array
          description: >-
            Collection of joins used to combine data entities. Join is similar
            to a SQL join
          items:
            $ref: '#/components/schemas/SourceJoinResource'
      required:
        - dataEntities
    FieldOriginResource:
      type: object
      description: >-
        <p>Field origin. Each of the origin types corresponds to it’s own field
        definition block:</p>

        <ul>

        <li>NATIVE - nativeOrigin

        <li>DERIVED - derivedOrigin

        <li>HIERARCHY - hierarchyOrigin

        </ul>
      properties:
        type:
          type: string
          enum:
            - NATIVE
            - DERIVED
            - HIERARCHY
        nativeOrigin:
          $ref: '#/components/schemas/NativeOriginResource'
          description: >-
            Defines a native field that is stored in the database. It’s required
            if origin.type = NATIVE
        derivedOrigin:
          $ref: '#/components/schemas/DerivedOriginResource'
          description: >-
            Defines derived field that can be calculated based on other fields.
            It’s required if origin.type = DERIVED
        hierarchyOrigin:
          $ref: '#/components/schemas/HierarchyOriginResource'
          description: >-
            Defines the hierarchy field. It’s required if origin.type =
            HIERARCHY
      required:
        - type
    FieldFormatResource:
      type: object
      description: >-
        <p>Field format. Each of the format blocks applicable only for certain
        data types:</p>

        <ul>

        <li>time - TIME 

        <li>number - NUMBER

        </ul>

        <p>There is no format for ATTRIBUTE, TEXT and HIERARCHY fields
      properties:
        time:
          $ref: '#/components/schemas/SourceTimeFormatResource'
        number:
          $ref: '#/components/schemas/NumberFormatResource'
        url:
          $ref: '#/components/schemas/UrlFormatResource'
    StatisticsConfigurationResource:
      type: object
      properties:
        override:
          $ref: '#/components/schemas/StatisticsOverrideResource'
          description: >-
            Statistics override. By default statistics are loaded from the data
            source and cached in QE
        cacheEnabled:
          type: boolean
          description: >-
            Each statistics request is cached on the QE side. If your data set
            has often changed data and is fast enough to process min, max and
            distinctValues on each their use you may disable statistics cache
            for this field
        refreshable:
          type: boolean
          description: >-
            There is an ability to define schedule for statistics refresh if
            cache is enabled. By default all time fields will be refresh
            according to the defined schedule. If you want to disable/enable
            automatic refresh for this field, you may use this flag. It doesn't
            have an effect if cache is disabled or override is defined
        lookup:
          $ref: '#/components/schemas/StatisticsLookupResource'
        cardinality:
          type: integer
          format: int32
    FacetFilteringResource:
      type: object
      properties:
        enabled:
          type: boolean
          description: Is this field allowed to be used for facet filtering
        order:
          type: integer
          format: int32
          description: The order of this field to appear for facet filtering
          minimum: 1
    NumberFormatResource:
      type: object
      description: Number display format representation
      properties:
        type:
          type: string
          description: Number format type
          enum:
            - PLAIN
            - CURRENCY
            - PERCENTAGE
            - COMPUTER_STORAGE
            - SCIENTIFIC_NOTATION
            - RATIO
        decimals:
          type: integer
          format: int32
          description: Decimal place
          example: 2
          maximum: 9
          minimum: 0
        separator:
          type: boolean
          description: Use 1000 separator
        negative:
          type: string
          description: Negative display
          enum:
            - SIGNED
            - PARENTHESIZED
        standardUnit:
          type: string
          description: Generic unit multiple
          enum:
            - NONE
            - THOUSANDS
            - MILLIONS
            - BILLIONS
            - TRILLIONS
        storageUnit:
          type: string
          description: Storage unit multiple
          enum:
            - BYTES
            - KILOBYTES
            - MEGABYTES
            - GIGABYTES
            - TERABYTES
            - PETABYTES
            - EXABYTES
        currencyCode:
          type: string
          description: Currency code
          example: USD
      required:
        - type
    BaseTimeFormatResource:
      type: object
      properties:
        timeZone:
          type: string
          description: Time zone used for displaying this field in IANA format
          example: UTC
        options:
          $ref: '#/components/schemas/TimeFieldFormatOptionsResource'
          description: (experimental) Time field format options
    TimeBarResource:
      type: object
      properties:
        enabled:
          type: boolean
          description: Enables or disables time bar for new visuals
        from:
          type: string
          description: Left border of time bar for new visuals
        to:
          type: string
          description: Right border of time bar for new visuals
        calendarId:
          type: string
          description: Calendar for the time bar for new visuals
        timeField:
          type: string
          description: Time field used in time bar for new visuals
        sharpening:
          $ref: '#/components/schemas/SharpeningResource'
          description: Sharpening configuration for existing end new visuals
        player:
          $ref: '#/components/schemas/PlayerResource'
          description: Player configuration for existing end new visuals
    TileProviderResource:
      type: object
      properties:
        name:
          type: string
        apiKey:
          type: string
        url:
          type: string
        mapBoxStyleId:
          type: string
    RowFilterResource:
      type: object
      description: Row filter
      properties:
        sourceId:
          type: string
          description: Ignore for source global settings default visual filters
        path:
          type: string
        form:
          type: string
          deprecated: true
        operation:
          type: string
          enum:
            - EQUALS
            - EQUALSI
            - NOTEQUALS
            - LT
            - LE
            - GT
            - GE
            - IN
            - NOTIN
            - BETWEEN
            - ISNOTNULL
            - ISNULL
            - AND
            - OR
            - TEXT_SEARCH
            - INKEYSET
            - NOTINKEYSET
            - NOT
            - STARTSWITH_CS
            - STARTSWITH_CI
            - STARTSWITH_DS
            - ENDSWITH_CS
            - ENDSWITH_CI
            - ENDSWITH_DS
            - CONTAINS_CS
            - CONTAINS_CI
            - CONTAINS_DS
            - EQUALS_OR_DESCENDANT_OF
            - EXPR
        value: {}
        custom:
          type: object
          additionalProperties: {}
        label:
          type: string
    DataCacheResource:
      type: object
      properties:
        enabled:
          type: boolean
          description: Enables or disables data cache
        evictionStrategy:
          $ref: '#/components/schemas/EvictionStrategyResource'
    StatisticsCacheResource:
      type: object
      properties:
        enabled:
          type: boolean
          description: Enables or disables statistics cache
        evictionStrategy:
          $ref: '#/components/schemas/EvictionStrategyResource'
        schedule:
          $ref: '#/components/schemas/StatisticsCacheScheduleResource'
          description: >-
            Schedule used to refresh statistics cache. Schedule is enabled if
            this field is present
    Restriction:
      type: object
      properties:
        operation:
          type: string
          enum:
            - EQUALS
            - EQUALSI
            - NOTEQUALS
            - LT
            - LE
            - GT
            - GE
            - IN
            - NOTIN
            - BETWEEN
            - ISNOTNULL
            - ISNULL
            - AND
            - OR
            - TEXT_SEARCH
            - INKEYSET
            - NOTINKEYSET
            - NOT
            - STARTSWITH_CS
            - STARTSWITH_CI
            - STARTSWITH_DS
            - ENDSWITH_CS
            - ENDSWITH_CI
            - ENDSWITH_DS
            - CONTAINS_CS
            - CONTAINS_CI
            - CONTAINS_DS
            - EQUALS_OR_DESCENDANT_OF
            - EXPR
        value: {}
        custom:
          type: object
          additionalProperties: {}
        label:
          type: string
        path:
          type: string
    AccessibleObjectUsageResource:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
          enum:
            - SOURCE
            - MATERIALIZED_VIEW
            - KEY_SET
            - VISUAL
            - DASHBOARD
            - IN_DASHBOARD_VISUAL
            - SNIPPET
            - REPORT
            - FILTER_SET
            - DERIVED_FIELD
            - CUSTOM_METRIC
            - FIELD_LINK
            - ROW_SECURITY_FILTER
            - ACTION
            - SOURCE_JOIN
            - HIERARCHY
            - PARTITION
            - GLOBAL_FILTER
            - UNIQUE_KEY
            - TIME_CONTROL
        parent:
          $ref: '#/components/schemas/AccessibleObjectUsageResource'
    DataEntityResource:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the source. Must be unique within the source
          example: data_entity_id
          maxLength: 255
          minLength: 0
        name:
          type: string
          description: >-
            User visible representation of the source. It must be unique within
            the source
          example: Data Entity name
          maxLength: 255
          minLength: 0
        type:
          type: string
          description: >-
            <p>Each of the data entity types corresponds to it’s own definition
            block:</p>

            <ul>

            <li>SINGLE_COLLECTION - singleCollection

            <li>CUSTOM_SQL - customSql

            <li>INDEX - index

            <li>UPLOAD - upload

            </ul>
          enum:
            - SINGLE_COLLECTION
            - CUSTOM_SQL
            - INDEX
            - UPLOAD
        singleCollection:
          $ref: '#/components/schemas/SingleCollection'
        customSql:
          $ref: '#/components/schemas/CustomSql'
        index:
          $ref: '#/components/schemas/Index'
        upload:
          $ref: '#/components/schemas/Upload'
        nativeFields:
          type: array
          description: >-
            This field is optional and will be calculated automatically based on
            the table if missing.

            NOTE: List of native fields is not available for the listing
            endpoint
          items:
            $ref: '#/components/schemas/SourceFieldResource'
        forbiddenFeatures:
          type: array
          description: >-
            This field is optional and will be calculated automatically based on
            the table if missing.
          items:
            type: string
        auxiliary:
          type: boolean
        cacheSettings:
          $ref: '#/components/schemas/RawCacheSettingsResource'
      required:
        - type
    SourceJoinResource:
      type: object
      properties:
        type:
          type: string
          enum:
            - INNER
            - LEFT
            - FULL_OUTER
        leftDataEntity:
          $ref: '#/components/schemas/JoinDataEntity'
          description: A data entity used on the left side of the join
        rightDataEntity:
          $ref: '#/components/schemas/JoinDataEntity'
          description: A data entity used on the right side of the join
        conditions:
          type: array
          description: >-
            List of conditions used to match records from two data entities. All
            conditions are combined with AND operator
          items:
            $ref: '#/components/schemas/Condition'
          minItems: 1
      required:
        - conditions
        - leftDataEntity
        - rightDataEntity
        - type
    NativeOriginResource:
      type: object
      properties:
        originalName:
          type: string
          description: Original field name as it’s in the database
          example: field_name
          maxLength: 255
          minLength: 0
        originalType:
          type: string
          description: Original field type as it’s in the database
          enum:
            - ATTRIBUTE
            - INTEGER
            - NUMBER
            - TIME
            - TEXT
            - BOOLEAN
            - 'NULL'
            - HIERARCHY
            - CHRONO_DATETIME
          example: TIME
        dataEntityId:
          type: string
          description: Defines the data entity to look for the field
          example: data_entity_1
          maxLength: 255
          minLength: 0
        rawFormat:
          type: object
          additionalProperties:
            type: string
          description: >-
            Defines information required for connector specific to process
            request with this field. Don't try to compose it manually. You
            should either copy field definition with it or leave this field
            empty and Composer will fill it by himself by doing an additional
            call to the connector
        metaFlags:
          type: array
          description: Defines list of meta flags reported by the connector for this field
          items:
            type: string
            enum:
              - PLAYABLE
              - ANALYZED
              - RAW_DATA_ONLY
              - UNIQUE
              - GROUP_ONLY
              - PARTITION
              - NO_RAW_DATA
              - MULTI_VALUED
              - SYSTEM
          uniqueItems: true
        partitionedBy:
          $ref: '#/components/schemas/PartitionedByResource'
          description: >-
            Partitioning configuration defines partitioned field and func we
            should apply to the current field get partitioned value. Both fields
            are required if this block is defined. Example:</p><code>create
            table table_name (
              id int,
              timestamp string,
              name string
            ) partitioned by (year string)

            </code>Let’s assume our current field is timestamp. To define
            partitioning relation we should define partitionedBy block
            as</P<code>>{
              "field": "year",
              "function": "TIME"
            }

            </code></p>This example assumes that year field in composer has YEAR
            granularity
      required:
        - originalName
    DerivedOriginResource:
      type: object
      properties:
        expression:
          type: string
          description: >-
            Expression that should be evaluated at the row level to get value of
            this field. This expression may refer native fields and other
            derived fields and use supported functions. List of functions can be
            retrieved using syntax endpoint
          example: sales * 100
        calendarId:
          type: string
          description: Id of the calendar for the field expression result
        referencedFieldNames:
          type: array
          items:
            type: string
    HierarchyOriginResource:
      type: object
      properties:
        labelField:
          type: string
          description: >-
            Field that contains label to display on the visualization instead of
            hierarchical value
          maxLength: 255
          minLength: 0
        childParent:
          $ref: '#/components/schemas/ChildParentResource'
      required:
        - childParent
    SourceTimeFormatResource:
      type: object
      description: Time format resource with deprecated granularity setting
      properties:
        granularity:
          type: string
          deprecated: true
          description: Deprecated, use 'SourceFieldResource.granularity' instead
          enum:
            - MILLISECOND
            - SECOND
            - MINUTE
            - HOUR
            - DAY
            - WEEK
            - MONTH
            - QUARTER
            - YEAR
        timeZone:
          type: string
          description: Time zone used for displaying this field in IANA format
          example: UTC
        options:
          $ref: '#/components/schemas/TimeFieldFormatOptionsResource'
          description: (experimental) Time field format options
    UrlFormatResource:
      type: object
      properties:
        type:
          type: string
          description: (experimental) Type for url formatting
          enum:
            - LINK
            - IMG
            - NONE
        src:
          type: string
          description: (experimental) Source for url
        width:
          type: integer
          format: int32
        height:
          type: integer
          format: int32
      required:
        - type
    StatisticsOverrideResource:
      type: object
      properties:
        min:
          type: number
          description: >-
            Min override is applicable for NUMBER and TIME fields. In case of
            TIME field min is milliseconds. If min is not defined actual value
            will be calculated on the data store side
        max:
          type: number
          description: >-
            Max override is applicable for NUMBER and TIME fields. In case of
            TIME field max is milliseconds. If max is not defined actual value
            will be calculated on the data store side
        distinctValues:
          type: array
          description: >-
            Defines custom values to show in filter panel. If it’s not defined
            actual values will be loaded from the data store. This field can be
            set to empty array [] to define that only custom values is allowed
            in filter panel for this field
          items: {}
    StatisticsLookupResource:
      type: object
      properties:
        raw:
          $ref: '#/components/schemas/StatisticsLookupRawResource'
      required:
        - raw
    TimeFieldFormatOptionsResource:
      type: object
      properties:
        second:
          type: string
          description: (experimental) Second time field formatting setting
          enum:
            - NUMERIC
            - TWO_DIGIT
        minute:
          type: string
          description: (experimental) Minute time field formatting setting
          enum:
            - NUMERIC
            - TWO_DIGIT
        hour:
          type: string
          description: (experimental) Hour time field formatting setting
          enum:
            - NUMERIC
            - TWO_DIGIT
        day:
          type: string
          description: (experimental) Day time field formatting setting
          enum:
            - NUMERIC
            - TWO_DIGIT
            - NARROW
            - SHORT
            - NONE
        weekday:
          type: string
          description: (experimental) Weekday time field formatting setting
          enum:
            - LONG
            - SHORT
            - NARROW
            - NONE
        week:
          type: string
          description: (experimental) Week time field formatting setting
          enum:
            - TWO_DIGIT
            - NARROW
            - RANGE
            - NUMERIC
            - WEEK_START
            - WEEK_END
            - NONE
        month:
          type: string
          description: (experimental) Month time field formatting setting
          enum:
            - NUMERIC
            - TWO_DIGIT
            - LONG
            - SHORT
            - NARROW
            - NONE
        quarter:
          type: string
          description: (experimental) Quarter time field formatting setting
          enum:
            - TWO_DIGIT
            - RANGE
            - NARROW
            - NUMERIC
            - NONE
        year:
          type: string
          description: (experimental) Year time field formatting setting
          enum:
            - NUMERIC
            - TWO_DIGIT
            - NARROW
            - SHORT
            - NONE
        dayOfYear:
          type: string
          description: (experimental) Day time field formatting setting
          enum:
            - NUMERIC
            - TWO_DIGIT
            - SHORT
            - NONE
        hour12:
          type: boolean
          description: >-
            (experimental) Enable/disable 12-hour time format. It will be
            selected automatically if nothing is selected
    SharpeningResource:
      type: object
      properties:
        enabled:
          type: boolean
          description: Enables or disables sharpening for existing end new visuals
        maxQueries:
          type: integer
          format: int32
          description: Max number of queries issued if sharpening is applied
    PlayerResource:
      type: object
      properties:
        enabled:
          type: boolean
          description: Enables or disables player for existing end new visuals
        mode:
          type: string
          enum:
            - LIVE
            - PLAYBACK
        live:
          $ref: '#/components/schemas/LiveResource'
    EvictionStrategyResource:
      type: object
      properties:
        ttl:
          type: integer
          format: int32
    StatisticsCacheScheduleResource:
      type: object
      properties:
        type:
          type: string
          enum:
            - PERIODIC
            - CRON
        periodic:
          $ref: '#/components/schemas/ScheduleResource'
        cron:
          $ref: '#/components/schemas/CronScheduleResource'
      required:
        - type
    SingleCollection:
      type: object
      description: Represents regular JDBC table in the database
      properties:
        connectionId:
          type: string
          description: Connection id. Must be present in the system
          example: 59ba04795b542f60838ce0eb
          minLength: 1
        schema:
          type: string
          description: Database schema
          example: public
        collection:
          type: string
          description: Database table/collection name
          example: real_time_sales
          minLength: 1
        parameters:
          type: object
          additionalProperties:
            type: string
          description: Collection parameters provided by the Connector
      required:
        - collection
        - connectionId
    CustomSql:
      type: object
      properties:
        connectionId:
          type: string
          description: Connection id. Must be present in the system
          example: 59ba04795b542f60838ce0eb
          minLength: 1
        sql:
          type: string
          description: >-
            Sql select statement that can be wrapped with select a.* from
            (CUSTOM_SQL) a
          example: select price * 100 as price, product_id from products
          minLength: 1
      required:
        - connectionId
        - sql
    Index:
      type: object
      description: >-
        Represents Elasticsearch target for the query. It can be single index,
        multiple indexes or pattern
      properties:
        connectionId:
          type: string
          description: Connection id. Must be present in the system
          example: 59ba04795b542f60838ce0eb
          minLength: 1
        collections:
          type: array
          description: List of indexes
          example:
            - log-1
            - log-2
            - log-3
          items:
            type: string
        patternType:
          type: string
          enum:
            - NATIVE
            - TIME_BASED
        pattern:
          type: string
          description: >-
            Pattern used to match collections in the database. Pattern syntax
            depends on patternType:</p>

            <ul><li>NATIVE - supports wildcard (*). Example:
            log-*-*<li>TIME_BASED - supports java time format. Example:
            log-yyyy-MM-dd</ul>
          example: log-*
      required:
        - connectionId
    Upload:
      type: object
      description: Represents data uploaded using uploads API
      properties:
        uploadId:
          type: string
          description: Upload id. Must be present in the system
          example: 59ba04795b542f60838ce0ec
          minLength: 1
      required:
        - uploadId
    RawCacheSettingsResource:
      type: object
      description: Defines raw cache settings for data entity
      properties:
        rawCacheEnabled:
          type: boolean
          description: Whether the cache is enabled
        rawCacheTtl:
          type: integer
          format: int32
          description: Defines time to live parameter for cache entry (in minutes)
          minimum: 1
      required:
        - rawCacheEnabled
    JoinDataEntity:
      type: object
      properties:
        dataEntityId:
          type: string
          description: Defines the data entity to be joined
          example: data_entity_id
          minLength: 1
        dimension:
          type: boolean
          description: >-
            Complex sources could join many data entities, where some joined
            data are present only to potentially enrich results with some
            additional information. If that information is not required by the
            query results, we get no benefits from additional JOINs but pay
            price in the form of additional operations. The dimension flag
            allows dropping unused joined data entities and improves performance
            considerably. NOTE: Setting this flag to true may lead to incorrect
            data result if this data entity is not a dimension
          example: false
      required:
        - dataEntityId
    Condition:
      type: object
      description: >-
        Condition used to match records from two data entities. Fields in
        condition are compared using EQUALS operator
      properties:
        leftFieldName:
          type: string
          description: Name of the field used as a left operand of EQUALS operator
          example: left_field_name
          minLength: 1
        rightFieldName:
          type: string
          description: Name of the field used as a right operand of EQUALS operator
          example: right_field_name
          minLength: 1
      required:
        - leftFieldName
        - rightFieldName
    PartitionedByResource:
      type: object
      properties:
        field:
          type: string
          maxLength: 255
          minLength: 0
        function:
          type: string
          enum:
            - MURMUR3_HASH
            - MURMUR3_HASH_1024
            - AOL_MURMUR3_HASH
            - TIME
      required:
        - field
        - function
    ChildParentResource:
      type: object
      properties:
        childField:
          type: string
          maxLength: 255
          minLength: 0
        parentField:
          type: string
          maxLength: 255
          minLength: 0
      required:
        - childField
        - parentField
    StatisticsLookupRawResource:
      type: object
      properties:
        dataEntityId:
          type: string
        originalFieldName:
          type: string
      required:
        - dataEntityId
        - originalFieldName
    LiveResource:
      type: object
      properties:
        delay:
          type: integer
          format: int32
        delayUnit:
          type: string
          enum:
            - NANOSECONDS
            - MICROSECONDS
            - MILLISECONDS
            - SECONDS
            - MINUTES
            - HOURS
            - DAYS
        refreshRate:
          type: integer
          format: int32
    ScheduleResource:
      type: object
      properties:
        frequency:
          type: string
          enum:
            - ONCE
            - HOURLY
            - DAILY
            - WEEKLY
            - MONTHLY
            - CRON
            - DAYS
            - PERIODICALLY
        minutesOfHour:
          type: integer
          format: int32
          example: 15
        dayOfMonth:
          type: integer
          format: int32
          example: 1
        dayOfWeek:
          type: string
          enum:
            - MONDAY
            - TUESDAY
            - WEDNESDAY
            - THURSDAY
            - FRIDAY
            - SATURDAY
            - SUNDAY
        daysOfWeek:
          type: array
          items:
            type: string
            enum:
              - MONDAY
              - TUESDAY
              - WEDNESDAY
              - THURSDAY
              - FRIDAY
              - SATURDAY
              - SUNDAY
          uniqueItems: true
        monthsOfYear:
          type: array
          description: >-
            Array of months, use this for running schedule annually/quarterly
            etc
          example: '[JANUARY] or [MAY, DECEMBER]'
          items:
            type: string
            enum:
              - JANUARY
              - FEBRUARY
              - MARCH
              - APRIL
              - MAY
              - JUNE
              - JULY
              - AUGUST
              - SEPTEMBER
              - OCTOBER
              - NOVEMBER
              - DECEMBER
          uniqueItems: true
        timeOfDay:
          type: string
          example: '17:30:00'
        startTimeOfDay:
          type: string
          example: '16:00:00'
        endTimeOfDay:
          type: string
          example: '18:00:00'
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        timezone:
          type: string
          description: >-
            IANA timezone ID for scheduling (e.g., 'America/New_York'). Defaults
            to UTC if not provided.
          example: America/New_York
    CronScheduleResource:
      type: object
      properties:
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
        cronExpression:
          type: string
          minLength: 1
      required:
        - cronExpression
        - startDate
  securitySchemes:
    basicAuth:
      type: http
      description: >-
        HTTP Basic authentication using global administrator credentials
        (username and password).
      scheme: basic

````