@shotstack/schemas 1.6.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -89
- package/dist/json-schema/asset.json +3153 -0
- package/dist/json-schema/audio-asset.json +210 -0
- package/dist/json-schema/blueprint.json +380 -0
- package/dist/json-schema/caption-asset.json +285 -0
- package/dist/json-schema/caption-background.json +61 -0
- package/dist/json-schema/caption-detailer.json +275 -0
- package/dist/json-schema/caption-font.json +97 -0
- package/dist/json-schema/caption-margin.json +49 -0
- package/dist/json-schema/chroma-key.json +46 -0
- package/dist/json-schema/clip.json +3653 -0
- package/dist/json-schema/crop.json +69 -0
- package/dist/json-schema/destinations.json +495 -0
- package/dist/json-schema/edit.json +4618 -0
- package/dist/json-schema/flip-transformation.json +37 -0
- package/dist/json-schema/font.json +18 -0
- package/dist/json-schema/google-cloud-storage-destination-options.json +42 -0
- package/dist/json-schema/google-cloud-storage-destination.json +73 -0
- package/dist/json-schema/google-drive-destination-options.json +30 -0
- package/dist/json-schema/google-drive-destination.json +54 -0
- package/dist/json-schema/image-asset.json +104 -0
- package/dist/json-schema/image-to-video-asset.json +151 -0
- package/dist/json-schema/index.cjs +6 -0
- package/dist/json-schema/index.d.ts +11 -0
- package/dist/json-schema/index.js +8 -0
- package/dist/json-schema/luma-asset.json +38 -0
- package/dist/json-schema/merge-field.json +23 -0
- package/dist/json-schema/offset.json +175 -0
- package/dist/json-schema/output.json +771 -0
- package/dist/json-schema/poster.json +18 -0
- package/dist/json-schema/range.json +39 -0
- package/dist/json-schema/rich-caption-active-font.json +54 -0
- package/dist/json-schema/rich-caption-active.json +154 -0
- package/dist/json-schema/rich-caption-asset.json +1098 -0
- package/dist/json-schema/rich-caption-word-animation.json +60 -0
- package/dist/json-schema/rich-text-alignment.json +47 -0
- package/dist/json-schema/rich-text-animation.json +74 -0
- package/dist/json-schema/rich-text-asset.json +737 -0
- package/dist/json-schema/rich-text-background.json +52 -0
- package/dist/json-schema/rich-text-content.json +370 -0
- package/dist/json-schema/rich-text-effects.json +400 -0
- package/dist/json-schema/rich-text-font.json +157 -0
- package/dist/json-schema/rich-text-gradient.json +68 -0
- package/dist/json-schema/rich-text-shadow.json +79 -0
- package/dist/json-schema/rich-text-stroke.json +55 -0
- package/dist/json-schema/rich-text-style.json +165 -0
- package/dist/json-schema/rotate-transformation.json +153 -0
- package/dist/json-schema/s3destination-options.json +59 -0
- package/dist/json-schema/s3destination.json +90 -0
- package/dist/json-schema/schemas.json +5061 -0
- package/dist/json-schema/shape-asset.json +225 -0
- package/dist/json-schema/shotstack-destination.json +33 -0
- package/dist/json-schema/size.json +41 -0
- package/dist/json-schema/skew-transformation.json +175 -0
- package/dist/json-schema/soundtrack.json +47 -0
- package/dist/json-schema/svg-arrow-shape.json +49 -0
- package/dist/json-schema/svg-asset.json +877 -0
- package/dist/json-schema/svg-circle-shape.json +28 -0
- package/dist/json-schema/svg-cross-shape.json +42 -0
- package/dist/json-schema/svg-ellipse-shape.json +35 -0
- package/dist/json-schema/svg-fill.json +169 -0
- package/dist/json-schema/svg-gradient-stop.json +25 -0
- package/dist/json-schema/svg-heart-shape.json +28 -0
- package/dist/json-schema/svg-line-shape.json +35 -0
- package/dist/json-schema/svg-linear-gradient-fill.json +80 -0
- package/dist/json-schema/svg-path-shape.json +26 -0
- package/dist/json-schema/svg-polygon-shape.json +35 -0
- package/dist/json-schema/svg-radial-gradient-fill.json +66 -0
- package/dist/json-schema/svg-rectangle-shape.json +49 -0
- package/dist/json-schema/svg-ring-shape.json +35 -0
- package/dist/json-schema/svg-shadow.json +79 -0
- package/dist/json-schema/svg-shape.json +404 -0
- package/dist/json-schema/svg-solid-fill.json +40 -0
- package/dist/json-schema/svg-star-shape.json +42 -0
- package/dist/json-schema/svg-stroke.json +115 -0
- package/dist/json-schema/svg-transform.json +93 -0
- package/dist/json-schema/template.json +541 -0
- package/dist/json-schema/text-to-image-asset.json +128 -0
- package/dist/json-schema/text-to-speech-asset.json +239 -0
- package/dist/json-schema/thumbnail.json +25 -0
- package/dist/json-schema/timeline.json +3781 -0
- package/dist/json-schema/track.json +3668 -0
- package/dist/json-schema/transformation.json +281 -0
- package/dist/json-schema/transition.json +85 -0
- package/dist/json-schema/tween.json +120 -0
- package/dist/json-schema/video-asset.json +351 -0
- package/dist/json-schema/vimeo-destination-options.json +149 -0
- package/dist/json-schema/vimeo-destination-privacy-options.json +90 -0
- package/dist/json-schema/vimeo-destination.json +178 -0
- package/dist/json-schema/word-timing.json +44 -0
- package/dist/zod/zod.gen.cjs +1080 -921
- package/dist/zod/zod.gen.d.ts +139 -139
- package/dist/zod/zod.gen.js +1081 -922
- package/dist/zod/zod.gen.ts +1583 -1648
- package/package.json +79 -73
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "RichTextStroke",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"description": "Text stroke (outline) properties.",
|
|
6
|
+
"properties": {
|
|
7
|
+
"width": {
|
|
8
|
+
"anyOf": [
|
|
9
|
+
{
|
|
10
|
+
"type": "number",
|
|
11
|
+
"description": "The width of the stroke in pixels. Must be 0 or greater.",
|
|
12
|
+
"minimum": 0
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"type": "null"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"color": {
|
|
20
|
+
"anyOf": [
|
|
21
|
+
{
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "The stroke color using hexadecimal color notation.",
|
|
24
|
+
"enum": [
|
|
25
|
+
"#000000"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "null"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"opacity": {
|
|
34
|
+
"anyOf": [
|
|
35
|
+
{
|
|
36
|
+
"type": "number",
|
|
37
|
+
"description": "The opacity of the stroke where 1 is opaque and 0 is transparent.",
|
|
38
|
+
"minimum": 0,
|
|
39
|
+
"maximum": 1
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "null"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"additionalProperties": false,
|
|
48
|
+
"type": "object",
|
|
49
|
+
"required": [
|
|
50
|
+
"width",
|
|
51
|
+
"color",
|
|
52
|
+
"opacity"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "RichTextStyle",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"description": "Text style properties including spacing, line height, and transformations.",
|
|
6
|
+
"properties": {
|
|
7
|
+
"letterSpacing": {
|
|
8
|
+
"anyOf": [
|
|
9
|
+
{
|
|
10
|
+
"type": "number",
|
|
11
|
+
"description": "Additional spacing between letters in pixels. Can be negative for tighter spacing."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "null"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"wordSpacing": {
|
|
19
|
+
"anyOf": [
|
|
20
|
+
{
|
|
21
|
+
"type": "number",
|
|
22
|
+
"description": "Additional spacing between words in pixels. A value of 0 uses the font's natural space width.",
|
|
23
|
+
"minimum": 0
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "null"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"lineHeight": {
|
|
31
|
+
"anyOf": [
|
|
32
|
+
{
|
|
33
|
+
"type": "number",
|
|
34
|
+
"description": "The line height as a multiplier of the font size. Must be between 0 and 10.",
|
|
35
|
+
"minimum": 0,
|
|
36
|
+
"maximum": 10
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "null"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"textTransform": {
|
|
44
|
+
"anyOf": [
|
|
45
|
+
{
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "Text transformation to apply.",
|
|
48
|
+
"enum": [
|
|
49
|
+
"none",
|
|
50
|
+
"uppercase",
|
|
51
|
+
"lowercase",
|
|
52
|
+
"capitalize"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"type": "null"
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"textDecoration": {
|
|
61
|
+
"anyOf": [
|
|
62
|
+
{
|
|
63
|
+
"type": "string",
|
|
64
|
+
"description": "Text decoration to apply.",
|
|
65
|
+
"enum": [
|
|
66
|
+
"none",
|
|
67
|
+
"underline",
|
|
68
|
+
"line-through"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"type": "null"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
"gradient": {
|
|
77
|
+
"anyOf": [
|
|
78
|
+
{
|
|
79
|
+
"description": "Gradient fill for text instead of solid color.",
|
|
80
|
+
"$ref": "#/$defs/RichTextGradient"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"type": "null"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"additionalProperties": false,
|
|
89
|
+
"type": "object",
|
|
90
|
+
"required": [
|
|
91
|
+
"letterSpacing",
|
|
92
|
+
"wordSpacing",
|
|
93
|
+
"lineHeight",
|
|
94
|
+
"textTransform",
|
|
95
|
+
"textDecoration",
|
|
96
|
+
"gradient"
|
|
97
|
+
],
|
|
98
|
+
"$defs": {
|
|
99
|
+
"RichTextGradient": {
|
|
100
|
+
"description": "Gradient properties for text fill.",
|
|
101
|
+
"properties": {
|
|
102
|
+
"type": {
|
|
103
|
+
"anyOf": [
|
|
104
|
+
{
|
|
105
|
+
"type": "string",
|
|
106
|
+
"description": "The type of gradient.",
|
|
107
|
+
"enum": [
|
|
108
|
+
"linear",
|
|
109
|
+
"radial"
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"type": "null"
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
"angle": {
|
|
118
|
+
"anyOf": [
|
|
119
|
+
{
|
|
120
|
+
"type": "number",
|
|
121
|
+
"description": "The angle of the gradient in degrees (for linear gradients). Must be between 0 and 360.",
|
|
122
|
+
"minimum": 0,
|
|
123
|
+
"maximum": 360
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"type": "null"
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"stops": {
|
|
131
|
+
"description": "Gradient color stops. Must have at least 2 stops.",
|
|
132
|
+
"type": "array",
|
|
133
|
+
"items": {
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"offset": {
|
|
137
|
+
"description": "Position of the color stop between 0 (start) and 1 (end).",
|
|
138
|
+
"type": "number",
|
|
139
|
+
"minimum": 0,
|
|
140
|
+
"maximum": 1
|
|
141
|
+
},
|
|
142
|
+
"color": {
|
|
143
|
+
"description": "Color at this stop using hexadecimal color notation.",
|
|
144
|
+
"type": "string"
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"required": [
|
|
148
|
+
"offset",
|
|
149
|
+
"color"
|
|
150
|
+
],
|
|
151
|
+
"additionalProperties": false
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"required": [
|
|
156
|
+
"type",
|
|
157
|
+
"angle",
|
|
158
|
+
"stops"
|
|
159
|
+
],
|
|
160
|
+
"additionalProperties": false,
|
|
161
|
+
"type": "object"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "RotateTransformation",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"description": "Rotate a clip by the specified angle in degrees. Rotation origin is set based on the clips `position`.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"properties": {
|
|
9
|
+
"angle": {
|
|
10
|
+
"description": "Rotate a clip by the specified angle in degrees. Use a number or an array of [Tween](./#tocs_tween) objects to create a custom animation.",
|
|
11
|
+
"anyOf": [
|
|
12
|
+
{
|
|
13
|
+
"type": "number",
|
|
14
|
+
"description": "The angle to rotate the clip. Can be 0 to 360, or 0 to -360. Using a positive number rotates the clip clockwise, negative numbers counter-clockwise.",
|
|
15
|
+
"minimum": -360,
|
|
16
|
+
"maximum": 360
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"type": "array",
|
|
20
|
+
"description": "An array of [Tween](./#tocs_tween) objects used to create a custom animation. Animate the rotation of an asset over time.",
|
|
21
|
+
"items": {
|
|
22
|
+
"$ref": "#/$defs/Tween"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "null"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"required": [
|
|
32
|
+
"angle"
|
|
33
|
+
],
|
|
34
|
+
"$defs": {
|
|
35
|
+
"Tween": {
|
|
36
|
+
"description": "Use a Tween to [animate properties over time](/docs/guide/architecting-an-application/animations/). The following properties are currently supported and can be animated:\n <ul>\n <li>Opacity - animate the transparency of a clip.</li>\n <li>Offset - animate the x and y position of a clip.</li>\n <li>Rotation - animate the rotation of a clip.</li>\n <li>Skew - animate the horizontal and vertical shearing effect.</li>\n <li>Volume - animate the audio volume of a clip.</li>\n </ul>",
|
|
37
|
+
"properties": {
|
|
38
|
+
"from": {
|
|
39
|
+
"anyOf": [
|
|
40
|
+
{
|
|
41
|
+
"type": "string",
|
|
42
|
+
"description": "The initial property value at the start of the animation."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"type": "null"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"to": {
|
|
50
|
+
"anyOf": [
|
|
51
|
+
{
|
|
52
|
+
"type": "string",
|
|
53
|
+
"description": "The final property value at the end of the animation."
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"type": "null"
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"start": {
|
|
61
|
+
"anyOf": [
|
|
62
|
+
{
|
|
63
|
+
"type": "number",
|
|
64
|
+
"description": "The time in seconds when the animation starts, relative to the clip, not the timeline."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"type": "null"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
"length": {
|
|
72
|
+
"anyOf": [
|
|
73
|
+
{
|
|
74
|
+
"type": "number",
|
|
75
|
+
"description": "The duration of the animation in seconds."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"type": "null"
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
"interpolation": {
|
|
83
|
+
"anyOf": [
|
|
84
|
+
{
|
|
85
|
+
"type": "string",
|
|
86
|
+
"description": "The interpolation method to use for the animation. Available options are: <ul>\n <li>`linear` - a linear interpolation between the start and end values.</li>\n <li>`bezier` - a bezier curve interpolation between the start and end values.</li>\n <li>`constant` - an interpolation where the property instantly jumps from the start to the end value, without any gradual transition.</li>\n</ul>",
|
|
87
|
+
"enum": [
|
|
88
|
+
"linear",
|
|
89
|
+
"bezier",
|
|
90
|
+
"constant"
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"type": "null"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"easing": {
|
|
99
|
+
"anyOf": [
|
|
100
|
+
{
|
|
101
|
+
"type": "string",
|
|
102
|
+
"description": "The easing function to use for the animation. Easing controls the rate of change of the animated value, allowing for more natural motion by speeding up or slowing down the animation at different points. Only applicable if interpolation is set to `bezier`.",
|
|
103
|
+
"enum": [
|
|
104
|
+
"ease",
|
|
105
|
+
"easeIn",
|
|
106
|
+
"easeOut",
|
|
107
|
+
"easeInOut",
|
|
108
|
+
"easeInQuad",
|
|
109
|
+
"easeInCubic",
|
|
110
|
+
"easeInQuart",
|
|
111
|
+
"easeInQuint",
|
|
112
|
+
"easeInSine",
|
|
113
|
+
"easeInExpo",
|
|
114
|
+
"easeInCirc",
|
|
115
|
+
"easeInBack",
|
|
116
|
+
"easeOutQuad",
|
|
117
|
+
"easeOutCubic",
|
|
118
|
+
"easeOutQuart",
|
|
119
|
+
"easeOutQuint",
|
|
120
|
+
"easeOutSine",
|
|
121
|
+
"easeOutExpo",
|
|
122
|
+
"easeOutCirc",
|
|
123
|
+
"easeOutBack",
|
|
124
|
+
"easeInOutQuad",
|
|
125
|
+
"easeInOutCubic",
|
|
126
|
+
"easeInOutQuart",
|
|
127
|
+
"easeInOutQuint",
|
|
128
|
+
"easeInOutSine",
|
|
129
|
+
"easeInOutExpo",
|
|
130
|
+
"easeInOutCirc",
|
|
131
|
+
"easeInOutBack"
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"type": "null"
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"additionalProperties": false,
|
|
141
|
+
"type": "object",
|
|
142
|
+
"required": [
|
|
143
|
+
"from",
|
|
144
|
+
"to",
|
|
145
|
+
"start",
|
|
146
|
+
"length",
|
|
147
|
+
"interpolation",
|
|
148
|
+
"easing"
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "S3DestinationOptions",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"description": "Pass additional options to control how files are stored in S3.",
|
|
6
|
+
"properties": {
|
|
7
|
+
"region": {
|
|
8
|
+
"description": "Choose the region to send the file to. Must be a valid [AWS region](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) string like `us-east-1` or `ap-southeast-2`.",
|
|
9
|
+
"type": "string"
|
|
10
|
+
},
|
|
11
|
+
"bucket": {
|
|
12
|
+
"description": "The bucket name to send files to. The bucket must exist in the AWS account before files can be sent.",
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"prefix": {
|
|
16
|
+
"anyOf": [
|
|
17
|
+
{
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "A prefix for the file being sent. This is typically a folder name, i.e. `videos` or `customerId/videos`."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "null"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"filename": {
|
|
27
|
+
"anyOf": [
|
|
28
|
+
{
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "Use your own filename instead of the default filenames generated by Shotstack. Note: omit the file extension as this will be appended depending on the output format. Also `-poster.jpg` and `-thumb.jpg` will be appended for poster and thumbnail images."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "null"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"acl": {
|
|
38
|
+
"anyOf": [
|
|
39
|
+
{
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Sets the S3 Access Control List (acl) permissions. Default is `private`. Must use a valid S3 [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl)."
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": "null"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"required": [
|
|
50
|
+
"region",
|
|
51
|
+
"bucket",
|
|
52
|
+
"prefix",
|
|
53
|
+
"filename",
|
|
54
|
+
"acl"
|
|
55
|
+
],
|
|
56
|
+
"type": "object",
|
|
57
|
+
"additionalProperties": false
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "S3Destination",
|
|
3
|
+
"strict": true,
|
|
4
|
+
"schema": {
|
|
5
|
+
"description": "Send videos and assets to an [Amazon S3](https://shotstack.io/docs/guide/serving-assets/destinations/s3/) bucket. Send files to any region with your own prefix and filename. AWS credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/s3), not in the request.",
|
|
6
|
+
"properties": {
|
|
7
|
+
"provider": {
|
|
8
|
+
"description": "The destination to send assets to - set to `s3` for S3.",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"enum": [
|
|
11
|
+
"s3"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"options": {
|
|
15
|
+
"anyOf": [
|
|
16
|
+
{
|
|
17
|
+
"description": "Additional S3 configuration options.",
|
|
18
|
+
"$ref": "#/$defs/S3DestinationOptions"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "null"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"type": "object",
|
|
27
|
+
"required": [
|
|
28
|
+
"provider",
|
|
29
|
+
"options"
|
|
30
|
+
],
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"$defs": {
|
|
33
|
+
"S3DestinationOptions": {
|
|
34
|
+
"description": "Pass additional options to control how files are stored in S3.",
|
|
35
|
+
"properties": {
|
|
36
|
+
"region": {
|
|
37
|
+
"description": "Choose the region to send the file to. Must be a valid [AWS region](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) string like `us-east-1` or `ap-southeast-2`.",
|
|
38
|
+
"type": "string"
|
|
39
|
+
},
|
|
40
|
+
"bucket": {
|
|
41
|
+
"description": "The bucket name to send files to. The bucket must exist in the AWS account before files can be sent.",
|
|
42
|
+
"type": "string"
|
|
43
|
+
},
|
|
44
|
+
"prefix": {
|
|
45
|
+
"anyOf": [
|
|
46
|
+
{
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "A prefix for the file being sent. This is typically a folder name, i.e. `videos` or `customerId/videos`."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"type": "null"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
"filename": {
|
|
56
|
+
"anyOf": [
|
|
57
|
+
{
|
|
58
|
+
"type": "string",
|
|
59
|
+
"description": "Use your own filename instead of the default filenames generated by Shotstack. Note: omit the file extension as this will be appended depending on the output format. Also `-poster.jpg` and `-thumb.jpg` will be appended for poster and thumbnail images."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"type": "null"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
"acl": {
|
|
67
|
+
"anyOf": [
|
|
68
|
+
{
|
|
69
|
+
"type": "string",
|
|
70
|
+
"description": "Sets the S3 Access Control List (acl) permissions. Default is `private`. Must use a valid S3 [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl)."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"type": "null"
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"required": [
|
|
79
|
+
"region",
|
|
80
|
+
"bucket",
|
|
81
|
+
"prefix",
|
|
82
|
+
"filename",
|
|
83
|
+
"acl"
|
|
84
|
+
],
|
|
85
|
+
"type": "object",
|
|
86
|
+
"additionalProperties": false
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|