Compare commits
10 Commits
kat/video-
...
volodymyr/
Author | SHA1 | Date | |
---|---|---|---|
5e2fe35427 | |||
4e610b7df2 | |||
2d6d3964ad | |||
73a58de36e | |||
dc6f246489 | |||
c0a3aa97dc | |||
f4e43b24f2 | |||
51ab8320d7 | |||
f9a00ad3eb | |||
998b2ffc8c |
296
src/index.tsx
296
src/index.tsx
@@ -2002,6 +2002,7 @@ export type MustHaveSetForUploadLinkErrSegmentAlreadyUploadedErrProcessingFailed
|
|||||||
export type Mutation = {
|
export type Mutation = {
|
||||||
__typename?: "Mutation";
|
__typename?: "Mutation";
|
||||||
addAnnotationToShot: AddShotAnnotationReturn;
|
addAnnotationToShot: AddShotAnnotationReturn;
|
||||||
|
checkHomographyIsValid?: Maybe<HomographyInfoGql>;
|
||||||
createBucketSet: BucketSetGql;
|
createBucketSet: BucketSetGql;
|
||||||
createUploadStream: CreateUploadStreamReturn;
|
createUploadStream: CreateUploadStreamReturn;
|
||||||
deleteVideo: Scalars["Boolean"]["output"];
|
deleteVideo: Scalars["Boolean"]["output"];
|
||||||
@@ -2024,6 +2025,11 @@ export type MutationAddAnnotationToShotArgs = {
|
|||||||
shotId: Scalars["Int"]["input"];
|
shotId: Scalars["Int"]["input"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type MutationCheckHomographyIsValidArgs = {
|
||||||
|
b64Image: Scalars["String"]["input"];
|
||||||
|
videoId: Scalars["Int"]["input"];
|
||||||
|
};
|
||||||
|
|
||||||
export type MutationCreateBucketSetArgs = {
|
export type MutationCreateBucketSetArgs = {
|
||||||
params: CreateBucketSetInput;
|
params: CreateBucketSetInput;
|
||||||
};
|
};
|
||||||
@@ -2728,6 +2734,51 @@ export type GetAggregatedShotMetricsQuery = {
|
|||||||
}>;
|
}>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type CheckHomographyIsValidMutationVariables = Exact<{
|
||||||
|
b64Image: Scalars["String"]["input"];
|
||||||
|
videoId: Scalars["Int"]["input"];
|
||||||
|
}>;
|
||||||
|
|
||||||
|
export type CheckHomographyIsValidMutation = {
|
||||||
|
__typename?: "Mutation";
|
||||||
|
checkHomographyIsValid?: {
|
||||||
|
__typename?: "HomographyInfoGQL";
|
||||||
|
frameIndex: number;
|
||||||
|
crop: {
|
||||||
|
__typename?: "BoundingBoxGQL";
|
||||||
|
left: number;
|
||||||
|
top: number;
|
||||||
|
width: number;
|
||||||
|
height: number;
|
||||||
|
};
|
||||||
|
pockets: Array<{
|
||||||
|
__typename?: "BoundingBoxGQL";
|
||||||
|
left: number;
|
||||||
|
top: number;
|
||||||
|
width: number;
|
||||||
|
height: number;
|
||||||
|
}>;
|
||||||
|
sourcePoints: {
|
||||||
|
__typename?: "PocketPointsGQL";
|
||||||
|
topLeft: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
topSide: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
topRight: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
bottomLeft: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
bottomSide: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
bottomRight: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
};
|
||||||
|
destPoints: {
|
||||||
|
__typename?: "PocketPointsGQL";
|
||||||
|
topLeft: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
topSide: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
topRight: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
bottomLeft: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
bottomSide: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
bottomRight: { __typename?: "IntPoint2D"; x: number; y: number };
|
||||||
|
};
|
||||||
|
} | null;
|
||||||
|
};
|
||||||
|
|
||||||
export type GetDeployedConfigQueryVariables = Exact<{ [key: string]: never }>;
|
export type GetDeployedConfigQueryVariables = Exact<{ [key: string]: never }>;
|
||||||
|
|
||||||
export type GetDeployedConfigQuery = {
|
export type GetDeployedConfigQuery = {
|
||||||
@@ -2816,6 +2867,15 @@ export type VideoCardFieldsFragment = {
|
|||||||
name: string;
|
name: string;
|
||||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||||
}>;
|
}>;
|
||||||
|
currentProcessing?: {
|
||||||
|
__typename?: "VideoProcessingGQL";
|
||||||
|
status: ProcessingStatusEnum;
|
||||||
|
errors: Array<{ __typename?: "VideoProcessingErrorGQL"; message: string }>;
|
||||||
|
statuses: Array<{
|
||||||
|
__typename?: "VideoProcessingStatusGQL";
|
||||||
|
status: ProcessingStatusEnum;
|
||||||
|
}>;
|
||||||
|
} | null;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type GetVideoFeedQueryVariables = Exact<{
|
export type GetVideoFeedQueryVariables = Exact<{
|
||||||
@@ -2858,6 +2918,18 @@ export type GetVideoFeedQuery = {
|
|||||||
name: string;
|
name: string;
|
||||||
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
tagClasses: Array<{ __typename?: "VideoTagClass"; name: string }>;
|
||||||
}>;
|
}>;
|
||||||
|
currentProcessing?: {
|
||||||
|
__typename?: "VideoProcessingGQL";
|
||||||
|
status: ProcessingStatusEnum;
|
||||||
|
errors: Array<{
|
||||||
|
__typename?: "VideoProcessingErrorGQL";
|
||||||
|
message: string;
|
||||||
|
}>;
|
||||||
|
statuses: Array<{
|
||||||
|
__typename?: "VideoProcessingStatusGQL";
|
||||||
|
status: ProcessingStatusEnum;
|
||||||
|
}>;
|
||||||
|
} | null;
|
||||||
}>;
|
}>;
|
||||||
pageInfo: {
|
pageInfo: {
|
||||||
__typename?: "PageInfoGQL";
|
__typename?: "PageInfoGQL";
|
||||||
@@ -2967,6 +3039,20 @@ export type GetShotsWithVideoGqlQuery = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type GetShotsWithJustIdsQueryVariables = Exact<{
|
||||||
|
filterInput: FilterInput;
|
||||||
|
shotsOrdering?: InputMaybe<GetShotsOrdering>;
|
||||||
|
limit?: InputMaybe<Scalars["Int"]["input"]>;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
export type GetShotsWithJustIdsQuery = {
|
||||||
|
__typename?: "Query";
|
||||||
|
getOrderedShots: {
|
||||||
|
__typename?: "GetShotsResult";
|
||||||
|
shots: Array<{ __typename?: "ShotGQL"; id: number; videoId: number }>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
export type GetShotsWithMetadataFilterResultQueryVariables = Exact<{
|
export type GetShotsWithMetadataFilterResultQueryVariables = Exact<{
|
||||||
filterInput: FilterInput;
|
filterInput: FilterInput;
|
||||||
shotsOrdering?: InputMaybe<GetShotsOrdering>;
|
shotsOrdering?: InputMaybe<GetShotsOrdering>;
|
||||||
@@ -4019,6 +4105,15 @@ export const VideoCardFieldsFragmentDoc = gql`
|
|||||||
}
|
}
|
||||||
name
|
name
|
||||||
}
|
}
|
||||||
|
currentProcessing {
|
||||||
|
errors {
|
||||||
|
message
|
||||||
|
}
|
||||||
|
status
|
||||||
|
statuses {
|
||||||
|
status
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
export const ShotWithAllFeaturesFragmentDoc = gql`
|
export const ShotWithAllFeaturesFragmentDoc = gql`
|
||||||
@@ -4219,6 +4314,121 @@ export type GetAggregatedShotMetricsQueryResult = Apollo.QueryResult<
|
|||||||
GetAggregatedShotMetricsQuery,
|
GetAggregatedShotMetricsQuery,
|
||||||
GetAggregatedShotMetricsQueryVariables
|
GetAggregatedShotMetricsQueryVariables
|
||||||
>;
|
>;
|
||||||
|
export const CheckHomographyIsValidDocument = gql`
|
||||||
|
mutation checkHomographyIsValid($b64Image: String!, $videoId: Int!) {
|
||||||
|
checkHomographyIsValid(b64Image: $b64Image, videoId: $videoId) {
|
||||||
|
frameIndex
|
||||||
|
crop {
|
||||||
|
left
|
||||||
|
top
|
||||||
|
width
|
||||||
|
height
|
||||||
|
}
|
||||||
|
pockets {
|
||||||
|
left
|
||||||
|
top
|
||||||
|
width
|
||||||
|
height
|
||||||
|
}
|
||||||
|
sourcePoints {
|
||||||
|
topLeft {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
topSide {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
topRight {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomLeft {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomSide {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomRight {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
destPoints {
|
||||||
|
topLeft {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
topSide {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
topRight {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomLeft {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomSide {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomRight {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
export type CheckHomographyIsValidMutationFn = Apollo.MutationFunction<
|
||||||
|
CheckHomographyIsValidMutation,
|
||||||
|
CheckHomographyIsValidMutationVariables
|
||||||
|
>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* __useCheckHomographyIsValidMutation__
|
||||||
|
*
|
||||||
|
* To run a mutation, you first call `useCheckHomographyIsValidMutation` within a React component and pass it any options that fit your needs.
|
||||||
|
* When your component renders, `useCheckHomographyIsValidMutation` returns a tuple that includes:
|
||||||
|
* - A mutate function that you can call at any time to execute the mutation
|
||||||
|
* - An object with fields that represent the current status of the mutation's execution
|
||||||
|
*
|
||||||
|
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* const [checkHomographyIsValidMutation, { data, loading, error }] = useCheckHomographyIsValidMutation({
|
||||||
|
* variables: {
|
||||||
|
* b64Image: // value for 'b64Image'
|
||||||
|
* videoId: // value for 'videoId'
|
||||||
|
* },
|
||||||
|
* });
|
||||||
|
*/
|
||||||
|
export function useCheckHomographyIsValidMutation(
|
||||||
|
baseOptions?: Apollo.MutationHookOptions<
|
||||||
|
CheckHomographyIsValidMutation,
|
||||||
|
CheckHomographyIsValidMutationVariables
|
||||||
|
>,
|
||||||
|
) {
|
||||||
|
const options = { ...defaultOptions, ...baseOptions };
|
||||||
|
return Apollo.useMutation<
|
||||||
|
CheckHomographyIsValidMutation,
|
||||||
|
CheckHomographyIsValidMutationVariables
|
||||||
|
>(CheckHomographyIsValidDocument, options);
|
||||||
|
}
|
||||||
|
export type CheckHomographyIsValidMutationHookResult = ReturnType<
|
||||||
|
typeof useCheckHomographyIsValidMutation
|
||||||
|
>;
|
||||||
|
export type CheckHomographyIsValidMutationResult =
|
||||||
|
Apollo.MutationResult<CheckHomographyIsValidMutation>;
|
||||||
|
export type CheckHomographyIsValidMutationOptions = Apollo.BaseMutationOptions<
|
||||||
|
CheckHomographyIsValidMutation,
|
||||||
|
CheckHomographyIsValidMutationVariables
|
||||||
|
>;
|
||||||
export const GetDeployedConfigDocument = gql`
|
export const GetDeployedConfigDocument = gql`
|
||||||
query getDeployedConfig {
|
query getDeployedConfig {
|
||||||
getDeployedConfig {
|
getDeployedConfig {
|
||||||
@@ -4875,6 +5085,92 @@ export type GetShotsWithVideoGqlQueryResult = Apollo.QueryResult<
|
|||||||
GetShotsWithVideoGqlQuery,
|
GetShotsWithVideoGqlQuery,
|
||||||
GetShotsWithVideoGqlQueryVariables
|
GetShotsWithVideoGqlQueryVariables
|
||||||
>;
|
>;
|
||||||
|
export const GetShotsWithJustIdsDocument = gql`
|
||||||
|
query GetShotsWithJustIds(
|
||||||
|
$filterInput: FilterInput!
|
||||||
|
$shotsOrdering: GetShotsOrdering
|
||||||
|
$limit: Int
|
||||||
|
) {
|
||||||
|
getOrderedShots(
|
||||||
|
filterInput: $filterInput
|
||||||
|
shotsOrdering: $shotsOrdering
|
||||||
|
limit: $limit
|
||||||
|
) {
|
||||||
|
shots {
|
||||||
|
id
|
||||||
|
videoId
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* __useGetShotsWithJustIdsQuery__
|
||||||
|
*
|
||||||
|
* To run a query within a React component, call `useGetShotsWithJustIdsQuery` and pass it any options that fit your needs.
|
||||||
|
* When your component renders, `useGetShotsWithJustIdsQuery` returns an object from Apollo Client that contains loading, error, and data properties
|
||||||
|
* you can use to render your UI.
|
||||||
|
*
|
||||||
|
* @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* const { data, loading, error } = useGetShotsWithJustIdsQuery({
|
||||||
|
* variables: {
|
||||||
|
* filterInput: // value for 'filterInput'
|
||||||
|
* shotsOrdering: // value for 'shotsOrdering'
|
||||||
|
* limit: // value for 'limit'
|
||||||
|
* },
|
||||||
|
* });
|
||||||
|
*/
|
||||||
|
export function useGetShotsWithJustIdsQuery(
|
||||||
|
baseOptions: Apollo.QueryHookOptions<
|
||||||
|
GetShotsWithJustIdsQuery,
|
||||||
|
GetShotsWithJustIdsQueryVariables
|
||||||
|
>,
|
||||||
|
) {
|
||||||
|
const options = { ...defaultOptions, ...baseOptions };
|
||||||
|
return Apollo.useQuery<
|
||||||
|
GetShotsWithJustIdsQuery,
|
||||||
|
GetShotsWithJustIdsQueryVariables
|
||||||
|
>(GetShotsWithJustIdsDocument, options);
|
||||||
|
}
|
||||||
|
export function useGetShotsWithJustIdsLazyQuery(
|
||||||
|
baseOptions?: Apollo.LazyQueryHookOptions<
|
||||||
|
GetShotsWithJustIdsQuery,
|
||||||
|
GetShotsWithJustIdsQueryVariables
|
||||||
|
>,
|
||||||
|
) {
|
||||||
|
const options = { ...defaultOptions, ...baseOptions };
|
||||||
|
return Apollo.useLazyQuery<
|
||||||
|
GetShotsWithJustIdsQuery,
|
||||||
|
GetShotsWithJustIdsQueryVariables
|
||||||
|
>(GetShotsWithJustIdsDocument, options);
|
||||||
|
}
|
||||||
|
export function useGetShotsWithJustIdsSuspenseQuery(
|
||||||
|
baseOptions?: Apollo.SuspenseQueryHookOptions<
|
||||||
|
GetShotsWithJustIdsQuery,
|
||||||
|
GetShotsWithJustIdsQueryVariables
|
||||||
|
>,
|
||||||
|
) {
|
||||||
|
const options = { ...defaultOptions, ...baseOptions };
|
||||||
|
return Apollo.useSuspenseQuery<
|
||||||
|
GetShotsWithJustIdsQuery,
|
||||||
|
GetShotsWithJustIdsQueryVariables
|
||||||
|
>(GetShotsWithJustIdsDocument, options);
|
||||||
|
}
|
||||||
|
export type GetShotsWithJustIdsQueryHookResult = ReturnType<
|
||||||
|
typeof useGetShotsWithJustIdsQuery
|
||||||
|
>;
|
||||||
|
export type GetShotsWithJustIdsLazyQueryHookResult = ReturnType<
|
||||||
|
typeof useGetShotsWithJustIdsLazyQuery
|
||||||
|
>;
|
||||||
|
export type GetShotsWithJustIdsSuspenseQueryHookResult = ReturnType<
|
||||||
|
typeof useGetShotsWithJustIdsSuspenseQuery
|
||||||
|
>;
|
||||||
|
export type GetShotsWithJustIdsQueryResult = Apollo.QueryResult<
|
||||||
|
GetShotsWithJustIdsQuery,
|
||||||
|
GetShotsWithJustIdsQueryVariables
|
||||||
|
>;
|
||||||
export const GetShotsWithMetadataFilterResultDocument = gql`
|
export const GetShotsWithMetadataFilterResultDocument = gql`
|
||||||
query GetShotsWithMetadataFilterResult(
|
query GetShotsWithMetadataFilterResult(
|
||||||
$filterInput: FilterInput!
|
$filterInput: FilterInput!
|
||||||
|
69
src/operations/check_homography.gql
Normal file
69
src/operations/check_homography.gql
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
mutation checkHomographyIsValid($b64Image: String!, $videoId: Int!) {
|
||||||
|
checkHomographyIsValid(b64Image: $b64Image, videoId: $videoId) {
|
||||||
|
frameIndex
|
||||||
|
crop {
|
||||||
|
left
|
||||||
|
top
|
||||||
|
width
|
||||||
|
height
|
||||||
|
}
|
||||||
|
pockets {
|
||||||
|
left
|
||||||
|
top
|
||||||
|
width
|
||||||
|
height
|
||||||
|
}
|
||||||
|
sourcePoints {
|
||||||
|
topLeft {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
topSide {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
topRight {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomLeft {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomSide {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomRight {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
destPoints {
|
||||||
|
topLeft {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
topSide {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
topRight {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomLeft {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomSide {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
bottomRight {
|
||||||
|
x
|
||||||
|
y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -69,6 +69,15 @@ fragment VideoCardFields on VideoGQL {
|
|||||||
}
|
}
|
||||||
name
|
name
|
||||||
}
|
}
|
||||||
|
currentProcessing {
|
||||||
|
errors {
|
||||||
|
message
|
||||||
|
}
|
||||||
|
status
|
||||||
|
statuses {
|
||||||
|
status
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
query GetVideoFeed(
|
query GetVideoFeed(
|
||||||
|
@@ -40,6 +40,7 @@ mutation UpdateShotAnnotations(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## Should be deprecated
|
||||||
query GetShotsWithVideoGql(
|
query GetShotsWithVideoGql(
|
||||||
$filterInput: FilterInput!
|
$filterInput: FilterInput!
|
||||||
$shotsOrdering: GetShotsOrdering
|
$shotsOrdering: GetShotsOrdering
|
||||||
@@ -61,6 +62,23 @@ query GetShotsWithVideoGql(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
query GetShotsWithJustIds(
|
||||||
|
$filterInput: FilterInput!
|
||||||
|
$shotsOrdering: GetShotsOrdering
|
||||||
|
$limit: Int
|
||||||
|
) {
|
||||||
|
getOrderedShots(
|
||||||
|
filterInput: $filterInput
|
||||||
|
shotsOrdering: $shotsOrdering
|
||||||
|
limit: $limit
|
||||||
|
) {
|
||||||
|
shots {
|
||||||
|
id
|
||||||
|
videoId
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
## Reserved for playlists (which are created from a filter)
|
## Reserved for playlists (which are created from a filter)
|
||||||
query GetShotsWithMetadataFilterResult(
|
query GetShotsWithMetadataFilterResult(
|
||||||
$filterInput: FilterInput!
|
$filterInput: FilterInput!
|
||||||
|
@@ -668,6 +668,7 @@ type Mutation {
|
|||||||
editUser(input: EditUserInputGQL!): UserGQL!
|
editUser(input: EditUserInputGQL!): UserGQL!
|
||||||
followUser(followedUserId: Int!): UserGQL!
|
followUser(followedUserId: Int!): UserGQL!
|
||||||
unfollowUser(followedUserId: Int!): UserGQL!
|
unfollowUser(followedUserId: Int!): UserGQL!
|
||||||
|
checkHomographyIsValid(b64Image: String!, videoId: Int!): HomographyInfoGQL
|
||||||
createUploadStream(
|
createUploadStream(
|
||||||
videoMetadata: VideoMetadataInput!
|
videoMetadata: VideoMetadataInput!
|
||||||
): CreateUploadStreamReturn!
|
): CreateUploadStreamReturn!
|
||||||
|
Reference in New Issue
Block a user