diff --git a/src/index.tsx b/src/index.tsx index 16946a7..13e27a4 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -224,6 +224,14 @@ export type CreateBucketSetInput = { keyName: Scalars["String"]["input"]; }; +export type CreateGroundTruthShotInputGql = { + endFrame: Scalars["Int"]["input"]; + make?: InputMaybe; + notes?: InputMaybe; + processingId: Scalars["Int"]["input"]; + startFrame: Scalars["Int"]["input"]; +}; + export type CreateSubscriptionResultGql = { __typename?: "CreateSubscriptionResultGQL"; checkoutUrl: Scalars["String"]["output"]; @@ -269,6 +277,11 @@ export type DatetimeRangeAggregationInput = { startDatetime?: InputMaybe; }; +export type DeleteGroundTruthShotReturn = { + __typename?: "DeleteGroundTruthShotReturn"; + deletedShotId: Scalars["Int"]["output"]; +}; + export type DeployedConfigGql = { __typename?: "DeployedConfigGQL"; allowNewUsers: Scalars["Boolean"]["output"]; @@ -308,9 +321,12 @@ export type EditUserInputGql = { export type EditableShotFieldInputGql = { backcut?: InputMaybe; excludeFromStats?: InputMaybe; + intendedBallId?: InputMaybe; + intendedPocketId?: InputMaybe; intendedPocketType?: InputMaybe; make?: InputMaybe; notes?: InputMaybe; + pathMetadataIndex?: InputMaybe; shotDirection?: InputMaybe; spinType?: InputMaybe; targetPocketAngleDirection?: InputMaybe; @@ -351,6 +367,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -395,6 +412,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -439,6 +457,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -483,6 +502,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -527,6 +547,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -571,6 +592,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -615,6 +637,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -659,6 +682,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -703,6 +727,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -747,6 +772,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -791,6 +817,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -835,6 +862,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -879,6 +907,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -923,6 +952,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -967,6 +997,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1011,6 +1042,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1055,6 +1087,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1099,6 +1132,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1143,6 +1177,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1187,6 +1222,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1231,6 +1267,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1275,6 +1312,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1319,6 +1357,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1363,6 +1402,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1407,6 +1447,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1451,6 +1492,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1495,6 +1537,7 @@ export type FilterInput = missAngleInDegrees: FloatRangeFilter; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1539,6 +1582,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter: FilterInput; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1583,6 +1627,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters: Array; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1627,6 +1672,52 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId: Array; + runId?: never; + runLength?: never; + shotDirection?: never; + spinType?: never; + tableSize?: never; + tags?: never; + targetPocketAngle?: never; + targetPocketAngleDirection?: never; + targetPocketDistance?: never; + totalDistance?: never; + userId?: never; + username?: never; + videoId?: never; + } + | { + andFilters?: never; + annotations?: never; + backcut?: never; + bankAngle?: never; + bankDistance?: never; + createdAt?: never; + cueAngleAfterObject?: never; + cueBallSpeed?: never; + cueObjectAngle?: never; + cueObjectDistance?: never; + cueSpeedAfterObject?: never; + difficulty?: never; + falsePositiveScore?: never; + fargoRating?: never; + intendedPocketType?: never; + isBreakHeuristic?: never; + isDirect?: never; + isLeft?: never; + isLeftMiss?: never; + isRight?: never; + isRightMiss?: never; + isStraight?: never; + kickAngle?: never; + kickDistance?: never; + make?: never; + marginOfErrorInDegrees?: never; + missAngleInDegrees?: never; + notFilter?: never; + orFilters?: never; + processingId?: never; runId: Array; runLength?: never; shotDirection?: never; @@ -1671,6 +1762,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength: FloatRangeFilter; shotDirection?: never; @@ -1715,6 +1807,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection: Array; @@ -1759,6 +1852,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1803,6 +1897,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1847,6 +1942,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1891,6 +1987,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1935,6 +2032,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -1979,6 +2077,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -2023,6 +2122,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -2067,6 +2167,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -2111,6 +2212,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -2155,6 +2257,7 @@ export type FilterInput = missAngleInDegrees?: never; notFilter?: never; orFilters?: never; + processingId?: never; runId?: never; runLength?: never; shotDirection?: never; @@ -2346,10 +2449,12 @@ export type Mutation = { commentOnVideo: Scalars["Boolean"]["output"]; createBucketSet: BucketSetGql; createChallenge: Challenge; + createGroundTruthShot: ShotGql; createRuleSet: RuleSet; createSubscription: CreateSubscriptionResultGql; createUploadStream: CreateUploadStreamReturn; deleteComment: Scalars["Boolean"]["output"]; + deleteGroundTruthShot: DeleteGroundTruthShotReturn; deleteNotification: Scalars["Boolean"]["output"]; deleteTags: Scalars["Boolean"]["output"]; deleteUser: Scalars["Boolean"]["output"]; @@ -2364,12 +2469,14 @@ export type Mutation = { findPrerecordTableLayout?: Maybe; followUser: UserGql; getHlsInitUploadLink: GetUploadLinkReturn; + getOrCreateGroundTruthProcessing: VideoProcessingGql; getProfileImageUploadLink: GetProfileUploadLinkReturn; getUploadLink: GetUploadLinkReturn; inviteUsersToChallenge: Array; markAllNotificationsAsRead: Scalars["Boolean"]["output"]; markNotificationAsRead: Scalars["Boolean"]["output"]; markNotificationsAsRead: Scalars["Boolean"]["output"]; + promoteGroundTruthProcessing: VideoProcessingGql; reactToVideo: Scalars["Boolean"]["output"]; recalculateChallengeEntry: ChallengeEntry; reportContent: Scalars["Boolean"]["output"]; @@ -2377,11 +2484,13 @@ export type Mutation = { retireTags: Scalars["Boolean"]["output"]; setLoggerLevel: Scalars["Boolean"]["output"]; setSegmentDuration: Scalars["Boolean"]["output"]; + splitGroundTruthShot: SplitGroundTruthShotReturn; startChallenge: ChallengeEntry; submitCancellationFeedback: Scalars["Boolean"]["output"]; submitChallengeEntry: ChallengeEntry; undismissChallenge: Scalars["Boolean"]["output"]; unfollowUser: UserGql; + updateGroundTruthShotFrameRange: ShotGql; updateShotAnnotations: UpdateShotAnnotationReturn; }; @@ -2422,6 +2531,10 @@ export type MutationCreateChallengeArgs = { startDate: Scalars["DateTime"]["input"]; }; +export type MutationCreateGroundTruthShotArgs = { + input: CreateGroundTruthShotInputGql; +}; + export type MutationCreateRuleSetArgs = { description?: InputMaybe; name: Scalars["String"]["input"]; @@ -2441,6 +2554,10 @@ export type MutationDeleteCommentArgs = { videoId: Scalars["Int"]["input"]; }; +export type MutationDeleteGroundTruthShotArgs = { + shotId: Scalars["Int"]["input"]; +}; + export type MutationDeleteNotificationArgs = { notificationId: Scalars["Int"]["input"]; }; @@ -2495,6 +2612,11 @@ export type MutationGetHlsInitUploadLinkArgs = { videoId: Scalars["Int"]["input"]; }; +export type MutationGetOrCreateGroundTruthProcessingArgs = { + sourceProcessingId?: InputMaybe; + videoId: Scalars["Int"]["input"]; +}; + export type MutationGetProfileImageUploadLinkArgs = { fileExt?: InputMaybe; }; @@ -2517,6 +2639,10 @@ export type MutationMarkNotificationsAsReadArgs = { notificationIds: Array; }; +export type MutationPromoteGroundTruthProcessingArgs = { + processingId: Scalars["Int"]["input"]; +}; + export type MutationReactToVideoArgs = { reaction?: InputMaybe; videoId: Scalars["Int"]["input"]; @@ -2552,6 +2678,12 @@ export type MutationSetSegmentDurationArgs = { videoId: Scalars["Int"]["input"]; }; +export type MutationSplitGroundTruthShotArgs = { + notes?: InputMaybe; + shotId: Scalars["Int"]["input"]; + splitFrame: Scalars["Int"]["input"]; +}; + export type MutationStartChallengeArgs = { challengeId: Scalars["ID"]["input"]; }; @@ -2575,6 +2707,13 @@ export type MutationUnfollowUserArgs = { followedUserId: Scalars["Int"]["input"]; }; +export type MutationUpdateGroundTruthShotFrameRangeArgs = { + endFrame?: InputMaybe; + notes?: InputMaybe; + shotId: Scalars["Int"]["input"]; + startFrame?: InputMaybe; +}; + export type MutationUpdateShotAnnotationsArgs = { annotations: Array; shotId: Scalars["Int"]["input"]; @@ -2702,6 +2841,7 @@ export enum ProcessingStatusEnum { export type Query = { __typename?: "Query"; + assessVideoProcessing: VideoProcessingAssessmentGql; challenge?: Maybe; challengeLeaderboard: Array; challenges: Array; @@ -2733,6 +2873,7 @@ export type Query = { getUsersMatching: Array; getVideo: VideoGql; getVideoMakePercentageIntervals: Array; + getVideoProcessings: Array; getVideos: Array; isChallengeDismissed: Scalars["Boolean"]["output"]; myChallengeEntries: Array; @@ -2744,6 +2885,11 @@ export type Query = { waitFor: Scalars["Float"]["output"]; }; +export type QueryAssessVideoProcessingArgs = { + groundTruthProcessingId?: InputMaybe; + processingId: Scalars["Int"]["input"]; +}; + export type QueryChallengeArgs = { id: Scalars["ID"]["input"]; }; @@ -2799,7 +2945,9 @@ export type QueryGetOrderedShotsArgs = { countRespectsLimit?: Scalars["Boolean"]["input"]; filterInput: FilterInput; ids?: InputMaybe>; + includeExcluded?: Scalars["Boolean"]["input"]; limit?: Scalars["Int"]["input"]; + processingId?: InputMaybe; shotsOrdering?: InputMaybe; }; @@ -2823,7 +2971,9 @@ export type QueryGetShotAnnotationTypesArgs = { export type QueryGetShotsArgs = { countRespectsLimit?: Scalars["Boolean"]["input"]; filterInput: FilterInput; + includeExcluded?: Scalars["Boolean"]["input"]; limit?: Scalars["Int"]["input"]; + processingId?: InputMaybe; shotsPagination?: InputMaybe; }; @@ -2835,7 +2985,9 @@ export type QueryGetShotsWithMetadataArgs = { countRespectsLimit?: Scalars["Boolean"]["input"]; filterInput: FilterInput; ids?: InputMaybe>; + includeExcluded?: Scalars["Boolean"]["input"]; limit?: Scalars["Int"]["input"]; + processingId?: InputMaybe; shotsPagination?: InputMaybe; }; @@ -2889,6 +3041,10 @@ export type QueryGetVideoMakePercentageIntervalsArgs = { videoId: Scalars["ID"]["input"]; }; +export type QueryGetVideoProcessingsArgs = { + videoId: Scalars["Int"]["input"]; +}; + export type QueryGetVideosArgs = { videoIds: Array; }; @@ -3185,6 +3341,12 @@ export enum SpinTypeEnum { Unknown = "UNKNOWN", } +export type SplitGroundTruthShotReturn = { + __typename?: "SplitGroundTruthShotReturn"; + createdShot: ShotGql; + originalShot: ShotGql; +}; + export type StreamErrorGql = { __typename?: "StreamErrorGQL"; message: Scalars["String"]["output"]; @@ -3493,6 +3655,39 @@ export type VideoMetadataInput = { videoName?: InputMaybe; }; +export type VideoProcessingAssessmentGql = { + __typename?: "VideoProcessingAssessmentGQL"; + correctlyFlaggedFalsePositivePairs: Array; + correctlyFlaggedFalsePositives: Scalars["Int"]["output"]; + extraFlaggedFalsePositiveShotIds: Array; + extraFlaggedFalsePositives: Scalars["Int"]["output"]; + groundTruthFalsePositiveCount: Scalars["Int"]["output"]; + groundTruthPositiveShotCount: Scalars["Int"]["output"]; + groundTruthProcessingId: Scalars["Int"]["output"]; + groundTruthShotCount: Scalars["Int"]["output"]; + groundTruthShotsFlaggedFalsePositive: Scalars["Int"]["output"]; + groundTruthShotsFlaggedFalsePositivePairs: Array; + makeDisagreementPairs: Array; + makeDisagreements: Scalars["Int"]["output"]; + matchedGroundTruthPairs: Array; + matchedGroundTruthShots: Scalars["Int"]["output"]; + missedGroundTruthShotIds: Array; + missedGroundTruthShots: Scalars["Int"]["output"]; + processingId: Scalars["Int"]["output"]; + sourceFalsePositiveCount: Scalars["Int"]["output"]; + sourceShotCount: Scalars["Int"]["output"]; + unexpectedShotIds: Array; + unexpectedShots: Scalars["Int"]["output"]; + unflaggedFalsePositivePairs: Array; + unflaggedFalsePositives: Scalars["Int"]["output"]; +}; + +export type VideoProcessingAssessmentShotPairGql = { + __typename?: "VideoProcessingAssessmentShotPairGQL"; + groundTruthShotId: Scalars["Int"]["output"]; + processingShotId: Scalars["Int"]["output"]; +}; + export type VideoProcessingErrorGql = { __typename?: "VideoProcessingErrorGQL"; endSegmentIndex?: Maybe; diff --git a/src/schema.gql b/src/schema.gql index e6bf3aa..42c3d88 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -61,6 +61,8 @@ type Query { shotsOrdering: GetShotsOrdering = null limit: Int! = 500 countRespectsLimit: Boolean! = false + processingId: Int = null + includeExcluded: Boolean! = false ): GetShotsResult! getShotsWithMetadata( filterInput: FilterInput! @@ -68,12 +70,16 @@ type Query { shotsPagination: GetShotsPagination = null limit: Int! = 500 countRespectsLimit: Boolean! = false + processingId: Int = null + includeExcluded: Boolean! = false ): GetShotsResult! getShots( filterInput: FilterInput! shotsPagination: GetShotsPagination = null limit: Int! = 500 countRespectsLimit: Boolean! = false + processingId: Int = null + includeExcluded: Boolean! = false ): [ShotGQL!]! getShotsByIds(ids: [Int!]!): [ShotGQL!]! getUser(userId: Int!): UserGQL @@ -108,6 +114,11 @@ type Query { getUserTags(includeRetiredTags: Boolean = false): [TagGQL!]! getVideo(videoId: Int!, debuggingJson: JSON = null): VideoGQL! getVideos(videoIds: [Int!]!): [VideoGQL!]! + getVideoProcessings(videoId: Int!): [VideoProcessingGQL!]! + assessVideoProcessing( + processingId: Int! + groundTruthProcessingId: Int = null + ): VideoProcessingAssessmentGQL! } type AggregateResultGQL { @@ -209,6 +220,7 @@ input FilterInput @oneOf { intendedPocketType: [PocketEnum!] shotDirection: [ShotDirectionEnum!] videoId: [Int!] + processingId: [Int!] userId: [Int!] runId: [Int!] username: [String!] @@ -1015,6 +1027,37 @@ scalar JSON url: "https://ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf" ) +type VideoProcessingAssessmentGQL { + processingId: Int! + groundTruthProcessingId: Int! + sourceShotCount: Int! + sourceFalsePositiveCount: Int! + groundTruthShotCount: Int! + groundTruthPositiveShotCount: Int! + groundTruthFalsePositiveCount: Int! + matchedGroundTruthShots: Int! + missedGroundTruthShots: Int! + unexpectedShots: Int! + correctlyFlaggedFalsePositives: Int! + unflaggedFalsePositives: Int! + extraFlaggedFalsePositives: Int! + groundTruthShotsFlaggedFalsePositive: Int! + makeDisagreements: Int! + matchedGroundTruthPairs: [VideoProcessingAssessmentShotPairGQL!]! + missedGroundTruthShotIds: [Int!]! + unexpectedShotIds: [Int!]! + correctlyFlaggedFalsePositivePairs: [VideoProcessingAssessmentShotPairGQL!]! + unflaggedFalsePositivePairs: [VideoProcessingAssessmentShotPairGQL!]! + extraFlaggedFalsePositiveShotIds: [Int!]! + groundTruthShotsFlaggedFalsePositivePairs: [VideoProcessingAssessmentShotPairGQL!]! + makeDisagreementPairs: [VideoProcessingAssessmentShotPairGQL!]! +} + +type VideoProcessingAssessmentShotPairGQL { + processingShotId: Int! + groundTruthShotId: Int! +} + type Mutation { createBucketSet(params: CreateBucketSetInput!): BucketSetGQL! createRuleSet(name: String!, description: String = null): RuleSet! @@ -1076,6 +1119,19 @@ type Mutation { shotId: Int! fieldsToEdit: EditableShotFieldInputGQL! ): EditShotReturn! + createGroundTruthShot(input: CreateGroundTruthShotInputGQL!): ShotGQL! + updateGroundTruthShotFrameRange( + shotId: Int! + startFrame: Int = null + endFrame: Int = null + notes: String = null + ): ShotGQL! + splitGroundTruthShot( + shotId: Int! + splitFrame: Int! + notes: String = null + ): SplitGroundTruthShotReturn! + deleteGroundTruthShot(shotId: Int!): DeleteGroundTruthShotReturn! getProfileImageUploadLink( fileExt: String = ".png" ): GetProfileUploadLinkReturn! @@ -1098,6 +1154,11 @@ type Mutation { videoMetadata: VideoMetadataInput! expectedDurationSeconds: Float = null ): CreateUploadStreamReturn! + getOrCreateGroundTruthProcessing( + videoId: Int! + sourceProcessingId: Int = null + ): VideoProcessingGQL! + promoteGroundTruthProcessing(processingId: Int!): VideoProcessingGQL! getUploadLink(videoId: Int!, segmentIndex: Int!): GetUploadLinkReturn! getHlsInitUploadLink(videoId: Int!): GetUploadLinkReturn! setSegmentDuration( @@ -1174,12 +1235,32 @@ input EditableShotFieldInputGQL { shotDirection: ShotDirectionEnum spinType: SpinTypeEnum targetPocketAngleDirection: ShotDirectionEnum + intendedBallId: Int + intendedPocketId: PocketIdentifier + pathMetadataIndex: Int make: Boolean backcut: Boolean excludeFromStats: Boolean notes: String } +input CreateGroundTruthShotInputGQL { + processingId: Int! + startFrame: Int! + endFrame: Int! + make: Boolean + notes: String +} + +type SplitGroundTruthShotReturn { + originalShot: ShotGQL! + createdShot: ShotGQL! +} + +type DeleteGroundTruthShotReturn { + deletedShotId: Int! +} + type GetProfileUploadLinkReturn { value: UploadLinkGetProfileUploadLinkErrors! }