openapi: 3.0.3 info: title: Twitter OpenAPI version: 0.0.1 paths: {} components: schemas: InstructionUnion: oneOf: - $ref: "#/components/schemas/TimelineAddEntries" - $ref: "#/components/schemas/TimelineAddToModule" - $ref: "#/components/schemas/TimelineClearCache" - $ref: "#/components/schemas/TimelinePinEntry" - $ref: "#/components/schemas/TimelineReplaceEntry" - $ref: "#/components/schemas/TimelineShowAlert" - $ref: "#/components/schemas/TimelineTerminateTimeline" discriminator: propertyName: type mapping": # deprecated TimelineAddEntries: "#/components/schemas/TimelineAddEntries" TimelineAddToModule: "#/components/schemas/TimelineAddToModule" TimelineClearCache: "#/components/schemas/TimelineClearCache" TimelinePinEntry: "#/components/schemas/TimelinePinEntry" TimelineReplaceEntry: "#/components/schemas/TimelineReplaceEntry" TimelineShowAlert: "#/components/schemas/TimelineShowAlert" TimelineTerminateTimeline: "#/components/schemas/TimelineTerminateTimeline" InstructionType: type: string enum: [ TimelineAddEntries, TimelineAddToModule, TimelineClearCache, TimelinePinEntry, TimelineReplaceEntry, TimelineShowAlert, TimelineTerminateTimeline, ] TimelineAddEntries: required: - type - entries properties: type: $ref: "#/components/schemas/InstructionType" # TimelineAddEntries entries: type: array items: $ref: "#/components/schemas/TimelineAddEntry" TimelineAddToModule: required: - type - moduleItems - moduleEntryId properties: type: $ref: "#/components/schemas/InstructionType" # TimelineAddToModule moduleItems: type: array items: $ref: "./content.yaml#/components/schemas/ModuleItem" moduleEntryId: type: string prepend: type: boolean TimelineClearCache: required: - type properties: type: $ref: "#/components/schemas/InstructionType" # TimelineClearCache TimelinePinEntry: required: - type - entry properties: type: $ref: "#/components/schemas/InstructionType" # TimelinePinEntry entry: $ref: "#/components/schemas/TimelineAddEntry" TimelineReplaceEntry: required: - type - entry_id_to_replace - entry properties: type: $ref: "#/components/schemas/InstructionType" # TimelineReplaceEntry entry_id_to_replace: type: string entry: $ref: "#/components/schemas/TimelineAddEntry" TimelineShowAlert: required: - type - usersResults - richText properties: type: $ref: "#/components/schemas/InstructionType" # TimelineShowAlert alertType: type: string enum: [NewTweets] # which else? triggerDelayMs: type: integer displayDurationMs: type: integer usersResults: type: array items: $ref: "./user.yaml#/components/schemas/UserResults" richText: type: object properties: text: type: string entities: type: array items: type: object additionalProperties: true # todo iconDisplayInfo: type: object additionalProperties: true # todo colorConfig: type: object additionalProperties: true # todo displayLocation: type: string enum: [Top] # which else? TimelineTerminateTimeline: required: - type - direction properties: type: $ref: "#/components/schemas/InstructionType" # TimelineTerminateTimeline direction: type: string enum: [Top, Bottom] TimelineAddEntry: required: - "content" - "entryId" - "sortIndex" properties: content: $ref: "./content.yaml#/components/schemas/ContentUnion" entryId: type: string pattern: "^(([a-z]+|[0-9]+|[0-9a-f]+)(-|$))+" sortIndex: type: string pattern: "[0-9]+$"