1
Fork 0
mirror of https://github.com/thegeneralist01/twitter-openapi synced 2026-01-11 15:40:26 +01:00
twitter-openapi/src/openapi/schemas/instruction.yaml
ふぁ cee095e948
fix #22, update additionalProperties
Signed-off-by: ふぁ <yuki@yuki0311.com>
2023-07-30 19:43:04 +09:00

164 lines
4.5 KiB
YAML

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]+$"