diff --git a/src/index.tsx b/src/index.tsx index b5f3b7b..593cf0d 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -290,6 +290,7 @@ export type DeployedConfigGql = { environment: Scalars["String"]["output"]; firebase: Scalars["Boolean"]["output"]; minimumAllowedAppVersion: Scalars["String"]["output"]; + quotaEnforcementEnabled: Scalars["Boolean"]["output"]; subscriptionGatingEnabled: Scalars["Boolean"]["output"]; }; @@ -3023,15 +3024,29 @@ export type QueryWaitForArgs = { duration: Scalars["Float"]["input"]; }; +export type QuotaBucketStatusGql = { + __typename?: "QuotaBucketStatusGQL"; + appliesToUploadKind: Scalars["String"]["output"]; + canUpload: Scalars["Boolean"]["output"]; + durationLimitSeconds?: Maybe; + durationRemainingSeconds?: Maybe; + durationUsedSeconds: Scalars["Float"]["output"]; + periodEnd: Scalars["DateTime"]["output"]; + periodStart: Scalars["DateTime"]["output"]; + quotaKey: Scalars["String"]["output"]; +}; + export type QuotaStatusGql = { __typename?: "QuotaStatusGQL"; canUpload: Scalars["Boolean"]["output"]; durationLimitSeconds?: Maybe; durationRemainingSeconds?: Maybe; durationUsedSeconds: Scalars["Float"]["output"]; + importQuotaBuckets: Array; maxVideoDurationSeconds?: Maybe; periodEnd: Scalars["DateTime"]["output"]; periodStart: Scalars["DateTime"]["output"]; + recordingQuotaBuckets: Array; tierName: Scalars["String"]["output"]; }; @@ -4119,6 +4134,7 @@ export type GetDeployedConfigQuery = { firebase: boolean; minimumAllowedAppVersion: string; subscriptionGatingEnabled: boolean; + quotaEnforcementEnabled: boolean; defaultAndroidRecordingFormat: StreamSegmentTypeEnum; bucketUrl: string; bannerMessages: Array<{ @@ -5784,6 +5800,47 @@ export type GetUserPlayTimeQuery = { getPlayTime: { __typename?: "UserPlayTimeGQL"; totalSeconds: number }; }; +export type GetUploadQuotaStatusQueryVariables = Exact<{ + [key: string]: never; +}>; + +export type GetUploadQuotaStatusQuery = { + __typename?: "Query"; + getQuotaStatus: { + __typename?: "QuotaStatusGQL"; + tierName: string; + periodStart: any; + periodEnd: any; + durationUsedSeconds: number; + durationLimitSeconds?: number | null; + maxVideoDurationSeconds?: number | null; + durationRemainingSeconds?: number | null; + canUpload: boolean; + importQuotaBuckets: Array<{ + __typename?: "QuotaBucketStatusGQL"; + quotaKey: string; + appliesToUploadKind: string; + periodStart: any; + periodEnd: any; + durationUsedSeconds: number; + durationLimitSeconds?: number | null; + durationRemainingSeconds?: number | null; + canUpload: boolean; + }>; + recordingQuotaBuckets: Array<{ + __typename?: "QuotaBucketStatusGQL"; + quotaKey: string; + appliesToUploadKind: string; + periodStart: any; + periodEnd: any; + durationUsedSeconds: number; + durationLimitSeconds?: number | null; + durationRemainingSeconds?: number | null; + canUpload: boolean; + }>; + }; +}; + export type GetUsernamesQueryVariables = Exact<{ matchString: Scalars["String"]["input"]; limit?: InputMaybe; @@ -8734,6 +8791,7 @@ export const GetDeployedConfigDocument = gql` firebase minimumAllowedAppVersion subscriptionGatingEnabled + quotaEnforcementEnabled bannerMessages { color dismissible @@ -12099,6 +12157,105 @@ export type GetUserPlayTimeQueryResult = Apollo.QueryResult< GetUserPlayTimeQuery, GetUserPlayTimeQueryVariables >; +export const GetUploadQuotaStatusDocument = gql` + query GetUploadQuotaStatus { + getQuotaStatus { + tierName + periodStart + periodEnd + durationUsedSeconds + durationLimitSeconds + maxVideoDurationSeconds + durationRemainingSeconds + canUpload + importQuotaBuckets { + quotaKey + appliesToUploadKind + periodStart + periodEnd + durationUsedSeconds + durationLimitSeconds + durationRemainingSeconds + canUpload + } + recordingQuotaBuckets { + quotaKey + appliesToUploadKind + periodStart + periodEnd + durationUsedSeconds + durationLimitSeconds + durationRemainingSeconds + canUpload + } + } + } +`; + +/** + * __useGetUploadQuotaStatusQuery__ + * + * To run a query within a React component, call `useGetUploadQuotaStatusQuery` and pass it any options that fit your needs. + * When your component renders, `useGetUploadQuotaStatusQuery` 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 } = useGetUploadQuotaStatusQuery({ + * variables: { + * }, + * }); + */ +export function useGetUploadQuotaStatusQuery( + baseOptions?: Apollo.QueryHookOptions< + GetUploadQuotaStatusQuery, + GetUploadQuotaStatusQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useQuery< + GetUploadQuotaStatusQuery, + GetUploadQuotaStatusQueryVariables + >(GetUploadQuotaStatusDocument, options); +} +export function useGetUploadQuotaStatusLazyQuery( + baseOptions?: Apollo.LazyQueryHookOptions< + GetUploadQuotaStatusQuery, + GetUploadQuotaStatusQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useLazyQuery< + GetUploadQuotaStatusQuery, + GetUploadQuotaStatusQueryVariables + >(GetUploadQuotaStatusDocument, options); +} +export function useGetUploadQuotaStatusSuspenseQuery( + baseOptions?: Apollo.SuspenseQueryHookOptions< + GetUploadQuotaStatusQuery, + GetUploadQuotaStatusQueryVariables + >, +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useSuspenseQuery< + GetUploadQuotaStatusQuery, + GetUploadQuotaStatusQueryVariables + >(GetUploadQuotaStatusDocument, options); +} +export type GetUploadQuotaStatusQueryHookResult = ReturnType< + typeof useGetUploadQuotaStatusQuery +>; +export type GetUploadQuotaStatusLazyQueryHookResult = ReturnType< + typeof useGetUploadQuotaStatusLazyQuery +>; +export type GetUploadQuotaStatusSuspenseQueryHookResult = ReturnType< + typeof useGetUploadQuotaStatusSuspenseQuery +>; +export type GetUploadQuotaStatusQueryResult = Apollo.QueryResult< + GetUploadQuotaStatusQuery, + GetUploadQuotaStatusQueryVariables +>; export const GetUsernamesDocument = gql` query getUsernames( $matchString: String! diff --git a/src/operations/config.gql b/src/operations/config.gql index 5f60e08..67ad05d 100644 --- a/src/operations/config.gql +++ b/src/operations/config.gql @@ -6,6 +6,7 @@ query getDeployedConfig { firebase minimumAllowedAppVersion subscriptionGatingEnabled + quotaEnforcementEnabled bannerMessages { color dismissible diff --git a/src/operations/user.gql b/src/operations/user.gql index 8fefa5b..afe46f5 100644 --- a/src/operations/user.gql +++ b/src/operations/user.gql @@ -49,6 +49,39 @@ query GetUserPlayTime($userId: Int!, $filters: VideoFilterInput) { } } +query GetUploadQuotaStatus { + getQuotaStatus { + tierName + periodStart + periodEnd + durationUsedSeconds + durationLimitSeconds + maxVideoDurationSeconds + durationRemainingSeconds + canUpload + importQuotaBuckets { + quotaKey + appliesToUploadKind + periodStart + periodEnd + durationUsedSeconds + durationLimitSeconds + durationRemainingSeconds + canUpload + } + recordingQuotaBuckets { + quotaKey + appliesToUploadKind + periodStart + periodEnd + durationUsedSeconds + durationLimitSeconds + durationRemainingSeconds + canUpload + } + } +} + query getUsernames( $matchString: String! $limit: Int = null diff --git a/src/schema.gql b/src/schema.gql index 5043e09..4c6dc1c 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -688,6 +688,7 @@ type DeployedConfigGQL { environment: String! minimumAllowedAppVersion: String! subscriptionGatingEnabled: Boolean! + quotaEnforcementEnabled: Boolean! bannerMessages: [BannerGQL!]! defaultAndroidRecordingFormat: StreamSegmentTypeEnum! bucketUrl: String! @@ -1040,6 +1041,19 @@ type QuotaStatusGQL { durationUsedSeconds: Float! durationLimitSeconds: Int maxVideoDurationSeconds: Int + importQuotaBuckets: [QuotaBucketStatusGQL!]! + recordingQuotaBuckets: [QuotaBucketStatusGQL!]! + durationRemainingSeconds: Float + canUpload: Boolean! +} + +type QuotaBucketStatusGQL { + quotaKey: String! + appliesToUploadKind: String! + periodStart: DateTime! + periodEnd: DateTime! + durationUsedSeconds: Float! + durationLimitSeconds: Int durationRemainingSeconds: Float canUpload: Boolean! }