import { HalResource } from '../hal/models/HalResource'; import { FacetedContentItem } from './ContentItem'; import { ContentRepository } from './ContentRepository'; import { ContentType } from './ContentType'; import { ContentTypeSchema } from './ContentTypeSchema'; import { Edition } from './Edition'; import { Event } from './Event'; import { FacetQuery, FacetsResponse } from './Facets'; import { FindByDate } from './FindByDate'; import { Page } from './Page'; import { Pageable } from './Pageable'; import { SearchIndex } from './SearchIndex'; import { Sortable } from './Sortable'; import { Status } from './Status'; import { Settings } from './Settings'; import { Webhook } from './Webhook'; import { WorkflowState } from './WorkflowState'; import { Extension } from './Extension'; import { Snapshot } from './Snapshot'; import { SnapshotResultList } from './SnapshotResultList'; import { StatusFilterable } from './StatusFilterable'; import { CreateDeepSyncJobRequest, CreateDeepSyncJobResponse, Job, JobStatus, JobType } from './Job'; import { LinkedContentRepositoriesPage, LinkedContentRepository } from './LinkedContentRepository'; /** * Class representing the [Hub](https://amplience.com/docs/api/dynamic-content/management/#resources-hubs) resource. * Hubs are containers for multiple repositories including media, content, content types. */ export declare class Hub extends HalResource { /** * Unique id generated on creation */ id?: string; /** * Globally unique programmatic name for the Hub */ name?: string; /** * Friendly display label for the Hub */ label?: string; /** * Textual description of the Hub */ description?: string; /** * Lifecycle status of the Hub */ status?: Status; /** * Id of the user responsible for originally creating the Hub */ createdBy?: string; /** * Timestamp representing when the Hub was originally created in ISO 8601 format */ createdDate?: string; /** * Id of the user responsible for the last update to the Hub */ lastModifiedBy?: string; /** * Timestamp representing when the Hub was last updated in ISO 8601 format */ lastModifiedDate?: string; /** * Hub settings */ settings?: Settings; /** * Resources and actions related to a Hub */ readonly related: { contentTypeSchema: { /** * Creates a new Content Type Schema * @param resource */ create: (resource: ContentTypeSchema) => Promise; /** * Retrieves a list of Content Type Schemas associated with this Hub * @param options Pagination options */ list: (options?: Pageable) => Promise>; }; contentRepositories: { /** * Retrieves a list of Content Repositories associated with this Hub * @param options Pagination options */ list: (options?: Pageable & Sortable) => Promise>; /** * Find all the Content Repositories that contain a feature * @param options Options */ findByFeature: (feature: string, options?: Pageable & Sortable) => Promise>; }; contentTypes: { /** * Retrieves a list of Content Types associated with this Hub * @param options Pagination options */ list: (options?: Pageable & Sortable & StatusFilterable) => Promise>; /** * Register a Content Type on a hub so it can be enabled on a repository */ register: (resource: ContentType) => Promise; /** * Get a content type by its id */ get: (id: string) => Promise; }; contentItems: { /** * Facet content items and search by text. See [Text Search Query Syntax](https://amplience.com/docs/api/dynamic-content/management/#section/Text-Search-Query-Syntax) for a summary of the query syntax. */ facet: (facetQuery: FacetQuery, options?: Pageable & Sortable & { query: string; }) => Promise>; }; editions: { /** * Find editions by date associated with this Hub * @param options FindByDate & Pageable & Sortable options */ findByDate: (options?: FindByDate & Pageable & Sortable, projection?: string) => Promise>; }; events: { /** * Creates an Event inside this Hub * @param resource */ create: (resource: Event) => Promise; /** * Retrieves a list of Events associated with this Hub * @param options Pagination options */ list: (options?: Pageable & Sortable) => Promise>; }; extensions: { /** * Creates an Extension inside this Hub * @param resource */ create: (resource: Extension) => Promise; /** * Get an Extension inside this Hub by its name */ getByName: (name: string) => Promise; /** * Retrieves a list of Extension associated with this Hub * @param options Pagination options */ list: (options?: Pageable & Sortable) => Promise>; }; linkedContentRepositories: { /** * Retrieves a list of Linked Content Repositories associated with the organization * @param options Pagination options */ list: (options?: Pageable) => Promise; /** * Create linked content repositories mapping * @param resource * @returns */ create: (resource: LinkedContentRepository) => Promise; /** * Update linked content repositories mapping * @param resource * @returns */ update: (resource: LinkedContentRepository) => Promise; /** * Delete linked content repositories mapping * @param resource * @returns */ delete: (resource: LinkedContentRepository) => Promise; }; searchIndexes: { /** * Create a search index for a given hub * @param resource */ create: (resource: SearchIndex) => Promise; /** * Get a search index by its id */ get: (id: string) => Promise; /** * Retrieves a list of search indexes associated with this Hub */ list: (parentId?: string, projection?: string, options?: Pageable & Sortable) => Promise>; }; settings: { /** * Updates this hub settings with the changes in the mutation parameter. */ update: (mutation: Settings) => Promise; }; snapshots: { /** * Creates a Snapshot inside this Hub * @param request */ create: (request: Snapshot[]) => Promise; }; webhooks: { /** * Creates a Webhook inside this Hub * @param resource */ create: (resource: Webhook) => Promise; /** * Get a Webhook inside this Hub by its id */ get: (id: string) => Promise; /** * Retrieves a list of Webhooks associated with this Hub * @param options Pagination options */ list: (options?: Pageable & Sortable) => Promise>; }; workflowStates: { /** * Creates a Workflow State inside this Hub * @param resource */ create: (resource: WorkflowState) => Promise; /** * Get a Webhook State insidee this Hub by its id * @param id */ get: (id: string) => Promise; /** * Retrieves a list of Workflow States associated with this Hub * @param options Pagination options */ list: (options?: Pageable & Sortable) => Promise>; }; jobs: { /** * Create a sync job associated with this hub * @param resource */ createDeepSyncJob: (resource: CreateDeepSyncJobRequest) => Promise; /** * List jobs associated with this hub * @param params Pagination options * @param data Filter options * @param data.user Optional user ID to filter jobs by the user that created them * @param data.limitDateRange Optional flag to limit the date range of jobs returned to the last 30 days * @param data.status Optional job status to filter by * @param data.jobType Optional job type to filter by */ list: (params?: Pageable & Sortable, data?: { user?: string; limitDateRange?: boolean; status?: JobStatus; jobType?: JobType; }) => Promise>; /** * Get a job by its id * @param id */ get: (jobId: string) => Promise; }; }; } /** * @hidden */ export declare class HubsPage extends Page { constructor(data?: any); }