diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..db77165 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +epgstation/api.gen.go: epgstation/schema.json + oapi-codegen -package epgstation schema/schema.json > epgstation/api.gen.go + +.PHONY: go-generate +go-generate: + go generate ./... + +.PHONY: generate +generate: epgstation/api.gen.go go-generate + diff --git a/annict/doc.go b/annict/doc.go new file mode 100644 index 0000000..a3d53a5 --- /dev/null +++ b/annict/doc.go @@ -0,0 +1,3 @@ +package annict + +//go:generate go run github.com/Khan/genqlient genqlient.yaml diff --git a/annict/generated.go b/annict/generated.go new file mode 100644 index 0000000..a75d790 --- /dev/null +++ b/annict/generated.go @@ -0,0 +1,84 @@ +// Code generated by github.com/Khan/genqlient, DO NOT EDIT. + +package annict + +import ( + "context" + + "github.com/Khan/genqlient/graphql" +) + +// GetWannaWatchWorksResponse is returned by GetWannaWatchWorks on success. +type GetWannaWatchWorksResponse struct { + Viewer GetWannaWatchWorksViewerUser `json:"viewer"` +} + +// GetViewer returns GetWannaWatchWorksResponse.Viewer, and is useful for accessing the field via an interface. +func (v *GetWannaWatchWorksResponse) GetViewer() GetWannaWatchWorksViewerUser { return v.Viewer } + +// GetWannaWatchWorksViewerUser includes the requested fields of the GraphQL type User. +type GetWannaWatchWorksViewerUser struct { + Works GetWannaWatchWorksViewerUserWorksWorkConnection `json:"works"` +} + +// GetWorks returns GetWannaWatchWorksViewerUser.Works, and is useful for accessing the field via an interface. +func (v *GetWannaWatchWorksViewerUser) GetWorks() GetWannaWatchWorksViewerUserWorksWorkConnection { + return v.Works +} + +// GetWannaWatchWorksViewerUserWorksWorkConnection includes the requested fields of the GraphQL type WorkConnection. +// The GraphQL type's documentation follows. +// +// The connection type for Work. +type GetWannaWatchWorksViewerUserWorksWorkConnection struct { + // A list of nodes. + Nodes []GetWannaWatchWorksViewerUserWorksWorkConnectionNodesWork `json:"nodes"` +} + +// GetNodes returns GetWannaWatchWorksViewerUserWorksWorkConnection.Nodes, and is useful for accessing the field via an interface. +func (v *GetWannaWatchWorksViewerUserWorksWorkConnection) GetNodes() []GetWannaWatchWorksViewerUserWorksWorkConnectionNodesWork { + return v.Nodes +} + +// GetWannaWatchWorksViewerUserWorksWorkConnectionNodesWork includes the requested fields of the GraphQL type Work. +// The GraphQL type's documentation follows. +// +// An anime title +type GetWannaWatchWorksViewerUserWorksWorkConnectionNodesWork struct { + Title string `json:"title"` +} + +// GetTitle returns GetWannaWatchWorksViewerUserWorksWorkConnectionNodesWork.Title, and is useful for accessing the field via an interface. +func (v *GetWannaWatchWorksViewerUserWorksWorkConnectionNodesWork) GetTitle() string { return v.Title } + +func GetWannaWatchWorks( + ctx context.Context, + client graphql.Client, +) (*GetWannaWatchWorksResponse, error) { + req := &graphql.Request{ + OpName: "GetWannaWatchWorks", + Query: ` +query GetWannaWatchWorks { + viewer { + works(state: WANNA_WATCH) { + nodes { + title + } + } + } +} +`, + } + var err error + + var data GetWannaWatchWorksResponse + resp := &graphql.Response{Data: &data} + + err = client.MakeRequest( + ctx, + req, + resp, + ) + + return &data, err +} diff --git a/annict/genqlient.yaml b/annict/genqlient.yaml new file mode 100644 index 0000000..e756ab7 --- /dev/null +++ b/annict/genqlient.yaml @@ -0,0 +1,9 @@ +schema: schema.graphql +operations: +- query.graphql +generated: generated.go +package: annict + +bindings: + DateTime: + type: time.Time diff --git a/annict/query.graphql b/annict/query.graphql new file mode 100644 index 0000000..8290042 --- /dev/null +++ b/annict/query.graphql @@ -0,0 +1,9 @@ +query GetWannaWatchWorks { + viewer { + works(state: WANNA_WATCH){ + nodes { + title + } + } + } +} diff --git a/annict/schema.graphql b/annict/schema.graphql new file mode 100644 index 0000000..2536e1c --- /dev/null +++ b/annict/schema.graphql @@ -0,0 +1,1426 @@ +type Activity implements Node { + annictId: Int! + + """ID of the object.""" + id: ID! + user: User! +} + +enum ActivityAction { + CREATE +} + +"""The connection type for Activity.""" +type ActivityConnection { + """A list of edges.""" + edges: [ActivityEdge] + + """A list of nodes.""" + nodes: [Activity] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ActivityEdge { + action: ActivityAction! + annictId: Int! + + """A cursor for use in pagination.""" + cursor: String! + item: ActivityItem + + """Deprecated: Use `item` instead.""" + node: ActivityItem @deprecated(reason: "Use `item` instead.") + user: User! +} + +union ActivityItem = MultipleRecord | Record | Review | Status + +input ActivityOrder { + field: ActivityOrderField! + direction: OrderDirection! +} + +enum ActivityOrderField { + CREATED_AT +} + +type Cast implements Node { + annictId: Int! + character: Character! + id: ID! + name: String! + nameEn: String! + person: Person! + sortNumber: Int! + work: Work! +} + +"""The connection type for Cast.""" +type CastConnection { + """A list of edges.""" + edges: [CastEdge] + + """A list of nodes.""" + nodes: [Cast] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CastEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Cast +} + +input CastOrder { + field: CastOrderField! + direction: OrderDirection! +} + +enum CastOrderField { + CREATED_AT + SORT_NUMBER +} + +type Channel implements Node { + annictId: Int! + channelGroup: ChannelGroup! + id: ID! + name: String! + programs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ProgramConnection + published: Boolean! + scChid: Int! +} + +"""The connection type for Channel.""" +type ChannelConnection { + """A list of edges.""" + edges: [ChannelEdge] + + """A list of nodes.""" + nodes: [Channel] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ChannelEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Channel +} + +type ChannelGroup implements Node { + annictId: Int! + channels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): ChannelConnection + id: ID! + name: String! + sortNumber: Int! +} + +type Character implements Node { + age: String! + ageEn: String! + annictId: Int! + birthday: String! + birthdayEn: String! + bloodType: String! + bloodTypeEn: String! + description: String! + descriptionEn: String! + descriptionSource: String! + descriptionSourceEn: String! + favoriteCharactersCount: Int! + height: String! + heightEn: String! + id: ID! + name: String! + nameEn: String! + nameKana: String! + nationality: String! + nationalityEn: String! + nickname: String! + nicknameEn: String! + occupation: String! + occupationEn: String! + series: Series! + weight: String! + weightEn: String! +} + +"""The connection type for Character.""" +type CharacterConnection { + """A list of edges.""" + edges: [CharacterEdge] + + """A list of nodes.""" + nodes: [Character] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type CharacterEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Character +} + +input CharacterOrder { + field: CharacterOrderField! + direction: OrderDirection! +} + +enum CharacterOrderField { + CREATED_AT + FAVORITE_CHARACTERS_COUNT +} + +"""Autogenerated input type of CreateRecord""" +input CreateRecordInput { + episodeId: ID! + comment: String + ratingState: RatingState + shareTwitter: Boolean + shareFacebook: Boolean + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of CreateRecord""" +type CreateRecordPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + record: Record +} + +"""Autogenerated input type of CreateReview""" +input CreateReviewInput { + workId: ID! + title: String + body: String! + ratingOverallState: RatingState + ratingAnimationState: RatingState + ratingMusicState: RatingState + ratingStoryState: RatingState + ratingCharacterState: RatingState + shareTwitter: Boolean + shareFacebook: Boolean + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of CreateReview""" +type CreateReviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + review: Review +} + +scalar DateTime + +"""Autogenerated input type of DeleteRecord""" +input DeleteRecordInput { + recordId: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of DeleteRecord""" +type DeleteRecordPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + episode: Episode +} + +"""Autogenerated input type of DeleteReview""" +input DeleteReviewInput { + reviewId: ID! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of DeleteReview""" +type DeleteReviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + work: Work +} + +"""An episode of a work""" +type Episode implements Node { + annictId: Int! + id: ID! + nextEpisode: Episode + number: Int + numberText: String + prevEpisode: Episode + recordCommentsCount: Int! + records( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + orderBy: RecordOrder + hasComment: Boolean + ): RecordConnection + recordsCount: Int! + satisfactionRate: Float + sortNumber: Int! + title: String + viewerDidTrack: Boolean! + viewerRecordsCount: Int! + work: Work! +} + +"""The connection type for Episode.""" +type EpisodeConnection { + """A list of edges.""" + edges: [EpisodeEdge] + + """A list of nodes.""" + nodes: [Episode] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type EpisodeEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Episode +} + +input EpisodeOrder { + field: EpisodeOrderField! + direction: OrderDirection! +} + +enum EpisodeOrderField { + CREATED_AT + SORT_NUMBER +} + +type LibraryEntry implements Node { + id: ID! + nextEpisode: Episode + nextProgram: Program + note: String! + status: Status + user: User! + work: Work! +} + +"""The connection type for LibraryEntry.""" +type LibraryEntryConnection { + """A list of edges.""" + edges: [LibraryEntryEdge] + + """A list of nodes.""" + nodes: [LibraryEntry] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type LibraryEntryEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: LibraryEntry +} + +input LibraryEntryOrder { + field: LibraryEntryOrderField! + direction: OrderDirection! +} + +enum LibraryEntryOrderField { + """最後に記録またはスキップした日時""" + LAST_TRACKED_AT +} + +"""Media of anime""" +enum Media { + TV + OVA + MOVIE + WEB + OTHER +} + +type MultipleRecord implements Node { + annictId: Int! + createdAt: DateTime! + id: ID! + records( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): RecordConnection + user: User! + work: Work! +} + +type Mutation { + createRecord( + """Parameters for CreateRecord""" + input: CreateRecordInput! + ): CreateRecordPayload + createReview( + """Parameters for CreateReview""" + input: CreateReviewInput! + ): CreateReviewPayload + deleteRecord( + """Parameters for DeleteRecord""" + input: DeleteRecordInput! + ): DeleteRecordPayload + deleteReview( + """Parameters for DeleteReview""" + input: DeleteReviewInput! + ): DeleteReviewPayload + updateRecord( + """Parameters for UpdateRecord""" + input: UpdateRecordInput! + ): UpdateRecordPayload + updateReview( + """Parameters for UpdateReview""" + input: UpdateReviewInput! + ): UpdateReviewPayload + updateStatus( + """Parameters for UpdateStatus""" + input: UpdateStatusInput! + ): UpdateStatusPayload +} + +"""An object with an ID.""" +interface Node { + """ID of the object.""" + id: ID! +} + +enum OrderDirection { + ASC + DESC +} + +type Organization implements Node { + annictId: Int! + favoriteOrganizationsCount: Int! + id: ID! + name: String! + nameEn: String! + nameKana: String! + staffsCount: Int! + twitterUsername: String! + twitterUsernameEn: String! + url: String! + urlEn: String! + wikipediaUrl: String! + wikipediaUrlEn: String! +} + +"""The connection type for Organization.""" +type OrganizationConnection { + """A list of edges.""" + edges: [OrganizationEdge] + + """A list of nodes.""" + nodes: [Organization] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type OrganizationEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Organization +} + +input OrganizationOrder { + field: OrganizationOrderField! + direction: OrderDirection! +} + +enum OrganizationOrderField { + CREATED_AT + FAVORITE_ORGANIZATIONS_COUNT +} + +"""Information about pagination in a connection.""" +type PageInfo { + """When paginating forwards, the cursor to continue.""" + endCursor: String + + """When paginating forwards, are there more items?""" + hasNextPage: Boolean! + + """When paginating backwards, are there more items?""" + hasPreviousPage: Boolean! + + """When paginating backwards, the cursor to continue.""" + startCursor: String +} + +type Person implements Node { + annictId: Int! + birthday: String! + bloodType: String! + castsCount: Int! + favoritePeopleCount: Int! + genderText: String! + height: String! + id: ID! + name: String! + nameEn: String! + nameKana: String! + nickname: String! + nicknameEn: String! + prefecture: Prefecture! + staffsCount: Int! + twitterUsername: String! + twitterUsernameEn: String! + url: String! + urlEn: String! + wikipediaUrl: String! + wikipediaUrlEn: String! +} + +"""The connection type for Person.""" +type PersonConnection { + """A list of edges.""" + edges: [PersonEdge] + + """A list of nodes.""" + nodes: [Person] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type PersonEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Person +} + +input PersonOrder { + field: PersonOrderField! + direction: OrderDirection! +} + +enum PersonOrderField { + CREATED_AT + FAVORITE_PEOPLE_COUNT +} + +type Prefecture implements Node { + annictId: Int! + id: ID! + name: String! +} + +type Program implements Node { + annictId: Int! + channel: Channel! + episode: Episode! + id: ID! + rebroadcast: Boolean! + scPid: Int + startedAt: DateTime! + state: ProgramState! + work: Work! +} + +"""The connection type for Program.""" +type ProgramConnection { + """A list of edges.""" + edges: [ProgramEdge] + + """A list of nodes.""" + nodes: [Program] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ProgramEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Program +} + +input ProgramOrder { + field: ProgramOrderField! + direction: OrderDirection! +} + +enum ProgramOrderField { + STARTED_AT +} + +enum ProgramState { + PUBLISHED + HIDDEN +} + +type Query { + """Fetches an object given its ID.""" + node( + """ID of the object.""" + id: ID! + ): Node + + """Fetches a list of objects given a list of IDs.""" + nodes( + """IDs of the objects.""" + ids: [ID!]! + ): [Node]! + searchCharacters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + annictIds: [Int!] + names: [String!] + orderBy: CharacterOrder + ): CharacterConnection + searchEpisodes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + annictIds: [Int!] + orderBy: EpisodeOrder + ): EpisodeConnection + searchOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + annictIds: [Int!] + names: [String!] + orderBy: OrganizationOrder + ): OrganizationConnection + searchPeople( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + annictIds: [Int!] + names: [String!] + orderBy: PersonOrder + ): PersonConnection + searchWorks( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + annictIds: [Int!] + seasons: [String!] + titles: [String!] + orderBy: WorkOrder + ): WorkConnection + user(username: String!): User + viewer: User +} + +enum RatingState { + GREAT + GOOD + AVERAGE + BAD +} + +type Record implements Node { + annictId: Int! + comment: String + commentsCount: Int! + createdAt: DateTime! + episode: Episode! + facebookClickCount: Int! + id: ID! + likesCount: Int! + modified: Boolean! + rating: Float + ratingState: RatingState + twitterClickCount: Int! + updatedAt: DateTime! + user: User! + work: Work! +} + +"""The connection type for Record.""" +type RecordConnection { + """A list of edges.""" + edges: [RecordEdge] + + """A list of nodes.""" + nodes: [Record] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type RecordEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Record +} + +input RecordOrder { + field: RecordOrderField! + direction: OrderDirection! +} + +enum RecordOrderField { + CREATED_AT + LIKES_COUNT +} + +type Review implements Node { + annictId: Int! + body: String! + createdAt: DateTime! + id: ID! + impressionsCount: Int! + likesCount: Int! + modifiedAt: DateTime + ratingAnimationState: RatingState + ratingCharacterState: RatingState + ratingMusicState: RatingState + ratingOverallState: RatingState + ratingStoryState: RatingState + title: String + updatedAt: DateTime! + user: User! + work: Work! +} + +"""The connection type for Review.""" +type ReviewConnection { + """A list of edges.""" + edges: [ReviewEdge] + + """A list of nodes.""" + nodes: [Review] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type ReviewEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Review +} + +input ReviewOrder { + field: ReviewOrderField! + direction: OrderDirection! +} + +enum ReviewOrderField { + CREATED_AT + LIKES_COUNT +} + +"""Season name""" +enum SeasonName { + WINTER + SPRING + SUMMER + AUTUMN +} + +type Series implements Node { + annictId: Int! + id: ID! + name: String! + nameEn: String! + nameRo: String! + works( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + orderBy: SeriesWorkOrder + ): SeriesWorkConnection +} + +"""The connection type for Series.""" +type SeriesConnection { + """A list of edges.""" + edges: [SeriesEdge] + + """A list of nodes.""" + nodes: [Series] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SeriesEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Series +} + +"""The connection type for Work.""" +type SeriesWorkConnection { + """A list of edges.""" + edges: [SeriesWorkEdge] + + """A list of nodes.""" + nodes: [Work] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type SeriesWorkEdge { + """A cursor for use in pagination.""" + cursor: String! + item: Work! + + """Deprecated: Use `item` instead.""" + node: Work! @deprecated(reason: "Use `item` instead.") + summary: String + summaryEn: String +} + +input SeriesWorkOrder { + field: SeriesWorkOrderField! + direction: OrderDirection! +} + +enum SeriesWorkOrderField { + SEASON +} + +type Staff implements Node { + annictId: Int! + id: ID! + name: String! + nameEn: String! + resource: StaffResourceItem! + roleOther: String! + roleOtherEn: String! + roleText: String! + sortNumber: Int! + work: Work! +} + +"""The connection type for Staff.""" +type StaffConnection { + """A list of edges.""" + edges: [StaffEdge] + + """A list of nodes.""" + nodes: [Staff] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type StaffEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Staff +} + +input StaffOrder { + field: StaffOrderField! + direction: OrderDirection! +} + +enum StaffOrderField { + CREATED_AT + SORT_NUMBER +} + +union StaffResourceItem = Organization | Person + +type Status implements Node { + annictId: Int! + createdAt: DateTime! + id: ID! + likesCount: Int! + state: StatusState! + user: User! + work: Work! +} + +enum StatusState { + WANNA_WATCH + WATCHING + WATCHED + ON_HOLD + STOP_WATCHING + NO_STATE +} + +"""Autogenerated input type of UpdateRecord""" +input UpdateRecordInput { + recordId: ID! + comment: String + ratingState: RatingState + shareTwitter: Boolean + shareFacebook: Boolean + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of UpdateRecord""" +type UpdateRecordPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + record: Record +} + +"""Autogenerated input type of UpdateReview""" +input UpdateReviewInput { + reviewId: ID! + title: String + body: String! + ratingOverallState: RatingState! + ratingAnimationState: RatingState! + ratingMusicState: RatingState! + ratingStoryState: RatingState! + ratingCharacterState: RatingState! + shareTwitter: Boolean + shareFacebook: Boolean + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of UpdateReview""" +type UpdateReviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + review: Review +} + +"""Autogenerated input type of UpdateStatus""" +input UpdateStatusInput { + workId: ID! + state: StatusState! + + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of UpdateStatus""" +type UpdateStatusPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + work: Work +} + +type User implements Node { + activities( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + orderBy: ActivityOrder + ): ActivityConnection + annictId: Int! + avatarUrl: String + backgroundImageUrl: String + createdAt: DateTime! + description: String! + email: String + followers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection + followersCount: Int! + following( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection + followingActivities( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + orderBy: ActivityOrder + ): ActivityConnection + followingsCount: Int! + id: ID! + libraryEntries( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + + """視聴ステータス""" + states: [StatusState!] + + """指定したシーズンの作品を取得する""" + seasons: [String!] + + """指定したシーズンからの作品を取得する""" + seasonFrom: String + + """指定したシーズンまでの作品を取得する""" + seasonUntil: String + orderBy: LibraryEntryOrder + ): LibraryEntryConnection + name: String! + notificationsCount: Int + onHoldCount: Int! + programs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + unwatched: Boolean + orderBy: ProgramOrder + ): ProgramConnection + records( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + orderBy: RecordOrder + hasComment: Boolean + ): RecordConnection + recordsCount: Int! + stopWatchingCount: Int! + url: String + username: String! + viewerCanFollow: Boolean! + viewerIsFollowing: Boolean! + wannaWatchCount: Int! + watchedCount: Int! + watchingCount: Int! + works( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + annictIds: [Int!] + seasons: [String!] + titles: [String!] + state: StatusState + orderBy: WorkOrder + ): WorkConnection +} + +"""The connection type for User.""" +type UserConnection { + """A list of edges.""" + edges: [UserEdge] + + """A list of nodes.""" + nodes: [User] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type UserEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: User +} + +"""An anime title""" +type Work implements Node { + annictId: Int! + casts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + orderBy: CastOrder + ): CastConnection + episodes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + orderBy: EpisodeOrder + ): EpisodeConnection + episodesCount: Int! + id: ID! + image: WorkImage + malAnimeId: String + media: Media! + noEpisodes: Boolean! + officialSiteUrl: String + officialSiteUrlEn: String + programs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + orderBy: ProgramOrder + ): ProgramConnection + reviews( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + orderBy: ReviewOrder + hasBody: Boolean + ): ReviewConnection + reviewsCount: Int! + satisfactionRate: Float + seasonName: SeasonName + seasonYear: Int + seriesList( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + ): SeriesConnection + staffs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """Returns the first _n_ elements from the list.""" + first: Int + + """Returns the last _n_ elements from the list.""" + last: Int + orderBy: StaffOrder + ): StaffConnection + syobocalTid: Int + title: String! + titleEn: String + titleKana: String + titleRo: String + twitterHashtag: String + twitterUsername: String + viewerStatusState: StatusState + watchersCount: Int! + wikipediaUrl: String + wikipediaUrlEn: String +} + +"""The connection type for Work.""" +type WorkConnection { + """A list of edges.""" + edges: [WorkEdge] + + """A list of nodes.""" + nodes: [Work] + + """Information to aid in pagination.""" + pageInfo: PageInfo! +} + +"""An edge in a connection.""" +type WorkEdge { + """A cursor for use in pagination.""" + cursor: String! + + """The item at the end of the edge.""" + node: Work +} + +type WorkImage implements Node { + annictId: Int + copyright: String + facebookOgImageUrl: String + id: ID! + internalUrl(size: String!): String + recommendedImageUrl: String + twitterAvatarUrl: String + twitterBiggerAvatarUrl: String + twitterMiniAvatarUrl: String + twitterNormalAvatarUrl: String + work: Work +} + +input WorkOrder { + field: WorkOrderField! + direction: OrderDirection! +} + +enum WorkOrderField { + CREATED_AT + SEASON + WATCHERS_COUNT +} + diff --git a/cmd/annict-epgstation-connector/main.go b/cmd/annict-epgstation-connector/main.go new file mode 100644 index 0000000..7f74da9 --- /dev/null +++ b/cmd/annict-epgstation-connector/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "log" + "os" + + "github.com/musaprg/annict-epgstation-connector/internal/cmd" +) + +func main() { + if err := cmd.Root().Run(os.Args); err != nil { + log.Fatal(err) + } +} diff --git a/epgstation/api.gen.go b/epgstation/api.gen.go new file mode 100644 index 0000000..e6d47bd --- /dev/null +++ b/epgstation/api.gen.go @@ -0,0 +1,13437 @@ +// Package epgstation provides primitives to interact with the openapi HTTP API. +// +// Code generated by github.com/deepmap/oapi-codegen version v1.12.4 DO NOT EDIT. +package epgstation + +import ( + "bytes" + "compress/gzip" + "context" + "encoding/base64" + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "path" + "strings" + + "github.com/deepmap/oapi-codegen/pkg/runtime" + openapi_types "github.com/deepmap/oapi-codegen/pkg/types" + "github.com/getkin/kin-openapi/openapi3" + "github.com/labstack/echo/v4" +) + +// Defines values for ChannelType. +const ( + BS ChannelType = "BS" + CS ChannelType = "CS" + GR ChannelType = "GR" + SKY ChannelType = "SKY" +) + +// Defines values for ProgramAudioSamplingRate. +const ( + N16000 ProgramAudioSamplingRate = 16000 + N22050 ProgramAudioSamplingRate = 22050 + N24000 ProgramAudioSamplingRate = 24000 + N32000 ProgramAudioSamplingRate = 32000 + N44100 ProgramAudioSamplingRate = 44100 + N48000 ProgramAudioSamplingRate = 48000 +) + +// Defines values for ProgramVideoResolution. +const ( + N1080i ProgramVideoResolution = "1080i" + N1080p ProgramVideoResolution = "1080p" + N2160p ProgramVideoResolution = "2160p" + N240p ProgramVideoResolution = "240p" + N4320p ProgramVideoResolution = "4320p" + N480i ProgramVideoResolution = "480i" + N480p ProgramVideoResolution = "480p" + N720p ProgramVideoResolution = "720p" +) + +// Defines values for ProgramVideoType. +const ( + H264 ProgramVideoType = "h.264" + H265 ProgramVideoType = "h.265" + Mpeg2 ProgramVideoType = "mpeg2" +) + +// Defines values for StreamType. +const ( + LiveHLS StreamType = "LiveHLS" + LiveStream StreamType = "LiveStream" + RecordedHLS StreamType = "RecordedHLS" + RecordedStream StreamType = "RecordedStream" +) + +// Defines values for VideoFileType. +const ( + Encoded VideoFileType = "encoded" + Ts VideoFileType = "ts" +) + +// AddManualEncodeProgramOption エンコード手動追加時のオプション +type AddManualEncodeProgramOption struct { + // Directory 親ディレクトリ以下のディレクトリ設定 + Directory *string `json:"directory,omitempty"` + + // IsSaveSameDirectory ソースビデオファイルと同じ場所に保存するか + IsSaveSameDirectory *bool `json:"isSaveSameDirectory,omitempty"` + + // Mode エンコードプリセット名 config encode の name + Mode string `json:"mode"` + + // ParentDir 親ディレクトリ名 config recorded の name, isSaveSameDirectory が false の場合は必須 + ParentDir *string `json:"parentDir,omitempty"` + + // RecordedId 録画済み番組 id + RecordedId RecordedId `json:"recordedId"` + + // RemoveOriginal 元ファイルを削除するか + RemoveOriginal bool `json:"removeOriginal"` + + // SourceVideoFileId ビデオファイル id + SourceVideoFileId VideoFileId `json:"sourceVideoFileId"` +} + +// AddRecordedTagOption 録画タグ追加プション +type AddRecordedTagOption struct { + // Color 色 + Color string `json:"color"` + + // Name タグ名 + Name string `json:"name"` +} + +// AddRuleOption ルール追加プション +type AddRuleOption struct { + // EncodeOption 予約エンコードオプション + EncodeOption *ReserveEncodedOption `json:"encodeOption,omitempty"` + + // IsTimeSpecification 時刻指定予約か + IsTimeSpecification bool `json:"isTimeSpecification"` + + // ReserveOption ルール予約オプション + ReserveOption RuleReserveOption `json:"reserveOption"` + + // SaveOption 予約保存オプション + SaveOption *ReserveSaveOption `json:"saveOption,omitempty"` + + // SearchOption ルール検索オプション + SearchOption RuleSearchOption `json:"searchOption"` +} + +// AddedEncode エンコード追加成功応答データ +type AddedEncode struct { + // EncodeId エンコード id + EncodeId EncodeId `json:"encodeId"` +} + +// AddedRecordedTag タグ追加成功応答データ +type AddedRecordedTag struct { + // TagId 録画 tag id + TagId RecordedTagId `json:"tagId"` +} + +// AddedReserve 予約成功応答データ +type AddedReserve struct { + // ReserveId 予約 id + ReserveId ReserveId `json:"reserveId"` +} + +// AddedRule ルール追加成功応答データ +type AddedRule struct { + // RuleId ルール id + RuleId RuleId `json:"ruleId"` +} + +// ChannelId 放送局 id +type ChannelId = int + +// ChannelItem チャンネル情報 +type ChannelItem struct { + Channel string `json:"channel"` + + // ChannelType 放送波タイプ + ChannelType ChannelType `json:"channelType"` + + // HalfWidthName 放送局名(半角) + HalfWidthName string `json:"halfWidthName"` + + // HasLogoData ロゴデータを持っているか + HasLogoData bool `json:"hasLogoData"` + + // Id 放送局 id + Id ChannelId `json:"id"` + + // Name 放送局名 + Name string `json:"name"` + + // NetworkId network id + NetworkId NetworkId `json:"networkId"` + + // ServiceId service id + ServiceId ServiceId `json:"serviceId"` +} + +// ChannelItems defines model for ChannelItems. +type ChannelItems = []ChannelItem + +// ChannelType 放送波タイプ +type ChannelType string + +// Config コンフィグ +type Config struct { + // Broadcast 有効な放送波情報 + Broadcast struct { + BS bool `json:"BS"` + CS bool `json:"CS"` + GR bool `json:"GR"` + SKY bool `json:"SKY"` + } `json:"broadcast"` + + // Encode エンコードモード + Encode []string `json:"encode"` + + // IsEnableEncodedRecordedStream 録画済みのエンコード済みファイルのストリーミングが有効か + IsEnableEncodedRecordedStream bool `json:"isEnableEncodedRecordedStream"` + + // IsEnableLiveStream ライブ視聴が有効か + IsEnableLiveStream bool `json:"isEnableLiveStream"` + + // IsEnableTSRecordedStream 録画済みの TS ファイルのストリーミングが有効か + IsEnableTSRecordedStream bool `json:"isEnableTSRecordedStream"` + + // KodiHosts kodi hosts + KodiHosts *[]string `json:"kodiHosts,omitempty"` + + // Recorded 指定可能な録画ディレクトリ名 + Recorded []string `json:"recorded"` + + // SocketIOPort socket.io 通信で使用するポート + SocketIOPort int `json:"socketIOPort"` + + // StreamConfig ストリーミング設定 + StreamConfig *struct { + // Live ライブストリーミング設定 + Live *struct { + // Hls ライブ HLS ストリーミング設定 + Hls *[]string `json:"hls,omitempty"` + + // M2ts ライブ M2TS ストリーミング設定 + M2ts *[]M2TSStreamParam `json:"m2ts,omitempty"` + + // M2tsll ライブ M2TS Low Latency (mpegts.js 用) ストリーミング設定 + M2tsll *[]string `json:"m2tsll,omitempty"` + + // Mp4 ライブ MP4 ストリーミング設定 + Mp4 *[]string `json:"mp4,omitempty"` + + // Webm ライブ WebM ストリーミング設定 + Webm *[]string `json:"webm,omitempty"` + } `json:"live,omitempty"` + + // Recorded 録画済みストリーミング設定 + Recorded *struct { + // Encoded 録画エンコード済みファイルのストリーミング設定 + Encoded *struct { + // Hls 録画エンコード済みファイルの HLS ストリーミング設定 + Hls *[]string `json:"hls,omitempty"` + + // Mp4 録画エンコード済みファイルの MP4 ストリーミング設定 + Mp4 *[]string `json:"mp4,omitempty"` + + // Webm 録画エンコード済みファイルの WebM ストリーミング設定 + Webm *[]string `json:"webm,omitempty"` + } `json:"encoded,omitempty"` + + // Ts 録画済み TS ファイルのストリーミング設定 + Ts *struct { + // Hls 録画済み TS ファイルの HLS ストリーミング設定 + Hls *[]string `json:"hls,omitempty"` + + // Mp4 録画済み TS ファイルの MP4 ストリーミング設定 + Mp4 *[]string `json:"mp4,omitempty"` + + // Webm 録画済み TS ファイルの WebM ストリーミング設定 + Webm *[]string `json:"webm,omitempty"` + } `json:"ts,omitempty"` + } `json:"recorded,omitempty"` + } `json:"streamConfig,omitempty"` + + // Urlscheme URL Scheme 情報 + Urlscheme struct { + // Download URL Scheme + Download URLSchemeInfo `json:"download"` + + // M2ts URL Scheme + M2ts URLSchemeInfo `json:"m2ts"` + + // Video URL Scheme + Video URLSchemeInfo `json:"video"` + } `json:"urlscheme"` +} + +// CreateNewRecordedOption 新規追加する録画番組情報 +type CreateNewRecordedOption struct { + // ChannelId 放送局 id + ChannelId ChannelId `json:"channelId"` + + // Description 番組詳細 + Description *string `json:"description,omitempty"` + + // EndAt 時刻 (ms) + EndAt UnixtimeMS `json:"endAt"` + + // Extended 番組拡張 + Extended *string `json:"extended,omitempty"` + + // Genre1 ジャンル + Genre1 *ProgramGenreLv1 `json:"genre1,omitempty"` + + // Genre2 ジャンル + Genre2 *ProgramGenreLv1 `json:"genre2,omitempty"` + + // Genre3 ジャンル + Genre3 *ProgramGenreLv1 `json:"genre3,omitempty"` + + // Name 番組名 + Name string `json:"name"` + + // RuleId ルール id + RuleId *RuleId `json:"ruleId,omitempty"` + + // StartAt 時刻 (ms) + StartAt UnixtimeMS `json:"startAt"` + + // SubGenre1 サブジャンル + SubGenre1 *ProgramGenreLv2 `json:"subGenre1,omitempty"` + + // SubGenre2 サブジャンル + SubGenre2 *ProgramGenreLv2 `json:"subGenre2,omitempty"` + + // SubGenre3 サブジャンル + SubGenre3 *ProgramGenreLv2 `json:"subGenre3,omitempty"` +} + +// CreatedNewRecorded 録画番組情報の新規作成成功応答データ +type CreatedNewRecorded struct { + // RecordedId 録画済み番組 id + RecordedId RecordedId `json:"recordedId"` +} + +// DropLogFile ドロップログファイル情報 +type DropLogFile struct { + // DropCnt ドロップカウント + DropCnt int `json:"dropCnt"` + + // ErrorCnt エラーカウント + ErrorCnt int `json:"errorCnt"` + + // Id ドロップログファイル id + Id DropLogFileId `json:"id"` + + // ScramblingCnt スクランブルカウント + ScramblingCnt int `json:"scramblingCnt"` +} + +// DropLogFileId ドロップログファイル id +type DropLogFileId = int + +// EditManualReserveOption 手動予約編集オプション +type EditManualReserveOption struct { + // AllowEndLack 末尾切れを許すか + AllowEndLack bool `json:"allowEndLack"` + + // EncodeOption 予約エンコードオプション + EncodeOption *ReserveEncodedOption `json:"encodeOption,omitempty"` + + // SaveOption 予約保存オプション + SaveOption *ReserveSaveOption `json:"saveOption,omitempty"` + Tags *[]RecordedTagId `json:"tags,omitempty"` +} + +// EncodeId エンコード id +type EncodeId = int + +// EncodeInfo エンコード情報 +type EncodeInfo struct { + RunningItems []EncodeProgramItem `json:"runningItems"` + WaitItems []EncodeProgramItem `json:"waitItems"` +} + +// EncodeProgramItem エンコードプログラム情報 +type EncodeProgramItem struct { + // Id エンコード id + Id EncodeId `json:"id"` + + // Log ログ + Log *string `json:"log,omitempty"` + + // Mode エンコード名 + Mode string `json:"mode"` + + // Percent 進捗 + Percent *float32 `json:"percent,omitempty"` + + // Recorded 録画番組情報 + Recorded RecordedItem `json:"recorded"` +} + +// Error defines model for Error. +type Error struct { + // Code HTTPステータスコード + Code int32 `json:"code"` + + // Errors Error + Errors *string `json:"errors,omitempty"` + + // Message エラーメッセージ + Message string `json:"message"` +} + +// Genre ジャンル設定 +type Genre struct { + // Genre ジャンル + Genre ProgramGenreLv1 `json:"genre"` + + // SubGenre サブジャンル + SubGenre *ProgramGenreLv2 `json:"subGenre,omitempty"` +} + +// M2TSStreamParam M2TS形式ストリーミングパラメータ +type M2TSStreamParam struct { + // IsUnconverted 無変換か + IsUnconverted bool `json:"isUnconverted"` + + // Name 表示名 + Name string `json:"name"` +} + +// ManualReserveOption 手動予約編集オプション +type ManualReserveOption = EditManualReserveOption + +// NetworkId network id +type NetworkId = int + +// ProgramAudioSamplingRate 番組オーディオサンプリングレート +type ProgramAudioSamplingRate int + +// ProgramGenreLv1 ジャンル +type ProgramGenreLv1 = int + +// ProgramGenreLv2 サブジャンル +type ProgramGenreLv2 = int + +// ProgramId program id +type ProgramId = int + +// ProgramVideoResolution 番組ビデオ解像度 +type ProgramVideoResolution string + +// ProgramVideoType 番組ビデオコーデック +type ProgramVideoType string + +// RecordedChannelListItem recorded が持つ channelId のリスト +type RecordedChannelListItem struct { + // ChannelId 放送局 id + ChannelId ChannelId `json:"channelId"` + + // Cnt 録画数 + Cnt int `json:"cnt"` +} + +// RecordedGenreListItem recorded が持つ genre のリスト +type RecordedGenreListItem struct { + // Cnt 録画数 + Cnt int `json:"cnt"` + + // Genre ジャンル + Genre ProgramGenreLv1 `json:"genre"` +} + +// RecordedId 録画済み番組 id +type RecordedId = int + +// RecordedItem 録画番組情報 +type RecordedItem struct { + AudioComponentType *int `json:"audioComponentType,omitempty"` + + // AudioSamplingRate 番組オーディオサンプリングレート + AudioSamplingRate *ProgramAudioSamplingRate `json:"audioSamplingRate,omitempty"` + + // ChannelId 放送局 id + ChannelId *ChannelId `json:"channelId,omitempty"` + + // Description 番組詳細 + Description *string `json:"description,omitempty"` + + // DropLog ドロップログファイル情報 + DropLog *DropLogFile `json:"dropLog,omitempty"` + + // EndAt 時刻 (ms) + EndAt UnixtimeMS `json:"endAt"` + + // Extended 番組拡張 + Extended *string `json:"extended,omitempty"` + + // Genre1 ジャンル + Genre1 *ProgramGenreLv1 `json:"genre1,omitempty"` + + // Genre2 ジャンル + Genre2 *ProgramGenreLv1 `json:"genre2,omitempty"` + + // Genre3 ジャンル + Genre3 *ProgramGenreLv1 `json:"genre3,omitempty"` + + // Id 録画済み番組 id + Id RecordedId `json:"id"` + + // IsEncoding エンコード中か + IsEncoding bool `json:"isEncoding"` + + // IsProtected 自動録画削除対象外か + IsProtected bool `json:"isProtected"` + + // IsRecording 録画中か + IsRecording bool `json:"isRecording"` + + // Name 番組名 + Name string `json:"name"` + + // ProgramId program id + ProgramId *ProgramId `json:"programId,omitempty"` + + // RawExtended 番組拡張 (Mirakurun の extended) + RawExtended *map[string]interface{} `json:"rawExtended,omitempty"` + + // RuleId ルール id + RuleId *RuleId `json:"ruleId,omitempty"` + + // StartAt 時刻 (ms) + StartAt UnixtimeMS `json:"startAt"` + + // SubGenre1 サブジャンル + SubGenre1 *ProgramGenreLv2 `json:"subGenre1,omitempty"` + + // SubGenre2 サブジャンル + SubGenre2 *ProgramGenreLv2 `json:"subGenre2,omitempty"` + + // SubGenre3 サブジャンル + SubGenre3 *ProgramGenreLv2 `json:"subGenre3,omitempty"` + Tags *[]RecordedTag `json:"tags,omitempty"` + Thumbnails *[]ThumbnailId `json:"thumbnails,omitempty"` + VideoComponentType *int `json:"videoComponentType,omitempty"` + VideoFiles *[]VideoFile `json:"videoFiles,omitempty"` + + // VideoResolution 番組ビデオ解像度 + VideoResolution *ProgramVideoResolution `json:"videoResolution,omitempty"` + VideoStreamContent *int `json:"videoStreamContent,omitempty"` + + // VideoType 番組ビデオコーデック + VideoType *ProgramVideoType `json:"videoType,omitempty"` +} + +// RecordedSearchOptions recorded が持つ検索オプション情報 +type RecordedSearchOptions struct { + Channels []RecordedChannelListItem `json:"channels"` + Genres []RecordedGenreListItem `json:"genres"` +} + +// RecordedTag タグ情報 +type RecordedTag struct { + // Color 色 + Color string `json:"color"` + + // Id 録画 tag id + Id RecordedTagId `json:"id"` + + // Name タグ名 + Name string `json:"name"` +} + +// RecordedTagId 録画 tag id +type RecordedTagId = int + +// RecordedTags 録画タグ情報 +type RecordedTags struct { + Tags []RecordedTag `json:"tags"` + + // Total 予約総件数 + Total int `json:"total"` +} + +// Records 録画情報 +type Records struct { + Records []RecordedItem `json:"records"` + + // Total 録画総件数 + Total int `json:"total"` +} + +// RelateRecordedTagOption 録画番組とタグの関連付けオプション +type RelateRecordedTagOption struct { + // RecordedId 録画済み番組 id + RecordedId RecordedId `json:"recordedId"` +} + +// ReserveCnts 予約カウント +type ReserveCnts struct { + // Conflicts 競合予約数 + Conflicts int `json:"conflicts"` + + // Normal 通常予約数 + Normal int `json:"normal"` + + // Overlaps 重複予約数 + Overlaps int `json:"overlaps"` + + // Skips 競合予約数 + Skips int `json:"skips"` +} + +// ReserveEncodedOption 予約エンコードオプション +type ReserveEncodedOption struct { + // Directory1 エンコードモード1ディレクトリ + Directory1 *string `json:"directory1,omitempty"` + + // Directory2 エンコードモード2ディレクトリ + Directory2 *string `json:"directory2,omitempty"` + + // Directory3 エンコードモード3ディレクトリ + Directory3 *string `json:"directory3,omitempty"` + + // EncodeParentDirectoryName1 エンコードモード1親ディレクトリ + EncodeParentDirectoryName1 *string `json:"encodeParentDirectoryName1,omitempty"` + + // EncodeParentDirectoryName2 エンコードモード2親ディレクトリ + EncodeParentDirectoryName2 *string `json:"encodeParentDirectoryName2,omitempty"` + + // EncodeParentDirectoryName3 エンコードモード3親ディレクトリ + EncodeParentDirectoryName3 *string `json:"encodeParentDirectoryName3,omitempty"` + + // IsDeleteOriginalAfterEncode エンコード後に ts を削除するか + IsDeleteOriginalAfterEncode bool `json:"isDeleteOriginalAfterEncode"` + + // Mode1 エンコードモード1 + Mode1 *string `json:"mode1,omitempty"` + + // Mode2 エンコードモード2 + Mode2 *string `json:"mode2,omitempty"` + + // Mode3 エンコードモード3 + Mode3 *string `json:"mode3,omitempty"` +} + +// ReserveId 予約 id +type ReserveId = int + +// ReserveItem 予約番組情報 +type ReserveItem struct { + AllowEndLack bool `json:"allowEndLack"` + AudioComponentType *int `json:"audioComponentType,omitempty"` + + // AudioSamplingRate 番組オーディオサンプリングレート + AudioSamplingRate *ProgramAudioSamplingRate `json:"audioSamplingRate,omitempty"` + + // ChannelId 放送局 id + ChannelId ChannelId `json:"channelId"` + Description *string `json:"description,omitempty"` + Directory *string `json:"directory,omitempty"` + EncodeDirectory1 *string `json:"encodeDirectory1,omitempty"` + EncodeDirectory2 *string `json:"encodeDirectory2,omitempty"` + EncodeDirectory3 *int `json:"encodeDirectory3,omitempty"` + EncodeMode1 *int `json:"encodeMode1,omitempty"` + EncodeMode2 *int `json:"encodeMode2,omitempty"` + EncodeMode3 *int `json:"encodeMode3,omitempty"` + EncodeParentDirectoryName1 *string `json:"encodeParentDirectoryName1,omitempty"` + EncodeParentDirectoryName2 *string `json:"encodeParentDirectoryName2,omitempty"` + EncodeParentDirectoryName3 *string `json:"encodeParentDirectoryName3,omitempty"` + + // EndAt 時刻 (ms) + EndAt UnixtimeMS `json:"endAt"` + Extended *string `json:"extended,omitempty"` + + // Genre1 ジャンル + Genre1 *ProgramGenreLv1 `json:"genre1,omitempty"` + + // Genre2 ジャンル + Genre2 *ProgramGenreLv1 `json:"genre2,omitempty"` + + // Genre3 ジャンル + Genre3 *ProgramGenreLv1 `json:"genre3,omitempty"` + + // Id 予約 id + Id ReserveId `json:"id"` + IsConflict bool `json:"isConflict"` + IsDeleteOriginalAfterEncode bool `json:"isDeleteOriginalAfterEncode"` + IsOverlap bool `json:"isOverlap"` + IsSkip bool `json:"isSkip"` + IsTimeSpecified bool `json:"isTimeSpecified"` + Name string `json:"name"` + ParentDirectoryName *string `json:"parentDirectoryName,omitempty"` + + // ProgramId program id + ProgramId *ProgramId `json:"programId,omitempty"` + RawExtended *map[string]interface{} `json:"rawExtended,omitempty"` + RecordedFormat *string `json:"recordedFormat,omitempty"` + + // RuleId ルール id + RuleId *RuleId `json:"ruleId,omitempty"` + + // StartAt 時刻 (ms) + StartAt UnixtimeMS `json:"startAt"` + + // SubGenre1 サブジャンル + SubGenre1 *ProgramGenreLv2 `json:"subGenre1,omitempty"` + + // SubGenre2 サブジャンル + SubGenre2 *ProgramGenreLv2 `json:"subGenre2,omitempty"` + + // SubGenre3 サブジャンル + SubGenre3 *ProgramGenreLv2 `json:"subGenre3,omitempty"` + Tags *[]RecordedTagId `json:"tags,omitempty"` + VideoComponentType *int `json:"videoComponentType,omitempty"` + + // VideoResolution 番組ビデオ解像度 + VideoResolution *ProgramVideoResolution `json:"videoResolution,omitempty"` + VideoStreamContent *int `json:"videoStreamContent,omitempty"` + + // VideoType 番組ビデオコーデック + VideoType *ProgramVideoType `json:"videoType,omitempty"` +} + +// ReserveListItem 予約リストitem +type ReserveListItem struct { + // ProgramId program id + ProgramId *ProgramId `json:"programId,omitempty"` + + // ReserveId 予約 id + ReserveId ReserveId `json:"reserveId"` + + // RuleId ルール id + RuleId *RuleId `json:"ruleId,omitempty"` +} + +// ReserveLists 予約, 除外, 重複, 競合の reserveId のリスト +type ReserveLists struct { + // Conflicts 予約リストitem + Conflicts ReserveListItem `json:"conflicts"` + + // Normal 予約リストitem + Normal ReserveListItem `json:"normal"` + + // Overlaps 予約リストitem + Overlaps ReserveListItem `json:"overlaps"` + + // Skips 予約リストitem + Skips ReserveListItem `json:"skips"` +} + +// ReserveSaveOption 予約保存オプション +type ReserveSaveOption struct { + // Directory 保存ディレクトリ + Directory *string `json:"directory,omitempty"` + + // ParentDirectoryName 親保存ディレクトリ + ParentDirectoryName *string `json:"parentDirectoryName,omitempty"` + + // RecordedFormat ファイル名フォーマット + RecordedFormat *string `json:"recordedFormat,omitempty"` +} + +// Reserves 予約情報 +type Reserves struct { + Reserves []ReserveItem `json:"reserves"` + + // Total 予約総件数 + Total int `json:"total"` +} + +// Rule ルール追加プション +type Rule = AddRuleOption + +// RuleId ルール id +type RuleId = int + +// RuleKeywordInfo ルールキーワード検索結果 +type RuleKeywordInfo struct { + Items []RuleKeywordItem `json:"items"` +} + +// RuleKeywordItem defines model for RuleKeywordItem. +type RuleKeywordItem struct { + // Id ルール id + Id RuleId `json:"id"` + Keyword string `json:"keyword"` +} + +// RuleReserveOption ルール予約オプション +type RuleReserveOption struct { + // AllowEndLack 末尾切れを許可するか + AllowEndLack bool `json:"allowEndLack"` + + // AvoidDuplicate 録画済みの重複番組を排除するか + AvoidDuplicate bool `json:"avoidDuplicate"` + + // Enable ルールが有効か + Enable bool `json:"enable"` + + // PeriodToAvoidDuplicate 重複を避ける期間 + PeriodToAvoidDuplicate *int `json:"periodToAvoidDuplicate,omitempty"` + Tags *[]RecordedTagId `json:"tags,omitempty"` +} + +// RuleSearchOption ルール検索オプション +type RuleSearchOption struct { + // BS BS + BS *bool `json:"BS,omitempty"` + + // CS CS + CS *bool `json:"CS,omitempty"` + + // GR GR + GR *bool `json:"GR,omitempty"` + + // SKY SKY + SKY *bool `json:"SKY,omitempty"` + + // ChannelIds 放送局 + ChannelIds *[]ChannelId `json:"channelIds,omitempty"` + + // Description 概要 (検索キーワード) + Description *bool `json:"description,omitempty"` + + // DurationMax 番組最大時間 (分) + DurationMax *int `json:"durationMax,omitempty"` + + // DurationMin 番組最小時間 (分) + DurationMin *int `json:"durationMin,omitempty"` + + // Extended 詳細 (検索キーワード) + Extended *bool `json:"extended,omitempty"` + + // Genres ジャンル + Genres *[]Genre `json:"genres,omitempty"` + + // IgnoreDescription 概要 (除外検索キーワード) + IgnoreDescription *bool `json:"ignoreDescription,omitempty"` + + // IgnoreExtended 詳細 (除外検索キーワード) + IgnoreExtended *bool `json:"ignoreExtended,omitempty"` + + // IgnoreKeyCS 大文字小文字区別有効化 (除外検索キーワード) + IgnoreKeyCS *bool `json:"ignoreKeyCS,omitempty"` + + // IgnoreKeyRegExp 正規表現 (除外検索キーワード) + IgnoreKeyRegExp *bool `json:"ignoreKeyRegExp,omitempty"` + + // IgnoreKeyword 除外検索キーワード + IgnoreKeyword *string `json:"ignoreKeyword,omitempty"` + + // IgnoreName 番組名 (除外検索キーワード) + IgnoreName *bool `json:"ignoreName,omitempty"` + + // IsFree 無料放送か + IsFree *bool `json:"isFree,omitempty"` + + // KeyCS 大文字小文字区別有効化 (検索キーワード) + KeyCS *bool `json:"keyCS,omitempty"` + + // KeyRegExp 正規表現 (検索キーワード) + KeyRegExp *bool `json:"keyRegExp,omitempty"` + + // Keyword 検索キーワード + Keyword *string `json:"keyword,omitempty"` + + // Name 番組名 (検索キーワード) + Name *bool `json:"name,omitempty"` + + // SearchPeriods 検索対象期間 + SearchPeriods *[]SearchPeriod `json:"searchPeriods,omitempty"` + + // Times 時刻範囲 + Times *[]SearchTime `json:"times,omitempty"` +} + +// Rules ルール情報 +type Rules struct { + Rules []Rule `json:"rules"` + + // Total ルール総件数 + Total int `json:"total"` +} + +// Schedule 番組表データ +type Schedule struct { + // Channel 番組表の放送局データ + Channel ScheduleChannleItem `json:"channel"` + Programs ScheduleProgramItems `json:"programs"` +} + +// ScheduleChannleItem 番組表の放送局データ +type ScheduleChannleItem struct { + // ChannelType 放送波タイプ + ChannelType ChannelType `json:"channelType"` + + // HasLogoData ロゴデータを持っているか + HasLogoData bool `json:"hasLogoData"` + + // Id 放送局 id + Id ChannelId `json:"id"` + + // Name 放送局名 + Name string `json:"name"` + + // NetworkId network id + NetworkId NetworkId `json:"networkId"` + + // RemoteControlKeyId リモコン番号 + RemoteControlKeyId *int `json:"remoteControlKeyId,omitempty"` + + // ServiceId service id + ServiceId ServiceId `json:"serviceId"` +} + +// ScheduleProgramItem 番組表の番組データ +type ScheduleProgramItem struct { + AudioComponentType *int `json:"audioComponentType,omitempty"` + + // AudioSamplingRate 番組オーディオサンプリングレート + AudioSamplingRate *ProgramAudioSamplingRate `json:"audioSamplingRate,omitempty"` + + // ChannelId 放送局 id + ChannelId ChannelId `json:"channelId"` + + // Description 番組詳細 + Description *string `json:"description,omitempty"` + + // EndAt 時刻 (ms) + EndAt UnixtimeMS `json:"endAt"` + + // Extended 番組拡張 + Extended *string `json:"extended,omitempty"` + + // Genre1 ジャンル + Genre1 *ProgramGenreLv1 `json:"genre1,omitempty"` + + // Genre2 ジャンル + Genre2 *ProgramGenreLv1 `json:"genre2,omitempty"` + + // Genre3 ジャンル + Genre3 *ProgramGenreLv1 `json:"genre3,omitempty"` + + // Id program id + Id ProgramId `json:"id"` + + // IsFree 無料放送か + IsFree bool `json:"isFree"` + + // Name 番組名 + Name string `json:"name"` + + // RawExtended 番組拡張 (Mirakurun の extended) + RawExtended *map[string]interface{} `json:"rawExtended,omitempty"` + + // StartAt 時刻 (ms) + StartAt UnixtimeMS `json:"startAt"` + + // SubGenre1 サブジャンル + SubGenre1 *ProgramGenreLv2 `json:"subGenre1,omitempty"` + + // SubGenre2 サブジャンル + SubGenre2 *ProgramGenreLv2 `json:"subGenre2,omitempty"` + + // SubGenre3 サブジャンル + SubGenre3 *ProgramGenreLv2 `json:"subGenre3,omitempty"` + VideoComponentType *int `json:"videoComponentType,omitempty"` + + // VideoResolution 番組ビデオ解像度 + VideoResolution *ProgramVideoResolution `json:"videoResolution,omitempty"` + VideoStreamContent *int `json:"videoStreamContent,omitempty"` + + // VideoType 番組ビデオコーデック + VideoType *ProgramVideoType `json:"videoType,omitempty"` +} + +// ScheduleProgramItems defines model for ScheduleProgramItems. +type ScheduleProgramItems = []ScheduleProgramItem + +// ScheduleSearchOption 番組検索オプション +type ScheduleSearchOption struct { + // IsHalfWidth 半角文字で取得するか + IsHalfWidth bool `json:"isHalfWidth"` + + // Limit 検索結果取得最大件数 + Limit *float32 `json:"limit,omitempty"` + + // Option ルール検索オプション + Option RuleSearchOption `json:"option"` +} + +// Schedules defines model for Schedules. +type Schedules = []Schedule + +// SearchPeriod 検索対象期間オプション +type SearchPeriod struct { + // EndAt 時刻 (ms) + EndAt UnixtimeMS `json:"endAt"` + + // StartAt 時刻 (ms) + StartAt UnixtimeMS `json:"startAt"` +} + +// SearchTime 時刻範囲指定オプション +type SearchTime struct { + // Range 開始時刻からの時刻範囲(時) 1 - 23, 時刻予約の場合は秒で時間の長さを指定する 1 ~ 60 * 50 * 24 秒 + Range *int `json:"range,omitempty"` + + // Start 開始時刻 1 - 23, 時刻予約の場合は 0 時を 0 とした 0 ~ (60 * 50 * 24) - 1 秒までの開始時刻を指定する + Start *int `json:"start,omitempty"` + + // Week 曜日指定 0x01, 0x02, 0x04, 0x08, 0x10, 0x20 ,0x40 が日〜土に対応するので and 演算で曜日を指定する + Week int `json:"week"` +} + +// SendVideoLinkToKodiOption kodiへビデオリンクを送信するときのオプション +type SendVideoLinkToKodiOption struct { + // KodiName config の kodi の name + KodiName string `json:"kodiName"` +} + +// ServiceId service id +type ServiceId = int + +// StartStreamInfo ストリーム開始情報 +type StartStreamInfo struct { + // StreamId ストリーム id + StreamId StreamId `json:"streamId"` +} + +// StorageInfo ストレージ情報 +type StorageInfo struct { + Items []StorageItem `json:"items"` +} + +// StorageItem ストレージ使用状況 +type StorageItem struct { + // Available 空き容量 (byte) + Available int `json:"available"` + + // Name ディスク名 + Name string `json:"name"` + + // Total 総容量 (byte) + Total int `json:"total"` + + // Used 使用量 (byte) + Used int `json:"used"` +} + +// StreamId ストリーム id +type StreamId = int + +// StreamInfo defines model for StreamInfo. +type StreamInfo struct { + Items []StreamInfoItem `json:"items"` +} + +// StreamInfoItem ストリーム情報 +type StreamInfoItem struct { + // ChannelId 放送局 id + ChannelId ChannelId `json:"channelId"` + + // Description ストリーミング番組詳細 + Description *string `json:"description,omitempty"` + + // EndAt 時刻 (ms) + EndAt UnixtimeMS `json:"endAt"` + + // Extended ストリーミング番組拡張 + Extended *string `json:"extended,omitempty"` + + // IsEnable 放送波が有効か (HLS 形式の場合有効) + IsEnable bool `json:"isEnable"` + + // Mode ストリーミング設定 + Mode float32 `json:"mode"` + + // Name ストリーミング番組名 + Name string `json:"name"` + + // RecordedId 録画済み番組 id + RecordedId *RecordedId `json:"recordedId,omitempty"` + + // StartAt 時刻 (ms) + StartAt UnixtimeMS `json:"startAt"` + + // StreamId ストリーム id + StreamId StreamId `json:"streamId"` + + // Type ストリームの種類 + Type StreamType `json:"type"` + + // VideoFileId ビデオファイル id + VideoFileId *VideoFileId `json:"videoFileId,omitempty"` +} + +// StreamType ストリームの種類 +type StreamType string + +// ThumbnailId サムネイル id +type ThumbnailId = int + +// URLSchemeInfo URL Scheme +type URLSchemeInfo struct { + Android *string `json:"android,omitempty"` + Ios *string `json:"ios,omitempty"` + Mac *string `json:"mac,omitempty"` + Win *string `json:"win,omitempty"` +} + +// UnixtimeMS 時刻 (ms) +type UnixtimeMS = int + +// UploadVideoFileOption ビデオファイルをアップロード +type UploadVideoFileOption struct { + File openapi_types.File `json:"file"` + + // FileType ビデオファイル形式 + FileType VideoFileType `json:"fileType"` + + // ParentDirectoryName 親保存ディレクトリ + ParentDirectoryName string `json:"parentDirectoryName"` + + // RecordedId 録画済み番組 id + RecordedId RecordedId `json:"recordedId"` + + // SubDirectory 保存ディレクトリ + SubDirectory *string `json:"subDirectory,omitempty"` + + // ViewName 表示名 + ViewName string `json:"viewName"` +} + +// Version バージョン情報 +type Version struct { + Version string `json:"version"` +} + +// VideoFile ビデオファイル情報 +type VideoFile struct { + // Filename ビデオファイル名 + Filename *string `json:"filename,omitempty"` + + // Id ビデオファイル id + Id VideoFileId `json:"id"` + + // Name ビデオ名 (Web上の表示名) + Name string `json:"name"` + + // Size ファイルサイズ + Size int `json:"size"` + + // Type ビデオファイル形式 + Type VideoFileType `json:"type"` +} + +// VideoFileDuration ビデオファイルの長さ +type VideoFileDuration struct { + // Duration 動画長(秒) + Duration float32 `json:"duration"` +} + +// VideoFileId ビデオファイル id +type VideoFileId = int + +// VideoFileType ビデオファイル形式 +type VideoFileType string + +// AddtionTime 時刻 (ms) +type AddtionTime = UnixtimeMS + +// Days defines model for Days. +type Days = int + +// EndAt 時刻 (ms) +type EndAt = UnixtimeMS + +// GetReserveType defines model for GetReserveType. +type GetReserveType = interface{} + +// IPTVDays defines model for IPTVDays. +type IPTVDays = int + +// IPTVIsHalfWidth defines model for IPTVIsHalfWidth. +type IPTVIsHalfWidth = bool + +// IsDownload defines model for IsDownload. +type IsDownload = bool + +// IsFreeProgram defines model for IsFreeProgram. +type IsFreeProgram = bool + +// IsHalfWidth defines model for IsHalfWidth. +type IsHalfWidth = bool + +// IsReverse defines model for IsReverse. +type IsReverse = bool + +// Limit defines model for Limit. +type Limit = int + +// LogFileMaxSize defines model for LogFileMaxSize. +type LogFileMaxSize = int + +// NeedsRawExtended defines model for NeedsRawExtended. +type NeedsRawExtended = bool + +// Offset defines model for Offset. +type Offset = int + +// PathChannelId 放送局 id +type PathChannelId = ChannelId + +// PathDropLogFileId defines model for PathDropLogFileId. +type PathDropLogFileId = int + +// PathEncodeId defines model for PathEncodeId. +type PathEncodeId = int + +// PathProgramId program id +type PathProgramId = ProgramId + +// PathRecordedId defines model for PathRecordedId. +type PathRecordedId = int + +// PathRecordedTagId defines model for PathRecordedTagId. +type PathRecordedTagId = int + +// PathReserveId defines model for PathReserveId. +type PathReserveId = int + +// PathRuleId defines model for PathRuleId. +type PathRuleId = int + +// PathStreamId ストリーム id +type PathStreamId = StreamId + +// PathThumbnailId defines model for PathThumbnailId. +type PathThumbnailId = int + +// PathVideoFileId defines model for PathVideoFileId. +type PathVideoFileId = int + +// QueryChannelId 放送局 id +type QueryChannelId = ChannelId + +// QueryExcludeRecordedTagId defines model for QueryExcludeRecordedTagId. +type QueryExcludeRecordedTagId = []string + +// QueryHasOriginalFile defines model for QueryHasOriginalFile. +type QueryHasOriginalFile = bool + +// QueryKeyword defines model for QueryKeyword. +type QueryKeyword = string + +// QueryName defines model for QueryName. +type QueryName = string + +// QueryProgramGenre ジャンル +type QueryProgramGenre = ProgramGenreLv1 + +// QueryRecordedId 録画済み番組 id +type QueryRecordedId = RecordedId + +// QueryRuleId ルール id +type QueryRuleId = RuleId + +// StartAt 時刻 (ms) +type StartAt = UnixtimeMS + +// StreamMode defines model for StreamMode. +type StreamMode = int + +// StreamPlayPosition defines model for StreamPlayPosition. +type StreamPlayPosition = int + +// RequiredBS defines model for requiredBS. +type RequiredBS = bool + +// RequiredCS defines model for requiredCS. +type RequiredCS = bool + +// RequiredGR defines model for requiredGR. +type RequiredGR = bool + +// RequiredSKY defines model for requiredSKY. +type RequiredSKY = bool + +// GetDropLogsDropLogFileIdParams defines parameters for GetDropLogsDropLogFileId. +type GetDropLogsDropLogFileIdParams struct { + // Maxsize ファイル最大サイズ (kByte) + Maxsize *LogFileMaxSize `form:"maxsize,omitempty" json:"maxsize,omitempty"` +} + +// GetEncodeParams defines parameters for GetEncode. +type GetEncodeParams struct { + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` +} + +// GetIptvChannelM3u8Params defines parameters for GetIptvChannelM3u8. +type GetIptvChannelM3u8Params struct { + // IsHalfWidth 半角文字で取得するか + IsHalfWidth *IPTVIsHalfWidth `form:"isHalfWidth,omitempty" json:"isHalfWidth,omitempty"` + + // Mode ストリーミング設定 + Mode StreamMode `form:"mode" json:"mode"` +} + +// GetIptvEpgXmlParams defines parameters for GetIptvEpgXml. +type GetIptvEpgXmlParams struct { + // IsHalfWidth 半角文字で取得するか + IsHalfWidth *IPTVIsHalfWidth `form:"isHalfWidth,omitempty" json:"isHalfWidth,omitempty"` + + // Days 取得日数 + Days *IPTVDays `form:"days,omitempty" json:"days,omitempty"` +} + +// GetRecordedParams defines parameters for GetRecorded. +type GetRecordedParams struct { + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` + + // Offset offset + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Limit limit + Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // IsReverse 逆順で取得するか + IsReverse *IsReverse `form:"isReverse,omitempty" json:"isReverse,omitempty"` + + // RuleId ルールid + RuleId *QueryRuleId `form:"ruleId,omitempty" json:"ruleId,omitempty"` + + // ChannelId 放送局 id + ChannelId *QueryChannelId `form:"channelId,omitempty" json:"channelId,omitempty"` + + // Genre ジャンル + Genre *QueryProgramGenre `form:"genre,omitempty" json:"genre,omitempty"` + + // Keyword キーワード + Keyword *QueryKeyword `form:"keyword,omitempty" json:"keyword,omitempty"` + + // HasOriginalFile オリジナルファイルを含むか + HasOriginalFile *QueryHasOriginalFile `form:"hasOriginalFile,omitempty" json:"hasOriginalFile,omitempty"` +} + +// GetRecordedRecordedIdParams defines parameters for GetRecordedRecordedId. +type GetRecordedRecordedIdParams struct { + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` +} + +// GetRecordingParams defines parameters for GetRecording. +type GetRecordingParams struct { + // Offset offset + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Limit limit + Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` +} + +// GetReservesParams defines parameters for GetReserves. +type GetReservesParams struct { + // Offset offset + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Limit limit + Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Type 予約情報取得タイプ + Type *GetReserveType `form:"type,omitempty" json:"type,omitempty"` + + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` + + // RuleId ルールid + RuleId *QueryRuleId `form:"ruleId,omitempty" json:"ruleId,omitempty"` +} + +// GetReservesListsParams defines parameters for GetReservesLists. +type GetReservesListsParams struct { + // StartAt 開始時刻 + StartAt StartAt `form:"startAt" json:"startAt"` + + // EndAt 終了時刻 + EndAt EndAt `form:"endAt" json:"endAt"` +} + +// GetReservesReserveIdParams defines parameters for GetReservesReserveId. +type GetReservesReserveIdParams struct { + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` +} + +// GetRulesParams defines parameters for GetRules. +type GetRulesParams struct { + // Offset offset + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Limit limit + Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Type 予約情報取得タイプ + Type *GetReserveType `form:"type,omitempty" json:"type,omitempty"` + + // Keyword キーワード + Keyword *QueryKeyword `form:"keyword,omitempty" json:"keyword,omitempty"` +} + +// GetRulesKeywordParams defines parameters for GetRulesKeyword. +type GetRulesKeywordParams struct { + // Offset offset + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Limit limit + Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Keyword キーワード + Keyword *QueryKeyword `form:"keyword,omitempty" json:"keyword,omitempty"` +} + +// GetSchedulesParams defines parameters for GetSchedules. +type GetSchedulesParams struct { + // StartAt 開始時刻 + StartAt StartAt `form:"startAt" json:"startAt"` + + // EndAt 終了時刻 + EndAt EndAt `form:"endAt" json:"endAt"` + + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` + + // NeedsRawExtended rawExtended が必要か + NeedsRawExtended *NeedsRawExtended `form:"needsRawExtended,omitempty" json:"needsRawExtended,omitempty"` + + // IsFree 無料放送のみ取得するか (true: 無料放送, false: 有料放送, 無指定: 全て) + IsFree *IsFreeProgram `form:"isFree,omitempty" json:"isFree,omitempty"` + + // GR GR + GR RequiredGR `form:"GR" json:"GR"` + + // BS BS + BS RequiredBS `form:"BS" json:"BS"` + + // CS CS + CS RequiredCS `form:"CS" json:"CS"` + + // SKY SKY + SKY RequiredSKY `form:"SKY" json:"SKY"` +} + +// GetSchedulesBroadcastingParams defines parameters for GetSchedulesBroadcasting. +type GetSchedulesBroadcastingParams struct { + // Time 追加時間 (ms) + Time *AddtionTime `form:"time,omitempty" json:"time,omitempty"` + + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` +} + +// GetSchedulesDetailProgramIdParams defines parameters for GetSchedulesDetailProgramId. +type GetSchedulesDetailProgramIdParams struct { + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` +} + +// GetSchedulesChannelIdParams defines parameters for GetSchedulesChannelId. +type GetSchedulesChannelIdParams struct { + // StartAt 開始時刻 + StartAt StartAt `form:"startAt" json:"startAt"` + + // Days 取得日数 + Days Days `form:"days" json:"days"` + + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` + + // NeedsRawExtended rawExtended が必要か + NeedsRawExtended *NeedsRawExtended `form:"needsRawExtended,omitempty" json:"needsRawExtended,omitempty"` + + // IsFree 無料放送のみ取得するか (true: 無料放送, false: 有料放送, 無指定: 全て) + IsFree *IsFreeProgram `form:"isFree,omitempty" json:"isFree,omitempty"` +} + +// GetStreamsParams defines parameters for GetStreams. +type GetStreamsParams struct { + // IsHalfWidth 半角文字で取得するか + IsHalfWidth IsHalfWidth `form:"isHalfWidth" json:"isHalfWidth"` +} + +// GetStreamsLiveChannelIdHlsParams defines parameters for GetStreamsLiveChannelIdHls. +type GetStreamsLiveChannelIdHlsParams struct { + // Mode ストリーミング設定 + Mode StreamMode `form:"mode" json:"mode"` +} + +// GetStreamsLiveChannelIdM2tsParams defines parameters for GetStreamsLiveChannelIdM2ts. +type GetStreamsLiveChannelIdM2tsParams struct { + // Mode ストリーミング設定 + Mode StreamMode `form:"mode" json:"mode"` +} + +// GetStreamsLiveChannelIdM2tsPlaylistParams defines parameters for GetStreamsLiveChannelIdM2tsPlaylist. +type GetStreamsLiveChannelIdM2tsPlaylistParams struct { + // Mode ストリーミング設定 + Mode StreamMode `form:"mode" json:"mode"` +} + +// GetStreamsLiveChannelIdM2tsllParams defines parameters for GetStreamsLiveChannelIdM2tsll. +type GetStreamsLiveChannelIdM2tsllParams struct { + // Mode ストリーミング設定 + Mode StreamMode `form:"mode" json:"mode"` +} + +// GetStreamsLiveChannelIdMp4Params defines parameters for GetStreamsLiveChannelIdMp4. +type GetStreamsLiveChannelIdMp4Params struct { + // Mode ストリーミング設定 + Mode StreamMode `form:"mode" json:"mode"` +} + +// GetStreamsLiveChannelIdWebmParams defines parameters for GetStreamsLiveChannelIdWebm. +type GetStreamsLiveChannelIdWebmParams struct { + // Mode ストリーミング設定 + Mode StreamMode `form:"mode" json:"mode"` +} + +// GetStreamsRecordedVideoFileIdHlsParams defines parameters for GetStreamsRecordedVideoFileIdHls. +type GetStreamsRecordedVideoFileIdHlsParams struct { + // Ss 再生位置 + Ss StreamPlayPosition `form:"ss" json:"ss"` + + // Mode ストリーミング設定 + Mode StreamMode `form:"mode" json:"mode"` +} + +// GetStreamsRecordedVideoFileIdMp4Params defines parameters for GetStreamsRecordedVideoFileIdMp4. +type GetStreamsRecordedVideoFileIdMp4Params struct { + // Ss 再生位置 + Ss StreamPlayPosition `form:"ss" json:"ss"` + + // Mode ストリーミング設定 + Mode StreamMode `form:"mode" json:"mode"` +} + +// GetStreamsRecordedVideoFileIdWebmParams defines parameters for GetStreamsRecordedVideoFileIdWebm. +type GetStreamsRecordedVideoFileIdWebmParams struct { + // Ss 再生位置 + Ss StreamPlayPosition `form:"ss" json:"ss"` + + // Mode ストリーミング設定 + Mode StreamMode `form:"mode" json:"mode"` +} + +// GetTagsParams defines parameters for GetTags. +type GetTagsParams struct { + // Offset offset + Offset *Offset `form:"offset,omitempty" json:"offset,omitempty"` + + // Limit limit + Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` + + // Name name + Name *QueryName `form:"name,omitempty" json:"name,omitempty"` + + // ExcludeTagId 除外する RecordedTagId + ExcludeTagId *QueryExcludeRecordedTagId `form:"excludeTagId,omitempty" json:"excludeTagId,omitempty"` +} + +// DeleteTagsTagIdRelateParams defines parameters for DeleteTagsTagIdRelate. +type DeleteTagsTagIdRelateParams struct { + // RecordedId recorded id + RecordedId *QueryRecordedId `form:"recordedId,omitempty" json:"recordedId,omitempty"` +} + +// GetVideosVideoFileIdParams defines parameters for GetVideosVideoFileId. +type GetVideosVideoFileIdParams struct { + // IsDownload ファイルをダウンロードするか + IsDownload *IsDownload `form:"isDownload,omitempty" json:"isDownload,omitempty"` +} + +// PostEncodeJSONRequestBody defines body for PostEncode for application/json ContentType. +type PostEncodeJSONRequestBody = AddManualEncodeProgramOption + +// PostRecordedJSONRequestBody defines body for PostRecorded for application/json ContentType. +type PostRecordedJSONRequestBody = CreateNewRecordedOption + +// PostReservesJSONRequestBody defines body for PostReserves for application/json ContentType. +type PostReservesJSONRequestBody = ManualReserveOption + +// PutReservesReserveIdJSONRequestBody defines body for PutReservesReserveId for application/json ContentType. +type PutReservesReserveIdJSONRequestBody = EditManualReserveOption + +// PostRulesJSONRequestBody defines body for PostRules for application/json ContentType. +type PostRulesJSONRequestBody = AddRuleOption + +// PostRulesKeywordJSONRequestBody defines body for PostRulesKeyword for application/json ContentType. +type PostRulesKeywordJSONRequestBody = AddRuleOption + +// PutRulesRuleIdJSONRequestBody defines body for PutRulesRuleId for application/json ContentType. +type PutRulesRuleIdJSONRequestBody = AddRuleOption + +// PostSchedulesSearchJSONRequestBody defines body for PostSchedulesSearch for application/json ContentType. +type PostSchedulesSearchJSONRequestBody = ScheduleSearchOption + +// PostTagsJSONRequestBody defines body for PostTags for application/json ContentType. +type PostTagsJSONRequestBody = AddRecordedTagOption + +// PutTagsTagIdJSONRequestBody defines body for PutTagsTagId for application/json ContentType. +type PutTagsTagIdJSONRequestBody = AddRecordedTagOption + +// PutTagsTagIdRelateJSONRequestBody defines body for PutTagsTagIdRelate for application/json ContentType. +type PutTagsTagIdRelateJSONRequestBody = RelateRecordedTagOption + +// PostVideosUploadMultipartRequestBody defines body for PostVideosUpload for multipart/form-data ContentType. +type PostVideosUploadMultipartRequestBody = UploadVideoFileOption + +// PostVideosVideoFileIdKodiJSONRequestBody defines body for PostVideosVideoFileIdKodi for application/json ContentType. +type PostVideosVideoFileIdKodiJSONRequestBody = SendVideoLinkToKodiOption + +// RequestEditorFn is the function signature for the RequestEditor callback function +type RequestEditorFn func(ctx context.Context, req *http.Request) error + +// Doer performs HTTP requests. +// +// The standard http.Client implements this interface. +type HttpRequestDoer interface { + Do(req *http.Request) (*http.Response, error) +} + +// Client which conforms to the OpenAPI3 specification for this service. +type Client struct { + // The endpoint of the server conforming to this interface, with scheme, + // https://api.deepmap.com for example. This can contain a path relative + // to the server, such as https://api.deepmap.com/dev-test, and all the + // paths in the swagger spec will be appended to the server. + Server string + + // Doer for performing requests, typically a *http.Client with any + // customized settings, such as certificate chains. + Client HttpRequestDoer + + // A list of callbacks for modifying requests which are generated before sending over + // the network. + RequestEditors []RequestEditorFn +} + +// ClientOption allows setting custom parameters during construction +type ClientOption func(*Client) error + +// Creates a new Client, with reasonable defaults +func NewClient(server string, opts ...ClientOption) (*Client, error) { + // create a client with sane default values + client := Client{ + Server: server, + } + // mutate client and add all optional params + for _, o := range opts { + if err := o(&client); err != nil { + return nil, err + } + } + // ensure the server URL always has a trailing slash + if !strings.HasSuffix(client.Server, "/") { + client.Server += "/" + } + // create httpClient, if not already present + if client.Client == nil { + client.Client = &http.Client{} + } + return &client, nil +} + +// WithHTTPClient allows overriding the default Doer, which is +// automatically created using http.Client. This is useful for tests. +func WithHTTPClient(doer HttpRequestDoer) ClientOption { + return func(c *Client) error { + c.Client = doer + return nil + } +} + +// WithRequestEditorFn allows setting up a callback function, which will be +// called right before sending the request. This can be used to mutate the request. +func WithRequestEditorFn(fn RequestEditorFn) ClientOption { + return func(c *Client) error { + c.RequestEditors = append(c.RequestEditors, fn) + return nil + } +} + +// The interface specification for the client above. +type ClientInterface interface { + // GetChannels request + GetChannels(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetChannelsChannelIdLogo request + GetChannelsChannelIdLogo(ctx context.Context, channelId PathChannelId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetConfig request + GetConfig(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetDropLogsDropLogFileId request + GetDropLogsDropLogFileId(ctx context.Context, dropLogFileId PathDropLogFileId, params *GetDropLogsDropLogFileIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetEncode request + GetEncode(ctx context.Context, params *GetEncodeParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostEncode request with any body + PostEncodeWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostEncode(ctx context.Context, body PostEncodeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteEncodeEncodeId request + DeleteEncodeEncodeId(ctx context.Context, encodeId PathEncodeId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetIptvChannelM3u8 request + GetIptvChannelM3u8(ctx context.Context, params *GetIptvChannelM3u8Params, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetIptvEpgXml request + GetIptvEpgXml(ctx context.Context, params *GetIptvEpgXmlParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetRecorded request + GetRecorded(ctx context.Context, params *GetRecordedParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostRecorded request with any body + PostRecordedWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostRecorded(ctx context.Context, body PostRecordedJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostRecordedCleanup request + PostRecordedCleanup(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetRecordedOptions request + GetRecordedOptions(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteRecordedRecordedId request + DeleteRecordedRecordedId(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetRecordedRecordedId request + GetRecordedRecordedId(ctx context.Context, recordedId PathRecordedId, params *GetRecordedRecordedIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteRecordedRecordedIdEncode request + DeleteRecordedRecordedIdEncode(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PutRecordedRecordedIdProtect request + PutRecordedRecordedIdProtect(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PutRecordedRecordedIdUnprotect request + PutRecordedRecordedIdUnprotect(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetRecording request + GetRecording(ctx context.Context, params *GetRecordingParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostRecordingResettimer request + PostRecordingResettimer(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetReserves request + GetReserves(ctx context.Context, params *GetReservesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostReserves request with any body + PostReservesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostReserves(ctx context.Context, body PostReservesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetReservesCnts request + GetReservesCnts(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetReservesLists request + GetReservesLists(ctx context.Context, params *GetReservesListsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostReservesUpdate request + PostReservesUpdate(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteReservesReserveId request + DeleteReservesReserveId(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetReservesReserveId request + GetReservesReserveId(ctx context.Context, reserveId PathReserveId, params *GetReservesReserveIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PutReservesReserveId request with any body + PutReservesReserveIdWithBody(ctx context.Context, reserveId PathReserveId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PutReservesReserveId(ctx context.Context, reserveId PathReserveId, body PutReservesReserveIdJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteReservesReserveIdOverlap request + DeleteReservesReserveIdOverlap(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteReservesReserveIdSkip request + DeleteReservesReserveIdSkip(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetRules request + GetRules(ctx context.Context, params *GetRulesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostRules request with any body + PostRulesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostRules(ctx context.Context, body PostRulesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetRulesKeyword request + GetRulesKeyword(ctx context.Context, params *GetRulesKeywordParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostRulesKeyword request with any body + PostRulesKeywordWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostRulesKeyword(ctx context.Context, body PostRulesKeywordJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteRulesRuleId request + DeleteRulesRuleId(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetRulesRuleId request + GetRulesRuleId(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PutRulesRuleId request with any body + PutRulesRuleIdWithBody(ctx context.Context, ruleId PathRuleId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PutRulesRuleId(ctx context.Context, ruleId PathRuleId, body PutRulesRuleIdJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PutRulesRuleIdDisable request + PutRulesRuleIdDisable(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PutRulesRuleIdEnable request + PutRulesRuleIdEnable(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetSchedules request + GetSchedules(ctx context.Context, params *GetSchedulesParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetSchedulesBroadcasting request + GetSchedulesBroadcasting(ctx context.Context, params *GetSchedulesBroadcastingParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetSchedulesDetailProgramId request + GetSchedulesDetailProgramId(ctx context.Context, programId PathProgramId, params *GetSchedulesDetailProgramIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostSchedulesSearch request with any body + PostSchedulesSearchWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostSchedulesSearch(ctx context.Context, body PostSchedulesSearchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetSchedulesChannelId request + GetSchedulesChannelId(ctx context.Context, channelId PathChannelId, params *GetSchedulesChannelIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStorages request + GetStorages(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteStreams request + DeleteStreams(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStreams request + GetStreams(ctx context.Context, params *GetStreamsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStreamsLiveChannelIdHls request + GetStreamsLiveChannelIdHls(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdHlsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStreamsLiveChannelIdM2ts request + GetStreamsLiveChannelIdM2ts(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStreamsLiveChannelIdM2tsPlaylist request + GetStreamsLiveChannelIdM2tsPlaylist(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsPlaylistParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStreamsLiveChannelIdM2tsll request + GetStreamsLiveChannelIdM2tsll(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsllParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStreamsLiveChannelIdMp4 request + GetStreamsLiveChannelIdMp4(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdMp4Params, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStreamsLiveChannelIdWebm request + GetStreamsLiveChannelIdWebm(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdWebmParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStreamsRecordedVideoFileIdHls request + GetStreamsRecordedVideoFileIdHls(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdHlsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStreamsRecordedVideoFileIdMp4 request + GetStreamsRecordedVideoFileIdMp4(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdMp4Params, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetStreamsRecordedVideoFileIdWebm request + GetStreamsRecordedVideoFileIdWebm(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdWebmParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteStreamsStreamId request + DeleteStreamsStreamId(ctx context.Context, streamId PathStreamId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PutStreamsStreamIdKeep request + PutStreamsStreamIdKeep(ctx context.Context, streamId PathStreamId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetTags request + GetTags(ctx context.Context, params *GetTagsParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostTags request with any body + PostTagsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostTags(ctx context.Context, body PostTagsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteTagsTagId request + DeleteTagsTagId(ctx context.Context, tagId PathRecordedTagId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PutTagsTagId request with any body + PutTagsTagIdWithBody(ctx context.Context, tagId PathRecordedTagId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PutTagsTagId(ctx context.Context, tagId PathRecordedTagId, body PutTagsTagIdJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteTagsTagIdRelate request + DeleteTagsTagIdRelate(ctx context.Context, tagId PathRecordedTagId, params *DeleteTagsTagIdRelateParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PutTagsTagIdRelate request with any body + PutTagsTagIdRelateWithBody(ctx context.Context, tagId PathRecordedTagId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PutTagsTagIdRelate(ctx context.Context, tagId PathRecordedTagId, body PutTagsTagIdRelateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostThumbnails request + PostThumbnails(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostThumbnailsCleanup request + PostThumbnailsCleanup(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetThumbnailsThumbnailId request + GetThumbnailsThumbnailId(ctx context.Context, thumbnailId PathThumbnailId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetVersion request + GetVersion(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostVideosUpload request with any body + PostVideosUploadWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteVideosVideoFileId request + DeleteVideosVideoFileId(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetVideosVideoFileId request + GetVideosVideoFileId(ctx context.Context, videoFileId PathVideoFileId, params *GetVideosVideoFileIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetVideosVideoFileIdDuration request + GetVideosVideoFileIdDuration(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PostVideosVideoFileIdKodi request with any body + PostVideosVideoFileIdKodiWithBody(ctx context.Context, videoFileId PathVideoFileId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PostVideosVideoFileIdKodi(ctx context.Context, videoFileId PathVideoFileId, body PostVideosVideoFileIdKodiJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetVideosVideoFileIdPlaylist request + GetVideosVideoFileIdPlaylist(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*http.Response, error) +} + +func (c *Client) GetChannels(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetChannelsRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetChannelsChannelIdLogo(ctx context.Context, channelId PathChannelId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetChannelsChannelIdLogoRequest(c.Server, channelId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetConfig(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetConfigRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetDropLogsDropLogFileId(ctx context.Context, dropLogFileId PathDropLogFileId, params *GetDropLogsDropLogFileIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetDropLogsDropLogFileIdRequest(c.Server, dropLogFileId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetEncode(ctx context.Context, params *GetEncodeParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetEncodeRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostEncodeWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostEncodeRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostEncode(ctx context.Context, body PostEncodeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostEncodeRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteEncodeEncodeId(ctx context.Context, encodeId PathEncodeId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteEncodeEncodeIdRequest(c.Server, encodeId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetIptvChannelM3u8(ctx context.Context, params *GetIptvChannelM3u8Params, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetIptvChannelM3u8Request(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetIptvEpgXml(ctx context.Context, params *GetIptvEpgXmlParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetIptvEpgXmlRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetRecorded(ctx context.Context, params *GetRecordedParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetRecordedRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostRecordedWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostRecordedRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostRecorded(ctx context.Context, body PostRecordedJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostRecordedRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostRecordedCleanup(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostRecordedCleanupRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetRecordedOptions(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetRecordedOptionsRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteRecordedRecordedId(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteRecordedRecordedIdRequest(c.Server, recordedId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetRecordedRecordedId(ctx context.Context, recordedId PathRecordedId, params *GetRecordedRecordedIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetRecordedRecordedIdRequest(c.Server, recordedId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteRecordedRecordedIdEncode(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteRecordedRecordedIdEncodeRequest(c.Server, recordedId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutRecordedRecordedIdProtect(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutRecordedRecordedIdProtectRequest(c.Server, recordedId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutRecordedRecordedIdUnprotect(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutRecordedRecordedIdUnprotectRequest(c.Server, recordedId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetRecording(ctx context.Context, params *GetRecordingParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetRecordingRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostRecordingResettimer(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostRecordingResettimerRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetReserves(ctx context.Context, params *GetReservesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetReservesRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostReservesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostReservesRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostReserves(ctx context.Context, body PostReservesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostReservesRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetReservesCnts(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetReservesCntsRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetReservesLists(ctx context.Context, params *GetReservesListsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetReservesListsRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostReservesUpdate(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostReservesUpdateRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteReservesReserveId(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteReservesReserveIdRequest(c.Server, reserveId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetReservesReserveId(ctx context.Context, reserveId PathReserveId, params *GetReservesReserveIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetReservesReserveIdRequest(c.Server, reserveId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutReservesReserveIdWithBody(ctx context.Context, reserveId PathReserveId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutReservesReserveIdRequestWithBody(c.Server, reserveId, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutReservesReserveId(ctx context.Context, reserveId PathReserveId, body PutReservesReserveIdJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutReservesReserveIdRequest(c.Server, reserveId, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteReservesReserveIdOverlap(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteReservesReserveIdOverlapRequest(c.Server, reserveId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteReservesReserveIdSkip(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteReservesReserveIdSkipRequest(c.Server, reserveId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetRules(ctx context.Context, params *GetRulesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetRulesRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostRulesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostRulesRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostRules(ctx context.Context, body PostRulesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostRulesRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetRulesKeyword(ctx context.Context, params *GetRulesKeywordParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetRulesKeywordRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostRulesKeywordWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostRulesKeywordRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostRulesKeyword(ctx context.Context, body PostRulesKeywordJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostRulesKeywordRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteRulesRuleId(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteRulesRuleIdRequest(c.Server, ruleId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetRulesRuleId(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetRulesRuleIdRequest(c.Server, ruleId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutRulesRuleIdWithBody(ctx context.Context, ruleId PathRuleId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutRulesRuleIdRequestWithBody(c.Server, ruleId, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutRulesRuleId(ctx context.Context, ruleId PathRuleId, body PutRulesRuleIdJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutRulesRuleIdRequest(c.Server, ruleId, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutRulesRuleIdDisable(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutRulesRuleIdDisableRequest(c.Server, ruleId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutRulesRuleIdEnable(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutRulesRuleIdEnableRequest(c.Server, ruleId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetSchedules(ctx context.Context, params *GetSchedulesParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetSchedulesRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetSchedulesBroadcasting(ctx context.Context, params *GetSchedulesBroadcastingParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetSchedulesBroadcastingRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetSchedulesDetailProgramId(ctx context.Context, programId PathProgramId, params *GetSchedulesDetailProgramIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetSchedulesDetailProgramIdRequest(c.Server, programId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostSchedulesSearchWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostSchedulesSearchRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostSchedulesSearch(ctx context.Context, body PostSchedulesSearchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostSchedulesSearchRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetSchedulesChannelId(ctx context.Context, channelId PathChannelId, params *GetSchedulesChannelIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetSchedulesChannelIdRequest(c.Server, channelId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStorages(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStoragesRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteStreams(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteStreamsRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStreams(ctx context.Context, params *GetStreamsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStreamsRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStreamsLiveChannelIdHls(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdHlsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStreamsLiveChannelIdHlsRequest(c.Server, channelId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStreamsLiveChannelIdM2ts(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStreamsLiveChannelIdM2tsRequest(c.Server, channelId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStreamsLiveChannelIdM2tsPlaylist(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsPlaylistParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStreamsLiveChannelIdM2tsPlaylistRequest(c.Server, channelId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStreamsLiveChannelIdM2tsll(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsllParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStreamsLiveChannelIdM2tsllRequest(c.Server, channelId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStreamsLiveChannelIdMp4(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdMp4Params, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStreamsLiveChannelIdMp4Request(c.Server, channelId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStreamsLiveChannelIdWebm(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdWebmParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStreamsLiveChannelIdWebmRequest(c.Server, channelId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStreamsRecordedVideoFileIdHls(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdHlsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStreamsRecordedVideoFileIdHlsRequest(c.Server, videoFileId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStreamsRecordedVideoFileIdMp4(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdMp4Params, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStreamsRecordedVideoFileIdMp4Request(c.Server, videoFileId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetStreamsRecordedVideoFileIdWebm(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdWebmParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetStreamsRecordedVideoFileIdWebmRequest(c.Server, videoFileId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteStreamsStreamId(ctx context.Context, streamId PathStreamId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteStreamsStreamIdRequest(c.Server, streamId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutStreamsStreamIdKeep(ctx context.Context, streamId PathStreamId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutStreamsStreamIdKeepRequest(c.Server, streamId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetTags(ctx context.Context, params *GetTagsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetTagsRequest(c.Server, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostTagsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostTagsRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostTags(ctx context.Context, body PostTagsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostTagsRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteTagsTagId(ctx context.Context, tagId PathRecordedTagId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteTagsTagIdRequest(c.Server, tagId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutTagsTagIdWithBody(ctx context.Context, tagId PathRecordedTagId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutTagsTagIdRequestWithBody(c.Server, tagId, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutTagsTagId(ctx context.Context, tagId PathRecordedTagId, body PutTagsTagIdJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutTagsTagIdRequest(c.Server, tagId, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteTagsTagIdRelate(ctx context.Context, tagId PathRecordedTagId, params *DeleteTagsTagIdRelateParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteTagsTagIdRelateRequest(c.Server, tagId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutTagsTagIdRelateWithBody(ctx context.Context, tagId PathRecordedTagId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutTagsTagIdRelateRequestWithBody(c.Server, tagId, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PutTagsTagIdRelate(ctx context.Context, tagId PathRecordedTagId, body PutTagsTagIdRelateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPutTagsTagIdRelateRequest(c.Server, tagId, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostThumbnails(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostThumbnailsRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostThumbnailsCleanup(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostThumbnailsCleanupRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetThumbnailsThumbnailId(ctx context.Context, thumbnailId PathThumbnailId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetThumbnailsThumbnailIdRequest(c.Server, thumbnailId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetVersion(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetVersionRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostVideosUploadWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostVideosUploadRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteVideosVideoFileId(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteVideosVideoFileIdRequest(c.Server, videoFileId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetVideosVideoFileId(ctx context.Context, videoFileId PathVideoFileId, params *GetVideosVideoFileIdParams, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetVideosVideoFileIdRequest(c.Server, videoFileId, params) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetVideosVideoFileIdDuration(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetVideosVideoFileIdDurationRequest(c.Server, videoFileId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostVideosVideoFileIdKodiWithBody(ctx context.Context, videoFileId PathVideoFileId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostVideosVideoFileIdKodiRequestWithBody(c.Server, videoFileId, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PostVideosVideoFileIdKodi(ctx context.Context, videoFileId PathVideoFileId, body PostVideosVideoFileIdKodiJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPostVideosVideoFileIdKodiRequest(c.Server, videoFileId, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetVideosVideoFileIdPlaylist(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetVideosVideoFileIdPlaylistRequest(c.Server, videoFileId) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +// NewGetChannelsRequest generates requests for GetChannels +func NewGetChannelsRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/channels") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetChannelsChannelIdLogoRequest generates requests for GetChannelsChannelIdLogo +func NewGetChannelsChannelIdLogoRequest(server string, channelId PathChannelId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "channelId", runtime.ParamLocationPath, channelId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/channels/%s/logo", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetConfigRequest generates requests for GetConfig +func NewGetConfigRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/config") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetDropLogsDropLogFileIdRequest generates requests for GetDropLogsDropLogFileId +func NewGetDropLogsDropLogFileIdRequest(server string, dropLogFileId PathDropLogFileId, params *GetDropLogsDropLogFileIdParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "dropLogFileId", runtime.ParamLocationPath, dropLogFileId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/dropLogs/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.Maxsize != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "maxsize", runtime.ParamLocationQuery, *params.Maxsize); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetEncodeRequest generates requests for GetEncode +func NewGetEncodeRequest(server string, params *GetEncodeParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/encode") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostEncodeRequest calls the generic PostEncode builder with application/json body +func NewPostEncodeRequest(server string, body PostEncodeJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPostEncodeRequestWithBody(server, "application/json", bodyReader) +} + +// NewPostEncodeRequestWithBody generates requests for PostEncode with any type of body +func NewPostEncodeRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/encode") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewDeleteEncodeEncodeIdRequest generates requests for DeleteEncodeEncodeId +func NewDeleteEncodeEncodeIdRequest(server string, encodeId PathEncodeId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "encodeId", runtime.ParamLocationPath, encodeId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/encode/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetIptvChannelM3u8Request generates requests for GetIptvChannelM3u8 +func NewGetIptvChannelM3u8Request(server string, params *GetIptvChannelM3u8Params) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/iptv/channel.m3u8") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.IsHalfWidth != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, *params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetIptvEpgXmlRequest generates requests for GetIptvEpgXml +func NewGetIptvEpgXmlRequest(server string, params *GetIptvEpgXmlParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/iptv/epg.xml") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.IsHalfWidth != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, *params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Days != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "days", runtime.ParamLocationQuery, *params.Days); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetRecordedRequest generates requests for GetRecorded +func NewGetRecordedRequest(server string, params *GetRecordedParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recorded") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.IsReverse != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isReverse", runtime.ParamLocationQuery, *params.IsReverse); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.RuleId != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "ruleId", runtime.ParamLocationQuery, *params.RuleId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.ChannelId != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "channelId", runtime.ParamLocationQuery, *params.ChannelId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Genre != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "genre", runtime.ParamLocationQuery, *params.Genre); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Keyword != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "keyword", runtime.ParamLocationQuery, *params.Keyword); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.HasOriginalFile != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "hasOriginalFile", runtime.ParamLocationQuery, *params.HasOriginalFile); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostRecordedRequest calls the generic PostRecorded builder with application/json body +func NewPostRecordedRequest(server string, body PostRecordedJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPostRecordedRequestWithBody(server, "application/json", bodyReader) +} + +// NewPostRecordedRequestWithBody generates requests for PostRecorded with any type of body +func NewPostRecordedRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recorded") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewPostRecordedCleanupRequest generates requests for PostRecordedCleanup +func NewPostRecordedCleanupRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recorded/cleanup") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetRecordedOptionsRequest generates requests for GetRecordedOptions +func NewGetRecordedOptionsRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recorded/options") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewDeleteRecordedRecordedIdRequest generates requests for DeleteRecordedRecordedId +func NewDeleteRecordedRecordedIdRequest(server string, recordedId PathRecordedId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "recordedId", runtime.ParamLocationPath, recordedId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recorded/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetRecordedRecordedIdRequest generates requests for GetRecordedRecordedId +func NewGetRecordedRecordedIdRequest(server string, recordedId PathRecordedId, params *GetRecordedRecordedIdParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "recordedId", runtime.ParamLocationPath, recordedId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recorded/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewDeleteRecordedRecordedIdEncodeRequest generates requests for DeleteRecordedRecordedIdEncode +func NewDeleteRecordedRecordedIdEncodeRequest(server string, recordedId PathRecordedId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "recordedId", runtime.ParamLocationPath, recordedId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recorded/%s/encode", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPutRecordedRecordedIdProtectRequest generates requests for PutRecordedRecordedIdProtect +func NewPutRecordedRecordedIdProtectRequest(server string, recordedId PathRecordedId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "recordedId", runtime.ParamLocationPath, recordedId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recorded/%s/protect", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPutRecordedRecordedIdUnprotectRequest generates requests for PutRecordedRecordedIdUnprotect +func NewPutRecordedRecordedIdUnprotectRequest(server string, recordedId PathRecordedId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "recordedId", runtime.ParamLocationPath, recordedId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recorded/%s/unprotect", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetRecordingRequest generates requests for GetRecording +func NewGetRecordingRequest(server string, params *GetRecordingParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recording") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostRecordingResettimerRequest generates requests for PostRecordingResettimer +func NewPostRecordingResettimerRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/recording/resettimer") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetReservesRequest generates requests for GetReserves +func NewGetReservesRequest(server string, params *GetReservesParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/reserves") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Type != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "type", runtime.ParamLocationQuery, *params.Type); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if params.RuleId != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "ruleId", runtime.ParamLocationQuery, *params.RuleId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostReservesRequest calls the generic PostReserves builder with application/json body +func NewPostReservesRequest(server string, body PostReservesJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPostReservesRequestWithBody(server, "application/json", bodyReader) +} + +// NewPostReservesRequestWithBody generates requests for PostReserves with any type of body +func NewPostReservesRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/reserves") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewGetReservesCntsRequest generates requests for GetReservesCnts +func NewGetReservesCntsRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/reserves/cnts") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetReservesListsRequest generates requests for GetReservesLists +func NewGetReservesListsRequest(server string, params *GetReservesListsParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/reserves/lists") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startAt", runtime.ParamLocationQuery, params.StartAt); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endAt", runtime.ParamLocationQuery, params.EndAt); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostReservesUpdateRequest generates requests for PostReservesUpdate +func NewPostReservesUpdateRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/reserves/update") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewDeleteReservesReserveIdRequest generates requests for DeleteReservesReserveId +func NewDeleteReservesReserveIdRequest(server string, reserveId PathReserveId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "reserveId", runtime.ParamLocationPath, reserveId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/reserves/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetReservesReserveIdRequest generates requests for GetReservesReserveId +func NewGetReservesReserveIdRequest(server string, reserveId PathReserveId, params *GetReservesReserveIdParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "reserveId", runtime.ParamLocationPath, reserveId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/reserves/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPutReservesReserveIdRequest calls the generic PutReservesReserveId builder with application/json body +func NewPutReservesReserveIdRequest(server string, reserveId PathReserveId, body PutReservesReserveIdJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPutReservesReserveIdRequestWithBody(server, reserveId, "application/json", bodyReader) +} + +// NewPutReservesReserveIdRequestWithBody generates requests for PutReservesReserveId with any type of body +func NewPutReservesReserveIdRequestWithBody(server string, reserveId PathReserveId, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "reserveId", runtime.ParamLocationPath, reserveId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/reserves/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewDeleteReservesReserveIdOverlapRequest generates requests for DeleteReservesReserveIdOverlap +func NewDeleteReservesReserveIdOverlapRequest(server string, reserveId PathReserveId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "reserveId", runtime.ParamLocationPath, reserveId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/reserves/%s/overlap", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewDeleteReservesReserveIdSkipRequest generates requests for DeleteReservesReserveIdSkip +func NewDeleteReservesReserveIdSkipRequest(server string, reserveId PathReserveId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "reserveId", runtime.ParamLocationPath, reserveId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/reserves/%s/skip", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetRulesRequest generates requests for GetRules +func NewGetRulesRequest(server string, params *GetRulesParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/rules") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Type != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "type", runtime.ParamLocationQuery, *params.Type); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Keyword != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "keyword", runtime.ParamLocationQuery, *params.Keyword); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostRulesRequest calls the generic PostRules builder with application/json body +func NewPostRulesRequest(server string, body PostRulesJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPostRulesRequestWithBody(server, "application/json", bodyReader) +} + +// NewPostRulesRequestWithBody generates requests for PostRules with any type of body +func NewPostRulesRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/rules") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewGetRulesKeywordRequest generates requests for GetRulesKeyword +func NewGetRulesKeywordRequest(server string, params *GetRulesKeywordParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/rules/keyword") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Keyword != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "keyword", runtime.ParamLocationQuery, *params.Keyword); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostRulesKeywordRequest calls the generic PostRulesKeyword builder with application/json body +func NewPostRulesKeywordRequest(server string, body PostRulesKeywordJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPostRulesKeywordRequestWithBody(server, "application/json", bodyReader) +} + +// NewPostRulesKeywordRequestWithBody generates requests for PostRulesKeyword with any type of body +func NewPostRulesKeywordRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/rules/keyword") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewDeleteRulesRuleIdRequest generates requests for DeleteRulesRuleId +func NewDeleteRulesRuleIdRequest(server string, ruleId PathRuleId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "ruleId", runtime.ParamLocationPath, ruleId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/rules/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetRulesRuleIdRequest generates requests for GetRulesRuleId +func NewGetRulesRuleIdRequest(server string, ruleId PathRuleId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "ruleId", runtime.ParamLocationPath, ruleId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/rules/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPutRulesRuleIdRequest calls the generic PutRulesRuleId builder with application/json body +func NewPutRulesRuleIdRequest(server string, ruleId PathRuleId, body PutRulesRuleIdJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPutRulesRuleIdRequestWithBody(server, ruleId, "application/json", bodyReader) +} + +// NewPutRulesRuleIdRequestWithBody generates requests for PutRulesRuleId with any type of body +func NewPutRulesRuleIdRequestWithBody(server string, ruleId PathRuleId, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "ruleId", runtime.ParamLocationPath, ruleId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/rules/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewPutRulesRuleIdDisableRequest generates requests for PutRulesRuleIdDisable +func NewPutRulesRuleIdDisableRequest(server string, ruleId PathRuleId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "ruleId", runtime.ParamLocationPath, ruleId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/rules/%s/disable", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPutRulesRuleIdEnableRequest generates requests for PutRulesRuleIdEnable +func NewPutRulesRuleIdEnableRequest(server string, ruleId PathRuleId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "ruleId", runtime.ParamLocationPath, ruleId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/rules/%s/enable", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetSchedulesRequest generates requests for GetSchedules +func NewGetSchedulesRequest(server string, params *GetSchedulesParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/schedules") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startAt", runtime.ParamLocationQuery, params.StartAt); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "endAt", runtime.ParamLocationQuery, params.EndAt); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if params.NeedsRawExtended != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "needsRawExtended", runtime.ParamLocationQuery, *params.NeedsRawExtended); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.IsFree != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isFree", runtime.ParamLocationQuery, *params.IsFree); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "GR", runtime.ParamLocationQuery, params.GR); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "BS", runtime.ParamLocationQuery, params.BS); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "CS", runtime.ParamLocationQuery, params.CS); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "SKY", runtime.ParamLocationQuery, params.SKY); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetSchedulesBroadcastingRequest generates requests for GetSchedulesBroadcasting +func NewGetSchedulesBroadcastingRequest(server string, params *GetSchedulesBroadcastingParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/schedules/broadcasting") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.Time != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "time", runtime.ParamLocationQuery, *params.Time); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetSchedulesDetailProgramIdRequest generates requests for GetSchedulesDetailProgramId +func NewGetSchedulesDetailProgramIdRequest(server string, programId PathProgramId, params *GetSchedulesDetailProgramIdParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "programId", runtime.ParamLocationPath, programId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/schedules/detail/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostSchedulesSearchRequest calls the generic PostSchedulesSearch builder with application/json body +func NewPostSchedulesSearchRequest(server string, body PostSchedulesSearchJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPostSchedulesSearchRequestWithBody(server, "application/json", bodyReader) +} + +// NewPostSchedulesSearchRequestWithBody generates requests for PostSchedulesSearch with any type of body +func NewPostSchedulesSearchRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/schedules/search") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewGetSchedulesChannelIdRequest generates requests for GetSchedulesChannelId +func NewGetSchedulesChannelIdRequest(server string, channelId PathChannelId, params *GetSchedulesChannelIdParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "channelId", runtime.ParamLocationPath, channelId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/schedules/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "startAt", runtime.ParamLocationQuery, params.StartAt); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "days", runtime.ParamLocationQuery, params.Days); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if params.NeedsRawExtended != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "needsRawExtended", runtime.ParamLocationQuery, *params.NeedsRawExtended); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.IsFree != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isFree", runtime.ParamLocationQuery, *params.IsFree); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStoragesRequest generates requests for GetStorages +func NewGetStoragesRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/storages") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewDeleteStreamsRequest generates requests for DeleteStreams +func NewDeleteStreamsRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStreamsRequest generates requests for GetStreams +func NewGetStreamsRequest(server string, params *GetStreamsParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isHalfWidth", runtime.ParamLocationQuery, params.IsHalfWidth); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStreamsLiveChannelIdHlsRequest generates requests for GetStreamsLiveChannelIdHls +func NewGetStreamsLiveChannelIdHlsRequest(server string, channelId PathChannelId, params *GetStreamsLiveChannelIdHlsParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "channelId", runtime.ParamLocationPath, channelId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/live/%s/hls", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStreamsLiveChannelIdM2tsRequest generates requests for GetStreamsLiveChannelIdM2ts +func NewGetStreamsLiveChannelIdM2tsRequest(server string, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "channelId", runtime.ParamLocationPath, channelId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/live/%s/m2ts", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStreamsLiveChannelIdM2tsPlaylistRequest generates requests for GetStreamsLiveChannelIdM2tsPlaylist +func NewGetStreamsLiveChannelIdM2tsPlaylistRequest(server string, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsPlaylistParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "channelId", runtime.ParamLocationPath, channelId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/live/%s/m2ts/playlist", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStreamsLiveChannelIdM2tsllRequest generates requests for GetStreamsLiveChannelIdM2tsll +func NewGetStreamsLiveChannelIdM2tsllRequest(server string, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsllParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "channelId", runtime.ParamLocationPath, channelId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/live/%s/m2tsll", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStreamsLiveChannelIdMp4Request generates requests for GetStreamsLiveChannelIdMp4 +func NewGetStreamsLiveChannelIdMp4Request(server string, channelId PathChannelId, params *GetStreamsLiveChannelIdMp4Params) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "channelId", runtime.ParamLocationPath, channelId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/live/%s/mp4", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStreamsLiveChannelIdWebmRequest generates requests for GetStreamsLiveChannelIdWebm +func NewGetStreamsLiveChannelIdWebmRequest(server string, channelId PathChannelId, params *GetStreamsLiveChannelIdWebmParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "channelId", runtime.ParamLocationPath, channelId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/live/%s/webm", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStreamsRecordedVideoFileIdHlsRequest generates requests for GetStreamsRecordedVideoFileIdHls +func NewGetStreamsRecordedVideoFileIdHlsRequest(server string, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdHlsParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, videoFileId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/recorded/%s/hls", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "ss", runtime.ParamLocationQuery, params.Ss); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStreamsRecordedVideoFileIdMp4Request generates requests for GetStreamsRecordedVideoFileIdMp4 +func NewGetStreamsRecordedVideoFileIdMp4Request(server string, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdMp4Params) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, videoFileId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/recorded/%s/mp4", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "ss", runtime.ParamLocationQuery, params.Ss); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetStreamsRecordedVideoFileIdWebmRequest generates requests for GetStreamsRecordedVideoFileIdWebm +func NewGetStreamsRecordedVideoFileIdWebmRequest(server string, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdWebmParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, videoFileId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/recorded/%s/webm", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "ss", runtime.ParamLocationQuery, params.Ss); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "mode", runtime.ParamLocationQuery, params.Mode); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewDeleteStreamsStreamIdRequest generates requests for DeleteStreamsStreamId +func NewDeleteStreamsStreamIdRequest(server string, streamId PathStreamId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "streamId", runtime.ParamLocationPath, streamId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPutStreamsStreamIdKeepRequest generates requests for PutStreamsStreamIdKeep +func NewPutStreamsStreamIdKeepRequest(server string, streamId PathStreamId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "streamId", runtime.ParamLocationPath, streamId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/streams/%s/keep", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetTagsRequest generates requests for GetTags +func NewGetTagsRequest(server string, params *GetTagsParams) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/tags") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.Offset != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "offset", runtime.ParamLocationQuery, *params.Offset); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Limit != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "limit", runtime.ParamLocationQuery, *params.Limit); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.Name != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "name", runtime.ParamLocationQuery, *params.Name); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + if params.ExcludeTagId != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "excludeTagId", runtime.ParamLocationQuery, *params.ExcludeTagId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostTagsRequest calls the generic PostTags builder with application/json body +func NewPostTagsRequest(server string, body PostTagsJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPostTagsRequestWithBody(server, "application/json", bodyReader) +} + +// NewPostTagsRequestWithBody generates requests for PostTags with any type of body +func NewPostTagsRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/tags") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewDeleteTagsTagIdRequest generates requests for DeleteTagsTagId +func NewDeleteTagsTagIdRequest(server string, tagId PathRecordedTagId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tagId", runtime.ParamLocationPath, tagId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/tags/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPutTagsTagIdRequest calls the generic PutTagsTagId builder with application/json body +func NewPutTagsTagIdRequest(server string, tagId PathRecordedTagId, body PutTagsTagIdJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPutTagsTagIdRequestWithBody(server, tagId, "application/json", bodyReader) +} + +// NewPutTagsTagIdRequestWithBody generates requests for PutTagsTagId with any type of body +func NewPutTagsTagIdRequestWithBody(server string, tagId PathRecordedTagId, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tagId", runtime.ParamLocationPath, tagId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/tags/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewDeleteTagsTagIdRelateRequest generates requests for DeleteTagsTagIdRelate +func NewDeleteTagsTagIdRelateRequest(server string, tagId PathRecordedTagId, params *DeleteTagsTagIdRelateParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tagId", runtime.ParamLocationPath, tagId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/tags/%s/relate", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.RecordedId != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "recordedId", runtime.ParamLocationQuery, *params.RecordedId); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPutTagsTagIdRelateRequest calls the generic PutTagsTagIdRelate builder with application/json body +func NewPutTagsTagIdRelateRequest(server string, tagId PathRecordedTagId, body PutTagsTagIdRelateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPutTagsTagIdRelateRequestWithBody(server, tagId, "application/json", bodyReader) +} + +// NewPutTagsTagIdRelateRequestWithBody generates requests for PutTagsTagIdRelate with any type of body +func NewPutTagsTagIdRelateRequestWithBody(server string, tagId PathRecordedTagId, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "tagId", runtime.ParamLocationPath, tagId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/tags/%s/relate", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewPostThumbnailsRequest generates requests for PostThumbnails +func NewPostThumbnailsRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/thumbnails") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostThumbnailsCleanupRequest generates requests for PostThumbnailsCleanup +func NewPostThumbnailsCleanupRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/thumbnails/cleanup") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetThumbnailsThumbnailIdRequest generates requests for GetThumbnailsThumbnailId +func NewGetThumbnailsThumbnailIdRequest(server string, thumbnailId PathThumbnailId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "thumbnailId", runtime.ParamLocationPath, thumbnailId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/thumbnails/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetVersionRequest generates requests for GetVersion +func NewGetVersionRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/version") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostVideosUploadRequestWithBody generates requests for PostVideosUpload with any type of body +func NewPostVideosUploadRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/videos/upload") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewDeleteVideosVideoFileIdRequest generates requests for DeleteVideosVideoFileId +func NewDeleteVideosVideoFileIdRequest(server string, videoFileId PathVideoFileId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, videoFileId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/videos/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetVideosVideoFileIdRequest generates requests for GetVideosVideoFileId +func NewGetVideosVideoFileIdRequest(server string, videoFileId PathVideoFileId, params *GetVideosVideoFileIdParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, videoFileId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/videos/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + queryValues := queryURL.Query() + + if params.IsDownload != nil { + + if queryFrag, err := runtime.StyleParamWithLocation("form", true, "isDownload", runtime.ParamLocationQuery, *params.IsDownload); err != nil { + return nil, err + } else if parsed, err := url.ParseQuery(queryFrag); err != nil { + return nil, err + } else { + for k, v := range parsed { + for _, v2 := range v { + queryValues.Add(k, v2) + } + } + } + + } + + queryURL.RawQuery = queryValues.Encode() + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetVideosVideoFileIdDurationRequest generates requests for GetVideosVideoFileIdDuration +func NewGetVideosVideoFileIdDurationRequest(server string, videoFileId PathVideoFileId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, videoFileId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/videos/%s/duration", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewPostVideosVideoFileIdKodiRequest calls the generic PostVideosVideoFileIdKodi builder with application/json body +func NewPostVideosVideoFileIdKodiRequest(server string, videoFileId PathVideoFileId, body PostVideosVideoFileIdKodiJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewPostVideosVideoFileIdKodiRequestWithBody(server, videoFileId, "application/json", bodyReader) +} + +// NewPostVideosVideoFileIdKodiRequestWithBody generates requests for PostVideosVideoFileIdKodi with any type of body +func NewPostVideosVideoFileIdKodiRequestWithBody(server string, videoFileId PathVideoFileId, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, videoFileId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/videos/%s/kodi", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewGetVideosVideoFileIdPlaylistRequest generates requests for GetVideosVideoFileIdPlaylist +func NewGetVideosVideoFileIdPlaylistRequest(server string, videoFileId PathVideoFileId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, videoFileId) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/videos/%s/playlist", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error { + for _, r := range c.RequestEditors { + if err := r(ctx, req); err != nil { + return err + } + } + for _, r := range additionalEditors { + if err := r(ctx, req); err != nil { + return err + } + } + return nil +} + +// ClientWithResponses builds on ClientInterface to offer response payloads +type ClientWithResponses struct { + ClientInterface +} + +// NewClientWithResponses creates a new ClientWithResponses, which wraps +// Client with return type handling +func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) { + client, err := NewClient(server, opts...) + if err != nil { + return nil, err + } + return &ClientWithResponses{client}, nil +} + +// WithBaseURL overrides the baseURL. +func WithBaseURL(baseURL string) ClientOption { + return func(c *Client) error { + newBaseURL, err := url.Parse(baseURL) + if err != nil { + return err + } + c.Server = newBaseURL.String() + return nil + } +} + +// ClientWithResponsesInterface is the interface specification for the client with responses above. +type ClientWithResponsesInterface interface { + // GetChannels request + GetChannelsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetChannelsResponse, error) + + // GetChannelsChannelIdLogo request + GetChannelsChannelIdLogoWithResponse(ctx context.Context, channelId PathChannelId, reqEditors ...RequestEditorFn) (*GetChannelsChannelIdLogoResponse, error) + + // GetConfig request + GetConfigWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetConfigResponse, error) + + // GetDropLogsDropLogFileId request + GetDropLogsDropLogFileIdWithResponse(ctx context.Context, dropLogFileId PathDropLogFileId, params *GetDropLogsDropLogFileIdParams, reqEditors ...RequestEditorFn) (*GetDropLogsDropLogFileIdResponse, error) + + // GetEncode request + GetEncodeWithResponse(ctx context.Context, params *GetEncodeParams, reqEditors ...RequestEditorFn) (*GetEncodeResponse, error) + + // PostEncode request with any body + PostEncodeWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostEncodeResponse, error) + + PostEncodeWithResponse(ctx context.Context, body PostEncodeJSONRequestBody, reqEditors ...RequestEditorFn) (*PostEncodeResponse, error) + + // DeleteEncodeEncodeId request + DeleteEncodeEncodeIdWithResponse(ctx context.Context, encodeId PathEncodeId, reqEditors ...RequestEditorFn) (*DeleteEncodeEncodeIdResponse, error) + + // GetIptvChannelM3u8 request + GetIptvChannelM3u8WithResponse(ctx context.Context, params *GetIptvChannelM3u8Params, reqEditors ...RequestEditorFn) (*GetIptvChannelM3u8Response, error) + + // GetIptvEpgXml request + GetIptvEpgXmlWithResponse(ctx context.Context, params *GetIptvEpgXmlParams, reqEditors ...RequestEditorFn) (*GetIptvEpgXmlResponse, error) + + // GetRecorded request + GetRecordedWithResponse(ctx context.Context, params *GetRecordedParams, reqEditors ...RequestEditorFn) (*GetRecordedResponse, error) + + // PostRecorded request with any body + PostRecordedWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostRecordedResponse, error) + + PostRecordedWithResponse(ctx context.Context, body PostRecordedJSONRequestBody, reqEditors ...RequestEditorFn) (*PostRecordedResponse, error) + + // PostRecordedCleanup request + PostRecordedCleanupWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostRecordedCleanupResponse, error) + + // GetRecordedOptions request + GetRecordedOptionsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetRecordedOptionsResponse, error) + + // DeleteRecordedRecordedId request + DeleteRecordedRecordedIdWithResponse(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*DeleteRecordedRecordedIdResponse, error) + + // GetRecordedRecordedId request + GetRecordedRecordedIdWithResponse(ctx context.Context, recordedId PathRecordedId, params *GetRecordedRecordedIdParams, reqEditors ...RequestEditorFn) (*GetRecordedRecordedIdResponse, error) + + // DeleteRecordedRecordedIdEncode request + DeleteRecordedRecordedIdEncodeWithResponse(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*DeleteRecordedRecordedIdEncodeResponse, error) + + // PutRecordedRecordedIdProtect request + PutRecordedRecordedIdProtectWithResponse(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*PutRecordedRecordedIdProtectResponse, error) + + // PutRecordedRecordedIdUnprotect request + PutRecordedRecordedIdUnprotectWithResponse(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*PutRecordedRecordedIdUnprotectResponse, error) + + // GetRecording request + GetRecordingWithResponse(ctx context.Context, params *GetRecordingParams, reqEditors ...RequestEditorFn) (*GetRecordingResponse, error) + + // PostRecordingResettimer request + PostRecordingResettimerWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostRecordingResettimerResponse, error) + + // GetReserves request + GetReservesWithResponse(ctx context.Context, params *GetReservesParams, reqEditors ...RequestEditorFn) (*GetReservesResponse, error) + + // PostReserves request with any body + PostReservesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostReservesResponse, error) + + PostReservesWithResponse(ctx context.Context, body PostReservesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostReservesResponse, error) + + // GetReservesCnts request + GetReservesCntsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetReservesCntsResponse, error) + + // GetReservesLists request + GetReservesListsWithResponse(ctx context.Context, params *GetReservesListsParams, reqEditors ...RequestEditorFn) (*GetReservesListsResponse, error) + + // PostReservesUpdate request + PostReservesUpdateWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostReservesUpdateResponse, error) + + // DeleteReservesReserveId request + DeleteReservesReserveIdWithResponse(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*DeleteReservesReserveIdResponse, error) + + // GetReservesReserveId request + GetReservesReserveIdWithResponse(ctx context.Context, reserveId PathReserveId, params *GetReservesReserveIdParams, reqEditors ...RequestEditorFn) (*GetReservesReserveIdResponse, error) + + // PutReservesReserveId request with any body + PutReservesReserveIdWithBodyWithResponse(ctx context.Context, reserveId PathReserveId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PutReservesReserveIdResponse, error) + + PutReservesReserveIdWithResponse(ctx context.Context, reserveId PathReserveId, body PutReservesReserveIdJSONRequestBody, reqEditors ...RequestEditorFn) (*PutReservesReserveIdResponse, error) + + // DeleteReservesReserveIdOverlap request + DeleteReservesReserveIdOverlapWithResponse(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*DeleteReservesReserveIdOverlapResponse, error) + + // DeleteReservesReserveIdSkip request + DeleteReservesReserveIdSkipWithResponse(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*DeleteReservesReserveIdSkipResponse, error) + + // GetRules request + GetRulesWithResponse(ctx context.Context, params *GetRulesParams, reqEditors ...RequestEditorFn) (*GetRulesResponse, error) + + // PostRules request with any body + PostRulesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostRulesResponse, error) + + PostRulesWithResponse(ctx context.Context, body PostRulesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostRulesResponse, error) + + // GetRulesKeyword request + GetRulesKeywordWithResponse(ctx context.Context, params *GetRulesKeywordParams, reqEditors ...RequestEditorFn) (*GetRulesKeywordResponse, error) + + // PostRulesKeyword request with any body + PostRulesKeywordWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostRulesKeywordResponse, error) + + PostRulesKeywordWithResponse(ctx context.Context, body PostRulesKeywordJSONRequestBody, reqEditors ...RequestEditorFn) (*PostRulesKeywordResponse, error) + + // DeleteRulesRuleId request + DeleteRulesRuleIdWithResponse(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*DeleteRulesRuleIdResponse, error) + + // GetRulesRuleId request + GetRulesRuleIdWithResponse(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*GetRulesRuleIdResponse, error) + + // PutRulesRuleId request with any body + PutRulesRuleIdWithBodyWithResponse(ctx context.Context, ruleId PathRuleId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PutRulesRuleIdResponse, error) + + PutRulesRuleIdWithResponse(ctx context.Context, ruleId PathRuleId, body PutRulesRuleIdJSONRequestBody, reqEditors ...RequestEditorFn) (*PutRulesRuleIdResponse, error) + + // PutRulesRuleIdDisable request + PutRulesRuleIdDisableWithResponse(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*PutRulesRuleIdDisableResponse, error) + + // PutRulesRuleIdEnable request + PutRulesRuleIdEnableWithResponse(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*PutRulesRuleIdEnableResponse, error) + + // GetSchedules request + GetSchedulesWithResponse(ctx context.Context, params *GetSchedulesParams, reqEditors ...RequestEditorFn) (*GetSchedulesResponse, error) + + // GetSchedulesBroadcasting request + GetSchedulesBroadcastingWithResponse(ctx context.Context, params *GetSchedulesBroadcastingParams, reqEditors ...RequestEditorFn) (*GetSchedulesBroadcastingResponse, error) + + // GetSchedulesDetailProgramId request + GetSchedulesDetailProgramIdWithResponse(ctx context.Context, programId PathProgramId, params *GetSchedulesDetailProgramIdParams, reqEditors ...RequestEditorFn) (*GetSchedulesDetailProgramIdResponse, error) + + // PostSchedulesSearch request with any body + PostSchedulesSearchWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSchedulesSearchResponse, error) + + PostSchedulesSearchWithResponse(ctx context.Context, body PostSchedulesSearchJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSchedulesSearchResponse, error) + + // GetSchedulesChannelId request + GetSchedulesChannelIdWithResponse(ctx context.Context, channelId PathChannelId, params *GetSchedulesChannelIdParams, reqEditors ...RequestEditorFn) (*GetSchedulesChannelIdResponse, error) + + // GetStorages request + GetStoragesWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetStoragesResponse, error) + + // DeleteStreams request + DeleteStreamsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*DeleteStreamsResponse, error) + + // GetStreams request + GetStreamsWithResponse(ctx context.Context, params *GetStreamsParams, reqEditors ...RequestEditorFn) (*GetStreamsResponse, error) + + // GetStreamsLiveChannelIdHls request + GetStreamsLiveChannelIdHlsWithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdHlsParams, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdHlsResponse, error) + + // GetStreamsLiveChannelIdM2ts request + GetStreamsLiveChannelIdM2tsWithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsParams, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdM2tsResponse, error) + + // GetStreamsLiveChannelIdM2tsPlaylist request + GetStreamsLiveChannelIdM2tsPlaylistWithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsPlaylistParams, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdM2tsPlaylistResponse, error) + + // GetStreamsLiveChannelIdM2tsll request + GetStreamsLiveChannelIdM2tsllWithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsllParams, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdM2tsllResponse, error) + + // GetStreamsLiveChannelIdMp4 request + GetStreamsLiveChannelIdMp4WithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdMp4Params, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdMp4Response, error) + + // GetStreamsLiveChannelIdWebm request + GetStreamsLiveChannelIdWebmWithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdWebmParams, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdWebmResponse, error) + + // GetStreamsRecordedVideoFileIdHls request + GetStreamsRecordedVideoFileIdHlsWithResponse(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdHlsParams, reqEditors ...RequestEditorFn) (*GetStreamsRecordedVideoFileIdHlsResponse, error) + + // GetStreamsRecordedVideoFileIdMp4 request + GetStreamsRecordedVideoFileIdMp4WithResponse(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdMp4Params, reqEditors ...RequestEditorFn) (*GetStreamsRecordedVideoFileIdMp4Response, error) + + // GetStreamsRecordedVideoFileIdWebm request + GetStreamsRecordedVideoFileIdWebmWithResponse(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdWebmParams, reqEditors ...RequestEditorFn) (*GetStreamsRecordedVideoFileIdWebmResponse, error) + + // DeleteStreamsStreamId request + DeleteStreamsStreamIdWithResponse(ctx context.Context, streamId PathStreamId, reqEditors ...RequestEditorFn) (*DeleteStreamsStreamIdResponse, error) + + // PutStreamsStreamIdKeep request + PutStreamsStreamIdKeepWithResponse(ctx context.Context, streamId PathStreamId, reqEditors ...RequestEditorFn) (*PutStreamsStreamIdKeepResponse, error) + + // GetTags request + GetTagsWithResponse(ctx context.Context, params *GetTagsParams, reqEditors ...RequestEditorFn) (*GetTagsResponse, error) + + // PostTags request with any body + PostTagsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostTagsResponse, error) + + PostTagsWithResponse(ctx context.Context, body PostTagsJSONRequestBody, reqEditors ...RequestEditorFn) (*PostTagsResponse, error) + + // DeleteTagsTagId request + DeleteTagsTagIdWithResponse(ctx context.Context, tagId PathRecordedTagId, reqEditors ...RequestEditorFn) (*DeleteTagsTagIdResponse, error) + + // PutTagsTagId request with any body + PutTagsTagIdWithBodyWithResponse(ctx context.Context, tagId PathRecordedTagId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PutTagsTagIdResponse, error) + + PutTagsTagIdWithResponse(ctx context.Context, tagId PathRecordedTagId, body PutTagsTagIdJSONRequestBody, reqEditors ...RequestEditorFn) (*PutTagsTagIdResponse, error) + + // DeleteTagsTagIdRelate request + DeleteTagsTagIdRelateWithResponse(ctx context.Context, tagId PathRecordedTagId, params *DeleteTagsTagIdRelateParams, reqEditors ...RequestEditorFn) (*DeleteTagsTagIdRelateResponse, error) + + // PutTagsTagIdRelate request with any body + PutTagsTagIdRelateWithBodyWithResponse(ctx context.Context, tagId PathRecordedTagId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PutTagsTagIdRelateResponse, error) + + PutTagsTagIdRelateWithResponse(ctx context.Context, tagId PathRecordedTagId, body PutTagsTagIdRelateJSONRequestBody, reqEditors ...RequestEditorFn) (*PutTagsTagIdRelateResponse, error) + + // PostThumbnails request + PostThumbnailsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostThumbnailsResponse, error) + + // PostThumbnailsCleanup request + PostThumbnailsCleanupWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostThumbnailsCleanupResponse, error) + + // GetThumbnailsThumbnailId request + GetThumbnailsThumbnailIdWithResponse(ctx context.Context, thumbnailId PathThumbnailId, reqEditors ...RequestEditorFn) (*GetThumbnailsThumbnailIdResponse, error) + + // GetVersion request + GetVersionWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetVersionResponse, error) + + // PostVideosUpload request with any body + PostVideosUploadWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostVideosUploadResponse, error) + + // DeleteVideosVideoFileId request + DeleteVideosVideoFileIdWithResponse(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*DeleteVideosVideoFileIdResponse, error) + + // GetVideosVideoFileId request + GetVideosVideoFileIdWithResponse(ctx context.Context, videoFileId PathVideoFileId, params *GetVideosVideoFileIdParams, reqEditors ...RequestEditorFn) (*GetVideosVideoFileIdResponse, error) + + // GetVideosVideoFileIdDuration request + GetVideosVideoFileIdDurationWithResponse(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*GetVideosVideoFileIdDurationResponse, error) + + // PostVideosVideoFileIdKodi request with any body + PostVideosVideoFileIdKodiWithBodyWithResponse(ctx context.Context, videoFileId PathVideoFileId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostVideosVideoFileIdKodiResponse, error) + + PostVideosVideoFileIdKodiWithResponse(ctx context.Context, videoFileId PathVideoFileId, body PostVideosVideoFileIdKodiJSONRequestBody, reqEditors ...RequestEditorFn) (*PostVideosVideoFileIdKodiResponse, error) + + // GetVideosVideoFileIdPlaylist request + GetVideosVideoFileIdPlaylistWithResponse(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*GetVideosVideoFileIdPlaylistResponse, error) +} + +type GetChannelsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ChannelItems + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetChannelsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetChannelsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetChannelsChannelIdLogoResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetChannelsChannelIdLogoResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetChannelsChannelIdLogoResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetConfigResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *Config + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetConfigResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetConfigResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetDropLogsDropLogFileIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetDropLogsDropLogFileIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetDropLogsDropLogFileIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetEncodeResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *EncodeInfo + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetEncodeResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetEncodeResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostEncodeResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *AddedEncode + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostEncodeResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostEncodeResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteEncodeEncodeIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteEncodeEncodeIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteEncodeEncodeIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetIptvChannelM3u8Response struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetIptvChannelM3u8Response) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetIptvChannelM3u8Response) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetIptvEpgXmlResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetIptvEpgXmlResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetIptvEpgXmlResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetRecordedResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *Records + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetRecordedResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetRecordedResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostRecordedResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *CreatedNewRecorded + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostRecordedResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostRecordedResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostRecordedCleanupResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostRecordedCleanupResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostRecordedCleanupResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetRecordedOptionsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *RecordedSearchOptions + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetRecordedOptionsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetRecordedOptionsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteRecordedRecordedIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteRecordedRecordedIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteRecordedRecordedIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetRecordedRecordedIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *RecordedItem + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetRecordedRecordedIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetRecordedRecordedIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteRecordedRecordedIdEncodeResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteRecordedRecordedIdEncodeResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteRecordedRecordedIdEncodeResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PutRecordedRecordedIdProtectResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PutRecordedRecordedIdProtectResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PutRecordedRecordedIdProtectResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PutRecordedRecordedIdUnprotectResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PutRecordedRecordedIdUnprotectResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PutRecordedRecordedIdUnprotectResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetRecordingResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *Records + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetRecordingResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetRecordingResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostRecordingResettimerResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostRecordingResettimerResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostRecordingResettimerResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetReservesResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *Reserves + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetReservesResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetReservesResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostReservesResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *AddedReserve + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostReservesResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostReservesResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetReservesCntsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ReserveCnts + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetReservesCntsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetReservesCntsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetReservesListsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ReserveLists + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetReservesListsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetReservesListsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostReservesUpdateResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostReservesUpdateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostReservesUpdateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteReservesReserveIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteReservesReserveIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteReservesReserveIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetReservesReserveIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ReserveItem + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetReservesReserveIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetReservesReserveIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PutReservesReserveIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PutReservesReserveIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PutReservesReserveIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteReservesReserveIdOverlapResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteReservesReserveIdOverlapResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteReservesReserveIdOverlapResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteReservesReserveIdSkipResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteReservesReserveIdSkipResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteReservesReserveIdSkipResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetRulesResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *Rules + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetRulesResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetRulesResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostRulesResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *AddedRule + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostRulesResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostRulesResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetRulesKeywordResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *RuleKeywordInfo + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetRulesKeywordResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetRulesKeywordResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostRulesKeywordResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *AddedRule + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostRulesKeywordResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostRulesKeywordResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteRulesRuleIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteRulesRuleIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteRulesRuleIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetRulesRuleIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *Rule + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetRulesRuleIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetRulesRuleIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PutRulesRuleIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PutRulesRuleIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PutRulesRuleIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PutRulesRuleIdDisableResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PutRulesRuleIdDisableResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PutRulesRuleIdDisableResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PutRulesRuleIdEnableResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PutRulesRuleIdEnableResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PutRulesRuleIdEnableResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetSchedulesResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *Schedules + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetSchedulesResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetSchedulesResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetSchedulesBroadcastingResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *Schedules + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetSchedulesBroadcastingResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetSchedulesBroadcastingResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetSchedulesDetailProgramIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ScheduleProgramItem + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetSchedulesDetailProgramIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetSchedulesDetailProgramIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostSchedulesSearchResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *[]ScheduleProgramItem + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostSchedulesSearchResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostSchedulesSearchResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetSchedulesChannelIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *Schedules + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetSchedulesChannelIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetSchedulesChannelIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStoragesResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *StorageInfo + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStoragesResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStoragesResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteStreamsResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteStreamsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteStreamsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStreamsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *StreamInfo + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStreamsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStreamsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStreamsLiveChannelIdHlsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *StartStreamInfo + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStreamsLiveChannelIdHlsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStreamsLiveChannelIdHlsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStreamsLiveChannelIdM2tsResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStreamsLiveChannelIdM2tsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStreamsLiveChannelIdM2tsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStreamsLiveChannelIdM2tsPlaylistResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStreamsLiveChannelIdM2tsPlaylistResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStreamsLiveChannelIdM2tsPlaylistResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStreamsLiveChannelIdM2tsllResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStreamsLiveChannelIdM2tsllResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStreamsLiveChannelIdM2tsllResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStreamsLiveChannelIdMp4Response struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStreamsLiveChannelIdMp4Response) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStreamsLiveChannelIdMp4Response) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStreamsLiveChannelIdWebmResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStreamsLiveChannelIdWebmResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStreamsLiveChannelIdWebmResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStreamsRecordedVideoFileIdHlsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *StartStreamInfo + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStreamsRecordedVideoFileIdHlsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStreamsRecordedVideoFileIdHlsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStreamsRecordedVideoFileIdMp4Response struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStreamsRecordedVideoFileIdMp4Response) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStreamsRecordedVideoFileIdMp4Response) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetStreamsRecordedVideoFileIdWebmResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetStreamsRecordedVideoFileIdWebmResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetStreamsRecordedVideoFileIdWebmResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteStreamsStreamIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteStreamsStreamIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteStreamsStreamIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PutStreamsStreamIdKeepResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PutStreamsStreamIdKeepResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PutStreamsStreamIdKeepResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetTagsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *RecordedTags + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetTagsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetTagsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostTagsResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *AddedRecordedTag + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostTagsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostTagsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteTagsTagIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteTagsTagIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteTagsTagIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PutTagsTagIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PutTagsTagIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PutTagsTagIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteTagsTagIdRelateResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteTagsTagIdRelateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteTagsTagIdRelateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PutTagsTagIdRelateResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PutTagsTagIdRelateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PutTagsTagIdRelateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostThumbnailsResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostThumbnailsResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostThumbnailsResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostThumbnailsCleanupResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostThumbnailsCleanupResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostThumbnailsCleanupResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetThumbnailsThumbnailIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetThumbnailsThumbnailIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetThumbnailsThumbnailIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetVersionResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *Version + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetVersionResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetVersionResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostVideosUploadResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostVideosUploadResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostVideosUploadResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DeleteVideosVideoFileIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteVideosVideoFileIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteVideosVideoFileIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetVideosVideoFileIdResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetVideosVideoFileIdResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetVideosVideoFileIdResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetVideosVideoFileIdDurationResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *VideoFileDuration + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetVideosVideoFileIdDurationResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetVideosVideoFileIdDurationResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type PostVideosVideoFileIdKodiResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r PostVideosVideoFileIdKodiResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PostVideosVideoFileIdKodiResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type GetVideosVideoFileIdPlaylistResponse struct { + Body []byte + HTTPResponse *http.Response + JSONDefault *Error +} + +// Status returns HTTPResponse.Status +func (r GetVideosVideoFileIdPlaylistResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetVideosVideoFileIdPlaylistResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// GetChannelsWithResponse request returning *GetChannelsResponse +func (c *ClientWithResponses) GetChannelsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetChannelsResponse, error) { + rsp, err := c.GetChannels(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetChannelsResponse(rsp) +} + +// GetChannelsChannelIdLogoWithResponse request returning *GetChannelsChannelIdLogoResponse +func (c *ClientWithResponses) GetChannelsChannelIdLogoWithResponse(ctx context.Context, channelId PathChannelId, reqEditors ...RequestEditorFn) (*GetChannelsChannelIdLogoResponse, error) { + rsp, err := c.GetChannelsChannelIdLogo(ctx, channelId, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetChannelsChannelIdLogoResponse(rsp) +} + +// GetConfigWithResponse request returning *GetConfigResponse +func (c *ClientWithResponses) GetConfigWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetConfigResponse, error) { + rsp, err := c.GetConfig(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetConfigResponse(rsp) +} + +// GetDropLogsDropLogFileIdWithResponse request returning *GetDropLogsDropLogFileIdResponse +func (c *ClientWithResponses) GetDropLogsDropLogFileIdWithResponse(ctx context.Context, dropLogFileId PathDropLogFileId, params *GetDropLogsDropLogFileIdParams, reqEditors ...RequestEditorFn) (*GetDropLogsDropLogFileIdResponse, error) { + rsp, err := c.GetDropLogsDropLogFileId(ctx, dropLogFileId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetDropLogsDropLogFileIdResponse(rsp) +} + +// GetEncodeWithResponse request returning *GetEncodeResponse +func (c *ClientWithResponses) GetEncodeWithResponse(ctx context.Context, params *GetEncodeParams, reqEditors ...RequestEditorFn) (*GetEncodeResponse, error) { + rsp, err := c.GetEncode(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetEncodeResponse(rsp) +} + +// PostEncodeWithBodyWithResponse request with arbitrary body returning *PostEncodeResponse +func (c *ClientWithResponses) PostEncodeWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostEncodeResponse, error) { + rsp, err := c.PostEncodeWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostEncodeResponse(rsp) +} + +func (c *ClientWithResponses) PostEncodeWithResponse(ctx context.Context, body PostEncodeJSONRequestBody, reqEditors ...RequestEditorFn) (*PostEncodeResponse, error) { + rsp, err := c.PostEncode(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostEncodeResponse(rsp) +} + +// DeleteEncodeEncodeIdWithResponse request returning *DeleteEncodeEncodeIdResponse +func (c *ClientWithResponses) DeleteEncodeEncodeIdWithResponse(ctx context.Context, encodeId PathEncodeId, reqEditors ...RequestEditorFn) (*DeleteEncodeEncodeIdResponse, error) { + rsp, err := c.DeleteEncodeEncodeId(ctx, encodeId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteEncodeEncodeIdResponse(rsp) +} + +// GetIptvChannelM3u8WithResponse request returning *GetIptvChannelM3u8Response +func (c *ClientWithResponses) GetIptvChannelM3u8WithResponse(ctx context.Context, params *GetIptvChannelM3u8Params, reqEditors ...RequestEditorFn) (*GetIptvChannelM3u8Response, error) { + rsp, err := c.GetIptvChannelM3u8(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetIptvChannelM3u8Response(rsp) +} + +// GetIptvEpgXmlWithResponse request returning *GetIptvEpgXmlResponse +func (c *ClientWithResponses) GetIptvEpgXmlWithResponse(ctx context.Context, params *GetIptvEpgXmlParams, reqEditors ...RequestEditorFn) (*GetIptvEpgXmlResponse, error) { + rsp, err := c.GetIptvEpgXml(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetIptvEpgXmlResponse(rsp) +} + +// GetRecordedWithResponse request returning *GetRecordedResponse +func (c *ClientWithResponses) GetRecordedWithResponse(ctx context.Context, params *GetRecordedParams, reqEditors ...RequestEditorFn) (*GetRecordedResponse, error) { + rsp, err := c.GetRecorded(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetRecordedResponse(rsp) +} + +// PostRecordedWithBodyWithResponse request with arbitrary body returning *PostRecordedResponse +func (c *ClientWithResponses) PostRecordedWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostRecordedResponse, error) { + rsp, err := c.PostRecordedWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostRecordedResponse(rsp) +} + +func (c *ClientWithResponses) PostRecordedWithResponse(ctx context.Context, body PostRecordedJSONRequestBody, reqEditors ...RequestEditorFn) (*PostRecordedResponse, error) { + rsp, err := c.PostRecorded(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostRecordedResponse(rsp) +} + +// PostRecordedCleanupWithResponse request returning *PostRecordedCleanupResponse +func (c *ClientWithResponses) PostRecordedCleanupWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostRecordedCleanupResponse, error) { + rsp, err := c.PostRecordedCleanup(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostRecordedCleanupResponse(rsp) +} + +// GetRecordedOptionsWithResponse request returning *GetRecordedOptionsResponse +func (c *ClientWithResponses) GetRecordedOptionsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetRecordedOptionsResponse, error) { + rsp, err := c.GetRecordedOptions(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetRecordedOptionsResponse(rsp) +} + +// DeleteRecordedRecordedIdWithResponse request returning *DeleteRecordedRecordedIdResponse +func (c *ClientWithResponses) DeleteRecordedRecordedIdWithResponse(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*DeleteRecordedRecordedIdResponse, error) { + rsp, err := c.DeleteRecordedRecordedId(ctx, recordedId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteRecordedRecordedIdResponse(rsp) +} + +// GetRecordedRecordedIdWithResponse request returning *GetRecordedRecordedIdResponse +func (c *ClientWithResponses) GetRecordedRecordedIdWithResponse(ctx context.Context, recordedId PathRecordedId, params *GetRecordedRecordedIdParams, reqEditors ...RequestEditorFn) (*GetRecordedRecordedIdResponse, error) { + rsp, err := c.GetRecordedRecordedId(ctx, recordedId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetRecordedRecordedIdResponse(rsp) +} + +// DeleteRecordedRecordedIdEncodeWithResponse request returning *DeleteRecordedRecordedIdEncodeResponse +func (c *ClientWithResponses) DeleteRecordedRecordedIdEncodeWithResponse(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*DeleteRecordedRecordedIdEncodeResponse, error) { + rsp, err := c.DeleteRecordedRecordedIdEncode(ctx, recordedId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteRecordedRecordedIdEncodeResponse(rsp) +} + +// PutRecordedRecordedIdProtectWithResponse request returning *PutRecordedRecordedIdProtectResponse +func (c *ClientWithResponses) PutRecordedRecordedIdProtectWithResponse(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*PutRecordedRecordedIdProtectResponse, error) { + rsp, err := c.PutRecordedRecordedIdProtect(ctx, recordedId, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutRecordedRecordedIdProtectResponse(rsp) +} + +// PutRecordedRecordedIdUnprotectWithResponse request returning *PutRecordedRecordedIdUnprotectResponse +func (c *ClientWithResponses) PutRecordedRecordedIdUnprotectWithResponse(ctx context.Context, recordedId PathRecordedId, reqEditors ...RequestEditorFn) (*PutRecordedRecordedIdUnprotectResponse, error) { + rsp, err := c.PutRecordedRecordedIdUnprotect(ctx, recordedId, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutRecordedRecordedIdUnprotectResponse(rsp) +} + +// GetRecordingWithResponse request returning *GetRecordingResponse +func (c *ClientWithResponses) GetRecordingWithResponse(ctx context.Context, params *GetRecordingParams, reqEditors ...RequestEditorFn) (*GetRecordingResponse, error) { + rsp, err := c.GetRecording(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetRecordingResponse(rsp) +} + +// PostRecordingResettimerWithResponse request returning *PostRecordingResettimerResponse +func (c *ClientWithResponses) PostRecordingResettimerWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostRecordingResettimerResponse, error) { + rsp, err := c.PostRecordingResettimer(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostRecordingResettimerResponse(rsp) +} + +// GetReservesWithResponse request returning *GetReservesResponse +func (c *ClientWithResponses) GetReservesWithResponse(ctx context.Context, params *GetReservesParams, reqEditors ...RequestEditorFn) (*GetReservesResponse, error) { + rsp, err := c.GetReserves(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetReservesResponse(rsp) +} + +// PostReservesWithBodyWithResponse request with arbitrary body returning *PostReservesResponse +func (c *ClientWithResponses) PostReservesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostReservesResponse, error) { + rsp, err := c.PostReservesWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostReservesResponse(rsp) +} + +func (c *ClientWithResponses) PostReservesWithResponse(ctx context.Context, body PostReservesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostReservesResponse, error) { + rsp, err := c.PostReserves(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostReservesResponse(rsp) +} + +// GetReservesCntsWithResponse request returning *GetReservesCntsResponse +func (c *ClientWithResponses) GetReservesCntsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetReservesCntsResponse, error) { + rsp, err := c.GetReservesCnts(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetReservesCntsResponse(rsp) +} + +// GetReservesListsWithResponse request returning *GetReservesListsResponse +func (c *ClientWithResponses) GetReservesListsWithResponse(ctx context.Context, params *GetReservesListsParams, reqEditors ...RequestEditorFn) (*GetReservesListsResponse, error) { + rsp, err := c.GetReservesLists(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetReservesListsResponse(rsp) +} + +// PostReservesUpdateWithResponse request returning *PostReservesUpdateResponse +func (c *ClientWithResponses) PostReservesUpdateWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostReservesUpdateResponse, error) { + rsp, err := c.PostReservesUpdate(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostReservesUpdateResponse(rsp) +} + +// DeleteReservesReserveIdWithResponse request returning *DeleteReservesReserveIdResponse +func (c *ClientWithResponses) DeleteReservesReserveIdWithResponse(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*DeleteReservesReserveIdResponse, error) { + rsp, err := c.DeleteReservesReserveId(ctx, reserveId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteReservesReserveIdResponse(rsp) +} + +// GetReservesReserveIdWithResponse request returning *GetReservesReserveIdResponse +func (c *ClientWithResponses) GetReservesReserveIdWithResponse(ctx context.Context, reserveId PathReserveId, params *GetReservesReserveIdParams, reqEditors ...RequestEditorFn) (*GetReservesReserveIdResponse, error) { + rsp, err := c.GetReservesReserveId(ctx, reserveId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetReservesReserveIdResponse(rsp) +} + +// PutReservesReserveIdWithBodyWithResponse request with arbitrary body returning *PutReservesReserveIdResponse +func (c *ClientWithResponses) PutReservesReserveIdWithBodyWithResponse(ctx context.Context, reserveId PathReserveId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PutReservesReserveIdResponse, error) { + rsp, err := c.PutReservesReserveIdWithBody(ctx, reserveId, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutReservesReserveIdResponse(rsp) +} + +func (c *ClientWithResponses) PutReservesReserveIdWithResponse(ctx context.Context, reserveId PathReserveId, body PutReservesReserveIdJSONRequestBody, reqEditors ...RequestEditorFn) (*PutReservesReserveIdResponse, error) { + rsp, err := c.PutReservesReserveId(ctx, reserveId, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutReservesReserveIdResponse(rsp) +} + +// DeleteReservesReserveIdOverlapWithResponse request returning *DeleteReservesReserveIdOverlapResponse +func (c *ClientWithResponses) DeleteReservesReserveIdOverlapWithResponse(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*DeleteReservesReserveIdOverlapResponse, error) { + rsp, err := c.DeleteReservesReserveIdOverlap(ctx, reserveId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteReservesReserveIdOverlapResponse(rsp) +} + +// DeleteReservesReserveIdSkipWithResponse request returning *DeleteReservesReserveIdSkipResponse +func (c *ClientWithResponses) DeleteReservesReserveIdSkipWithResponse(ctx context.Context, reserveId PathReserveId, reqEditors ...RequestEditorFn) (*DeleteReservesReserveIdSkipResponse, error) { + rsp, err := c.DeleteReservesReserveIdSkip(ctx, reserveId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteReservesReserveIdSkipResponse(rsp) +} + +// GetRulesWithResponse request returning *GetRulesResponse +func (c *ClientWithResponses) GetRulesWithResponse(ctx context.Context, params *GetRulesParams, reqEditors ...RequestEditorFn) (*GetRulesResponse, error) { + rsp, err := c.GetRules(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetRulesResponse(rsp) +} + +// PostRulesWithBodyWithResponse request with arbitrary body returning *PostRulesResponse +func (c *ClientWithResponses) PostRulesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostRulesResponse, error) { + rsp, err := c.PostRulesWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostRulesResponse(rsp) +} + +func (c *ClientWithResponses) PostRulesWithResponse(ctx context.Context, body PostRulesJSONRequestBody, reqEditors ...RequestEditorFn) (*PostRulesResponse, error) { + rsp, err := c.PostRules(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostRulesResponse(rsp) +} + +// GetRulesKeywordWithResponse request returning *GetRulesKeywordResponse +func (c *ClientWithResponses) GetRulesKeywordWithResponse(ctx context.Context, params *GetRulesKeywordParams, reqEditors ...RequestEditorFn) (*GetRulesKeywordResponse, error) { + rsp, err := c.GetRulesKeyword(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetRulesKeywordResponse(rsp) +} + +// PostRulesKeywordWithBodyWithResponse request with arbitrary body returning *PostRulesKeywordResponse +func (c *ClientWithResponses) PostRulesKeywordWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostRulesKeywordResponse, error) { + rsp, err := c.PostRulesKeywordWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostRulesKeywordResponse(rsp) +} + +func (c *ClientWithResponses) PostRulesKeywordWithResponse(ctx context.Context, body PostRulesKeywordJSONRequestBody, reqEditors ...RequestEditorFn) (*PostRulesKeywordResponse, error) { + rsp, err := c.PostRulesKeyword(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostRulesKeywordResponse(rsp) +} + +// DeleteRulesRuleIdWithResponse request returning *DeleteRulesRuleIdResponse +func (c *ClientWithResponses) DeleteRulesRuleIdWithResponse(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*DeleteRulesRuleIdResponse, error) { + rsp, err := c.DeleteRulesRuleId(ctx, ruleId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteRulesRuleIdResponse(rsp) +} + +// GetRulesRuleIdWithResponse request returning *GetRulesRuleIdResponse +func (c *ClientWithResponses) GetRulesRuleIdWithResponse(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*GetRulesRuleIdResponse, error) { + rsp, err := c.GetRulesRuleId(ctx, ruleId, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetRulesRuleIdResponse(rsp) +} + +// PutRulesRuleIdWithBodyWithResponse request with arbitrary body returning *PutRulesRuleIdResponse +func (c *ClientWithResponses) PutRulesRuleIdWithBodyWithResponse(ctx context.Context, ruleId PathRuleId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PutRulesRuleIdResponse, error) { + rsp, err := c.PutRulesRuleIdWithBody(ctx, ruleId, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutRulesRuleIdResponse(rsp) +} + +func (c *ClientWithResponses) PutRulesRuleIdWithResponse(ctx context.Context, ruleId PathRuleId, body PutRulesRuleIdJSONRequestBody, reqEditors ...RequestEditorFn) (*PutRulesRuleIdResponse, error) { + rsp, err := c.PutRulesRuleId(ctx, ruleId, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutRulesRuleIdResponse(rsp) +} + +// PutRulesRuleIdDisableWithResponse request returning *PutRulesRuleIdDisableResponse +func (c *ClientWithResponses) PutRulesRuleIdDisableWithResponse(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*PutRulesRuleIdDisableResponse, error) { + rsp, err := c.PutRulesRuleIdDisable(ctx, ruleId, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutRulesRuleIdDisableResponse(rsp) +} + +// PutRulesRuleIdEnableWithResponse request returning *PutRulesRuleIdEnableResponse +func (c *ClientWithResponses) PutRulesRuleIdEnableWithResponse(ctx context.Context, ruleId PathRuleId, reqEditors ...RequestEditorFn) (*PutRulesRuleIdEnableResponse, error) { + rsp, err := c.PutRulesRuleIdEnable(ctx, ruleId, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutRulesRuleIdEnableResponse(rsp) +} + +// GetSchedulesWithResponse request returning *GetSchedulesResponse +func (c *ClientWithResponses) GetSchedulesWithResponse(ctx context.Context, params *GetSchedulesParams, reqEditors ...RequestEditorFn) (*GetSchedulesResponse, error) { + rsp, err := c.GetSchedules(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetSchedulesResponse(rsp) +} + +// GetSchedulesBroadcastingWithResponse request returning *GetSchedulesBroadcastingResponse +func (c *ClientWithResponses) GetSchedulesBroadcastingWithResponse(ctx context.Context, params *GetSchedulesBroadcastingParams, reqEditors ...RequestEditorFn) (*GetSchedulesBroadcastingResponse, error) { + rsp, err := c.GetSchedulesBroadcasting(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetSchedulesBroadcastingResponse(rsp) +} + +// GetSchedulesDetailProgramIdWithResponse request returning *GetSchedulesDetailProgramIdResponse +func (c *ClientWithResponses) GetSchedulesDetailProgramIdWithResponse(ctx context.Context, programId PathProgramId, params *GetSchedulesDetailProgramIdParams, reqEditors ...RequestEditorFn) (*GetSchedulesDetailProgramIdResponse, error) { + rsp, err := c.GetSchedulesDetailProgramId(ctx, programId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetSchedulesDetailProgramIdResponse(rsp) +} + +// PostSchedulesSearchWithBodyWithResponse request with arbitrary body returning *PostSchedulesSearchResponse +func (c *ClientWithResponses) PostSchedulesSearchWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostSchedulesSearchResponse, error) { + rsp, err := c.PostSchedulesSearchWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostSchedulesSearchResponse(rsp) +} + +func (c *ClientWithResponses) PostSchedulesSearchWithResponse(ctx context.Context, body PostSchedulesSearchJSONRequestBody, reqEditors ...RequestEditorFn) (*PostSchedulesSearchResponse, error) { + rsp, err := c.PostSchedulesSearch(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostSchedulesSearchResponse(rsp) +} + +// GetSchedulesChannelIdWithResponse request returning *GetSchedulesChannelIdResponse +func (c *ClientWithResponses) GetSchedulesChannelIdWithResponse(ctx context.Context, channelId PathChannelId, params *GetSchedulesChannelIdParams, reqEditors ...RequestEditorFn) (*GetSchedulesChannelIdResponse, error) { + rsp, err := c.GetSchedulesChannelId(ctx, channelId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetSchedulesChannelIdResponse(rsp) +} + +// GetStoragesWithResponse request returning *GetStoragesResponse +func (c *ClientWithResponses) GetStoragesWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetStoragesResponse, error) { + rsp, err := c.GetStorages(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStoragesResponse(rsp) +} + +// DeleteStreamsWithResponse request returning *DeleteStreamsResponse +func (c *ClientWithResponses) DeleteStreamsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*DeleteStreamsResponse, error) { + rsp, err := c.DeleteStreams(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteStreamsResponse(rsp) +} + +// GetStreamsWithResponse request returning *GetStreamsResponse +func (c *ClientWithResponses) GetStreamsWithResponse(ctx context.Context, params *GetStreamsParams, reqEditors ...RequestEditorFn) (*GetStreamsResponse, error) { + rsp, err := c.GetStreams(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStreamsResponse(rsp) +} + +// GetStreamsLiveChannelIdHlsWithResponse request returning *GetStreamsLiveChannelIdHlsResponse +func (c *ClientWithResponses) GetStreamsLiveChannelIdHlsWithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdHlsParams, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdHlsResponse, error) { + rsp, err := c.GetStreamsLiveChannelIdHls(ctx, channelId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStreamsLiveChannelIdHlsResponse(rsp) +} + +// GetStreamsLiveChannelIdM2tsWithResponse request returning *GetStreamsLiveChannelIdM2tsResponse +func (c *ClientWithResponses) GetStreamsLiveChannelIdM2tsWithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsParams, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdM2tsResponse, error) { + rsp, err := c.GetStreamsLiveChannelIdM2ts(ctx, channelId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStreamsLiveChannelIdM2tsResponse(rsp) +} + +// GetStreamsLiveChannelIdM2tsPlaylistWithResponse request returning *GetStreamsLiveChannelIdM2tsPlaylistResponse +func (c *ClientWithResponses) GetStreamsLiveChannelIdM2tsPlaylistWithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsPlaylistParams, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdM2tsPlaylistResponse, error) { + rsp, err := c.GetStreamsLiveChannelIdM2tsPlaylist(ctx, channelId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStreamsLiveChannelIdM2tsPlaylistResponse(rsp) +} + +// GetStreamsLiveChannelIdM2tsllWithResponse request returning *GetStreamsLiveChannelIdM2tsllResponse +func (c *ClientWithResponses) GetStreamsLiveChannelIdM2tsllWithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdM2tsllParams, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdM2tsllResponse, error) { + rsp, err := c.GetStreamsLiveChannelIdM2tsll(ctx, channelId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStreamsLiveChannelIdM2tsllResponse(rsp) +} + +// GetStreamsLiveChannelIdMp4WithResponse request returning *GetStreamsLiveChannelIdMp4Response +func (c *ClientWithResponses) GetStreamsLiveChannelIdMp4WithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdMp4Params, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdMp4Response, error) { + rsp, err := c.GetStreamsLiveChannelIdMp4(ctx, channelId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStreamsLiveChannelIdMp4Response(rsp) +} + +// GetStreamsLiveChannelIdWebmWithResponse request returning *GetStreamsLiveChannelIdWebmResponse +func (c *ClientWithResponses) GetStreamsLiveChannelIdWebmWithResponse(ctx context.Context, channelId PathChannelId, params *GetStreamsLiveChannelIdWebmParams, reqEditors ...RequestEditorFn) (*GetStreamsLiveChannelIdWebmResponse, error) { + rsp, err := c.GetStreamsLiveChannelIdWebm(ctx, channelId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStreamsLiveChannelIdWebmResponse(rsp) +} + +// GetStreamsRecordedVideoFileIdHlsWithResponse request returning *GetStreamsRecordedVideoFileIdHlsResponse +func (c *ClientWithResponses) GetStreamsRecordedVideoFileIdHlsWithResponse(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdHlsParams, reqEditors ...RequestEditorFn) (*GetStreamsRecordedVideoFileIdHlsResponse, error) { + rsp, err := c.GetStreamsRecordedVideoFileIdHls(ctx, videoFileId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStreamsRecordedVideoFileIdHlsResponse(rsp) +} + +// GetStreamsRecordedVideoFileIdMp4WithResponse request returning *GetStreamsRecordedVideoFileIdMp4Response +func (c *ClientWithResponses) GetStreamsRecordedVideoFileIdMp4WithResponse(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdMp4Params, reqEditors ...RequestEditorFn) (*GetStreamsRecordedVideoFileIdMp4Response, error) { + rsp, err := c.GetStreamsRecordedVideoFileIdMp4(ctx, videoFileId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStreamsRecordedVideoFileIdMp4Response(rsp) +} + +// GetStreamsRecordedVideoFileIdWebmWithResponse request returning *GetStreamsRecordedVideoFileIdWebmResponse +func (c *ClientWithResponses) GetStreamsRecordedVideoFileIdWebmWithResponse(ctx context.Context, videoFileId PathVideoFileId, params *GetStreamsRecordedVideoFileIdWebmParams, reqEditors ...RequestEditorFn) (*GetStreamsRecordedVideoFileIdWebmResponse, error) { + rsp, err := c.GetStreamsRecordedVideoFileIdWebm(ctx, videoFileId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetStreamsRecordedVideoFileIdWebmResponse(rsp) +} + +// DeleteStreamsStreamIdWithResponse request returning *DeleteStreamsStreamIdResponse +func (c *ClientWithResponses) DeleteStreamsStreamIdWithResponse(ctx context.Context, streamId PathStreamId, reqEditors ...RequestEditorFn) (*DeleteStreamsStreamIdResponse, error) { + rsp, err := c.DeleteStreamsStreamId(ctx, streamId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteStreamsStreamIdResponse(rsp) +} + +// PutStreamsStreamIdKeepWithResponse request returning *PutStreamsStreamIdKeepResponse +func (c *ClientWithResponses) PutStreamsStreamIdKeepWithResponse(ctx context.Context, streamId PathStreamId, reqEditors ...RequestEditorFn) (*PutStreamsStreamIdKeepResponse, error) { + rsp, err := c.PutStreamsStreamIdKeep(ctx, streamId, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutStreamsStreamIdKeepResponse(rsp) +} + +// GetTagsWithResponse request returning *GetTagsResponse +func (c *ClientWithResponses) GetTagsWithResponse(ctx context.Context, params *GetTagsParams, reqEditors ...RequestEditorFn) (*GetTagsResponse, error) { + rsp, err := c.GetTags(ctx, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetTagsResponse(rsp) +} + +// PostTagsWithBodyWithResponse request with arbitrary body returning *PostTagsResponse +func (c *ClientWithResponses) PostTagsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostTagsResponse, error) { + rsp, err := c.PostTagsWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostTagsResponse(rsp) +} + +func (c *ClientWithResponses) PostTagsWithResponse(ctx context.Context, body PostTagsJSONRequestBody, reqEditors ...RequestEditorFn) (*PostTagsResponse, error) { + rsp, err := c.PostTags(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostTagsResponse(rsp) +} + +// DeleteTagsTagIdWithResponse request returning *DeleteTagsTagIdResponse +func (c *ClientWithResponses) DeleteTagsTagIdWithResponse(ctx context.Context, tagId PathRecordedTagId, reqEditors ...RequestEditorFn) (*DeleteTagsTagIdResponse, error) { + rsp, err := c.DeleteTagsTagId(ctx, tagId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteTagsTagIdResponse(rsp) +} + +// PutTagsTagIdWithBodyWithResponse request with arbitrary body returning *PutTagsTagIdResponse +func (c *ClientWithResponses) PutTagsTagIdWithBodyWithResponse(ctx context.Context, tagId PathRecordedTagId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PutTagsTagIdResponse, error) { + rsp, err := c.PutTagsTagIdWithBody(ctx, tagId, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutTagsTagIdResponse(rsp) +} + +func (c *ClientWithResponses) PutTagsTagIdWithResponse(ctx context.Context, tagId PathRecordedTagId, body PutTagsTagIdJSONRequestBody, reqEditors ...RequestEditorFn) (*PutTagsTagIdResponse, error) { + rsp, err := c.PutTagsTagId(ctx, tagId, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutTagsTagIdResponse(rsp) +} + +// DeleteTagsTagIdRelateWithResponse request returning *DeleteTagsTagIdRelateResponse +func (c *ClientWithResponses) DeleteTagsTagIdRelateWithResponse(ctx context.Context, tagId PathRecordedTagId, params *DeleteTagsTagIdRelateParams, reqEditors ...RequestEditorFn) (*DeleteTagsTagIdRelateResponse, error) { + rsp, err := c.DeleteTagsTagIdRelate(ctx, tagId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteTagsTagIdRelateResponse(rsp) +} + +// PutTagsTagIdRelateWithBodyWithResponse request with arbitrary body returning *PutTagsTagIdRelateResponse +func (c *ClientWithResponses) PutTagsTagIdRelateWithBodyWithResponse(ctx context.Context, tagId PathRecordedTagId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PutTagsTagIdRelateResponse, error) { + rsp, err := c.PutTagsTagIdRelateWithBody(ctx, tagId, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutTagsTagIdRelateResponse(rsp) +} + +func (c *ClientWithResponses) PutTagsTagIdRelateWithResponse(ctx context.Context, tagId PathRecordedTagId, body PutTagsTagIdRelateJSONRequestBody, reqEditors ...RequestEditorFn) (*PutTagsTagIdRelateResponse, error) { + rsp, err := c.PutTagsTagIdRelate(ctx, tagId, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePutTagsTagIdRelateResponse(rsp) +} + +// PostThumbnailsWithResponse request returning *PostThumbnailsResponse +func (c *ClientWithResponses) PostThumbnailsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostThumbnailsResponse, error) { + rsp, err := c.PostThumbnails(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostThumbnailsResponse(rsp) +} + +// PostThumbnailsCleanupWithResponse request returning *PostThumbnailsCleanupResponse +func (c *ClientWithResponses) PostThumbnailsCleanupWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*PostThumbnailsCleanupResponse, error) { + rsp, err := c.PostThumbnailsCleanup(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostThumbnailsCleanupResponse(rsp) +} + +// GetThumbnailsThumbnailIdWithResponse request returning *GetThumbnailsThumbnailIdResponse +func (c *ClientWithResponses) GetThumbnailsThumbnailIdWithResponse(ctx context.Context, thumbnailId PathThumbnailId, reqEditors ...RequestEditorFn) (*GetThumbnailsThumbnailIdResponse, error) { + rsp, err := c.GetThumbnailsThumbnailId(ctx, thumbnailId, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetThumbnailsThumbnailIdResponse(rsp) +} + +// GetVersionWithResponse request returning *GetVersionResponse +func (c *ClientWithResponses) GetVersionWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetVersionResponse, error) { + rsp, err := c.GetVersion(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetVersionResponse(rsp) +} + +// PostVideosUploadWithBodyWithResponse request with arbitrary body returning *PostVideosUploadResponse +func (c *ClientWithResponses) PostVideosUploadWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostVideosUploadResponse, error) { + rsp, err := c.PostVideosUploadWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostVideosUploadResponse(rsp) +} + +// DeleteVideosVideoFileIdWithResponse request returning *DeleteVideosVideoFileIdResponse +func (c *ClientWithResponses) DeleteVideosVideoFileIdWithResponse(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*DeleteVideosVideoFileIdResponse, error) { + rsp, err := c.DeleteVideosVideoFileId(ctx, videoFileId, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteVideosVideoFileIdResponse(rsp) +} + +// GetVideosVideoFileIdWithResponse request returning *GetVideosVideoFileIdResponse +func (c *ClientWithResponses) GetVideosVideoFileIdWithResponse(ctx context.Context, videoFileId PathVideoFileId, params *GetVideosVideoFileIdParams, reqEditors ...RequestEditorFn) (*GetVideosVideoFileIdResponse, error) { + rsp, err := c.GetVideosVideoFileId(ctx, videoFileId, params, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetVideosVideoFileIdResponse(rsp) +} + +// GetVideosVideoFileIdDurationWithResponse request returning *GetVideosVideoFileIdDurationResponse +func (c *ClientWithResponses) GetVideosVideoFileIdDurationWithResponse(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*GetVideosVideoFileIdDurationResponse, error) { + rsp, err := c.GetVideosVideoFileIdDuration(ctx, videoFileId, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetVideosVideoFileIdDurationResponse(rsp) +} + +// PostVideosVideoFileIdKodiWithBodyWithResponse request with arbitrary body returning *PostVideosVideoFileIdKodiResponse +func (c *ClientWithResponses) PostVideosVideoFileIdKodiWithBodyWithResponse(ctx context.Context, videoFileId PathVideoFileId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostVideosVideoFileIdKodiResponse, error) { + rsp, err := c.PostVideosVideoFileIdKodiWithBody(ctx, videoFileId, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostVideosVideoFileIdKodiResponse(rsp) +} + +func (c *ClientWithResponses) PostVideosVideoFileIdKodiWithResponse(ctx context.Context, videoFileId PathVideoFileId, body PostVideosVideoFileIdKodiJSONRequestBody, reqEditors ...RequestEditorFn) (*PostVideosVideoFileIdKodiResponse, error) { + rsp, err := c.PostVideosVideoFileIdKodi(ctx, videoFileId, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePostVideosVideoFileIdKodiResponse(rsp) +} + +// GetVideosVideoFileIdPlaylistWithResponse request returning *GetVideosVideoFileIdPlaylistResponse +func (c *ClientWithResponses) GetVideosVideoFileIdPlaylistWithResponse(ctx context.Context, videoFileId PathVideoFileId, reqEditors ...RequestEditorFn) (*GetVideosVideoFileIdPlaylistResponse, error) { + rsp, err := c.GetVideosVideoFileIdPlaylist(ctx, videoFileId, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetVideosVideoFileIdPlaylistResponse(rsp) +} + +// ParseGetChannelsResponse parses an HTTP response from a GetChannelsWithResponse call +func ParseGetChannelsResponse(rsp *http.Response) (*GetChannelsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetChannelsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ChannelItems + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetChannelsChannelIdLogoResponse parses an HTTP response from a GetChannelsChannelIdLogoWithResponse call +func ParseGetChannelsChannelIdLogoResponse(rsp *http.Response) (*GetChannelsChannelIdLogoResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetChannelsChannelIdLogoResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetConfigResponse parses an HTTP response from a GetConfigWithResponse call +func ParseGetConfigResponse(rsp *http.Response) (*GetConfigResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetConfigResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest Config + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetDropLogsDropLogFileIdResponse parses an HTTP response from a GetDropLogsDropLogFileIdWithResponse call +func ParseGetDropLogsDropLogFileIdResponse(rsp *http.Response) (*GetDropLogsDropLogFileIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetDropLogsDropLogFileIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetEncodeResponse parses an HTTP response from a GetEncodeWithResponse call +func ParseGetEncodeResponse(rsp *http.Response) (*GetEncodeResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetEncodeResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest EncodeInfo + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostEncodeResponse parses an HTTP response from a PostEncodeWithResponse call +func ParsePostEncodeResponse(rsp *http.Response) (*PostEncodeResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostEncodeResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest AddedEncode + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteEncodeEncodeIdResponse parses an HTTP response from a DeleteEncodeEncodeIdWithResponse call +func ParseDeleteEncodeEncodeIdResponse(rsp *http.Response) (*DeleteEncodeEncodeIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteEncodeEncodeIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetIptvChannelM3u8Response parses an HTTP response from a GetIptvChannelM3u8WithResponse call +func ParseGetIptvChannelM3u8Response(rsp *http.Response) (*GetIptvChannelM3u8Response, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetIptvChannelM3u8Response{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetIptvEpgXmlResponse parses an HTTP response from a GetIptvEpgXmlWithResponse call +func ParseGetIptvEpgXmlResponse(rsp *http.Response) (*GetIptvEpgXmlResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetIptvEpgXmlResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetRecordedResponse parses an HTTP response from a GetRecordedWithResponse call +func ParseGetRecordedResponse(rsp *http.Response) (*GetRecordedResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetRecordedResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest Records + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostRecordedResponse parses an HTTP response from a PostRecordedWithResponse call +func ParsePostRecordedResponse(rsp *http.Response) (*PostRecordedResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostRecordedResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest CreatedNewRecorded + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostRecordedCleanupResponse parses an HTTP response from a PostRecordedCleanupWithResponse call +func ParsePostRecordedCleanupResponse(rsp *http.Response) (*PostRecordedCleanupResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostRecordedCleanupResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetRecordedOptionsResponse parses an HTTP response from a GetRecordedOptionsWithResponse call +func ParseGetRecordedOptionsResponse(rsp *http.Response) (*GetRecordedOptionsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetRecordedOptionsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest RecordedSearchOptions + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteRecordedRecordedIdResponse parses an HTTP response from a DeleteRecordedRecordedIdWithResponse call +func ParseDeleteRecordedRecordedIdResponse(rsp *http.Response) (*DeleteRecordedRecordedIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteRecordedRecordedIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetRecordedRecordedIdResponse parses an HTTP response from a GetRecordedRecordedIdWithResponse call +func ParseGetRecordedRecordedIdResponse(rsp *http.Response) (*GetRecordedRecordedIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetRecordedRecordedIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest RecordedItem + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteRecordedRecordedIdEncodeResponse parses an HTTP response from a DeleteRecordedRecordedIdEncodeWithResponse call +func ParseDeleteRecordedRecordedIdEncodeResponse(rsp *http.Response) (*DeleteRecordedRecordedIdEncodeResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteRecordedRecordedIdEncodeResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePutRecordedRecordedIdProtectResponse parses an HTTP response from a PutRecordedRecordedIdProtectWithResponse call +func ParsePutRecordedRecordedIdProtectResponse(rsp *http.Response) (*PutRecordedRecordedIdProtectResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PutRecordedRecordedIdProtectResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePutRecordedRecordedIdUnprotectResponse parses an HTTP response from a PutRecordedRecordedIdUnprotectWithResponse call +func ParsePutRecordedRecordedIdUnprotectResponse(rsp *http.Response) (*PutRecordedRecordedIdUnprotectResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PutRecordedRecordedIdUnprotectResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetRecordingResponse parses an HTTP response from a GetRecordingWithResponse call +func ParseGetRecordingResponse(rsp *http.Response) (*GetRecordingResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetRecordingResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest Records + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostRecordingResettimerResponse parses an HTTP response from a PostRecordingResettimerWithResponse call +func ParsePostRecordingResettimerResponse(rsp *http.Response) (*PostRecordingResettimerResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostRecordingResettimerResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetReservesResponse parses an HTTP response from a GetReservesWithResponse call +func ParseGetReservesResponse(rsp *http.Response) (*GetReservesResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetReservesResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest Reserves + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostReservesResponse parses an HTTP response from a PostReservesWithResponse call +func ParsePostReservesResponse(rsp *http.Response) (*PostReservesResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostReservesResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest AddedReserve + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetReservesCntsResponse parses an HTTP response from a GetReservesCntsWithResponse call +func ParseGetReservesCntsResponse(rsp *http.Response) (*GetReservesCntsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetReservesCntsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ReserveCnts + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetReservesListsResponse parses an HTTP response from a GetReservesListsWithResponse call +func ParseGetReservesListsResponse(rsp *http.Response) (*GetReservesListsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetReservesListsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ReserveLists + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostReservesUpdateResponse parses an HTTP response from a PostReservesUpdateWithResponse call +func ParsePostReservesUpdateResponse(rsp *http.Response) (*PostReservesUpdateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostReservesUpdateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteReservesReserveIdResponse parses an HTTP response from a DeleteReservesReserveIdWithResponse call +func ParseDeleteReservesReserveIdResponse(rsp *http.Response) (*DeleteReservesReserveIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteReservesReserveIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetReservesReserveIdResponse parses an HTTP response from a GetReservesReserveIdWithResponse call +func ParseGetReservesReserveIdResponse(rsp *http.Response) (*GetReservesReserveIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetReservesReserveIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ReserveItem + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePutReservesReserveIdResponse parses an HTTP response from a PutReservesReserveIdWithResponse call +func ParsePutReservesReserveIdResponse(rsp *http.Response) (*PutReservesReserveIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PutReservesReserveIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteReservesReserveIdOverlapResponse parses an HTTP response from a DeleteReservesReserveIdOverlapWithResponse call +func ParseDeleteReservesReserveIdOverlapResponse(rsp *http.Response) (*DeleteReservesReserveIdOverlapResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteReservesReserveIdOverlapResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteReservesReserveIdSkipResponse parses an HTTP response from a DeleteReservesReserveIdSkipWithResponse call +func ParseDeleteReservesReserveIdSkipResponse(rsp *http.Response) (*DeleteReservesReserveIdSkipResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteReservesReserveIdSkipResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetRulesResponse parses an HTTP response from a GetRulesWithResponse call +func ParseGetRulesResponse(rsp *http.Response) (*GetRulesResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetRulesResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest Rules + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostRulesResponse parses an HTTP response from a PostRulesWithResponse call +func ParsePostRulesResponse(rsp *http.Response) (*PostRulesResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostRulesResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest AddedRule + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetRulesKeywordResponse parses an HTTP response from a GetRulesKeywordWithResponse call +func ParseGetRulesKeywordResponse(rsp *http.Response) (*GetRulesKeywordResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetRulesKeywordResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest RuleKeywordInfo + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostRulesKeywordResponse parses an HTTP response from a PostRulesKeywordWithResponse call +func ParsePostRulesKeywordResponse(rsp *http.Response) (*PostRulesKeywordResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostRulesKeywordResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest AddedRule + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteRulesRuleIdResponse parses an HTTP response from a DeleteRulesRuleIdWithResponse call +func ParseDeleteRulesRuleIdResponse(rsp *http.Response) (*DeleteRulesRuleIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteRulesRuleIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetRulesRuleIdResponse parses an HTTP response from a GetRulesRuleIdWithResponse call +func ParseGetRulesRuleIdResponse(rsp *http.Response) (*GetRulesRuleIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetRulesRuleIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest Rule + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePutRulesRuleIdResponse parses an HTTP response from a PutRulesRuleIdWithResponse call +func ParsePutRulesRuleIdResponse(rsp *http.Response) (*PutRulesRuleIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PutRulesRuleIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePutRulesRuleIdDisableResponse parses an HTTP response from a PutRulesRuleIdDisableWithResponse call +func ParsePutRulesRuleIdDisableResponse(rsp *http.Response) (*PutRulesRuleIdDisableResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PutRulesRuleIdDisableResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePutRulesRuleIdEnableResponse parses an HTTP response from a PutRulesRuleIdEnableWithResponse call +func ParsePutRulesRuleIdEnableResponse(rsp *http.Response) (*PutRulesRuleIdEnableResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PutRulesRuleIdEnableResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetSchedulesResponse parses an HTTP response from a GetSchedulesWithResponse call +func ParseGetSchedulesResponse(rsp *http.Response) (*GetSchedulesResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetSchedulesResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest Schedules + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetSchedulesBroadcastingResponse parses an HTTP response from a GetSchedulesBroadcastingWithResponse call +func ParseGetSchedulesBroadcastingResponse(rsp *http.Response) (*GetSchedulesBroadcastingResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetSchedulesBroadcastingResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest Schedules + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetSchedulesDetailProgramIdResponse parses an HTTP response from a GetSchedulesDetailProgramIdWithResponse call +func ParseGetSchedulesDetailProgramIdResponse(rsp *http.Response) (*GetSchedulesDetailProgramIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetSchedulesDetailProgramIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ScheduleProgramItem + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostSchedulesSearchResponse parses an HTTP response from a PostSchedulesSearchWithResponse call +func ParsePostSchedulesSearchResponse(rsp *http.Response) (*PostSchedulesSearchResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostSchedulesSearchResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest []ScheduleProgramItem + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetSchedulesChannelIdResponse parses an HTTP response from a GetSchedulesChannelIdWithResponse call +func ParseGetSchedulesChannelIdResponse(rsp *http.Response) (*GetSchedulesChannelIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetSchedulesChannelIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest Schedules + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStoragesResponse parses an HTTP response from a GetStoragesWithResponse call +func ParseGetStoragesResponse(rsp *http.Response) (*GetStoragesResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStoragesResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest StorageInfo + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteStreamsResponse parses an HTTP response from a DeleteStreamsWithResponse call +func ParseDeleteStreamsResponse(rsp *http.Response) (*DeleteStreamsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteStreamsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStreamsResponse parses an HTTP response from a GetStreamsWithResponse call +func ParseGetStreamsResponse(rsp *http.Response) (*GetStreamsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStreamsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest StreamInfo + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStreamsLiveChannelIdHlsResponse parses an HTTP response from a GetStreamsLiveChannelIdHlsWithResponse call +func ParseGetStreamsLiveChannelIdHlsResponse(rsp *http.Response) (*GetStreamsLiveChannelIdHlsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStreamsLiveChannelIdHlsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest StartStreamInfo + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStreamsLiveChannelIdM2tsResponse parses an HTTP response from a GetStreamsLiveChannelIdM2tsWithResponse call +func ParseGetStreamsLiveChannelIdM2tsResponse(rsp *http.Response) (*GetStreamsLiveChannelIdM2tsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStreamsLiveChannelIdM2tsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStreamsLiveChannelIdM2tsPlaylistResponse parses an HTTP response from a GetStreamsLiveChannelIdM2tsPlaylistWithResponse call +func ParseGetStreamsLiveChannelIdM2tsPlaylistResponse(rsp *http.Response) (*GetStreamsLiveChannelIdM2tsPlaylistResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStreamsLiveChannelIdM2tsPlaylistResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStreamsLiveChannelIdM2tsllResponse parses an HTTP response from a GetStreamsLiveChannelIdM2tsllWithResponse call +func ParseGetStreamsLiveChannelIdM2tsllResponse(rsp *http.Response) (*GetStreamsLiveChannelIdM2tsllResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStreamsLiveChannelIdM2tsllResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStreamsLiveChannelIdMp4Response parses an HTTP response from a GetStreamsLiveChannelIdMp4WithResponse call +func ParseGetStreamsLiveChannelIdMp4Response(rsp *http.Response) (*GetStreamsLiveChannelIdMp4Response, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStreamsLiveChannelIdMp4Response{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStreamsLiveChannelIdWebmResponse parses an HTTP response from a GetStreamsLiveChannelIdWebmWithResponse call +func ParseGetStreamsLiveChannelIdWebmResponse(rsp *http.Response) (*GetStreamsLiveChannelIdWebmResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStreamsLiveChannelIdWebmResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStreamsRecordedVideoFileIdHlsResponse parses an HTTP response from a GetStreamsRecordedVideoFileIdHlsWithResponse call +func ParseGetStreamsRecordedVideoFileIdHlsResponse(rsp *http.Response) (*GetStreamsRecordedVideoFileIdHlsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStreamsRecordedVideoFileIdHlsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest StartStreamInfo + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStreamsRecordedVideoFileIdMp4Response parses an HTTP response from a GetStreamsRecordedVideoFileIdMp4WithResponse call +func ParseGetStreamsRecordedVideoFileIdMp4Response(rsp *http.Response) (*GetStreamsRecordedVideoFileIdMp4Response, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStreamsRecordedVideoFileIdMp4Response{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetStreamsRecordedVideoFileIdWebmResponse parses an HTTP response from a GetStreamsRecordedVideoFileIdWebmWithResponse call +func ParseGetStreamsRecordedVideoFileIdWebmResponse(rsp *http.Response) (*GetStreamsRecordedVideoFileIdWebmResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetStreamsRecordedVideoFileIdWebmResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteStreamsStreamIdResponse parses an HTTP response from a DeleteStreamsStreamIdWithResponse call +func ParseDeleteStreamsStreamIdResponse(rsp *http.Response) (*DeleteStreamsStreamIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteStreamsStreamIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePutStreamsStreamIdKeepResponse parses an HTTP response from a PutStreamsStreamIdKeepWithResponse call +func ParsePutStreamsStreamIdKeepResponse(rsp *http.Response) (*PutStreamsStreamIdKeepResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PutStreamsStreamIdKeepResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetTagsResponse parses an HTTP response from a GetTagsWithResponse call +func ParseGetTagsResponse(rsp *http.Response) (*GetTagsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetTagsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest RecordedTags + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostTagsResponse parses an HTTP response from a PostTagsWithResponse call +func ParsePostTagsResponse(rsp *http.Response) (*PostTagsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostTagsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest AddedRecordedTag + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteTagsTagIdResponse parses an HTTP response from a DeleteTagsTagIdWithResponse call +func ParseDeleteTagsTagIdResponse(rsp *http.Response) (*DeleteTagsTagIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteTagsTagIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePutTagsTagIdResponse parses an HTTP response from a PutTagsTagIdWithResponse call +func ParsePutTagsTagIdResponse(rsp *http.Response) (*PutTagsTagIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PutTagsTagIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteTagsTagIdRelateResponse parses an HTTP response from a DeleteTagsTagIdRelateWithResponse call +func ParseDeleteTagsTagIdRelateResponse(rsp *http.Response) (*DeleteTagsTagIdRelateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteTagsTagIdRelateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePutTagsTagIdRelateResponse parses an HTTP response from a PutTagsTagIdRelateWithResponse call +func ParsePutTagsTagIdRelateResponse(rsp *http.Response) (*PutTagsTagIdRelateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PutTagsTagIdRelateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostThumbnailsResponse parses an HTTP response from a PostThumbnailsWithResponse call +func ParsePostThumbnailsResponse(rsp *http.Response) (*PostThumbnailsResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostThumbnailsResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostThumbnailsCleanupResponse parses an HTTP response from a PostThumbnailsCleanupWithResponse call +func ParsePostThumbnailsCleanupResponse(rsp *http.Response) (*PostThumbnailsCleanupResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostThumbnailsCleanupResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetThumbnailsThumbnailIdResponse parses an HTTP response from a GetThumbnailsThumbnailIdWithResponse call +func ParseGetThumbnailsThumbnailIdResponse(rsp *http.Response) (*GetThumbnailsThumbnailIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetThumbnailsThumbnailIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetVersionResponse parses an HTTP response from a GetVersionWithResponse call +func ParseGetVersionResponse(rsp *http.Response) (*GetVersionResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetVersionResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest Version + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostVideosUploadResponse parses an HTTP response from a PostVideosUploadWithResponse call +func ParsePostVideosUploadResponse(rsp *http.Response) (*PostVideosUploadResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostVideosUploadResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseDeleteVideosVideoFileIdResponse parses an HTTP response from a DeleteVideosVideoFileIdWithResponse call +func ParseDeleteVideosVideoFileIdResponse(rsp *http.Response) (*DeleteVideosVideoFileIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteVideosVideoFileIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetVideosVideoFileIdResponse parses an HTTP response from a GetVideosVideoFileIdWithResponse call +func ParseGetVideosVideoFileIdResponse(rsp *http.Response) (*GetVideosVideoFileIdResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetVideosVideoFileIdResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetVideosVideoFileIdDurationResponse parses an HTTP response from a GetVideosVideoFileIdDurationWithResponse call +func ParseGetVideosVideoFileIdDurationResponse(rsp *http.Response) (*GetVideosVideoFileIdDurationResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetVideosVideoFileIdDurationResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest VideoFileDuration + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParsePostVideosVideoFileIdKodiResponse parses an HTTP response from a PostVideosVideoFileIdKodiWithResponse call +func ParsePostVideosVideoFileIdKodiResponse(rsp *http.Response) (*PostVideosVideoFileIdKodiResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &PostVideosVideoFileIdKodiResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ParseGetVideosVideoFileIdPlaylistResponse parses an HTTP response from a GetVideosVideoFileIdPlaylistWithResponse call +func ParseGetVideosVideoFileIdPlaylistResponse(rsp *http.Response) (*GetVideosVideoFileIdPlaylistResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetVideosVideoFileIdPlaylistResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && true: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSONDefault = &dest + + } + + return response, nil +} + +// ServerInterface represents all server handlers. +type ServerInterface interface { + // 放送局情報取得 + // (GET /channels) + GetChannels(ctx echo.Context) error + // 放送局ロゴ取得 + // (GET /channels/{channelId}/logo) + GetChannelsChannelIdLogo(ctx echo.Context, channelId PathChannelId) error + // config 情報取得 + // (GET /config) + GetConfig(ctx echo.Context) error + // ドロップログ + // (GET /dropLogs/{dropLogFileId}) + GetDropLogsDropLogFileId(ctx echo.Context, dropLogFileId PathDropLogFileId, params GetDropLogsDropLogFileIdParams) error + // エンコード情報取得 + // (GET /encode) + GetEncode(ctx echo.Context, params GetEncodeParams) error + // エンコード追加 + // (POST /encode) + PostEncode(ctx echo.Context) error + // エンコードをキャンセル + // (DELETE /encode/{encodeId}) + DeleteEncodeEncodeId(ctx echo.Context, encodeId PathEncodeId) error + // IPTV channel list を取得 + // (GET /iptv/channel.m3u8) + GetIptvChannelM3u8(ctx echo.Context, params GetIptvChannelM3u8Params) error + // IPTV epg を取得 + // (GET /iptv/epg.xml) + GetIptvEpgXml(ctx echo.Context, params GetIptvEpgXmlParams) error + // 録画情報取得 + // (GET /recorded) + GetRecorded(ctx echo.Context, params GetRecordedParams) error + // 録画番組情報の新規作成 + // (POST /recorded) + PostRecorded(ctx echo.Context) error + // 録画をクリーンアップ + // (POST /recorded/cleanup) + PostRecordedCleanup(ctx echo.Context) error + // 録画検索オプションを取得 + // (GET /recorded/options) + GetRecordedOptions(ctx echo.Context) error + // 録画を削除 + // (DELETE /recorded/{recordedId}) + DeleteRecordedRecordedId(ctx echo.Context, recordedId PathRecordedId) error + // 録画詳細情報を取得 + // (GET /recorded/{recordedId}) + GetRecordedRecordedId(ctx echo.Context, recordedId PathRecordedId, params GetRecordedRecordedIdParams) error + // エンコード停止 + // (DELETE /recorded/{recordedId}/encode) + DeleteRecordedRecordedIdEncode(ctx echo.Context, recordedId PathRecordedId) error + // 録画を自動削除対象から除外 + // (PUT /recorded/{recordedId}/protect) + PutRecordedRecordedIdProtect(ctx echo.Context, recordedId PathRecordedId) error + // 録画を自動削除対象に戻す + // (PUT /recorded/{recordedId}/unprotect) + PutRecordedRecordedIdUnprotect(ctx echo.Context, recordedId PathRecordedId) error + // 録画中情報取得 + // (GET /recording) + GetRecording(ctx echo.Context, params GetRecordingParams) error + // 予約タイマー再設定 + // (POST /recording/resettimer) + PostRecordingResettimer(ctx echo.Context) error + // 予約情報取得 + // (GET /reserves) + GetReserves(ctx echo.Context, params GetReservesParams) error + // 予約追加 + // (POST /reserves) + PostReserves(ctx echo.Context) error + // 予約数取得 + // (GET /reserves/cnts) + GetReservesCnts(ctx echo.Context) error + // 予約リスト情報取得 + // (GET /reserves/lists) + GetReservesLists(ctx echo.Context, params GetReservesListsParams) error + // 予約情報の更新開始 + // (POST /reserves/update) + PostReservesUpdate(ctx echo.Context) error + // 予約削除 + // (DELETE /reserves/{reserveId}) + DeleteReservesReserveId(ctx echo.Context, reserveId PathReserveId) error + // 指定された予約情報の取得 + // (GET /reserves/{reserveId}) + GetReservesReserveId(ctx echo.Context, reserveId PathReserveId, params GetReservesReserveIdParams) error + // 手動予約更新 + // (PUT /reserves/{reserveId}) + PutReservesReserveId(ctx echo.Context, reserveId PathReserveId) error + // 予約の重複状態を解除 + // (DELETE /reserves/{reserveId}/overlap) + DeleteReservesReserveIdOverlap(ctx echo.Context, reserveId PathReserveId) error + // 予約の除外状態を解除 + // (DELETE /reserves/{reserveId}/skip) + DeleteReservesReserveIdSkip(ctx echo.Context, reserveId PathReserveId) error + // ルール情報取得 + // (GET /rules) + GetRules(ctx echo.Context, params GetRulesParams) error + // ルール追加 + // (POST /rules) + PostRules(ctx echo.Context) error + // ルールをキーワード検索 + // (GET /rules/keyword) + GetRulesKeyword(ctx echo.Context, params GetRulesKeywordParams) error + // ルール追加 + // (POST /rules/keyword) + PostRulesKeyword(ctx echo.Context) error + // ルール削除 + // (DELETE /rules/{ruleId}) + DeleteRulesRuleId(ctx echo.Context, ruleId PathRuleId) error + // ルール取得 + // (GET /rules/{ruleId}) + GetRulesRuleId(ctx echo.Context, ruleId PathRuleId) error + // ルール更新 + // (PUT /rules/{ruleId}) + PutRulesRuleId(ctx echo.Context, ruleId PathRuleId) error + // ルール無効化 + // (PUT /rules/{ruleId}/disable) + PutRulesRuleIdDisable(ctx echo.Context, ruleId PathRuleId) error + // ルール有効化 + // (PUT /rules/{ruleId}/enable) + PutRulesRuleIdEnable(ctx echo.Context, ruleId PathRuleId) error + // 番組表情報取得 + // (GET /schedules) + GetSchedules(ctx echo.Context, params GetSchedulesParams) error + // 放映中の番組報取得 + // (GET /schedules/broadcasting) + GetSchedulesBroadcasting(ctx echo.Context, params GetSchedulesBroadcastingParams) error + // 指定された番組表情報取得 + // (GET /schedules/detail/{programId}) + GetSchedulesDetailProgramId(ctx echo.Context, programId PathProgramId, params GetSchedulesDetailProgramIdParams) error + // 番組検索結果を取得 + // (POST /schedules/search) + PostSchedulesSearch(ctx echo.Context) error + // 指定された放送局の番組表情報取得 + // (GET /schedules/{channelId}) + GetSchedulesChannelId(ctx echo.Context, channelId PathChannelId, params GetSchedulesChannelIdParams) error + // ストレージ情報取得 + // (GET /storages) + GetStorages(ctx echo.Context) error + // 全てのストリームを停止 + // (DELETE /streams) + DeleteStreams(ctx echo.Context) error + // ストリーム情報を取得 + // (GET /streams) + GetStreams(ctx echo.Context, params GetStreamsParams) error + // ライブ HLS ストリーム + // (GET /streams/live/{channelId}/hls) + GetStreamsLiveChannelIdHls(ctx echo.Context, channelId PathChannelId, params GetStreamsLiveChannelIdHlsParams) error + // ライブ M2TS ストリーム + // (GET /streams/live/{channelId}/m2ts) + GetStreamsLiveChannelIdM2ts(ctx echo.Context, channelId PathChannelId, params GetStreamsLiveChannelIdM2tsParams) error + // ライブ M2TS ストリームプレイリスト + // (GET /streams/live/{channelId}/m2ts/playlist) + GetStreamsLiveChannelIdM2tsPlaylist(ctx echo.Context, channelId PathChannelId, params GetStreamsLiveChannelIdM2tsPlaylistParams) error + // ライブ M2TS Low Latency (mpegts.js 用) ストリーム + // (GET /streams/live/{channelId}/m2tsll) + GetStreamsLiveChannelIdM2tsll(ctx echo.Context, channelId PathChannelId, params GetStreamsLiveChannelIdM2tsllParams) error + // ライブ mp4 ストリーム + // (GET /streams/live/{channelId}/mp4) + GetStreamsLiveChannelIdMp4(ctx echo.Context, channelId PathChannelId, params GetStreamsLiveChannelIdMp4Params) error + // ライブ WebM ストリーム + // (GET /streams/live/{channelId}/webm) + GetStreamsLiveChannelIdWebm(ctx echo.Context, channelId PathChannelId, params GetStreamsLiveChannelIdWebmParams) error + // 録画 HLS ストリーム + // (GET /streams/recorded/{videoFileId}/hls) + GetStreamsRecordedVideoFileIdHls(ctx echo.Context, videoFileId PathVideoFileId, params GetStreamsRecordedVideoFileIdHlsParams) error + // 録画 mp4 ストリーム + // (GET /streams/recorded/{videoFileId}/mp4) + GetStreamsRecordedVideoFileIdMp4(ctx echo.Context, videoFileId PathVideoFileId, params GetStreamsRecordedVideoFileIdMp4Params) error + // 録画 WebM ストリーム + // (GET /streams/recorded/{videoFileId}/webm) + GetStreamsRecordedVideoFileIdWebm(ctx echo.Context, videoFileId PathVideoFileId, params GetStreamsRecordedVideoFileIdWebmParams) error + // ストリームを停止 + // (DELETE /streams/{streamId}) + DeleteStreamsStreamId(ctx echo.Context, streamId PathStreamId) error + // ストリーム停止タイマーを更新する + // (PUT /streams/{streamId}/keep) + PutStreamsStreamIdKeep(ctx echo.Context, streamId PathStreamId) error + // タグ情報取得 + // (GET /tags) + GetTags(ctx echo.Context, params GetTagsParams) error + // タグ追加 + // (POST /tags) + PostTags(ctx echo.Context) error + // タグ削除 + // (DELETE /tags/{tagId}) + DeleteTagsTagId(ctx echo.Context, tagId PathRecordedTagId) error + // タグ名変更 + // (PUT /tags/{tagId}) + PutTagsTagId(ctx echo.Context, tagId PathRecordedTagId) error + // 録画番組とタグの関連付けを削除 + // (DELETE /tags/{tagId}/relate) + DeleteTagsTagIdRelate(ctx echo.Context, tagId PathRecordedTagId, params DeleteTagsTagIdRelateParams) error + // 録画番組とタグを関連付ける + // (PUT /tags/{tagId}/relate) + PutTagsTagIdRelate(ctx echo.Context, tagId PathRecordedTagId) error + // サムネイル再生成 + // (POST /thumbnails) + PostThumbnails(ctx echo.Context) error + // サムネイルをクリーンアップ + // (POST /thumbnails/cleanup) + PostThumbnailsCleanup(ctx echo.Context) error + // サムネイル + // (GET /thumbnails/{thumbnailId}) + GetThumbnailsThumbnailId(ctx echo.Context, thumbnailId PathThumbnailId) error + // バージョン情報取得 + // (GET /version) + GetVersion(ctx echo.Context) error + // アップロードしたビデオファイルを追加 + // (POST /videos/upload) + PostVideosUpload(ctx echo.Context) error + // ビデオファイル + // (DELETE /videos/{videoFileId}) + DeleteVideosVideoFileId(ctx echo.Context, videoFileId PathVideoFileId) error + // ビデオファイル + // (GET /videos/{videoFileId}) + GetVideosVideoFileId(ctx echo.Context, videoFileId PathVideoFileId, params GetVideosVideoFileIdParams) error + // 動画の長さ + // (GET /videos/{videoFileId}/duration) + GetVideosVideoFileIdDuration(ctx echo.Context, videoFileId PathVideoFileId) error + // ビデオリンクを kodi へ送信 + // (POST /videos/{videoFileId}/kodi) + PostVideosVideoFileIdKodi(ctx echo.Context, videoFileId PathVideoFileId) error + // ビデオプレイリスト + // (GET /videos/{videoFileId}/playlist) + GetVideosVideoFileIdPlaylist(ctx echo.Context, videoFileId PathVideoFileId) error +} + +// ServerInterfaceWrapper converts echo contexts to parameters. +type ServerInterfaceWrapper struct { + Handler ServerInterface +} + +// GetChannels converts echo context to params. +func (w *ServerInterfaceWrapper) GetChannels(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetChannels(ctx) + return err +} + +// GetChannelsChannelIdLogo converts echo context to params. +func (w *ServerInterfaceWrapper) GetChannelsChannelIdLogo(ctx echo.Context) error { + var err error + // ------------- Path parameter "channelId" ------------- + var channelId PathChannelId + + err = runtime.BindStyledParameterWithLocation("simple", false, "channelId", runtime.ParamLocationPath, ctx.Param("channelId"), &channelId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter channelId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetChannelsChannelIdLogo(ctx, channelId) + return err +} + +// GetConfig converts echo context to params. +func (w *ServerInterfaceWrapper) GetConfig(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetConfig(ctx) + return err +} + +// GetDropLogsDropLogFileId converts echo context to params. +func (w *ServerInterfaceWrapper) GetDropLogsDropLogFileId(ctx echo.Context) error { + var err error + // ------------- Path parameter "dropLogFileId" ------------- + var dropLogFileId PathDropLogFileId + + err = runtime.BindStyledParameterWithLocation("simple", false, "dropLogFileId", runtime.ParamLocationPath, ctx.Param("dropLogFileId"), &dropLogFileId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter dropLogFileId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetDropLogsDropLogFileIdParams + // ------------- Optional query parameter "maxsize" ------------- + + err = runtime.BindQueryParameter("form", true, false, "maxsize", ctx.QueryParams(), ¶ms.Maxsize) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter maxsize: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetDropLogsDropLogFileId(ctx, dropLogFileId, params) + return err +} + +// GetEncode converts echo context to params. +func (w *ServerInterfaceWrapper) GetEncode(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetEncodeParams + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetEncode(ctx, params) + return err +} + +// PostEncode converts echo context to params. +func (w *ServerInterfaceWrapper) PostEncode(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostEncode(ctx) + return err +} + +// DeleteEncodeEncodeId converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteEncodeEncodeId(ctx echo.Context) error { + var err error + // ------------- Path parameter "encodeId" ------------- + var encodeId PathEncodeId + + err = runtime.BindStyledParameterWithLocation("simple", false, "encodeId", runtime.ParamLocationPath, ctx.Param("encodeId"), &encodeId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter encodeId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteEncodeEncodeId(ctx, encodeId) + return err +} + +// GetIptvChannelM3u8 converts echo context to params. +func (w *ServerInterfaceWrapper) GetIptvChannelM3u8(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetIptvChannelM3u8Params + // ------------- Optional query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, false, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // ------------- Required query parameter "mode" ------------- + + err = runtime.BindQueryParameter("form", true, true, "mode", ctx.QueryParams(), ¶ms.Mode) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter mode: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetIptvChannelM3u8(ctx, params) + return err +} + +// GetIptvEpgXml converts echo context to params. +func (w *ServerInterfaceWrapper) GetIptvEpgXml(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetIptvEpgXmlParams + // ------------- Optional query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, false, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // ------------- Optional query parameter "days" ------------- + + err = runtime.BindQueryParameter("form", true, false, "days", ctx.QueryParams(), ¶ms.Days) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter days: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetIptvEpgXml(ctx, params) + return err +} + +// GetRecorded converts echo context to params. +func (w *ServerInterfaceWrapper) GetRecorded(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetRecordedParams + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // ------------- Optional query parameter "offset" ------------- + + err = runtime.BindQueryParameter("form", true, false, "offset", ctx.QueryParams(), ¶ms.Offset) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter offset: %s", err)) + } + + // ------------- Optional query parameter "limit" ------------- + + err = runtime.BindQueryParameter("form", true, false, "limit", ctx.QueryParams(), ¶ms.Limit) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter limit: %s", err)) + } + + // ------------- Optional query parameter "isReverse" ------------- + + err = runtime.BindQueryParameter("form", true, false, "isReverse", ctx.QueryParams(), ¶ms.IsReverse) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isReverse: %s", err)) + } + + // ------------- Optional query parameter "ruleId" ------------- + + err = runtime.BindQueryParameter("form", true, false, "ruleId", ctx.QueryParams(), ¶ms.RuleId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter ruleId: %s", err)) + } + + // ------------- Optional query parameter "channelId" ------------- + + err = runtime.BindQueryParameter("form", true, false, "channelId", ctx.QueryParams(), ¶ms.ChannelId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter channelId: %s", err)) + } + + // ------------- Optional query parameter "genre" ------------- + + err = runtime.BindQueryParameter("form", true, false, "genre", ctx.QueryParams(), ¶ms.Genre) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter genre: %s", err)) + } + + // ------------- Optional query parameter "keyword" ------------- + + err = runtime.BindQueryParameter("form", true, false, "keyword", ctx.QueryParams(), ¶ms.Keyword) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter keyword: %s", err)) + } + + // ------------- Optional query parameter "hasOriginalFile" ------------- + + err = runtime.BindQueryParameter("form", true, false, "hasOriginalFile", ctx.QueryParams(), ¶ms.HasOriginalFile) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter hasOriginalFile: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetRecorded(ctx, params) + return err +} + +// PostRecorded converts echo context to params. +func (w *ServerInterfaceWrapper) PostRecorded(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostRecorded(ctx) + return err +} + +// PostRecordedCleanup converts echo context to params. +func (w *ServerInterfaceWrapper) PostRecordedCleanup(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostRecordedCleanup(ctx) + return err +} + +// GetRecordedOptions converts echo context to params. +func (w *ServerInterfaceWrapper) GetRecordedOptions(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetRecordedOptions(ctx) + return err +} + +// DeleteRecordedRecordedId converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteRecordedRecordedId(ctx echo.Context) error { + var err error + // ------------- Path parameter "recordedId" ------------- + var recordedId PathRecordedId + + err = runtime.BindStyledParameterWithLocation("simple", false, "recordedId", runtime.ParamLocationPath, ctx.Param("recordedId"), &recordedId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter recordedId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteRecordedRecordedId(ctx, recordedId) + return err +} + +// GetRecordedRecordedId converts echo context to params. +func (w *ServerInterfaceWrapper) GetRecordedRecordedId(ctx echo.Context) error { + var err error + // ------------- Path parameter "recordedId" ------------- + var recordedId PathRecordedId + + err = runtime.BindStyledParameterWithLocation("simple", false, "recordedId", runtime.ParamLocationPath, ctx.Param("recordedId"), &recordedId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter recordedId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetRecordedRecordedIdParams + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetRecordedRecordedId(ctx, recordedId, params) + return err +} + +// DeleteRecordedRecordedIdEncode converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteRecordedRecordedIdEncode(ctx echo.Context) error { + var err error + // ------------- Path parameter "recordedId" ------------- + var recordedId PathRecordedId + + err = runtime.BindStyledParameterWithLocation("simple", false, "recordedId", runtime.ParamLocationPath, ctx.Param("recordedId"), &recordedId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter recordedId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteRecordedRecordedIdEncode(ctx, recordedId) + return err +} + +// PutRecordedRecordedIdProtect converts echo context to params. +func (w *ServerInterfaceWrapper) PutRecordedRecordedIdProtect(ctx echo.Context) error { + var err error + // ------------- Path parameter "recordedId" ------------- + var recordedId PathRecordedId + + err = runtime.BindStyledParameterWithLocation("simple", false, "recordedId", runtime.ParamLocationPath, ctx.Param("recordedId"), &recordedId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter recordedId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PutRecordedRecordedIdProtect(ctx, recordedId) + return err +} + +// PutRecordedRecordedIdUnprotect converts echo context to params. +func (w *ServerInterfaceWrapper) PutRecordedRecordedIdUnprotect(ctx echo.Context) error { + var err error + // ------------- Path parameter "recordedId" ------------- + var recordedId PathRecordedId + + err = runtime.BindStyledParameterWithLocation("simple", false, "recordedId", runtime.ParamLocationPath, ctx.Param("recordedId"), &recordedId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter recordedId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PutRecordedRecordedIdUnprotect(ctx, recordedId) + return err +} + +// GetRecording converts echo context to params. +func (w *ServerInterfaceWrapper) GetRecording(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetRecordingParams + // ------------- Optional query parameter "offset" ------------- + + err = runtime.BindQueryParameter("form", true, false, "offset", ctx.QueryParams(), ¶ms.Offset) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter offset: %s", err)) + } + + // ------------- Optional query parameter "limit" ------------- + + err = runtime.BindQueryParameter("form", true, false, "limit", ctx.QueryParams(), ¶ms.Limit) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter limit: %s", err)) + } + + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetRecording(ctx, params) + return err +} + +// PostRecordingResettimer converts echo context to params. +func (w *ServerInterfaceWrapper) PostRecordingResettimer(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostRecordingResettimer(ctx) + return err +} + +// GetReserves converts echo context to params. +func (w *ServerInterfaceWrapper) GetReserves(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetReservesParams + // ------------- Optional query parameter "offset" ------------- + + err = runtime.BindQueryParameter("form", true, false, "offset", ctx.QueryParams(), ¶ms.Offset) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter offset: %s", err)) + } + + // ------------- Optional query parameter "limit" ------------- + + err = runtime.BindQueryParameter("form", true, false, "limit", ctx.QueryParams(), ¶ms.Limit) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter limit: %s", err)) + } + + // ------------- Optional query parameter "type" ------------- + + err = runtime.BindQueryParameter("form", true, false, "type", ctx.QueryParams(), ¶ms.Type) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter type: %s", err)) + } + + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // ------------- Optional query parameter "ruleId" ------------- + + err = runtime.BindQueryParameter("form", true, false, "ruleId", ctx.QueryParams(), ¶ms.RuleId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter ruleId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetReserves(ctx, params) + return err +} + +// PostReserves converts echo context to params. +func (w *ServerInterfaceWrapper) PostReserves(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostReserves(ctx) + return err +} + +// GetReservesCnts converts echo context to params. +func (w *ServerInterfaceWrapper) GetReservesCnts(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetReservesCnts(ctx) + return err +} + +// GetReservesLists converts echo context to params. +func (w *ServerInterfaceWrapper) GetReservesLists(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetReservesListsParams + // ------------- Required query parameter "startAt" ------------- + + err = runtime.BindQueryParameter("form", true, true, "startAt", ctx.QueryParams(), ¶ms.StartAt) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startAt: %s", err)) + } + + // ------------- Required query parameter "endAt" ------------- + + err = runtime.BindQueryParameter("form", true, true, "endAt", ctx.QueryParams(), ¶ms.EndAt) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endAt: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetReservesLists(ctx, params) + return err +} + +// PostReservesUpdate converts echo context to params. +func (w *ServerInterfaceWrapper) PostReservesUpdate(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostReservesUpdate(ctx) + return err +} + +// DeleteReservesReserveId converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteReservesReserveId(ctx echo.Context) error { + var err error + // ------------- Path parameter "reserveId" ------------- + var reserveId PathReserveId + + err = runtime.BindStyledParameterWithLocation("simple", false, "reserveId", runtime.ParamLocationPath, ctx.Param("reserveId"), &reserveId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter reserveId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteReservesReserveId(ctx, reserveId) + return err +} + +// GetReservesReserveId converts echo context to params. +func (w *ServerInterfaceWrapper) GetReservesReserveId(ctx echo.Context) error { + var err error + // ------------- Path parameter "reserveId" ------------- + var reserveId PathReserveId + + err = runtime.BindStyledParameterWithLocation("simple", false, "reserveId", runtime.ParamLocationPath, ctx.Param("reserveId"), &reserveId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter reserveId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetReservesReserveIdParams + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetReservesReserveId(ctx, reserveId, params) + return err +} + +// PutReservesReserveId converts echo context to params. +func (w *ServerInterfaceWrapper) PutReservesReserveId(ctx echo.Context) error { + var err error + // ------------- Path parameter "reserveId" ------------- + var reserveId PathReserveId + + err = runtime.BindStyledParameterWithLocation("simple", false, "reserveId", runtime.ParamLocationPath, ctx.Param("reserveId"), &reserveId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter reserveId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PutReservesReserveId(ctx, reserveId) + return err +} + +// DeleteReservesReserveIdOverlap converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteReservesReserveIdOverlap(ctx echo.Context) error { + var err error + // ------------- Path parameter "reserveId" ------------- + var reserveId PathReserveId + + err = runtime.BindStyledParameterWithLocation("simple", false, "reserveId", runtime.ParamLocationPath, ctx.Param("reserveId"), &reserveId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter reserveId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteReservesReserveIdOverlap(ctx, reserveId) + return err +} + +// DeleteReservesReserveIdSkip converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteReservesReserveIdSkip(ctx echo.Context) error { + var err error + // ------------- Path parameter "reserveId" ------------- + var reserveId PathReserveId + + err = runtime.BindStyledParameterWithLocation("simple", false, "reserveId", runtime.ParamLocationPath, ctx.Param("reserveId"), &reserveId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter reserveId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteReservesReserveIdSkip(ctx, reserveId) + return err +} + +// GetRules converts echo context to params. +func (w *ServerInterfaceWrapper) GetRules(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetRulesParams + // ------------- Optional query parameter "offset" ------------- + + err = runtime.BindQueryParameter("form", true, false, "offset", ctx.QueryParams(), ¶ms.Offset) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter offset: %s", err)) + } + + // ------------- Optional query parameter "limit" ------------- + + err = runtime.BindQueryParameter("form", true, false, "limit", ctx.QueryParams(), ¶ms.Limit) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter limit: %s", err)) + } + + // ------------- Optional query parameter "type" ------------- + + err = runtime.BindQueryParameter("form", true, false, "type", ctx.QueryParams(), ¶ms.Type) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter type: %s", err)) + } + + // ------------- Optional query parameter "keyword" ------------- + + err = runtime.BindQueryParameter("form", true, false, "keyword", ctx.QueryParams(), ¶ms.Keyword) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter keyword: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetRules(ctx, params) + return err +} + +// PostRules converts echo context to params. +func (w *ServerInterfaceWrapper) PostRules(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostRules(ctx) + return err +} + +// GetRulesKeyword converts echo context to params. +func (w *ServerInterfaceWrapper) GetRulesKeyword(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetRulesKeywordParams + // ------------- Optional query parameter "offset" ------------- + + err = runtime.BindQueryParameter("form", true, false, "offset", ctx.QueryParams(), ¶ms.Offset) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter offset: %s", err)) + } + + // ------------- Optional query parameter "limit" ------------- + + err = runtime.BindQueryParameter("form", true, false, "limit", ctx.QueryParams(), ¶ms.Limit) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter limit: %s", err)) + } + + // ------------- Optional query parameter "keyword" ------------- + + err = runtime.BindQueryParameter("form", true, false, "keyword", ctx.QueryParams(), ¶ms.Keyword) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter keyword: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetRulesKeyword(ctx, params) + return err +} + +// PostRulesKeyword converts echo context to params. +func (w *ServerInterfaceWrapper) PostRulesKeyword(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostRulesKeyword(ctx) + return err +} + +// DeleteRulesRuleId converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteRulesRuleId(ctx echo.Context) error { + var err error + // ------------- Path parameter "ruleId" ------------- + var ruleId PathRuleId + + err = runtime.BindStyledParameterWithLocation("simple", false, "ruleId", runtime.ParamLocationPath, ctx.Param("ruleId"), &ruleId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter ruleId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteRulesRuleId(ctx, ruleId) + return err +} + +// GetRulesRuleId converts echo context to params. +func (w *ServerInterfaceWrapper) GetRulesRuleId(ctx echo.Context) error { + var err error + // ------------- Path parameter "ruleId" ------------- + var ruleId PathRuleId + + err = runtime.BindStyledParameterWithLocation("simple", false, "ruleId", runtime.ParamLocationPath, ctx.Param("ruleId"), &ruleId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter ruleId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetRulesRuleId(ctx, ruleId) + return err +} + +// PutRulesRuleId converts echo context to params. +func (w *ServerInterfaceWrapper) PutRulesRuleId(ctx echo.Context) error { + var err error + // ------------- Path parameter "ruleId" ------------- + var ruleId PathRuleId + + err = runtime.BindStyledParameterWithLocation("simple", false, "ruleId", runtime.ParamLocationPath, ctx.Param("ruleId"), &ruleId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter ruleId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PutRulesRuleId(ctx, ruleId) + return err +} + +// PutRulesRuleIdDisable converts echo context to params. +func (w *ServerInterfaceWrapper) PutRulesRuleIdDisable(ctx echo.Context) error { + var err error + // ------------- Path parameter "ruleId" ------------- + var ruleId PathRuleId + + err = runtime.BindStyledParameterWithLocation("simple", false, "ruleId", runtime.ParamLocationPath, ctx.Param("ruleId"), &ruleId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter ruleId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PutRulesRuleIdDisable(ctx, ruleId) + return err +} + +// PutRulesRuleIdEnable converts echo context to params. +func (w *ServerInterfaceWrapper) PutRulesRuleIdEnable(ctx echo.Context) error { + var err error + // ------------- Path parameter "ruleId" ------------- + var ruleId PathRuleId + + err = runtime.BindStyledParameterWithLocation("simple", false, "ruleId", runtime.ParamLocationPath, ctx.Param("ruleId"), &ruleId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter ruleId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PutRulesRuleIdEnable(ctx, ruleId) + return err +} + +// GetSchedules converts echo context to params. +func (w *ServerInterfaceWrapper) GetSchedules(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetSchedulesParams + // ------------- Required query parameter "startAt" ------------- + + err = runtime.BindQueryParameter("form", true, true, "startAt", ctx.QueryParams(), ¶ms.StartAt) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startAt: %s", err)) + } + + // ------------- Required query parameter "endAt" ------------- + + err = runtime.BindQueryParameter("form", true, true, "endAt", ctx.QueryParams(), ¶ms.EndAt) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter endAt: %s", err)) + } + + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // ------------- Optional query parameter "needsRawExtended" ------------- + + err = runtime.BindQueryParameter("form", true, false, "needsRawExtended", ctx.QueryParams(), ¶ms.NeedsRawExtended) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter needsRawExtended: %s", err)) + } + + // ------------- Optional query parameter "isFree" ------------- + + err = runtime.BindQueryParameter("form", true, false, "isFree", ctx.QueryParams(), ¶ms.IsFree) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isFree: %s", err)) + } + + // ------------- Required query parameter "GR" ------------- + + err = runtime.BindQueryParameter("form", true, true, "GR", ctx.QueryParams(), ¶ms.GR) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter GR: %s", err)) + } + + // ------------- Required query parameter "BS" ------------- + + err = runtime.BindQueryParameter("form", true, true, "BS", ctx.QueryParams(), ¶ms.BS) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter BS: %s", err)) + } + + // ------------- Required query parameter "CS" ------------- + + err = runtime.BindQueryParameter("form", true, true, "CS", ctx.QueryParams(), ¶ms.CS) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter CS: %s", err)) + } + + // ------------- Required query parameter "SKY" ------------- + + err = runtime.BindQueryParameter("form", true, true, "SKY", ctx.QueryParams(), ¶ms.SKY) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter SKY: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetSchedules(ctx, params) + return err +} + +// GetSchedulesBroadcasting converts echo context to params. +func (w *ServerInterfaceWrapper) GetSchedulesBroadcasting(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetSchedulesBroadcastingParams + // ------------- Optional query parameter "time" ------------- + + err = runtime.BindQueryParameter("form", true, false, "time", ctx.QueryParams(), ¶ms.Time) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter time: %s", err)) + } + + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetSchedulesBroadcasting(ctx, params) + return err +} + +// GetSchedulesDetailProgramId converts echo context to params. +func (w *ServerInterfaceWrapper) GetSchedulesDetailProgramId(ctx echo.Context) error { + var err error + // ------------- Path parameter "programId" ------------- + var programId PathProgramId + + err = runtime.BindStyledParameterWithLocation("simple", false, "programId", runtime.ParamLocationPath, ctx.Param("programId"), &programId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter programId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetSchedulesDetailProgramIdParams + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetSchedulesDetailProgramId(ctx, programId, params) + return err +} + +// PostSchedulesSearch converts echo context to params. +func (w *ServerInterfaceWrapper) PostSchedulesSearch(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostSchedulesSearch(ctx) + return err +} + +// GetSchedulesChannelId converts echo context to params. +func (w *ServerInterfaceWrapper) GetSchedulesChannelId(ctx echo.Context) error { + var err error + // ------------- Path parameter "channelId" ------------- + var channelId PathChannelId + + err = runtime.BindStyledParameterWithLocation("simple", false, "channelId", runtime.ParamLocationPath, ctx.Param("channelId"), &channelId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter channelId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetSchedulesChannelIdParams + // ------------- Required query parameter "startAt" ------------- + + err = runtime.BindQueryParameter("form", true, true, "startAt", ctx.QueryParams(), ¶ms.StartAt) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter startAt: %s", err)) + } + + // ------------- Required query parameter "days" ------------- + + err = runtime.BindQueryParameter("form", true, true, "days", ctx.QueryParams(), ¶ms.Days) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter days: %s", err)) + } + + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // ------------- Optional query parameter "needsRawExtended" ------------- + + err = runtime.BindQueryParameter("form", true, false, "needsRawExtended", ctx.QueryParams(), ¶ms.NeedsRawExtended) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter needsRawExtended: %s", err)) + } + + // ------------- Optional query parameter "isFree" ------------- + + err = runtime.BindQueryParameter("form", true, false, "isFree", ctx.QueryParams(), ¶ms.IsFree) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isFree: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetSchedulesChannelId(ctx, channelId, params) + return err +} + +// GetStorages converts echo context to params. +func (w *ServerInterfaceWrapper) GetStorages(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStorages(ctx) + return err +} + +// DeleteStreams converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteStreams(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteStreams(ctx) + return err +} + +// GetStreams converts echo context to params. +func (w *ServerInterfaceWrapper) GetStreams(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetStreamsParams + // ------------- Required query parameter "isHalfWidth" ------------- + + err = runtime.BindQueryParameter("form", true, true, "isHalfWidth", ctx.QueryParams(), ¶ms.IsHalfWidth) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isHalfWidth: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStreams(ctx, params) + return err +} + +// GetStreamsLiveChannelIdHls converts echo context to params. +func (w *ServerInterfaceWrapper) GetStreamsLiveChannelIdHls(ctx echo.Context) error { + var err error + // ------------- Path parameter "channelId" ------------- + var channelId PathChannelId + + err = runtime.BindStyledParameterWithLocation("simple", false, "channelId", runtime.ParamLocationPath, ctx.Param("channelId"), &channelId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter channelId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetStreamsLiveChannelIdHlsParams + // ------------- Required query parameter "mode" ------------- + + err = runtime.BindQueryParameter("form", true, true, "mode", ctx.QueryParams(), ¶ms.Mode) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter mode: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStreamsLiveChannelIdHls(ctx, channelId, params) + return err +} + +// GetStreamsLiveChannelIdM2ts converts echo context to params. +func (w *ServerInterfaceWrapper) GetStreamsLiveChannelIdM2ts(ctx echo.Context) error { + var err error + // ------------- Path parameter "channelId" ------------- + var channelId PathChannelId + + err = runtime.BindStyledParameterWithLocation("simple", false, "channelId", runtime.ParamLocationPath, ctx.Param("channelId"), &channelId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter channelId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetStreamsLiveChannelIdM2tsParams + // ------------- Required query parameter "mode" ------------- + + err = runtime.BindQueryParameter("form", true, true, "mode", ctx.QueryParams(), ¶ms.Mode) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter mode: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStreamsLiveChannelIdM2ts(ctx, channelId, params) + return err +} + +// GetStreamsLiveChannelIdM2tsPlaylist converts echo context to params. +func (w *ServerInterfaceWrapper) GetStreamsLiveChannelIdM2tsPlaylist(ctx echo.Context) error { + var err error + // ------------- Path parameter "channelId" ------------- + var channelId PathChannelId + + err = runtime.BindStyledParameterWithLocation("simple", false, "channelId", runtime.ParamLocationPath, ctx.Param("channelId"), &channelId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter channelId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetStreamsLiveChannelIdM2tsPlaylistParams + // ------------- Required query parameter "mode" ------------- + + err = runtime.BindQueryParameter("form", true, true, "mode", ctx.QueryParams(), ¶ms.Mode) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter mode: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStreamsLiveChannelIdM2tsPlaylist(ctx, channelId, params) + return err +} + +// GetStreamsLiveChannelIdM2tsll converts echo context to params. +func (w *ServerInterfaceWrapper) GetStreamsLiveChannelIdM2tsll(ctx echo.Context) error { + var err error + // ------------- Path parameter "channelId" ------------- + var channelId PathChannelId + + err = runtime.BindStyledParameterWithLocation("simple", false, "channelId", runtime.ParamLocationPath, ctx.Param("channelId"), &channelId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter channelId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetStreamsLiveChannelIdM2tsllParams + // ------------- Required query parameter "mode" ------------- + + err = runtime.BindQueryParameter("form", true, true, "mode", ctx.QueryParams(), ¶ms.Mode) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter mode: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStreamsLiveChannelIdM2tsll(ctx, channelId, params) + return err +} + +// GetStreamsLiveChannelIdMp4 converts echo context to params. +func (w *ServerInterfaceWrapper) GetStreamsLiveChannelIdMp4(ctx echo.Context) error { + var err error + // ------------- Path parameter "channelId" ------------- + var channelId PathChannelId + + err = runtime.BindStyledParameterWithLocation("simple", false, "channelId", runtime.ParamLocationPath, ctx.Param("channelId"), &channelId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter channelId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetStreamsLiveChannelIdMp4Params + // ------------- Required query parameter "mode" ------------- + + err = runtime.BindQueryParameter("form", true, true, "mode", ctx.QueryParams(), ¶ms.Mode) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter mode: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStreamsLiveChannelIdMp4(ctx, channelId, params) + return err +} + +// GetStreamsLiveChannelIdWebm converts echo context to params. +func (w *ServerInterfaceWrapper) GetStreamsLiveChannelIdWebm(ctx echo.Context) error { + var err error + // ------------- Path parameter "channelId" ------------- + var channelId PathChannelId + + err = runtime.BindStyledParameterWithLocation("simple", false, "channelId", runtime.ParamLocationPath, ctx.Param("channelId"), &channelId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter channelId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetStreamsLiveChannelIdWebmParams + // ------------- Required query parameter "mode" ------------- + + err = runtime.BindQueryParameter("form", true, true, "mode", ctx.QueryParams(), ¶ms.Mode) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter mode: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStreamsLiveChannelIdWebm(ctx, channelId, params) + return err +} + +// GetStreamsRecordedVideoFileIdHls converts echo context to params. +func (w *ServerInterfaceWrapper) GetStreamsRecordedVideoFileIdHls(ctx echo.Context) error { + var err error + // ------------- Path parameter "videoFileId" ------------- + var videoFileId PathVideoFileId + + err = runtime.BindStyledParameterWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, ctx.Param("videoFileId"), &videoFileId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter videoFileId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetStreamsRecordedVideoFileIdHlsParams + // ------------- Required query parameter "ss" ------------- + + err = runtime.BindQueryParameter("form", true, true, "ss", ctx.QueryParams(), ¶ms.Ss) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter ss: %s", err)) + } + + // ------------- Required query parameter "mode" ------------- + + err = runtime.BindQueryParameter("form", true, true, "mode", ctx.QueryParams(), ¶ms.Mode) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter mode: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStreamsRecordedVideoFileIdHls(ctx, videoFileId, params) + return err +} + +// GetStreamsRecordedVideoFileIdMp4 converts echo context to params. +func (w *ServerInterfaceWrapper) GetStreamsRecordedVideoFileIdMp4(ctx echo.Context) error { + var err error + // ------------- Path parameter "videoFileId" ------------- + var videoFileId PathVideoFileId + + err = runtime.BindStyledParameterWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, ctx.Param("videoFileId"), &videoFileId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter videoFileId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetStreamsRecordedVideoFileIdMp4Params + // ------------- Required query parameter "ss" ------------- + + err = runtime.BindQueryParameter("form", true, true, "ss", ctx.QueryParams(), ¶ms.Ss) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter ss: %s", err)) + } + + // ------------- Required query parameter "mode" ------------- + + err = runtime.BindQueryParameter("form", true, true, "mode", ctx.QueryParams(), ¶ms.Mode) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter mode: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStreamsRecordedVideoFileIdMp4(ctx, videoFileId, params) + return err +} + +// GetStreamsRecordedVideoFileIdWebm converts echo context to params. +func (w *ServerInterfaceWrapper) GetStreamsRecordedVideoFileIdWebm(ctx echo.Context) error { + var err error + // ------------- Path parameter "videoFileId" ------------- + var videoFileId PathVideoFileId + + err = runtime.BindStyledParameterWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, ctx.Param("videoFileId"), &videoFileId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter videoFileId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetStreamsRecordedVideoFileIdWebmParams + // ------------- Required query parameter "ss" ------------- + + err = runtime.BindQueryParameter("form", true, true, "ss", ctx.QueryParams(), ¶ms.Ss) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter ss: %s", err)) + } + + // ------------- Required query parameter "mode" ------------- + + err = runtime.BindQueryParameter("form", true, true, "mode", ctx.QueryParams(), ¶ms.Mode) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter mode: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetStreamsRecordedVideoFileIdWebm(ctx, videoFileId, params) + return err +} + +// DeleteStreamsStreamId converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteStreamsStreamId(ctx echo.Context) error { + var err error + // ------------- Path parameter "streamId" ------------- + var streamId PathStreamId + + err = runtime.BindStyledParameterWithLocation("simple", false, "streamId", runtime.ParamLocationPath, ctx.Param("streamId"), &streamId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter streamId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteStreamsStreamId(ctx, streamId) + return err +} + +// PutStreamsStreamIdKeep converts echo context to params. +func (w *ServerInterfaceWrapper) PutStreamsStreamIdKeep(ctx echo.Context) error { + var err error + // ------------- Path parameter "streamId" ------------- + var streamId PathStreamId + + err = runtime.BindStyledParameterWithLocation("simple", false, "streamId", runtime.ParamLocationPath, ctx.Param("streamId"), &streamId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter streamId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PutStreamsStreamIdKeep(ctx, streamId) + return err +} + +// GetTags converts echo context to params. +func (w *ServerInterfaceWrapper) GetTags(ctx echo.Context) error { + var err error + + // Parameter object where we will unmarshal all parameters from the context + var params GetTagsParams + // ------------- Optional query parameter "offset" ------------- + + err = runtime.BindQueryParameter("form", true, false, "offset", ctx.QueryParams(), ¶ms.Offset) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter offset: %s", err)) + } + + // ------------- Optional query parameter "limit" ------------- + + err = runtime.BindQueryParameter("form", true, false, "limit", ctx.QueryParams(), ¶ms.Limit) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter limit: %s", err)) + } + + // ------------- Optional query parameter "name" ------------- + + err = runtime.BindQueryParameter("form", true, false, "name", ctx.QueryParams(), ¶ms.Name) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter name: %s", err)) + } + + // ------------- Optional query parameter "excludeTagId" ------------- + + err = runtime.BindQueryParameter("form", true, false, "excludeTagId", ctx.QueryParams(), ¶ms.ExcludeTagId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter excludeTagId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetTags(ctx, params) + return err +} + +// PostTags converts echo context to params. +func (w *ServerInterfaceWrapper) PostTags(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostTags(ctx) + return err +} + +// DeleteTagsTagId converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteTagsTagId(ctx echo.Context) error { + var err error + // ------------- Path parameter "tagId" ------------- + var tagId PathRecordedTagId + + err = runtime.BindStyledParameterWithLocation("simple", false, "tagId", runtime.ParamLocationPath, ctx.Param("tagId"), &tagId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter tagId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteTagsTagId(ctx, tagId) + return err +} + +// PutTagsTagId converts echo context to params. +func (w *ServerInterfaceWrapper) PutTagsTagId(ctx echo.Context) error { + var err error + // ------------- Path parameter "tagId" ------------- + var tagId PathRecordedTagId + + err = runtime.BindStyledParameterWithLocation("simple", false, "tagId", runtime.ParamLocationPath, ctx.Param("tagId"), &tagId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter tagId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PutTagsTagId(ctx, tagId) + return err +} + +// DeleteTagsTagIdRelate converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteTagsTagIdRelate(ctx echo.Context) error { + var err error + // ------------- Path parameter "tagId" ------------- + var tagId PathRecordedTagId + + err = runtime.BindStyledParameterWithLocation("simple", false, "tagId", runtime.ParamLocationPath, ctx.Param("tagId"), &tagId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter tagId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params DeleteTagsTagIdRelateParams + // ------------- Optional query parameter "recordedId" ------------- + + err = runtime.BindQueryParameter("form", true, false, "recordedId", ctx.QueryParams(), ¶ms.RecordedId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter recordedId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteTagsTagIdRelate(ctx, tagId, params) + return err +} + +// PutTagsTagIdRelate converts echo context to params. +func (w *ServerInterfaceWrapper) PutTagsTagIdRelate(ctx echo.Context) error { + var err error + // ------------- Path parameter "tagId" ------------- + var tagId PathRecordedTagId + + err = runtime.BindStyledParameterWithLocation("simple", false, "tagId", runtime.ParamLocationPath, ctx.Param("tagId"), &tagId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter tagId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PutTagsTagIdRelate(ctx, tagId) + return err +} + +// PostThumbnails converts echo context to params. +func (w *ServerInterfaceWrapper) PostThumbnails(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostThumbnails(ctx) + return err +} + +// PostThumbnailsCleanup converts echo context to params. +func (w *ServerInterfaceWrapper) PostThumbnailsCleanup(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostThumbnailsCleanup(ctx) + return err +} + +// GetThumbnailsThumbnailId converts echo context to params. +func (w *ServerInterfaceWrapper) GetThumbnailsThumbnailId(ctx echo.Context) error { + var err error + // ------------- Path parameter "thumbnailId" ------------- + var thumbnailId PathThumbnailId + + err = runtime.BindStyledParameterWithLocation("simple", false, "thumbnailId", runtime.ParamLocationPath, ctx.Param("thumbnailId"), &thumbnailId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter thumbnailId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetThumbnailsThumbnailId(ctx, thumbnailId) + return err +} + +// GetVersion converts echo context to params. +func (w *ServerInterfaceWrapper) GetVersion(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetVersion(ctx) + return err +} + +// PostVideosUpload converts echo context to params. +func (w *ServerInterfaceWrapper) PostVideosUpload(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostVideosUpload(ctx) + return err +} + +// DeleteVideosVideoFileId converts echo context to params. +func (w *ServerInterfaceWrapper) DeleteVideosVideoFileId(ctx echo.Context) error { + var err error + // ------------- Path parameter "videoFileId" ------------- + var videoFileId PathVideoFileId + + err = runtime.BindStyledParameterWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, ctx.Param("videoFileId"), &videoFileId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter videoFileId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.DeleteVideosVideoFileId(ctx, videoFileId) + return err +} + +// GetVideosVideoFileId converts echo context to params. +func (w *ServerInterfaceWrapper) GetVideosVideoFileId(ctx echo.Context) error { + var err error + // ------------- Path parameter "videoFileId" ------------- + var videoFileId PathVideoFileId + + err = runtime.BindStyledParameterWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, ctx.Param("videoFileId"), &videoFileId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter videoFileId: %s", err)) + } + + // Parameter object where we will unmarshal all parameters from the context + var params GetVideosVideoFileIdParams + // ------------- Optional query parameter "isDownload" ------------- + + err = runtime.BindQueryParameter("form", true, false, "isDownload", ctx.QueryParams(), ¶ms.IsDownload) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter isDownload: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetVideosVideoFileId(ctx, videoFileId, params) + return err +} + +// GetVideosVideoFileIdDuration converts echo context to params. +func (w *ServerInterfaceWrapper) GetVideosVideoFileIdDuration(ctx echo.Context) error { + var err error + // ------------- Path parameter "videoFileId" ------------- + var videoFileId PathVideoFileId + + err = runtime.BindStyledParameterWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, ctx.Param("videoFileId"), &videoFileId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter videoFileId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetVideosVideoFileIdDuration(ctx, videoFileId) + return err +} + +// PostVideosVideoFileIdKodi converts echo context to params. +func (w *ServerInterfaceWrapper) PostVideosVideoFileIdKodi(ctx echo.Context) error { + var err error + // ------------- Path parameter "videoFileId" ------------- + var videoFileId PathVideoFileId + + err = runtime.BindStyledParameterWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, ctx.Param("videoFileId"), &videoFileId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter videoFileId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.PostVideosVideoFileIdKodi(ctx, videoFileId) + return err +} + +// GetVideosVideoFileIdPlaylist converts echo context to params. +func (w *ServerInterfaceWrapper) GetVideosVideoFileIdPlaylist(ctx echo.Context) error { + var err error + // ------------- Path parameter "videoFileId" ------------- + var videoFileId PathVideoFileId + + err = runtime.BindStyledParameterWithLocation("simple", false, "videoFileId", runtime.ParamLocationPath, ctx.Param("videoFileId"), &videoFileId) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter videoFileId: %s", err)) + } + + // Invoke the callback with all the unmarshalled arguments + err = w.Handler.GetVideosVideoFileIdPlaylist(ctx, videoFileId) + return err +} + +// This is a simple interface which specifies echo.Route addition functions which +// are present on both echo.Echo and echo.Group, since we want to allow using +// either of them for path registration +type EchoRouter interface { + CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route + DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route + GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route + HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route + OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route + PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route + POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route + PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route + TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route +} + +// RegisterHandlers adds each server route to the EchoRouter. +func RegisterHandlers(router EchoRouter, si ServerInterface) { + RegisterHandlersWithBaseURL(router, si, "") +} + +// Registers handlers, and prepends BaseURL to the paths, so that the paths +// can be served under a prefix. +func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) { + + wrapper := ServerInterfaceWrapper{ + Handler: si, + } + + router.GET(baseURL+"/channels", wrapper.GetChannels) + router.GET(baseURL+"/channels/:channelId/logo", wrapper.GetChannelsChannelIdLogo) + router.GET(baseURL+"/config", wrapper.GetConfig) + router.GET(baseURL+"/dropLogs/:dropLogFileId", wrapper.GetDropLogsDropLogFileId) + router.GET(baseURL+"/encode", wrapper.GetEncode) + router.POST(baseURL+"/encode", wrapper.PostEncode) + router.DELETE(baseURL+"/encode/:encodeId", wrapper.DeleteEncodeEncodeId) + router.GET(baseURL+"/iptv/channel.m3u8", wrapper.GetIptvChannelM3u8) + router.GET(baseURL+"/iptv/epg.xml", wrapper.GetIptvEpgXml) + router.GET(baseURL+"/recorded", wrapper.GetRecorded) + router.POST(baseURL+"/recorded", wrapper.PostRecorded) + router.POST(baseURL+"/recorded/cleanup", wrapper.PostRecordedCleanup) + router.GET(baseURL+"/recorded/options", wrapper.GetRecordedOptions) + router.DELETE(baseURL+"/recorded/:recordedId", wrapper.DeleteRecordedRecordedId) + router.GET(baseURL+"/recorded/:recordedId", wrapper.GetRecordedRecordedId) + router.DELETE(baseURL+"/recorded/:recordedId/encode", wrapper.DeleteRecordedRecordedIdEncode) + router.PUT(baseURL+"/recorded/:recordedId/protect", wrapper.PutRecordedRecordedIdProtect) + router.PUT(baseURL+"/recorded/:recordedId/unprotect", wrapper.PutRecordedRecordedIdUnprotect) + router.GET(baseURL+"/recording", wrapper.GetRecording) + router.POST(baseURL+"/recording/resettimer", wrapper.PostRecordingResettimer) + router.GET(baseURL+"/reserves", wrapper.GetReserves) + router.POST(baseURL+"/reserves", wrapper.PostReserves) + router.GET(baseURL+"/reserves/cnts", wrapper.GetReservesCnts) + router.GET(baseURL+"/reserves/lists", wrapper.GetReservesLists) + router.POST(baseURL+"/reserves/update", wrapper.PostReservesUpdate) + router.DELETE(baseURL+"/reserves/:reserveId", wrapper.DeleteReservesReserveId) + router.GET(baseURL+"/reserves/:reserveId", wrapper.GetReservesReserveId) + router.PUT(baseURL+"/reserves/:reserveId", wrapper.PutReservesReserveId) + router.DELETE(baseURL+"/reserves/:reserveId/overlap", wrapper.DeleteReservesReserveIdOverlap) + router.DELETE(baseURL+"/reserves/:reserveId/skip", wrapper.DeleteReservesReserveIdSkip) + router.GET(baseURL+"/rules", wrapper.GetRules) + router.POST(baseURL+"/rules", wrapper.PostRules) + router.GET(baseURL+"/rules/keyword", wrapper.GetRulesKeyword) + router.POST(baseURL+"/rules/keyword", wrapper.PostRulesKeyword) + router.DELETE(baseURL+"/rules/:ruleId", wrapper.DeleteRulesRuleId) + router.GET(baseURL+"/rules/:ruleId", wrapper.GetRulesRuleId) + router.PUT(baseURL+"/rules/:ruleId", wrapper.PutRulesRuleId) + router.PUT(baseURL+"/rules/:ruleId/disable", wrapper.PutRulesRuleIdDisable) + router.PUT(baseURL+"/rules/:ruleId/enable", wrapper.PutRulesRuleIdEnable) + router.GET(baseURL+"/schedules", wrapper.GetSchedules) + router.GET(baseURL+"/schedules/broadcasting", wrapper.GetSchedulesBroadcasting) + router.GET(baseURL+"/schedules/detail/:programId", wrapper.GetSchedulesDetailProgramId) + router.POST(baseURL+"/schedules/search", wrapper.PostSchedulesSearch) + router.GET(baseURL+"/schedules/:channelId", wrapper.GetSchedulesChannelId) + router.GET(baseURL+"/storages", wrapper.GetStorages) + router.DELETE(baseURL+"/streams", wrapper.DeleteStreams) + router.GET(baseURL+"/streams", wrapper.GetStreams) + router.GET(baseURL+"/streams/live/:channelId/hls", wrapper.GetStreamsLiveChannelIdHls) + router.GET(baseURL+"/streams/live/:channelId/m2ts", wrapper.GetStreamsLiveChannelIdM2ts) + router.GET(baseURL+"/streams/live/:channelId/m2ts/playlist", wrapper.GetStreamsLiveChannelIdM2tsPlaylist) + router.GET(baseURL+"/streams/live/:channelId/m2tsll", wrapper.GetStreamsLiveChannelIdM2tsll) + router.GET(baseURL+"/streams/live/:channelId/mp4", wrapper.GetStreamsLiveChannelIdMp4) + router.GET(baseURL+"/streams/live/:channelId/webm", wrapper.GetStreamsLiveChannelIdWebm) + router.GET(baseURL+"/streams/recorded/:videoFileId/hls", wrapper.GetStreamsRecordedVideoFileIdHls) + router.GET(baseURL+"/streams/recorded/:videoFileId/mp4", wrapper.GetStreamsRecordedVideoFileIdMp4) + router.GET(baseURL+"/streams/recorded/:videoFileId/webm", wrapper.GetStreamsRecordedVideoFileIdWebm) + router.DELETE(baseURL+"/streams/:streamId", wrapper.DeleteStreamsStreamId) + router.PUT(baseURL+"/streams/:streamId/keep", wrapper.PutStreamsStreamIdKeep) + router.GET(baseURL+"/tags", wrapper.GetTags) + router.POST(baseURL+"/tags", wrapper.PostTags) + router.DELETE(baseURL+"/tags/:tagId", wrapper.DeleteTagsTagId) + router.PUT(baseURL+"/tags/:tagId", wrapper.PutTagsTagId) + router.DELETE(baseURL+"/tags/:tagId/relate", wrapper.DeleteTagsTagIdRelate) + router.PUT(baseURL+"/tags/:tagId/relate", wrapper.PutTagsTagIdRelate) + router.POST(baseURL+"/thumbnails", wrapper.PostThumbnails) + router.POST(baseURL+"/thumbnails/cleanup", wrapper.PostThumbnailsCleanup) + router.GET(baseURL+"/thumbnails/:thumbnailId", wrapper.GetThumbnailsThumbnailId) + router.GET(baseURL+"/version", wrapper.GetVersion) + router.POST(baseURL+"/videos/upload", wrapper.PostVideosUpload) + router.DELETE(baseURL+"/videos/:videoFileId", wrapper.DeleteVideosVideoFileId) + router.GET(baseURL+"/videos/:videoFileId", wrapper.GetVideosVideoFileId) + router.GET(baseURL+"/videos/:videoFileId/duration", wrapper.GetVideosVideoFileIdDuration) + router.POST(baseURL+"/videos/:videoFileId/kodi", wrapper.PostVideosVideoFileIdKodi) + router.GET(baseURL+"/videos/:videoFileId/playlist", wrapper.GetVideosVideoFileIdPlaylist) + +} + +// Base64 encoded, gzipped, json marshaled Swagger object +var swaggerSpec = []string{ + + "H4sIAAAAAAAC/+x973fURrLov6Iz732AdyaMPTh5Of6WYBI4McTX4yTvnj18kEftsWKNNFfSGHw53INm", + "En77wnoxhA13+RECDiyG3ZANgQT/MfLM2P/FO+pWS61Rd6ulmTEzu/lC4pHUVV1VXV1VXV11Olc2qjVD", + "B7pt5SZP52qyKVeBDUz41weKYquGPqdWgfenAqyyqda8n3KTuZ2t31qX7rZvNXZv/EnaV7X25/I51Xvw", + "H3VgruTyOV32PsvZ3tf5nFVeBFXZG+Z/m2AhN5n7X4UQdAE9tQqf6eop74NjpdyZM/nclLxixSG3rt5o", + "vbnZvvl9e/05A6jifZjPmeA/6qoJlNykbdYBiYS9UvPeU3UbVIAJgR3WlQ/sOLTOT43tV+fatxqtC68Z", + "0AD8kgcuxZw/BvYssIC5DOYgjt34bL+60HnxVbv5devu3xAl3MaW23jgNm+yOOCNQ2ID9Ho1N/mHnKxp", + "3luGWZW9/ykb+oKmlr2ZWEtqLZfPGcvA1ORa7oSH2NGZuc97ZUiIgwIW5Lpm5yYP5mnM8IAdtY7I2sIX", + "qmIvUmCuXtp5tNa+cb719KbrPPIp4dxyG5dd5zIDC5UYkYoM4puPz7xhaEDWET7WlHFS1wxZiaPiNtfd", + "xj3IgiduY81tnnUbD93mj27zqdv81W1eTEYrGJwio1E0PjIBmDGNiilXKbL61b32jVvt6292zzqus+k6", + "W110kfZ5M5yUyBfz0oKsWWBSat++SPzovXLlfGvzz5NS6+sN13m4n4m9h1My5oNlZuJSjyIzC5aBaVGW", + "1+7Zc7t3z6VAAo+UAHJaraoU7aLBn+lj42cUOS1O5HNVVVer3kIeo66gaaPykaqBY/KpkvqfgC+17dtn", + "Ww8euY2fvD8br6R9Sx+u2IDF8Kp8yvKGpGL27ngxEbXjACjWrHzy8Ckb6AqgLCkzfCi5zpXW1tc7Dx02", + "F/TuAROY8enCggUo3DDQ73QgwUPKrMcS5zwj24uHFmVdB9pRyoTRqmv97aykKhh+TYaS7YMvBx9n3WhC", + "8BihKdOo+XJCQ0oxjZqkGRVpQdUAEzElMkjKTdfD4rBeNhQqAm5jw9OjjR+RHmWiAPAIGaD7ypQGvoYe", + "McHWgk+zsiQEjtGZBWXDVIBCw8f0nzERMsOPM1ACg56TK1zotlxhYmDDbzMBhzYPDTCyeNhzxh9mgVqn", + "S763k3si94QJtZ5V2ku2Ceji5jZ+cZsX3OZjCPouk8YWHiGr1AUoYJzmFuvVeV1WqarJxg/ZTCc+z0CR", + "z1UFGCwdtOw95CugZeL7lOD/zVPxKdVy17ZA6uUsehiicPhUWasrIGEF7t560HpwA5kkUvRdhmOChsWv", + "hOipNqhaBE0s21T1Su5MsHXJpimvhPgdka1PTbWi6rLmEZomu489wW28dJuX4OKJmMSta0/cxln2/r3Y", + "NXzC9g1R+gSsnDRM6jJCZvcztGkwQC75n1NAYWJgSMdlmv8Lx2GYI3IViAzsa/+PgW5SSfrSbX4H/Ygn", + "DEAV+GXKzQaCm14eD/FIued0IRHZdMQwIQCGSIir4m4EsC4WBI5e9wCXbNm0aU7/7o3LrUeXuU6/5X/b", + "J7cf6eRjhgKSNoY70CR6vrPxtLX5Z5aJ7o2TUhciDGY0eWXGsFQEOuaonVvtXL+z/dtq57dNFl1SB17w", + "yx+W4gA/LDHAwAepnD788iEKmEMsMIcyg/l4Ng7m41kGGPggE5jSJ/8eh+P9SAeEnqSAdAY/xRHBY7Je", + "lzVks/sa5dMaXVq6zPf2xcuty+tB3NB1NuGucdNt/Ow2H7nNH3N5z6SuAdNWAQozqSYo24a5Qgk/Pnzs", + "Ns+7je/c5l/dxjO0PrZff7/98rI3cOxRsFxiO55qleRlUJKrYIoNzm385k3CW4h/goM/jmxxzkbr2hXX", + "+aZ190X74lnXebK99T+tp9+Q0YNuyubRIk0imkcfb2N97TabbvNC69qqVDb0BbUiIadHcp1Nyd9wYlOr", + "ySbQ7SnVFKQfMXqg9/H4eYlCKM85R+Ej773W3Retaxdc51lr6+vduxdoGJmRrUZ0j/C+qxrLABsJFMX0", + "dbPb5rh4affWAz4HLKNulkGX/clDinyVXIW5yT907YOxkfOhUo5M5USAmDH/JSjbHl4fKAph3rGW1+6V", + "v3euv4bR3+doVXEXU9nQDJogXPw7jVE61ehBwFrXVuOfdFHDF0kElDXHugaYugNv+wIzQyshHIkvVtBd", + "RPpL8b+BWmBOrYJSDZTVBbUs05FCBgEKiyKvlCVZvlcqiFNdA7ORDzzZlJfTTakkRz4HslleFIdfIt/v", + "ZiaNOF0guqfMYDlQEOUT9Z6/TVy41rp0p7V1u/P0uqeuPBW8xeB/8uoNAk3d8wsGYGJNLEfWqkiDsY0d", + "PBENiNy3bpzREByEITeY50dCaJpkUEZABKlaET9ho1qnepRRBSCIcF1EixMeQARV9DMNT/EQQVU+hcLA", + "77377sF34T/xeHA4oA2qtKk72PNbdZtP0FlfXJ+jIahevP8MnyAKRCPgq2fyuUV8pkL3eoPZtq6t7kPH", + "Nvtp28eibE0bFWNKtmXa/J66jRcBF93GWvuK4zrfuc5D1/mKs1+rSorYCmsPI6dA3fmAfdIwl5LF6Hjw", + "ItS35rJaFhC+UvBiTMtCwyF4TGKSx/tplD3ImLDBIUO3TUP7BKzAd0niR2Uh+Ct3IiqEViQqJEJhT3Jj", + "8aJgTPrZNSJ9+8f75JE1Po2GPhB066DT5XkqJyjsOQTtU5oS/hGumHXPpm08jy2XedOQlbJsUbz99u2L", + "rUu/uM7jAD/GkkMealwuDzF+Rz5g/HffaeO4dYkECXUTENtQ3eb9MCAmGP7zzKLDujyvYXsJb0koVsAy", + "SdsvL7jOFvTvog4g+j3iOG1SgxuucwUzhaEJfLym1WXAQsZt/gCh3Nh5eGPHeSE85lwp5TSluZLUl1kt", + "GYp6xLBsSo6F90hahM/S8A87JRShh1Zs6+qzneZvrvPYdyZoLmEqgJZRXgL20U9nDJOy0tDTA6oh7Z79", + "8/bWPdd5tP3bVuf6hu+nNf8H0otwHYk9E517sNc/L0gWXceaugw48pJmqEXN4owkHZkuSQnhO2HSVos2", + "F9ax4pwwMJ6G98bxg4GyKVdZqGhaIjLTxklpWraBXl6R9lVroGJbB760pM71jf39o0ptgovHzETfQJ0E", + "8zw1I30B5o/1CdgZiqJnr+WIPkohvGjrUNihhYzqO81aEQfV38VEE5sUuAxerlIgM2DBsy2+yInuf+nF", + "gjn+XskCG4G9EgA2BgPlusgv+Vzd1OCuQdlNP5udlkrwmcSwphUio5J7UjY7jQY6qi8Y5EaY6iOYJZDy", + "qy6DHMLFI+VD/E/QaEV+GDGK8oQrQij1wJAnqUo1dDmWapLBTo1tmEC2wXFwEr/LCsm2bzzfeXjVj8dC", + "ew1JaGf9ceenr/hRiqPpPPcI4FiWK4S388OPnRfPaQ48wIncosev+RxgZiL6k7t8r/XrTzRg8Ah+PPXR", + "u/9hMeuHBzN8SA+HoAkyYiHp4mn54FA8FfGt+vzHGahYJL8t9vDtwdTfdi3vSApQkBaAbwVAsrMXnkKs", + "PNYeQK4w19lEC3H7t9vtC9dEA7lZjt3YB1y06RDJpDQj+SJMh2/C88ynnjNM5h8zNgjTqB3S7YTRGk9w", + "uj3dbQSmaZj0YTzb6gdIsoQxkgOP0VRaeGpuytV5TdUrDNi/QB/7Bwj1Bjyz5CJBCxYGU8sHtOoGnMAp", + "esYNj1cozB0n0WFFtVFuwGz32VfXNgLTANAxROfnjd1vzyWlAciaZpw8rCvTcnmJFr170nr+pnXhvNu4", + "4jbWdjb+5m1OjAhLP44KezyZs+WKeLS16wyIYreRQhEhFI3zKVOtKVxGA3jWUWK6B31Rm3VdV/VKuqBz", + "JN2EFXo+Kat234eNnRER2JMg2dQmhxfK9kAr7ge3eZdBQjXFSWc+pxkVxhEM1XoSykphmAs1YJYBTdvt", + "nv17e/Vm+Iler84jgSKDGkL7EuQSTRkG6RX+gFSOeAoTXnTsSo2gzfnI3NwMdK/O4XOqXwIC5PK5BcOs", + "yjZaHgeL7K2H4twiNGjEB5YlVwBvq2re8zRz4zXE6SUjD0NWPtW1FZzeFbFVEJUwIBqRBPJRGZ58BX+Z", + "0jLFllivhhiCT5tTd0wzNjvvhdZv91u/XqWH7pt/hPS/xzCwVOszvWzoy8C0qV7EV/daDy62r37L2pfo", + "tvnOvY3Og1cp0m2iaFAJQd+iZU37dCE3+YcEtcLY48+cyHM2+aTtvUbewBG8LZOH94r9jBSOy0ok7CSh", + "kc1TzeBsZnCSUjgcJ4QCN8fJQ+6uxHb0KFU6g8+ZD+qKapTkas2zPmdlm+luQl786p82NR67jZ+gXoGp", + "jv56+2twEuQfEI+/NzY2li8Wx94dyxcnvP8/WPT+nZgY9/59f2xs7AQHt0DfJCXaJ41QpI3wEzw2Ehsn", + "8aoZhehJlIeZhrPAMrQ6L2gSZK/uPPqu1bzaevWQOIAvTozVcvncxPtjKvqP99f/LcL/jI+hX73/en8X", + "x99DLx/0ntPO6UnE6NkAXSjhvfU83N+eEYhVa6DibbCLB4rvTfj/fZcKFFsJ/hKdVi2bbncR6a1XYPLJ", + "AylYVBJMIH6M9oE+qYky1SpCAd7158nuXhm6diFsmmrHk0dymmbqcN9MmHbaCeQzWgPUibM3dt7dFTKA", + "joSN5dZErEuBIEzcRfU03yE8PSzvcUAyTUMK0CeuWc/k30Zs1b/smyIa8ntElv2hmjILXrWgY+dNNMlD", + "2375lJ3nMmMaNihTLdWd849bl9eRxKMU+tazNzt/uwcvHrLGQ1hS0UIjcbDJEJXOZjCavIIDpFBJ+46p", + "prxUN+s6vP2ARZFIdCQO5X+PkNO/zRrmokV2ggvG4iOSV5opI8IzPAF9HdwtFoccXPpgwo3aaQJ07bbu", + "8EAlnBFl+1EXxgRE8oBj9ho9PZV+vBFVAhFFFdU3vC2cvIJgidgt7Qe3Oy/ud/l1/HPI9CLZbUpSmAr1", + "f/qRo3ZaUuQxmEAAj0dLzj0FFoFSXQ9SldSR615vFKlEGjT7WlHSFXq4HYUlLNim4Jyvv9h3rhiE7Kvi", + "M2zabTd8eHJ1+/U/hNwHiBMejk02dh4OI5YffpVqtqyFxJiub3+LTxfjxZ+xJttA+Jqd76w6G4j3rrO5", + "e+P+7tnvtl9/4zp/TIot7cX5qx+SO6TT0rVwJC5yxNitAFD5N8rXnSf/aF274N8cYnh7fhk5Suj/z62X", + "L/nf+nXmaOJ3fnXnwXn+19aSWsuEdHcMtbsQnpXDgxMockgfPSlk8iB64iN6BXpcPMN/PJ7GTfXl8NBF", + "8aGLKYc+KD70QbGh0QnuDL7ZjMAcl6sgDYGot59TQUtDs96hpSGjMDTVmgIasIOryB8s2MAUvJ7ZenPF", + "dZ5ItiUJXrWuGkoqDrGOJtPQnTVGGmommyUcKp4IdQO7sBXbEEEfUkNSvgXADUl1ZU3EeTK6QSu2wqE+", + "RetqKqJKk14qirx0kE4w9NYxLPK8F4pJL3BBsNRgSj2WUhH1O+Pynz2EF9yN9nTuIVxll7okE3Qy7YNP", + "/SK9jMelJZX5bI48Q6W/hL02dm2RUDjo7/UjWMe8C/ORn4Rx+vfc1YFH5voQSRvhyJe/kiJLmFx++eiG", + "G19e/MWdz5pF7KsX9nmf73bgkz2P631KwchSHiLfY40GbjkJghZMHzgvoTKKeQn5lnkJOYqusykFoyec", + "hZKessC8yRhf6Can/JD0kVN+GjjIqb7rt3dcktk5wYg1ftGs7EXB/AGEvB/G/hWrkpVmzPiuxK653bq2", + "Cv9ESX1/QeW9qN4Gi6AWvzkAq5pLGt0feiADDE4GeHHDdX6RGLFEtWhxqXh6WlBcJkNubWgxYMSpCf6+", + "SAvSQFWYs+YWxWQ6j3UN+BVSGcnaeISucqnoTKXz07X2X27HiZMqu5rEQeSEQ2UmUnePFEvgTcO1pbBw", + "rMCBA36bhVbCZYeAzGKpkGlvOrSuPuOHXeRlQ1Wm6jVNLVPT8boqWaAtEeforbX/ey0xsAPgdUOegCVV", + "vagBUzWUOeODJFwhcm5jbdfD9Y9u43L79p3dG3+iLoAB3rLwZxwz+LpozZKYUldlNgbZqIebjIo0lJqp", + "rCI1lLqnrLo1lNqlzFI2tPqj8ZcDE9filGUSLVMRiQ91703cJKf2w8bOQ0fah0kcUYD7qZgrdROWvTsm", + "n2Imj8AmGrghUuvCuf1UwQxGUnXeSM+vJo7ETpFC+VupJhieYfOrUItwBuXy06oJVXTDBFMivEFGeooJ", + "oLEPJ9Ik48CfgBXaAvI4DtvWeAxD/3PlVevC90jjta7c6AXgLKgcPlWj0OjpdzsPr+7c2+hcfdPL+PT6", + "6ZzxqKcIcLTj/CyuLFiitkIJPY4YdZQyMysFgkuiDEo3Jp0pwuzQkxiRAhtU4HMGbs8WCyeUHhjsxEIK", + "okQMTPUs1CpNF6HbHJ1nX7W+/Xs6ULCFnVCtE2+HtnjbMutWY5oUMejMiHtUAfA0ThVEiOdRlcqLQKGW", + "3vSTgO9tsC+UE8UnudT3YcC9Wgs8ST/cZIl+TlyhtFiJUTli2BPE9EjQnJk6m4EBkjjrTGU1/8XqYVIK", + "U1Lm/dht3keFGzvrj1tXf6bnd+xVaU1W1UxSnLi3eUlxwrdbWLL0r3Jj4Pfc/6wHh5FYey/mUJbCLwNJ", + "lv+XOWL7VzkU459ZBZ1B0eEVXYuKW000FUwxovBr/DiLL8NCQRa1p96l8fWo0XuBkqFXv6UuDCl0m3xh", + "8QSjP+X9DVzCn5woz2RMzzMqo0gvQMC7SGLTW7mKnXz9Gk+U3kab9GnE7qmbsk6rEEG2rHKdy27jomfT", + "EqPva99q7JfGpXek4sG8hJ7gJhZh65bOozXX8aNYrrO5u/6z66xDixTihnrPjUv/Jb03Jv0f6V3vn+KE", + "1Hm0xijZK5sJ7bUSMZLGvEduY00ak1xnw3Vuus4daUz6L2kficN+6R1pXILov3GdRzBBm6BIdAZUZE8C", + "QAu6f3u7ffN79LE0dmpsPO/9W4T/TsB/3/f+HR/z/i2OSfmxUxNj8I7Kze/ds7dbt++4zpPWszetrdtY", + "K2y6ziNJ1hWp/ev1zqanNRCQZCS7hA9iTJc4XYGqe1rVl+aMTwxFZSnCJUNRXecl0dcIXcF/5jbWds86", + "sEgzQnvDdVYFmjZ5A9LDQX5rIc9MgOWs2a2LuuYZDEmfK+EedJWbRo9SlTKAPeH8DpmMMkeRNp2+lNHD", + "AhbR7FO4I2dUvfgPqDO3DVOuAD6af0WFYlilhNLtwD7A3k7zyFGS0EbVwTuX/tH+0Ym7UMuyqtFPnzo/", + "vHKd1dbmL7vnr0r75v1u1pRbC/RLSX5hil/cxjOGgcwI1XR+vpoMtG7RrGo0Ve6n9KIvIRn8oblRn3Tt", + "Z2nrg1wavUkTHqlngYoMlDSzvatUSi0ltKcOMwcDtheNa8jyGngQh7rSviPTJckvnoQ3bvR0f6rGd7xK", + "xjHbl3WdkDlflqebsSNdNl829X6AMRZ5Hwcbl/vT0I7oM22j5jF+ibVAPqIOIG57K2IRh/gmrVbX2exs", + "bO7e+wtRECZSDNn748h0KUdcJMaP8A/eY1q5GG7fa1jU567bXOXXvYyWjOaUwY5vX7piGio9A1416GW7", + "q3KZ+vtJVacntMRITwgkwxmR9lUt+sb1WU0zZCWQGXYOA61HZmPNbdwPq4riE6woTRb86rFBcb15VZdh", + "A9PYlL1XRSIZAbp4eQwy8y+1FqnPT/Unn3FZBSeP91hFLtLCkkYmAgzBAPS/1IX+OTAthoxcQxYe99b+", + "cvg5H3P8IhWHoCCDmKQycPHmyDIXKaMwths1nUpmW6g+SHim+wWY3355yXU2A1ZTm7JZ6n8CflKqp/Ma", + "D9zGK3pOVfrVxrnD7+8pECku26b8jBlRRYOjFvHMYeZArcvrneuvd9d/3teJNLTD5kbXNIKBuHjTj7wo", + "GLO2ligtBcUOmmHEXgnztHGjl/gm6E1N9XcuTS0D3YKQ/HbRx47OoX4Eucncom3XrMlCoaLai/X5A2Wj", + "WtAO2npdLxye+bhkQ4IU5jVjvlCVLRuYhemjhw4fLx1GB/q2t/xyoFaxbNw/NFjcueKBiQNFFNAEulxT", + "c5O5gwfGDoxDLWQvQuYVyAoeFWBzDjL9QumNNTIYm4OjI755nMl9DOxDYU0NE1g1Q7eQoBTHxvw8fxxJ", + "l2sorc+b45cWEiGxPu+RJnuQ3KJY34SRrJuucwc5GgtyXbP7hheqQUtBaPvVhfbtOxDwY3j87FeehavA", + "qler3n4cwxshncOJl0S9khPedwH3CqcDk/FMQTMqRjI74V0MeEIuztHAR5v2QMDNTK4CG5gWM3c8fKUw", + "I9uLhJd3IlE81KpcAYUaLIDFYTFtJlEuT4xRWtEcN2zpI6OuK0MtB2hmiXIQtG+jMt0PEYqvYDTcINcv", + "gkAhEAvX4V63Eazj3EKzRbzyi/1ZhdMK2THgDJN7lM4BySz0awVa0a4EWZZsdw+GxI/8l4/Jp0qeFSKw", + "0G1wyi7UNBm6W3EecAmQdqVPjL8naK25zpXWg0cwPH/Ldf7bI/QQSl6cOITgYVnzRS9sakoXNFqrAQFZ", + "Cy5bphOuo8S5qICQ9EDisL0Chc5Jsx5uxUPFPqaAQFg5o2ZYyax3G2tkR6oY02cMK+S6Z8MDy/7QUFb6", + "RpYPFAWVRI90ewhO2iOeg23WwZmY+Iz3E5egwX6y/Hj+ok+6J6iN0MgID8KbJjah8iicxm39zyAp0oAN", + "ROQJ5kbDKw+N19CfpAoWusqNiB2028iya4W9OhiaJTW+I6UH4hNgsVWt2cvYjzhQPVh/n7k9HJ2Z+xzX", + "85Y01bIlgb3haM1e9o3+Y97gqTeJmbnPIxtFsv2BAtXH4HJNt62ceqdaA5XPZqepZghr6sMtGByuESLh", + "SQEpEKBWOXCqqvFlAdQqoiJwuFb5f1VtL7jvfTIlr1ipeQ9nGydz1yRHgNkRjOk8JvsDUflLFqgUYPFs", + "2G+zBxswmbmfLixYwBZyQmA2oIi8WLNgGZgWEHn53+rAXAkuPYu9Th5si31Bpr4Kf4Rvnom+f0S2cMUU", + "VFZ5kBY4LoRKkWyGpA33OiORjq2zsFcW09ymNKBsrJENKDl2N7HWBmF5sxrX7rHRTWnjyRQeTiPPETDC", + "E+dAFy1SjRfKGpD1OrwzyRM4aBU+w0kAP4Ynx8nSdsiHIGJMJwEbhbXNwl6AGUZYa523t9KS5FNstbii", + "+8C1dncJebYOT5jRSKh07hwEmH86PO3nOsiBlJFlXhnuMObDbFciQUqXmMyROJFqHWMcR2ThInRZOzJn", + "TaL0wdRWbx/5kh+eqGlXb1DGomeQTCAqj5Py193GFde5I6mwPpxEGda5ghg/vEJHpUJKbUFE58Wjai3n", + "dvvp/ZTaI2O8PpMOYaM8UvE0hHRajtZQhxZoltV5VhnqD0V2hkKXjVB9D5Z5VqdoIL8pzB5vEEn4j8jG", + "wZ9GWu7X9Z74/6R94bXr3BJj+2cBrLfPeIT4CLM8pDyX335nNo49sf3yaUpjAvV2SsfBgQTF9tTI4DgV", + "NBKOgmgFeDNsAY/RXcJUMIEFbFutApPtyOOKh1swWeEvMNt3rXVuFV3pSHTkVb0yG0IRWepJAIebGXHs", + "A9S5LAlrulKXN1kRVmhtB7VY3/rSDtHxM/f7HaOPxMgHqzt8qtLFg8agURBWptrwZ8uOKmNhT87dIARy", + "EDFkajf7t5C04WPAFpBRStZAGMdyNAi5IFVXoex3LOPpr/XnKZQXbIE2+OUMwbBX9PrzUVvO6895aznC", + "Mw2X2OcwLSign3r3QQX8025BJf/ioYDmPwxvJu6FzkdTYS9rJo1GwlqJYi8sPfWa4hcy420P4RHTty/a", + "N7zVhGotCOwWnyEA4lYjG9bobMQB9gh1AT6cDhpecE8Agt1a6AQAjR22/Mjm5gcNQ06kMf1HJP6P0KUE", + "/wnDiX4nJhqJzmjc9403Q+WeE70qKFdwhAg38ndxOLN0NhMMdVrYr33xcuvyerC6fOXICfIOYvH33+o/", + "rKh2b5Y/h0zBHjL8hjqJN0I63aZRMMLecwmbR9Bb4tI/2l9f9jy/R9+l3kvCXlt7tqUw8R4J+4yBfUou", + "W34LwWQWw9OHnljsN1nbS/7SkR4V/tKw5/AXV29k3N+LVDkXMSn8MuMjGCyM5qIO1DaBRKJdyGHSe8iP", + "nKN4xw0LOGHOHa6w+ZRABNAXsQFd3iL7hL2NwB8sjsoRjZG6pYWRjsf+fIkIdFCBaHXB10X4glB3j7IE", + "pYRX9hDopr3VNGTbN65gMeiKChCPni5izWegeimUst/V0z+VejqN2tTyr44S4iISGvMG9o8bM1m4/JPK", + "ZNxGZCHH42LBsk3cKYTs1cHxoG9KPElz01maJnvVI6o01AmroUBw7Mt6gkAkhqz6KRBDsQNwlcEIBadC", + "JyMWmWJq64KiWrhybaJodL66h9q+CUnHlD/ynmpuAsURUd4BxmL8CrvHJq9k3KVPiF1Bhdo95BaB4aj4", + "7xhjBrcssuEHdfMNWl4Jh4zCJiKDP+Dve8rYcQAUa5ZojiQE4iMT4MIwIh9gDf/xbJq3PyyleftQqrdL", + "n/z7YG2eUCgoUs2WseFeZl14x8yYcHV1rbbCvGnISlm2bF7mdvv6m/Y3d7dfPg26zQVA0izDD0lYaZfk", + "B4riDer31xye42CuPIkRbujLb7LmICRhCrBlVSucruEmc+yqfl0ORA8afwoCDfvaZdmdya54wydvkd5k", + "iWkIoopt5DMRsmtC1IOYnSpG9nGLRS6ZsbtAItGF8QGF76id6MR9OGEc+tc9j7X3jmRkmIO6kOgRlYpF", + "dSNZ6bcHPXmI6KrRU+XifD9talSrahhN6rdnSWRh/5AbFsJTSl5KqNEXJ9+A1qNMZKHggQfJd6K5GrWW", + "Jh/1Yb8zTsE+zk9MZsxOE/hN21knIq2vN2DT8s3uJj5C9/9LPgCRuIsApOFmQeIEIoxAhGEfgdA6nAkt", + "JEzxIS2ITHSb4yxC1rRHYxHSsaeyn1iGBU1dBpFuCosaL7PrB3iv9IZ0ZLokxUWOe7MiFJRpdRkE5sUR", + "zdoL+yRridS0ghZt+0k9fxOj4bDHfjmzSC901aItInXHinM0kgnqp4jYHSvaQyd3sONeoVor2oy2ADw6", + "DLeUUDHOJCaFmiavaCry4rPIS/MmbIL2ILh21oMEzWBchliD8Ys890CsUdFQYhPLJo2aJiqG08ZJaVq2", + "gV5e6aMK07TRVmIcqoyAUJHY7/NWmW0d+NKSOtc39vdB2dUmBGSrWpvolzjVJoZVliYSRIlChOGWHhrC", + "qQXkJJivCkjIF2D+WJ9E5AsP4lDKiE8LnpDQ6DDcUkLFOElMwtpsRANnvluHKjj15tPhkmpE38qsnl20", + "damguHiW2Ixhqeh0ZKQ8QiHyj0INsEy+IENeebufD62nrY8ir1k3wCGUV/7GyabfEMtWli2TIVvcjdMH", + "19uuSZGuzHvn0IoXc8/lkHCIBSzTbnsa/U9id7Ds5xj+3pHtEDf4WLR48WiegqQ6/KCzr7AEQI2dQRwF", + "4FMlWiMy6Y5AFz8/8eDtPU+5qI8Ul0WYQOc++pV5mrzlNsRr4s95Yw3L7dDjclX80vrhU2WtrgTl0ufk", + "yuALWAag6BfZ6aQfdqkMkY6ducH/8rqQbqHmvonXRH0xG9TloJAxb7V6ZYAFWzpGq92oh3HsmqgvFFgT", + "FU7b3tJLMCB8QRG4IOqJClrMvZRG56uDBOxGYcXG7oeGa7XOXKqta6veNB9cbH/7gr3T958Dw7Tq2QIw", + "StcCMTsRL5NXZ8EEmmyD5BZHKL3NdTYCouzeuL979rvt19+4zh9TLuFZBLQPYiRaxzpbZwThSY9CGEtw", + "MsKqgz5qYy0yarIy6Z8sDEilIAT7p1WEuDFa/Q6Z7I94K6QKWqxX53VZRdF7lhX5EzzRXoWO0BPX2Wyd", + "W+1cv9O+cE2k2u1cCEJM14tAG3YLIDKHYAIkD0KqdHMiuftkN43St6EMmZKmEaUw3JFij0BrSh63Tgf/", + "z7uCEYeZ6PkHIOZCAJnUM/m9gAOuVuUKKHxZAxX6iSdzJiPFdR53l4FpqQg3xuH3NZSSjvpZCgdzPvfH", + "HWAMBIOgZobysR72fCsK9rGACOacz0dVAYZVqNc0Q1Z46hQrruZTv60eJIPb/JPbPA+bl667jXuBvCdG", + "U+CRivUZAsszhqp1zVZrsmkXFgyz+o4i27I4RdH4wfFNaA0J+lTZJj3sizzLrEgBgqyLyk/kdI9faosO", + "RcAlQyJDnsX1fJYnWBmEj/KwKwUK9jRuMotyMWafpMj7zy2R64RTxkkd6pSUYXSjbAP7HXRI4e3p+a4s", + "ynz0QD/fdQCL/z71TlW2TcNakhmpUHxi/pOIEksxFJQ6EhKm2dC6vN65/trzMNd/hlcX08vZFIYxKO3Q", + "HyMEAwrQpfCFTY0hvxIXxTuViCwZisqxQ0IRfAwdkWduY03yvpFc5+XuWWd7616i1UEw+RMPWn8EZQBl", + "B4CObJdpVV+aMzxce64fJ0q+EdJFzJmkkjuBOy0BxAzXV2KS19O9lR7UVNJdFJFJjoxocG6YhBLhfQzM", + "ZUz+uqnlJnOLtl2bLBQ0oyxri4ZlT77//vvvF+SaCuntD3I6p8tVkJvM+SnhqKoC/s3QF9QK+YtiGrVp", + "oxJ5y+/ATvyi1uxl8u+gEXDsN1WvRH/EzSmJ31DBg/CH8Go/+SO+Hx75DeVrED/BWZN/h0EB4lfsX5I/", + "IVqfOXHm/wcAAP//Mk0yaqgsAQA=", +} + +// GetSwagger returns the content of the embedded swagger specification file +// or error if failed to decode +func decodeSpec() ([]byte, error) { + zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) + if err != nil { + return nil, fmt.Errorf("error base64 decoding spec: %s", err) + } + zr, err := gzip.NewReader(bytes.NewReader(zipped)) + if err != nil { + return nil, fmt.Errorf("error decompressing spec: %s", err) + } + var buf bytes.Buffer + _, err = buf.ReadFrom(zr) + if err != nil { + return nil, fmt.Errorf("error decompressing spec: %s", err) + } + + return buf.Bytes(), nil +} + +var rawSpec = decodeSpecCached() + +// a naive cached of a decoded swagger spec +func decodeSpecCached() func() ([]byte, error) { + data, err := decodeSpec() + return func() ([]byte, error) { + return data, err + } +} + +// Constructs a synthetic filesystem for resolving external references when loading openapi specifications. +func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) { + var res = make(map[string]func() ([]byte, error)) + if len(pathToFile) > 0 { + res[pathToFile] = rawSpec + } + + return res +} + +// GetSwagger returns the Swagger specification corresponding to the generated code +// in this file. The external references of Swagger specification are resolved. +// The logic of resolving external references is tightly connected to "import-mapping" feature. +// Externally referenced files must be embedded in the corresponding golang packages. +// Urls can be supported but this task was out of the scope. +func GetSwagger() (swagger *openapi3.T, err error) { + var resolvePath = PathToRawSpec("") + + loader := openapi3.NewLoader() + loader.IsExternalRefsAllowed = true + loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) { + var pathToFile = url.String() + pathToFile = path.Clean(pathToFile) + getSpec, ok := resolvePath[pathToFile] + if !ok { + err1 := fmt.Errorf("path not found: %s", pathToFile) + return nil, err1 + } + return getSpec() + } + var specData []byte + specData, err = rawSpec() + if err != nil { + return + } + swagger, err = loader.LoadFromData(specData) + if err != nil { + return + } + return +} diff --git a/epgstation/schema.json b/epgstation/schema.json new file mode 100644 index 0000000..630e76e --- /dev/null +++ b/epgstation/schema.json @@ -0,0 +1 @@ +{"openapi":"3.0.1","info":{"version":"2.4.2","title":"epgstation","license":{"name":"MIT","url":"https://github.com/l3tnun/EPGStation/blob/master/LICENSE"}},"servers":[{"url":"http://localhost:8888/api"}],"paths":{"/videos/upload":{"parameters":[],"post":{"summary":"アップロードしたビデオファイルを追加","tags":["videos"],"description":"アップロードしたビデオファイルを追加する","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UploadVideoFileOption"}}}},"responses":{"200":{"description":"アップロードしたビデオファイルを追加しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/version":{"parameters":[],"get":{"summary":"バージョン情報取得","tags":["version"],"description":"バージョン情報を取得する","responses":{"200":{"description":"バージョン情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Version"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/thumbnails/cleanup":{"parameters":[],"post":{"summary":"サムネイルをクリーンアップ","tags":["thumbnails"],"description":"サムネイルをクリーンアップする","responses":{"200":{"description":"サムネイルをクリーンアップしました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/thumbnails":{"parameters":[],"post":{"summary":"サムネイル再生成","tags":["thumbnails"],"description":"サムネイルの再生成を開始する","responses":{"200":{"description":"サムネイルの再生成を開始しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags":{"parameters":[],"get":{"summary":"タグ情報取得","tags":["tags"],"description":"タグ情報を取得する","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/QueryName"},{"$ref":"#/components/parameters/QueryExcludeRecordedTagId"}],"responses":{"200":{"description":"タグ情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordedTags"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"タグ追加","tags":["tags"],"description":"タグを追加する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRecordedTagOption"}}},"required":true},"responses":{"201":{"description":"タグの追加に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddedRecordedTag"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams":{"parameters":[],"get":{"summary":"ストリーム情報を取得","tags":["streams"],"description":"ストリーム情報を取得する","parameters":[{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"ストリーム情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamInfo"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"全てのストリームを停止","tags":["streams"],"description":"全てのストリームを停止する","responses":{"200":{"description":"全てのストリームを停止しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/storages":{"parameters":[],"get":{"summary":"ストレージ情報取得","tags":["storages"],"description":"ストレージ情報を取得する","responses":{"200":{"description":"ストレージ情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageInfo"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/schedules/search":{"parameters":[],"post":{"summary":"番組検索結果を取得","tags":["schedules"],"description":"番組検索結果を取得する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleSearchOption"}}},"required":true},"responses":{"200":{"description":"番組検索結果を取得しました","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleProgramItem"}}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/schedules/broadcasting":{"parameters":[],"get":{"summary":"放映中の番組報取得","tags":["schedules"],"description":"放映中の番組報取得を取得する","parameters":[{"$ref":"#/components/parameters/AddtionTime"},{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"放映中の番組報取得を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Schedules"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/schedules":{"parameters":[],"get":{"summary":"番組表情報取得","tags":["schedules"],"description":"番組表情報を取得する","parameters":[{"$ref":"#/components/parameters/StartAt"},{"$ref":"#/components/parameters/EndAt"},{"$ref":"#/components/parameters/IsHalfWidth"},{"$ref":"#/components/parameters/NeedsRawExtended"},{"$ref":"#/components/parameters/IsFreeProgram"},{"$ref":"#/components/parameters/requiredGR"},{"$ref":"#/components/parameters/requiredBS"},{"$ref":"#/components/parameters/requiredCS"},{"$ref":"#/components/parameters/requiredSKY"}],"responses":{"200":{"description":"番組表情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Schedules"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/rules/keyword":{"parameters":[],"get":{"summary":"ルールをキーワード検索","tags":["rules"],"description":"ルールをキーワード検索する","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/QueryKeyword"}],"responses":{"200":{"description":"ルールをキーワード検索結果を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleKeywordInfo"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"ルール追加","tags":["rules"],"description":"ルールを追加する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRuleOption"}}},"required":true},"responses":{"201":{"description":"ルールの追加に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddedRule"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/rules":{"parameters":[],"get":{"summary":"ルール情報取得","tags":["rules"],"description":"ルール情報を取得する","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/GetReserveType"},{"$ref":"#/components/parameters/QueryKeyword"}],"responses":{"200":{"description":"ルール情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rules"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"ルール追加","tags":["rules"],"description":"ルールを追加する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRuleOption"}}},"required":true},"responses":{"201":{"description":"ルールの追加に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddedRule"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves/update":{"parameters":[],"post":{"summary":"予約情報の更新開始","tags":["reserves"],"description":"予約情報の更新を開始する","responses":{"200":{"description":"予約情報の更新を開始しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves/lists":{"parameters":[],"get":{"summary":"予約リスト情報取得","tags":["reserves"],"description":"予約リスト情報を取得する","parameters":[{"$ref":"#/components/parameters/StartAt"},{"$ref":"#/components/parameters/EndAt"}],"responses":{"200":{"description":"予約リスト情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReserveLists"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves/cnts":{"parameters":[],"get":{"summary":"予約数取得","tags":["reserves"],"description":"予約数を取得する","responses":{"200":{"description":"予約数を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReserveCnts"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves":{"parameters":[],"get":{"summary":"予約情報取得","tags":["reserves"],"description":"予約情報を取得する","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/GetReserveType"},{"$ref":"#/components/parameters/IsHalfWidth"},{"$ref":"#/components/parameters/QueryRuleId"}],"responses":{"200":{"description":"予約情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reserves"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"予約追加","tags":["reserves"],"description":"予約を追加する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualReserveOption"}}},"required":true},"responses":{"201":{"description":"予約の追加に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddedReserve"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recording/resettimer":{"parameters":[],"post":{"summary":"予約タイマー再設定","tags":["recording"],"description":"予約タイマーを再設定する","responses":{"200":{"description":"予約タイマーを再設定しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recording":{"parameters":[],"get":{"summary":"録画中情報取得","tags":["recording"],"description":"録画中情報を取得する","parameters":[{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"録画中情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Records"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recorded/options":{"parameters":[],"get":{"summary":"録画検索オプションを取得","tags":["recorded"],"description":"録画検索オプションを取得する","responses":{"200":{"description":"録画検索オプションを取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordedSearchOptions"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recorded/cleanup":{"parameters":[],"post":{"summary":"録画をクリーンアップ","tags":["recorded"],"description":"録画をクリーンアップする","responses":{"200":{"description":"録画をクリーンアップしました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recorded":{"parameters":[],"get":{"summary":"録画情報取得","tags":["recorded"],"description":"録画情報を取得する","parameters":[{"$ref":"#/components/parameters/IsHalfWidth"},{"$ref":"#/components/parameters/Offset"},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/IsReverse"},{"$ref":"#/components/parameters/QueryRuleId"},{"$ref":"#/components/parameters/QueryChannelId"},{"$ref":"#/components/parameters/QueryProgramGenre"},{"$ref":"#/components/parameters/QueryKeyword"},{"$ref":"#/components/parameters/QueryHasOriginalFile"}],"responses":{"200":{"description":"録画情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Records"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"録画番組情報の新規作成","tags":["recorded"],"description":"録画番組情報を新規作成する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNewRecordedOption"}}},"required":true},"responses":{"201":{"description":"録画番組情報の新規作成に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedNewRecorded"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/iptv/epg.xml":{"parameters":[],"get":{"summary":"IPTV epg を取得","tags":["iptv"],"description":"IPTV epg を取得する","parameters":[{"$ref":"#/components/parameters/IPTVIsHalfWidth"},{"$ref":"#/components/parameters/IPTVDays"}],"responses":{"200":{"description":"epg を取得しました","content":{"application/xml":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/iptv/channel.m3u8":{"parameters":[],"get":{"summary":"IPTV channel list を取得","tags":["iptv"],"description":"IPTV channel list を取得する","parameters":[{"$ref":"#/components/parameters/IPTVIsHalfWidth"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"channel list を取得しました","content":{"application/x-mpegURL":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/encode":{"parameters":[],"get":{"summary":"エンコード情報取得","tags":["encode"],"description":"エンコード情報を取得する","parameters":[{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"エンコード情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EncodeInfo"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"エンコード追加","tags":["encode"],"description":"エンコードを追加する","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddManualEncodeProgramOption"}}},"required":true},"responses":{"201":{"description":"エンコードの追加に成功した","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddedEncode"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/config":{"parameters":[],"get":{"summary":"config 情報取得","tags":["config"],"description":"config 情報を取得する","responses":{"200":{"description":"config 情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Config"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/channels":{"parameters":[],"get":{"summary":"放送局情報取得","tags":["channels"],"description":"放送局情報を取得する","responses":{"200":{"description":"放送局情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelItems"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/videos/{videoFileId}/playlist":{"parameters":[],"get":{"summary":"ビデオプレイリスト","tags":["videos"],"description":"ビデオプレイリストを取得する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"}],"responses":{"200":{"description":"ビデオプレイリストを取得しました","content":{"application/x-mpegURL":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/videos/{videoFileId}/kodi":{"parameters":[],"post":{"summary":"ビデオリンクを kodi へ送信","tags":["videos"],"description":"ビデオリンクを kodi へ送信する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendVideoLinkToKodiOption"}}},"required":true},"responses":{"200":{"description":"ビデオリンクを kodi へ送信するしました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/videos/{videoFileId}/duration":{"parameters":[],"get":{"summary":"動画の長さ","tags":["videos"],"description":"動画の長さを取得する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"}],"responses":{"200":{"description":"動画の長さを取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoFileDuration"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/videos/{videoFileId}":{"parameters":[],"get":{"summary":"ビデオファイル","tags":["videos"],"description":"ビデオファイルを取得する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"},{"$ref":"#/components/parameters/IsDownload"}],"responses":{"200":{"description":"ビデオファイルを取得しました","content":{"video/mp2t":{},"video/mp4":{},"video/x-matroska":{},"video/webm":{},"application/octet-stream":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"ビデオファイル","tags":["videos"],"description":"ビデオファイルを削除する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"}],"responses":{"200":{"description":"ビデオファイルを削除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/thumbnails/{thumbnailId}":{"parameters":[],"get":{"summary":"サムネイル","tags":["thumbnails"],"description":"サムネイルを取得する","parameters":[{"$ref":"#/components/parameters/PathThumbnailId"}],"responses":{"200":{"description":"サムネイルを取得しました","content":{"image/jpeg":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags/{tagId}/relate":{"parameters":[],"delete":{"summary":"録画番組とタグの関連付けを削除","tags":["tags"],"description":"録画番組とタグの関連付けを削除する","parameters":[{"$ref":"#/components/parameters/PathRecordedTagId"},{"$ref":"#/components/parameters/QueryRecordedId"}],"responses":{"200":{"description":"録画番組とタグの関連付けを削除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"summary":"録画番組とタグを関連付ける","tags":["tags"],"description":"録画番組とタグを関連付けする","parameters":[{"$ref":"#/components/parameters/PathRecordedTagId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelateRecordedTagOption"}}},"required":true},"responses":{"200":{"description":"録画番組とタグの関連付けに成功した"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags/{tagId}":{"parameters":[],"delete":{"summary":"タグ削除","tags":["tags"],"description":"タグを削除する","parameters":[{"$ref":"#/components/parameters/PathRecordedTagId"}],"responses":{"200":{"description":"タグを削除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"summary":"タグ名変更","tags":["tags"],"description":"タグ名を変更する","parameters":[{"$ref":"#/components/parameters/PathRecordedTagId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRecordedTagOption"}}},"required":true},"responses":{"200":{"description":"タグの更新に成功した"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/recorded/{videoFileId}/webm":{"parameters":[],"get":{"summary":"録画 WebM ストリーム","tags":["streams"],"description":"録画 WebM ストリームを取得する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"},{"$ref":"#/components/parameters/StreamPlayPosition"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"録画 WebM ストリーム","content":{"video/webm":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/recorded/{videoFileId}/mp4":{"parameters":[],"get":{"summary":"録画 mp4 ストリーム","tags":["streams"],"description":"録画 mp4 ストリームを取得する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"},{"$ref":"#/components/parameters/StreamPlayPosition"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"録画 mp4 ストリーム","content":{"video/mp4":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/recorded/{videoFileId}/hls":{"parameters":[],"get":{"summary":"録画 HLS ストリーム","tags":["streams"],"description":"録画 HLS ストリームを開始する","parameters":[{"$ref":"#/components/parameters/PathVideoFileId"},{"$ref":"#/components/parameters/StreamPlayPosition"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"録画 HLS ストリームを開始しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartStreamInfo"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/live/{channelId}/webm":{"parameters":[],"get":{"summary":"ライブ WebM ストリーム","tags":["streams"],"description":"ライブ WebM ストリームを取得する","parameters":[{"$ref":"#/components/parameters/PathChannelId"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"ライブ WebM ストリーム","content":{"video/webm":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/live/{channelId}/mp4":{"parameters":[],"get":{"summary":"ライブ mp4 ストリーム","tags":["streams"],"description":"ライブ mp4 ストリームを取得する","parameters":[{"$ref":"#/components/parameters/PathChannelId"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"ライブ mp4 ストリーム","content":{"video/mp4":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/live/{channelId}/m2tsll":{"parameters":[],"get":{"summary":"ライブ M2TS Low Latency (mpegts.js 用) ストリーム","tags":["streams"],"description":"ライブ M2TS Low Latency ストリームを取得する","parameters":[{"$ref":"#/components/parameters/PathChannelId"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"ライブ M2TS Low Latency ストリーム","content":{"video/mp2t":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/live/{channelId}/m2ts/playlist":{"parameters":[],"get":{"summary":"ライブ M2TS ストリームプレイリスト","tags":["streams"],"description":"ライブ M2TS ストリームプレイリストを取得する","parameters":[{"$ref":"#/components/parameters/PathChannelId"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"ライブ M2TS ストリームプレイリストを取得しました","content":{"application/x-mpegURL":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/live/{channelId}/m2ts":{"parameters":[],"get":{"summary":"ライブ M2TS ストリーム","tags":["streams"],"description":"ライブ M2TS ストリームを取得する","parameters":[{"$ref":"#/components/parameters/PathChannelId"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"ライブ M2TS ストリーム","content":{"video/mp2t":{}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/live/{channelId}/hls":{"parameters":[],"get":{"summary":"ライブ HLS ストリーム","tags":["streams"],"description":"ライブ HLS ストリームを開始する","parameters":[{"$ref":"#/components/parameters/PathChannelId"},{"$ref":"#/components/parameters/StreamMode"}],"responses":{"200":{"description":"ライブ HLS ストリームを開始しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartStreamInfo"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/{streamId}/keep":{"parameters":[],"put":{"summary":"ストリーム停止タイマーを更新する","tags":["streams"],"description":"ストリーム停止タイマーを更新する","parameters":[{"$ref":"#/components/parameters/PathStreamId"}],"responses":{"200":{"description":"ストリーム停止タイマーを更新しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/streams/{streamId}":{"parameters":[],"delete":{"summary":"ストリームを停止","tags":["streams"],"description":"ストリームを停止する","parameters":[{"$ref":"#/components/parameters/PathStreamId"}],"responses":{"200":{"description":"ストリームを停止しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/schedules/detail/{programId}":{"parameters":[],"get":{"summary":"指定された番組表情報取得","tags":["schedules"],"description":"指定された番組表情報を取得する","parameters":[{"$ref":"#/components/parameters/PathProgramId"},{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"指定された番組表情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleProgramItem"}}}},"404":{"description":"Not Found"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/schedules/{channelId}":{"parameters":[],"get":{"summary":"指定された放送局の番組表情報取得","tags":["schedules"],"description":"指定された放送局の番組表情報を取得する","parameters":[{"$ref":"#/components/parameters/PathChannelId"},{"$ref":"#/components/parameters/StartAt"},{"$ref":"#/components/parameters/Days"},{"$ref":"#/components/parameters/IsHalfWidth"},{"$ref":"#/components/parameters/NeedsRawExtended"},{"$ref":"#/components/parameters/IsFreeProgram"}],"responses":{"200":{"description":"指定された放送局の番組表情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Schedules"}}}},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/rules/{ruleId}/enable":{"parameters":[],"put":{"summary":"ルール有効化","tags":["rules"],"description":"ルールを有効化する","parameters":[{"$ref":"#/components/parameters/PathRuleId"}],"responses":{"200":{"description":"ルールを有効化しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/rules/{ruleId}/disable":{"parameters":[],"put":{"summary":"ルール無効化","tags":["rules"],"description":"ルールを無効化する","parameters":[{"$ref":"#/components/parameters/PathRuleId"}],"responses":{"200":{"description":"ルールを無効化しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/rules/{ruleId}":{"parameters":[],"get":{"summary":"ルール取得","tags":["rules"],"description":"ルールを取得する","parameters":[{"$ref":"#/components/parameters/PathRuleId"}],"responses":{"200":{"description":"ルールを削除しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rule"}}}},"404":{"description":"指定された id の rule がない"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"ルール削除","tags":["rules"],"description":"ルールを削除する","parameters":[{"$ref":"#/components/parameters/PathRuleId"}],"responses":{"200":{"description":"ルールを削除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"summary":"ルール更新","tags":["rules"],"description":"ルールを更新する","parameters":[{"$ref":"#/components/parameters/PathRuleId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRuleOption"}}},"required":true},"responses":{"200":{"description":"ルールの更新に成功した"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves/{reserveId}/skip":{"parameters":[],"delete":{"summary":"予約の除外状態を解除","tags":["reserves"],"description":"予約の除外状態を解除する","parameters":[{"$ref":"#/components/parameters/PathReserveId"}],"responses":{"200":{"description":"予約の除外状態を解除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves/{reserveId}/overlap":{"parameters":[],"delete":{"summary":"予約の重複状態を解除","tags":["reserves"],"description":"予約の重複状態を解除する","parameters":[{"$ref":"#/components/parameters/PathReserveId"}],"responses":{"200":{"description":"予約の重複状態を解除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reserves/{reserveId}":{"parameters":[],"get":{"summary":"指定された予約情報の取得","tags":["reserves"],"description":"指定された予約情報を取得する","parameters":[{"$ref":"#/components/parameters/PathReserveId"},{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"指定された予約情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReserveItem"}}}},"404":{"description":"Not Found"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"予約削除","tags":["reserves"],"description":"予約を削除する","parameters":[{"$ref":"#/components/parameters/PathReserveId"}],"responses":{"200":{"description":"予約を削除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"summary":"手動予約更新","tags":["reserves"],"description":"手動予約を更新する","parameters":[{"$ref":"#/components/parameters/PathReserveId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditManualReserveOption"}}},"required":true},"responses":{"201":{"description":"手動予約の更新に成功した"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recorded/{recordedId}/unprotect":{"parameters":[],"put":{"summary":"録画を自動削除対象に戻す","tags":["recorded"],"description":"録画を自動削除対象に戻す","parameters":[{"$ref":"#/components/parameters/PathRecordedId"}],"responses":{"200":{"description":"録画を自動削除対象に戻しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recorded/{recordedId}/protect":{"parameters":[],"put":{"summary":"録画を自動削除対象から除外","tags":["recorded"],"description":"録画を自動削除対象から除外する","parameters":[{"$ref":"#/components/parameters/PathRecordedId"}],"responses":{"200":{"description":"録画を自動削除対象から除外しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recorded/{recordedId}/encode":{"parameters":[],"delete":{"summary":"エンコード停止","tags":["recorded"],"description":"エンコードを停止する","parameters":[{"$ref":"#/components/parameters/PathRecordedId"}],"responses":{"200":{"description":"エンコードを停止しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recorded/{recordedId}":{"parameters":[],"get":{"summary":"録画詳細情報を取得","tags":["recorded"],"description":"録画詳細情報を取得する","parameters":[{"$ref":"#/components/parameters/PathRecordedId"},{"$ref":"#/components/parameters/IsHalfWidth"}],"responses":{"200":{"description":"録画詳細情報を取得しました","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordedItem"}}}},"404":{"description":"指定された id の 録画詳細情報がない"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"録画を削除","tags":["recorded"],"description":"録画を削除する","parameters":[{"$ref":"#/components/parameters/PathRecordedId"}],"responses":{"200":{"description":"録画を削除しました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/encode/{encodeId}":{"parameters":[],"delete":{"summary":"エンコードをキャンセル","tags":["encode"],"description":"エンコードをキャンセルする","parameters":[{"$ref":"#/components/parameters/PathEncodeId"}],"responses":{"200":{"description":"エンコードをキャンセルしました"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/dropLogs/{dropLogFileId}":{"parameters":[],"get":{"summary":"ドロップログ","tags":["dropLogs"],"description":"ドロップログを取得する","parameters":[{"$ref":"#/components/parameters/PathDropLogFileId"},{"$ref":"#/components/parameters/LogFileMaxSize"}],"responses":{"200":{"description":"ドロップログを取得しました","content":{"text/plain":{}}},"404":{"description":"Not Found"},"416":{"description":"ファイルサイズが大きすぎる"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/channels/{channelId}/logo":{"parameters":[],"get":{"summary":"放送局ロゴ取得","tags":["channels"],"description":"放送局のロゴを取得する","parameters":[{"$ref":"#/components/parameters/PathChannelId"}],"responses":{"200":{"description":"放送局のロゴを取得しました","content":{"image/png":{}}},"404":{"description":"Not Found"},"default":{"description":"予期しないエラー","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"UnixtimeMS":{"description":"時刻 (ms)","type":"integer"},"ChannelId":{"description":"放送局 id","type":"integer","maximum":6553565535},"ServiceId":{"description":"service id","type":"integer","maximum":6553565535},"NetworkId":{"description":"network id","type":"integer","maximum":6553565535},"ProgramId":{"description":"program id","type":"integer","maximum":655356553565535},"RuleId":{"description":"ルール id","type":"integer"},"ReserveId":{"description":"予約 id","type":"integer"},"RecordedId":{"description":"録画済み番組 id","type":"integer"},"RecordedHistoryId":{"description":"録画済み番組履歴管理 id","type":"integer"},"VideoFileId":{"description":"ビデオファイル id","type":"integer"},"VideoFileType":{"description":"ビデオファイル形式","type":"string","enum":["ts","encoded"]},"ThumbnailId":{"description":"サムネイル id","type":"integer"},"DropLogFileId":{"description":"ドロップログファイル id","type":"integer"},"RecordedTagId":{"description":"録画 tag id","type":"integer"},"EncodeId":{"description":"エンコード id","type":"integer"},"ChannelType":{"description":"放送波タイプ","type":"string","enum":["GR","BS","CS","SKY"]},"ProgramGenreLv1":{"description":"ジャンル","type":"integer"},"ProgramGenreLv2":{"description":"サブジャンル","type":"integer"},"ProgramVideoType":{"description":"番組ビデオコーデック","type":"string","enum":["mpeg2","h.264","h.265"]},"ProgramVideoResolution":{"description":"番組ビデオ解像度","type":"string","enum":["240p","480i","480p","720p","1080i","1080p","2160p","4320p"]},"ProgramAudioSamplingRate":{"description":"番組オーディオサンプリングレート","type":"integer","enum":[16000,22050,24000,32000,44100,48000]},"StreamId":{"description":"ストリーム id","type":"integer"},"StreamType":{"description":"ストリームの種類","type":"string","enum":["LiveStream","LiveHLS","RecordedStream","RecordedHLS"]},"URLSchemeInfo":{"description":"URL Scheme","type":"object","properties":{"ios":{"type":"string"},"android":{"type":"string"},"mac":{"type":"string"},"win":{"type":"string"}}},"M2TSStreamParam":{"description":"M2TS形式ストリーミングパラメータ","type":"object","required":["name","isUnconverted"],"properties":{"name":{"description":"表示名","type":"string"},"isUnconverted":{"description":"無変換か","type":"boolean"}}},"Config":{"description":"コンフィグ","type":"object","required":["socketIOPort","broadcast","recorded","encode","urlscheme","isEnableLiveStream","isEnableTSRecordedStream","isEnableEncodedRecordedStream"],"properties":{"socketIOPort":{"description":"socket.io 通信で使用するポート","type":"integer"},"broadcast":{"description":"有効な放送波情報","type":"object","required":["GR","BS","CS","SKY"],"properties":{"GR":{"type":"boolean"},"BS":{"type":"boolean"},"CS":{"type":"boolean"},"SKY":{"type":"boolean"}}},"recorded":{"description":"指定可能な録画ディレクトリ名","type":"array","items":{"type":"string"}},"encode":{"description":"エンコードモード","type":"array","items":{"type":"string"}},"urlscheme":{"description":"URL Scheme 情報","type":"object","required":["m2ts","video","download"],"properties":{"m2ts":{"$ref":"#/components/schemas/URLSchemeInfo"},"video":{"$ref":"#/components/schemas/URLSchemeInfo"},"download":{"$ref":"#/components/schemas/URLSchemeInfo"}}},"isEnableLiveStream":{"description":"ライブ視聴が有効か","type":"boolean"},"isEnableTSRecordedStream":{"description":"録画済みの TS ファイルのストリーミングが有効か","type":"boolean"},"isEnableEncodedRecordedStream":{"description":"録画済みのエンコード済みファイルのストリーミングが有効か","type":"boolean"},"streamConfig":{"description":"ストリーミング設定","type":"object","properties":{"live":{"description":"ライブストリーミング設定","type":"object","properties":{"m2ts":{"description":"ライブ M2TS ストリーミング設定","type":"array","items":{"$ref":"#/components/schemas/M2TSStreamParam"}},"m2tsll":{"description":"ライブ M2TS Low Latency (mpegts.js 用) ストリーミング設定","type":"array","items":{"type":"string"}},"webm":{"description":"ライブ WebM ストリーミング設定","type":"array","items":{"type":"string"}},"mp4":{"description":"ライブ MP4 ストリーミング設定","type":"array","items":{"type":"string"}},"hls":{"description":"ライブ HLS ストリーミング設定","type":"array","items":{"type":"string"}}}},"recorded":{"description":"録画済みストリーミング設定","type":"object","properties":{"ts":{"description":"録画済み TS ファイルのストリーミング設定","type":"object","properties":{"webm":{"description":"録画済み TS ファイルの WebM ストリーミング設定","type":"array","items":{"type":"string"}},"mp4":{"description":"録画済み TS ファイルの MP4 ストリーミング設定","type":"array","items":{"type":"string"}},"hls":{"description":"録画済み TS ファイルの HLS ストリーミング設定","type":"array","items":{"type":"string"}}}},"encoded":{"description":"録画エンコード済みファイルのストリーミング設定","type":"object","properties":{"webm":{"description":"録画エンコード済みファイルの WebM ストリーミング設定","type":"array","items":{"type":"string"}},"mp4":{"description":"録画エンコード済みファイルの MP4 ストリーミング設定","type":"array","items":{"type":"string"}},"hls":{"description":"録画エンコード済みファイルの HLS ストリーミング設定","type":"array","items":{"type":"string"}}}}}}}},"kodiHosts":{"description":"kodi hosts","type":"array","items":{"type":"string"}}}},"ChannelItems":{"type":"array","items":{"$ref":"#/components/schemas/ChannelItem"}},"ChannelItem":{"description":"チャンネル情報","required":["id","serviceId","networkId","name","halfWidthName","remoteControlKeyId","hasLogoData","channelType","channel"],"properties":{"id":{"$ref":"#/components/schemas/ChannelId"},"serviceId":{"$ref":"#/components/schemas/ServiceId"},"networkId":{"$ref":"#/components/schemas/NetworkId"},"name":{"description":"放送局名","type":"string"},"halfWidthName":{"description":"放送局名(半角)","type":"string"},"hasLogoData":{"description":"ロゴデータを持っているか","type":"boolean"},"channelType":{"$ref":"#/components/schemas/ChannelType"},"channel":{"type":"string"}}},"ScheduleChannleItem":{"description":"番組表の放送局データ","required":["id","serviceId","networkId","name","hasLogoData","channelType"],"properties":{"id":{"$ref":"#/components/schemas/ChannelId"},"serviceId":{"$ref":"#/components/schemas/ServiceId"},"networkId":{"$ref":"#/components/schemas/NetworkId"},"name":{"description":"放送局名","type":"string"},"remoteControlKeyId":{"description":"リモコン番号","type":"integer"},"hasLogoData":{"description":"ロゴデータを持っているか","type":"boolean"},"channelType":{"$ref":"#/components/schemas/ChannelType"}}},"ScheduleProgramItem":{"description":"番組表の番組データ","required":["id","channelId","startAt","endAt","isFree","name"],"properties":{"id":{"$ref":"#/components/schemas/ProgramId"},"channelId":{"$ref":"#/components/schemas/ChannelId"},"startAt":{"$ref":"#/components/schemas/UnixtimeMS"},"endAt":{"$ref":"#/components/schemas/UnixtimeMS"},"isFree":{"description":"無料放送か","type":"boolean"},"name":{"description":"番組名","type":"string"},"description":{"description":"番組詳細","type":"string"},"extended":{"description":"番組拡張","type":"string"},"rawExtended":{"description":"番組拡張 (Mirakurun の extended)","type":"object"},"genre1":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre1":{"$ref":"#/components/schemas/ProgramGenreLv2"},"genre2":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre2":{"$ref":"#/components/schemas/ProgramGenreLv2"},"genre3":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre3":{"$ref":"#/components/schemas/ProgramGenreLv2"},"videoType":{"$ref":"#/components/schemas/ProgramVideoType"},"videoResolution":{"$ref":"#/components/schemas/ProgramVideoResolution"},"videoStreamContent":{"type":"integer"},"videoComponentType":{"type":"integer"},"audioSamplingRate":{"$ref":"#/components/schemas/ProgramAudioSamplingRate"},"audioComponentType":{"type":"integer"}}},"ScheduleProgramItems":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleProgramItem"}},"Schedule":{"description":"番組表データ","required":["channel","programs"],"properties":{"channel":{"$ref":"#/components/schemas/ScheduleChannleItem"},"programs":{"$ref":"#/components/schemas/ScheduleProgramItems"}}},"Schedules":{"type":"array","items":{"$ref":"#/components/schemas/Schedule"}},"ScheduleSearchOption":{"description":"番組検索オプション","type":"object","required":["option","isHalfWidth"],"properties":{"option":{"$ref":"#/components/schemas/RuleSearchOption"},"isHalfWidth":{"description":"半角文字で取得するか","type":"boolean"},"limit":{"description":"検索結果取得最大件数","type":"number"}}},"Rules":{"description":"ルール情報","type":"object","required":["rules","total"],"properties":{"rules":{"type":"array","items":{"$ref":"#/components/schemas/Rule"}},"total":{"description":"ルール総件数","type":"integer"}}},"Rule":{"description":"ルール","type":"object","required":["id"],"properties":{"id":{"$ref":"#/components/schemas/RuleId"},"reservesCnt":{"description":"予約件数","type":"integer"}},"allOf":[{"$ref":"#/components/schemas/AddRuleOption"}]},"RuleKeywordItem":{"type":"object","required":["id","keyword"],"properties":{"id":{"$ref":"#/components/schemas/RuleId"},"keyword":{"type":"string"}}},"RuleKeywordInfo":{"description":"ルールキーワード検索結果","type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RuleKeywordItem"}}}},"AddRuleOption":{"description":"ルール追加プション","type":"object","required":["isTimeSpecification","searchOption","reserveOption"],"properties":{"isTimeSpecification":{"description":"時刻指定予約か","type":"boolean"},"searchOption":{"$ref":"#/components/schemas/RuleSearchOption"},"reserveOption":{"$ref":"#/components/schemas/RuleReserveOption"},"saveOption":{"$ref":"#/components/schemas/ReserveSaveOption"},"encodeOption":{"$ref":"#/components/schemas/ReserveEncodedOption"}}},"RuleSearchOption":{"description":"ルール検索オプション","type":"object","properties":{"keyword":{"description":"検索キーワード","type":"string"},"ignoreKeyword":{"description":"除外検索キーワード","type":"string"},"keyCS":{"description":"大文字小文字区別有効化 (検索キーワード)","type":"boolean"},"keyRegExp":{"description":"正規表現 (検索キーワード)","type":"boolean"},"name":{"description":"番組名 (検索キーワード)","type":"boolean"},"description":{"description":"概要 (検索キーワード)","type":"boolean"},"extended":{"description":"詳細 (検索キーワード)","type":"boolean"},"ignoreKeyCS":{"description":"大文字小文字区別有効化 (除外検索キーワード)","type":"boolean"},"ignoreKeyRegExp":{"description":"正規表現 (除外検索キーワード)","type":"boolean"},"ignoreName":{"description":"番組名 (除外検索キーワード)","type":"boolean"},"ignoreDescription":{"description":"概要 (除外検索キーワード)","type":"boolean"},"ignoreExtended":{"description":"詳細 (除外検索キーワード)","type":"boolean"},"GR":{"description":"GR","type":"boolean"},"BS":{"description":"BS","type":"boolean"},"CS":{"description":"CS","type":"boolean"},"SKY":{"description":"SKY","type":"boolean"},"channelIds":{"description":"放送局","type":"array","items":{"$ref":"#/components/schemas/ChannelId"}},"genres":{"description":"ジャンル","type":"array","items":{"$ref":"#/components/schemas/Genre"}},"times":{"description":"時刻範囲","type":"array","items":{"$ref":"#/components/schemas/SearchTime"}},"isFree":{"description":"無料放送か","type":"boolean"},"durationMin":{"description":"番組最小時間 (分)","type":"integer"},"durationMax":{"description":"番組最大時間 (分)","type":"integer"},"searchPeriods":{"description":"検索対象期間","type":"array","items":{"$ref":"#/components/schemas/SearchPeriod"}}}},"Genre":{"description":"ジャンル設定","type":"object","required":["genre"],"properties":{"genre":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre":{"$ref":"#/components/schemas/ProgramGenreLv2"}}},"SearchTime":{"description":"時刻範囲指定オプション","type":"object","required":["week"],"properties":{"start":{"description":"開始時刻 1 - 23, 時刻予約の場合は 0 時を 0 とした 0 ~ (60 * 50 * 24) - 1 秒までの開始時刻を指定する","type":"integer"},"range":{"description":"開始時刻からの時刻範囲(時) 1 - 23, 時刻予約の場合は秒で時間の長さを指定する 1 ~ 60 * 50 * 24 秒","type":"integer"},"week":{"description":"曜日指定 0x01, 0x02, 0x04, 0x08, 0x10, 0x20 ,0x40 が日〜土に対応するので and 演算で曜日を指定する","type":"integer"}}},"SearchPeriod":{"description":"検索対象期間オプション","type":"object","required":["startAt","endAt"],"properties":{"startAt":{"$ref":"#/components/schemas/UnixtimeMS"},"endAt":{"$ref":"#/components/schemas/UnixtimeMS"}}},"RuleReserveOption":{"description":"ルール予約オプション","type":"object","required":["enable","allowEndLack","avoidDuplicate"],"properties":{"enable":{"description":"ルールが有効か","type":"boolean"},"allowEndLack":{"description":"末尾切れを許可するか","type":"boolean"},"avoidDuplicate":{"description":"録画済みの重複番組を排除するか","type":"boolean"},"periodToAvoidDuplicate":{"description":"重複を避ける期間","type":"integer"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/RecordedTagId"}}}},"ReserveSaveOption":{"description":"予約保存オプション","type":"object","properties":{"parentDirectoryName":{"description":"親保存ディレクトリ","type":"string"},"directory":{"description":"保存ディレクトリ","type":"string"},"recordedFormat":{"description":"ファイル名フォーマット","type":"string"}}},"ReserveEncodedOption":{"description":"予約エンコードオプション","required":["isDeleteOriginalAfterEncode"],"properties":{"mode1":{"description":"エンコードモード1","type":"string"},"encodeParentDirectoryName1":{"description":"エンコードモード1親ディレクトリ","type":"string"},"directory1":{"description":"エンコードモード1ディレクトリ","type":"string"},"mode2":{"description":"エンコードモード2","type":"string"},"encodeParentDirectoryName2":{"description":"エンコードモード2親ディレクトリ","type":"string"},"directory2":{"description":"エンコードモード2ディレクトリ","type":"string"},"mode3":{"description":"エンコードモード3","type":"string"},"encodeParentDirectoryName3":{"description":"エンコードモード3親ディレクトリ","type":"string"},"directory3":{"description":"エンコードモード3ディレクトリ","type":"string"},"isDeleteOriginalAfterEncode":{"description":"エンコード後に ts を削除するか","type":"boolean"}}},"AddedRule":{"description":"ルール追加成功応答データ","type":"object","required":["ruleId"],"properties":{"ruleId":{"$ref":"#/components/schemas/RuleId"}}},"EditManualReserveOption":{"description":"手動予約編集オプション","type":"object","required":["allowEndLack"],"properties":{"allowEndLack":{"description":"末尾切れを許すか","type":"boolean"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/RecordedTagId"}},"saveOption":{"$ref":"#/components/schemas/ReserveSaveOption"},"encodeOption":{"$ref":"#/components/schemas/ReserveEncodedOption"}}},"ManualReserveOption":{"description":"手動予約オプション","type":"object","allOf":[{"$ref":"#/components/schemas/EditManualReserveOption"}],"properties":{"programId":{"$ref":"#/components/schemas/ProgramId"},"timeSpecifiedOption":{"type":"object","description":"時刻指定オプション","required":["channelId","startAt","endAt"],"properties":{"channelId":{"$ref":"#/components/schemas/ChannelId"},"startAt":{"$ref":"#/components/schemas/UnixtimeMS"},"endAt":{"$ref":"#/components/schemas/UnixtimeMS"}}}}},"AddedReserve":{"description":"予約成功応答データ","type":"object","required":["reserveId"],"properties":{"reserveId":{"$ref":"#/components/schemas/ReserveId"}}},"ReserveItem":{"description":"予約番組情報","type":"object","required":["id","isSkip","isConflict","isOverlap","allowEndLack","isTimeSpecified","isDeleteOriginalAfterEncode","channelId","startAt","endAt","name"],"properties":{"id":{"$ref":"#/components/schemas/ReserveId"},"ruleId":{"$ref":"#/components/schemas/RuleId"},"isSkip":{"type":"boolean"},"isConflict":{"type":"boolean"},"isOverlap":{"type":"boolean"},"allowEndLack":{"type":"boolean"},"isTimeSpecified":{"type":"boolean"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/RecordedTagId"}},"parentDirectoryName":{"type":"string"},"directory":{"type":"string"},"recordedFormat":{"type":"string"},"encodeMode1":{"type":"integer"},"encodeParentDirectoryName1":{"type":"string"},"encodeDirectory1":{"type":"string"},"encodeMode2":{"type":"integer"},"encodeParentDirectoryName2":{"type":"string"},"encodeDirectory2":{"type":"string"},"encodeMode3":{"type":"integer"},"encodeParentDirectoryName3":{"type":"string"},"encodeDirectory3":{"type":"integer"},"isDeleteOriginalAfterEncode":{"type":"boolean"},"programId":{"$ref":"#/components/schemas/ProgramId"},"channelId":{"$ref":"#/components/schemas/ChannelId"},"startAt":{"$ref":"#/components/schemas/UnixtimeMS"},"endAt":{"$ref":"#/components/schemas/UnixtimeMS"},"name":{"type":"string"},"description":{"type":"string"},"extended":{"type":"string"},"rawExtended":{"type":"object"},"genre1":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre1":{"$ref":"#/components/schemas/ProgramGenreLv2"},"genre2":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre2":{"$ref":"#/components/schemas/ProgramGenreLv2"},"genre3":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre3":{"$ref":"#/components/schemas/ProgramGenreLv2"},"videoType":{"$ref":"#/components/schemas/ProgramVideoType"},"videoResolution":{"$ref":"#/components/schemas/ProgramVideoResolution"},"videoStreamContent":{"type":"integer"},"videoComponentType":{"type":"integer"},"audioSamplingRate":{"$ref":"#/components/schemas/ProgramAudioSamplingRate"},"audioComponentType":{"type":"integer"}}},"Reserves":{"description":"予約情報","type":"object","required":["reserves","total"],"properties":{"reserves":{"type":"array","items":{"$ref":"#/components/schemas/ReserveItem"}},"total":{"description":"予約総件数","type":"integer"}}},"ReserveListItem":{"description":"予約リストitem","type":"object","required":["reserveId"],"properties":{"reserveId":{"$ref":"#/components/schemas/ReserveId"},"programId":{"$ref":"#/components/schemas/ProgramId"},"ruleId":{"$ref":"#/components/schemas/RuleId"}}},"ReserveLists":{"description":"予約, 除外, 重複, 競合の reserveId のリスト","type":"object","required":["normal","conflicts","skips","overlaps"],"properties":{"normal":{"$ref":"#/components/schemas/ReserveListItem"},"conflicts":{"$ref":"#/components/schemas/ReserveListItem"},"skips":{"$ref":"#/components/schemas/ReserveListItem"},"overlaps":{"$ref":"#/components/schemas/ReserveListItem"}}},"ReserveCnts":{"description":"予約カウント","type":"object","required":["normal","conflicts","skips","overlaps"],"properties":{"normal":{"description":"通常予約数","type":"integer"},"conflicts":{"description":"競合予約数","type":"integer"},"skips":{"description":"競合予約数","type":"integer"},"overlaps":{"description":"重複予約数","type":"integer"}}},"Records":{"description":"録画情報","type":"object","required":["records","total"],"properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/RecordedItem"}},"total":{"description":"録画総件数","type":"integer"}}},"RecordedItem":{"description":"録画番組情報","type":"object","required":["id","startAt","endAt","name","isRecording","isEncoding","isProtected"],"properties":{"id":{"$ref":"#/components/schemas/RecordedId"},"ruleId":{"$ref":"#/components/schemas/RuleId"},"programId":{"$ref":"#/components/schemas/ProgramId"},"channelId":{"$ref":"#/components/schemas/ChannelId"},"startAt":{"$ref":"#/components/schemas/UnixtimeMS"},"endAt":{"$ref":"#/components/schemas/UnixtimeMS"},"name":{"description":"番組名","type":"string"},"description":{"description":"番組詳細","type":"string"},"extended":{"description":"番組拡張","type":"string"},"rawExtended":{"description":"番組拡張 (Mirakurun の extended)","type":"object"},"genre1":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre1":{"$ref":"#/components/schemas/ProgramGenreLv2"},"genre2":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre2":{"$ref":"#/components/schemas/ProgramGenreLv2"},"genre3":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre3":{"$ref":"#/components/schemas/ProgramGenreLv2"},"videoType":{"$ref":"#/components/schemas/ProgramVideoType"},"videoResolution":{"$ref":"#/components/schemas/ProgramVideoResolution"},"videoStreamContent":{"type":"integer"},"videoComponentType":{"type":"integer"},"audioSamplingRate":{"$ref":"#/components/schemas/ProgramAudioSamplingRate"},"audioComponentType":{"type":"integer"},"isRecording":{"description":"録画中か","type":"boolean"},"thumbnails":{"type":"array","items":{"$ref":"#/components/schemas/ThumbnailId"}},"videoFiles":{"type":"array","items":{"$ref":"#/components/schemas/VideoFile"}},"dropLog":{"$ref":"#/components/schemas/DropLogFile"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/RecordedTag"}},"isEncoding":{"description":"エンコード中か","type":"boolean"},"isProtected":{"description":"自動録画削除対象外か","type":"boolean"}}},"CreateNewRecordedOption":{"description":"新規追加する録画番組情報","type":"object","required":["channelId","startAt","endAt","name"],"properties":{"ruleId":{"$ref":"#/components/schemas/RuleId"},"channelId":{"$ref":"#/components/schemas/ChannelId"},"startAt":{"$ref":"#/components/schemas/UnixtimeMS"},"endAt":{"$ref":"#/components/schemas/UnixtimeMS"},"name":{"description":"番組名","type":"string"},"description":{"description":"番組詳細","type":"string"},"extended":{"description":"番組拡張","type":"string"},"genre1":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre1":{"$ref":"#/components/schemas/ProgramGenreLv2"},"genre2":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre2":{"$ref":"#/components/schemas/ProgramGenreLv2"},"genre3":{"$ref":"#/components/schemas/ProgramGenreLv1"},"subGenre3":{"$ref":"#/components/schemas/ProgramGenreLv2"}}},"CreatedNewRecorded":{"description":"録画番組情報の新規作成成功応答データ","type":"object","required":["recordedId"],"properties":{"recordedId":{"$ref":"#/components/schemas/RecordedId"}}},"VideoFile":{"description":"ビデオファイル情報","type":"object","required":["id","name","type","size"],"properties":{"id":{"$ref":"#/components/schemas/VideoFileId"},"name":{"description":"ビデオ名 (Web上の表示名)","type":"string"},"filename":{"description":"ビデオファイル名","type":"string"},"type":{"$ref":"#/components/schemas/VideoFileType"},"size":{"description":"ファイルサイズ","type":"integer"}}},"VideoFileDuration":{"description":"ビデオファイルの長さ","type":"object","required":["duration"],"properties":{"duration":{"description":"動画長(秒)","type":"number"}}},"DropLogFile":{"description":"ドロップログファイル情報","type":"object","required":["id","errorCnt","dropCnt","scramblingCnt"],"properties":{"id":{"$ref":"#/components/schemas/DropLogFileId"},"errorCnt":{"description":"エラーカウント","type":"integer"},"dropCnt":{"description":"ドロップカウント","type":"integer"},"scramblingCnt":{"description":"スクランブルカウント","type":"integer"}}},"RecordedTag":{"description":"タグ情報","type":"object","required":["id","name","color"],"properties":{"id":{"$ref":"#/components/schemas/RecordedTagId"},"name":{"description":"タグ名","type":"string"},"color":{"description":"色","type":"string"}}},"RecordedTags":{"description":"録画タグ情報","type":"object","required":["tags","total"],"properties":{"tags":{"type":"array","items":{"$ref":"#/components/schemas/RecordedTag"}},"total":{"description":"予約総件数","type":"integer"}}},"AddRecordedTagOption":{"description":"録画タグ追加プション","type":"object","required":["name","color"],"properties":{"name":{"description":"タグ名","type":"string"},"color":{"description":"色","type":"string"}}},"RelateRecordedTagOption":{"description":"録画番組とタグの関連付けオプション","type":"object","required":["recordedId"],"properties":{"recordedId":{"$ref":"#/components/schemas/RecordedId"}}},"AddedRecordedTag":{"description":"タグ追加成功応答データ","type":"object","required":["tagId"],"properties":{"tagId":{"$ref":"#/components/schemas/RecordedTagId"}}},"RecordedChannelListItem":{"description":"recorded が持つ channelId のリスト","type":"object","required":["cnt","channelId"],"properties":{"cnt":{"description":"録画数","type":"integer"},"channelId":{"$ref":"#/components/schemas/ChannelId"}}},"RecordedGenreListItem":{"description":"recorded が持つ genre のリスト","type":"object","required":["cnt","genre"],"properties":{"cnt":{"description":"録画数","type":"integer"},"genre":{"$ref":"#/components/schemas/ProgramGenreLv1"}}},"RecordedSearchOptions":{"description":"recorded が持つ検索オプション情報","type":"object","required":["channels","genres"],"properties":{"channels":{"type":"array","items":{"$ref":"#/components/schemas/RecordedChannelListItem"}},"genres":{"type":"array","items":{"$ref":"#/components/schemas/RecordedGenreListItem"}}}},"SendVideoLinkToKodiOption":{"description":"kodiへビデオリンクを送信するときのオプション","type":"object","required":["kodiName"],"properties":{"kodiName":{"description":"config の kodi の name","type":"string"}}},"UploadVideoFileOption":{"description":"ビデオファイルをアップロード","type":"object","required":["recordedId","parentDirectoryName","viewName","fileType","file"],"properties":{"recordedId":{"$ref":"#/components/schemas/RecordedId"},"parentDirectoryName":{"description":"親保存ディレクトリ","type":"string"},"subDirectory":{"description":"保存ディレクトリ","type":"string"},"viewName":{"description":"表示名","type":"string"},"fileType":{"$ref":"#/components/schemas/VideoFileType"},"file":{"type":"string","format":"binary"}}},"Version":{"description":"バージョン情報","type":"object","required":["version"],"properties":{"version":{"type":"string"}}},"EncodeProgramItem":{"description":"エンコードプログラム情報","type":"object","required":["id","mode","recorded"],"properties":{"id":{"$ref":"#/components/schemas/EncodeId"},"mode":{"description":"エンコード名","type":"string"},"recorded":{"$ref":"#/components/schemas/RecordedItem"},"percent":{"description":"進捗","type":"number"},"log":{"description":"ログ","type":"string"}}},"EncodeInfo":{"description":"エンコード情報","type":"object","required":["runningItems","waitItems"],"properties":{"runningItems":{"type":"array","items":{"$ref":"#/components/schemas/EncodeProgramItem"}},"waitItems":{"type":"array","items":{"$ref":"#/components/schemas/EncodeProgramItem"}}}},"AddEncodeProgramOption":{"description":"エンコード追加時のオプション","type":"object","required":["recordedId","sourceVideoFileId","parentDir","mode","removeOriginal"],"properties":{"recordedId":{"$ref":"#/components/schemas/RecordedId"},"sourceVideoFileId":{"$ref":"#/components/schemas/VideoFileId"},"parentDir":{"description":"親ディレクトリ名 config recorded の name","type":"string"},"directory":{"description":"親ディレクトリ以下のディレクトリ設定","type":"string"},"mode":{"description":"エンコードプリセット名 config encode の name","type":"string"},"removeOriginal":{"description":"元ファイルを削除するか","type":"boolean"}}},"AddManualEncodeProgramOption":{"description":"エンコード手動追加時のオプション","type":"object","required":["recordedId","sourceVideoFileId","mode","removeOriginal"],"properties":{"recordedId":{"$ref":"#/components/schemas/RecordedId"},"sourceVideoFileId":{"$ref":"#/components/schemas/VideoFileId"},"parentDir":{"description":"親ディレクトリ名 config recorded の name, isSaveSameDirectory が false の場合は必須","type":"string"},"directory":{"description":"親ディレクトリ以下のディレクトリ設定","type":"string"},"isSaveSameDirectory":{"description":"ソースビデオファイルと同じ場所に保存するか","type":"boolean"},"mode":{"description":"エンコードプリセット名 config encode の name","type":"string"},"removeOriginal":{"description":"元ファイルを削除するか","type":"boolean"}}},"AddedEncode":{"description":"エンコード追加成功応答データ","type":"object","required":["encodeId"],"properties":{"encodeId":{"$ref":"#/components/schemas/EncodeId"}}},"StreamInfoItem":{"description":"ストリーム情報","type":"object","required":["streamId","type","mode","isEnable","channelId","name","startAt","endAt"],"properties":{"streamId":{"$ref":"#/components/schemas/StreamId"},"type":{"$ref":"#/components/schemas/StreamType"},"mode":{"description":"ストリーミング設定","type":"number"},"isEnable":{"description":"放送波が有効か (HLS 形式の場合有効)","type":"boolean"},"channelId":{"$ref":"#/components/schemas/ChannelId"},"videoFileId":{"$ref":"#/components/schemas/VideoFileId"},"recordedId":{"$ref":"#/components/schemas/RecordedId"},"name":{"description":"ストリーミング番組名","type":"string"},"startAt":{"$ref":"#/components/schemas/UnixtimeMS"},"endAt":{"$ref":"#/components/schemas/UnixtimeMS"},"description":{"description":"ストリーミング番組詳細","type":"string"},"extended":{"description":"ストリーミング番組拡張","type":"string"}}},"StreamInfo":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/StreamInfoItem"}}}},"StartStreamInfo":{"description":"ストリーム開始情報","type":"object","required":["streamId"],"properties":{"streamId":{"$ref":"#/components/schemas/StreamId"}}},"StorageItem":{"description":"ストレージ使用状況","type":"object","required":["name","available","used","total"],"properties":{"name":{"description":"ディスク名","type":"string"},"available":{"description":"空き容量 (byte)","type":"integer"},"used":{"description":"使用量 (byte)","type":"integer"},"total":{"description":"総容量 (byte)","type":"integer"}}},"StorageInfo":{"description":"ストレージ情報","type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/StorageItem"}}}},"Error":{"type":"object","readOnly":true,"required":["code","message"],"properties":{"code":{"description":"HTTPステータスコード","type":"integer","format":"int32"},"message":{"description":"エラーメッセージ","type":"string"},"errors":{"description":"Error","type":"string"}}}},"parameters":{"Offset":{"description":"offset","in":"query","name":"offset","schema":{"type":"integer","minimum":0,"default":0}},"Limit":{"description":"limit","in":"query","name":"limit","schema":{"type":"integer","minimum":0,"default":24}},"StartAt":{"description":"開始時刻","in":"query","name":"startAt","required":true,"schema":{"$ref":"#/components/schemas/UnixtimeMS"}},"EndAt":{"description":"終了時刻","in":"query","name":"endAt","required":true,"schema":{"$ref":"#/components/schemas/UnixtimeMS"}},"Days":{"description":"取得日数","in":"query","name":"days","required":true,"schema":{"type":"integer"}},"AddtionTime":{"description":"追加時間 (ms)","in":"query","name":"time","required":false,"schema":{"$ref":"#/components/schemas/UnixtimeMS"}},"IsHalfWidth":{"description":"半角文字で取得するか","in":"query","name":"isHalfWidth","required":true,"schema":{"type":"boolean"}},"NeedsRawExtended":{"description":"rawExtended が必要か","in":"query","name":"needsRawExtended","required":false,"schema":{"type":"boolean"}},"IsFreeProgram":{"description":"無料放送のみ取得するか (true: 無料放送, false: 有料放送, 無指定: 全て)","in":"query","name":"isFree","required":false,"schema":{"type":"boolean"}},"QueryChannelId":{"description":"放送局 id","name":"channelId","in":"query","schema":{"$ref":"#/components/schemas/ChannelId"}},"QueryRecordedId":{"description":"recorded id","name":"recordedId","in":"query","schema":{"$ref":"#/components/schemas/RecordedId"}},"QueryRuleId":{"description":"ルールid","name":"ruleId","in":"query","schema":{"$ref":"#/components/schemas/RuleId"}},"QueryProgramGenre":{"description":"ジャンル","name":"genre","in":"query","schema":{"$ref":"#/components/schemas/ProgramGenreLv1"}},"QueryKeyword":{"description":"キーワード","name":"keyword","in":"query","schema":{"type":"string"}},"QueryHasOriginalFile":{"description":"オリジナルファイルを含むか","name":"hasOriginalFile","in":"query","schema":{"type":"boolean"}},"QueryName":{"description":"name","name":"name","in":"query","schema":{"type":"string"}},"QueryExcludeRecordedTagId":{"description":"除外する RecordedTagId","name":"excludeTagId","in":"query","schema":{"type":"array","items":{"type":"string"}}},"requiredGR":{"description":"GR","in":"query","name":"GR","required":true,"schema":{"type":"boolean"}},"requiredBS":{"description":"BS","in":"query","name":"BS","required":true,"schema":{"type":"boolean"}},"requiredCS":{"description":"CS","in":"query","name":"CS","required":true,"schema":{"type":"boolean"}},"requiredSKY":{"description":"SKY","in":"query","name":"SKY","required":true,"schema":{"type":"boolean"}},"GetReserveType":{"description":"予約情報取得タイプ","in":"query","name":"type","schema":{"enum":["all","normal","conflict","skip","overlap"]}},"IsDownload":{"description":"ファイルをダウンロードするか","in":"query","name":"isDownload","schema":{"type":"boolean"}},"IsReverse":{"description":"逆順で取得するか","in":"query","name":"isReverse","schema":{"type":"boolean"}},"LogFileMaxSize":{"description":"ファイル最大サイズ (kByte)","in":"query","name":"maxsize","schema":{"type":"integer","minimum":0,"default":512}},"PathChannelId":{"description":"放送局 id","in":"path","name":"channelId","required":true,"schema":{"$ref":"#/components/schemas/ChannelId"}},"PathProgramId":{"description":"program id","in":"path","name":"programId","required":true,"schema":{"$ref":"#/components/schemas/ProgramId"}},"PathReserveId":{"description":"予約id","in":"path","name":"reserveId","required":true,"schema":{"type":"integer"}},"PathRuleId":{"description":"ルールid","in":"path","name":"ruleId","required":true,"schema":{"type":"integer"}},"PathThumbnailId":{"description":"thumbnail id","in":"path","name":"thumbnailId","required":true,"schema":{"type":"integer"}},"PathRecordedId":{"description":"recorded id","in":"path","name":"recordedId","required":true,"schema":{"type":"integer"}},"PathRecordedTagId":{"description":"recorded tag id","in":"path","name":"tagId","required":true,"schema":{"type":"integer"}},"PathVideoFileId":{"description":"video file id","in":"path","name":"videoFileId","required":true,"schema":{"type":"integer"}},"PathDropLogFileId":{"description":"drop log file id","in":"path","name":"dropLogFileId","required":true,"schema":{"type":"integer"}},"PathEncodeId":{"description":"エンコード id","in":"path","name":"encodeId","required":true,"schema":{"type":"integer"}},"PathStreamId":{"description":"ストリーム id","in":"path","name":"streamId","required":true,"schema":{"$ref":"#/components/schemas/StreamId"}},"StreamMode":{"description":"ストリーミング設定","in":"query","name":"mode","required":true,"schema":{"type":"integer"}},"StreamPlayPosition":{"description":"再生位置","in":"query","name":"ss","required":true,"schema":{"type":"integer"}},"IPTVIsHalfWidth":{"description":"半角文字で取得するか","in":"query","name":"isHalfWidth","required":false,"schema":{"type":"boolean","default":true}},"IPTVDays":{"description":"取得日数","in":"query","name":"days","required":false,"schema":{"type":"integer","default":3}}}},"tags":[{"name":"channels"},{"name":"config"},{"name":"dropLogs"},{"name":"encode"},{"name":"iptv"},{"name":"recorded"},{"name":"recording"},{"name":"reserves"},{"name":"rules"},{"name":"schedules"},{"name":"storages"},{"name":"streams"},{"name":"tags"},{"name":"thumbnails"},{"name":"version"},{"name":"videos"}]} \ No newline at end of file diff --git a/go.mod b/go.mod index 368220b..2eb2494 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,14 @@ module github.com/musaprg/annict-epgstation-connector go 1.16 -require github.com/graphql-go/graphql v0.7.9 // indirect +require ( + github.com/Khan/genqlient v0.5.0 + github.com/alexflint/go-arg v1.4.3 // indirect + github.com/alexflint/go-scalar v1.2.0 // indirect + github.com/deepmap/oapi-codegen v1.12.4 + github.com/getkin/kin-openapi v0.112.0 + github.com/labstack/echo/v4 v4.10.0 + github.com/urfave/cli/v2 v2.23.7 + github.com/vektah/gqlparser/v2 v2.5.1 // indirect + golang.org/x/tools v0.5.0 // indirect +) diff --git a/go.sum b/go.sum index 1428319..e4a56cd 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,242 @@ -github.com/graphql-go/graphql v0.7.9 h1:5Va/Rt4l5g3YjwDnid3vFfn43faaQBq7rMcIZ0VnV34= -github.com/graphql-go/graphql v0.7.9/go.mod h1:k6yrAYQaSP59DC5UVxbgxESlmVyojThKdORUqGDGmrI= +github.com/99designs/gqlgen v0.17.2/go.mod h1:K5fzLKwtph+FFgh9j7nFbRUdBKvTcGnsta51fsMTn3o= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/Khan/genqlient v0.5.0 h1:TMZJ+tl/BpbmGyIBiXzKzUftDhw4ZWxQZ+1ydn0gyII= +github.com/Khan/genqlient v0.5.0/go.mod h1:EpIvDVXYm01GP6AXzjA7dKriPTH6GmtpmvTAwUUqIX8= +github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk= +github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= +github.com/agnivade/levenshtein v1.1.0/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo= +github.com/agnivade/levenshtein v1.1.1 h1:QY8M92nrzkmr798gCo3kmMyqXFzdQVpxLlGPRBij0P8= +github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo= +github.com/alexflint/go-arg v1.4.2/go.mod h1:9iRbDxne7LcR/GSvEr7ma++GLpdIU1zrghf2y2768kM= +github.com/alexflint/go-arg v1.4.3 h1:9rwwEBpMXfKQKceuZfYcwuc/7YY7tWJbFsgG5cAU/uo= +github.com/alexflint/go-arg v1.4.3/go.mod h1:3PZ/wp/8HuqRZMUUgu7I+e1qcpUbvmS258mRXkFH4IA= +github.com/alexflint/go-scalar v1.0.0/go.mod h1:GpHzbCOZXEKMEcygYQ5n/aa4Aq84zbxjy3MxYW0gjYw= +github.com/alexflint/go-scalar v1.1.0/go.mod h1:LoFvNMqS1CPrMVltza4LvnGKhaSpc3oyLEBUZVhhS2o= +github.com/alexflint/go-scalar v1.2.0 h1:WR7JPKkeNpnYIOfHRa7ivM21aWAdHD0gEWHCx+WQBRw= +github.com/alexflint/go-scalar v1.2.0/go.mod h1:LoFvNMqS1CPrMVltza4LvnGKhaSpc3oyLEBUZVhhS2o= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk= +github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= +github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= +github.com/bradleyjkemp/cupaloy/v2 v2.6.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go.mod h1:tmAIfUFEirG/Y8jhZ9M+h36obRZAk/1fcSpXwAVlfqE= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= +github.com/deepmap/oapi-codegen v1.12.4/go.mod h1:3lgHGMu6myQ2vqbbTXH2H1o4eXFTGnFiDaOaKKl5yas= +github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= +github.com/getkin/kin-openapi v0.107.0/go.mod h1:9Dhr+FasATJZjS4iOLvB0hkaxgYdulrNYm2e9epLWOo= +github.com/getkin/kin-openapi v0.112.0/go.mod h1:QtwUNt0PAAgIIBEvFWYfB7dfngxtAaqCX1zYHMZDeK8= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= +github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= +github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/invopop/yaml v0.1.0/go.mod h1:2XuRLgs/ouIrW3XNzuNj7J3Nvu/Dig5MXvbCEdiBN3Q= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= +github.com/kevinmbeaulieu/eq-go v1.0.0/go.mod h1:G3S8ajA56gKBZm4UB9AOyoOS37JO3roToPzKNM8dtdM= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/labstack/echo/v4 v4.9.1/go.mod h1:Pop5HLc+xoc4qhTZ1ip6C0RtP7Z+4VzRLWZZFKqbbjo= +github.com/labstack/echo/v4 v4.10.0/go.mod h1:S/T/5fy/GigaXnHTkh0ZGe4LpkkQysvRjFMSUTkDRNQ= +github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= +github.com/lestrrat-go/blackmagic v1.0.0/go.mod h1:TNgH//0vYSs8VXDCfkZLgIrVTTXQELZffUV0tz3MtdQ= +github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= +github.com/lestrrat-go/iter v1.0.1/go.mod h1:zIdgO1mRKhn8l9vrZJZz9TUMMFbQbLeTsbqPDrJ/OJc= +github.com/lestrrat-go/jwx v1.2.25/go.mod h1:zoNuZymNl5lgdcu6P7K6ie2QRll5HVfF4xwxBBK1NxY= +github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= +github.com/logrusorgru/aurora/v3 v3.0.0/go.mod h1:vsR12bk5grlLvLXAYrBsb5Oc/N+LxAlxggSjiwMnCUc= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/matryer/moq v0.2.3/go.mod h1:9RtPYjTnH1bSBIkpvtHkFN7nbWAnO7oRpdJkEIn6UtE= +github.com/matryer/moq v0.2.7/go.mod h1:kITsx543GOENm48TUAQyJ9+SAvFSr7iGQXPoth/VUBk= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mitchellh/mapstructure v1.2.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= +github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= +github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= +github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= +github.com/urfave/cli/v2 v2.23.7/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/vektah/gqlparser/v2 v2.4.0/go.mod h1:flJWIR04IMQPGz+BXLrORkrARBxv/rtyIAFvd/MceW0= +github.com/vektah/gqlparser/v2 v2.4.5/go.mod h1:flJWIR04IMQPGz+BXLrORkrARBxv/rtyIAFvd/MceW0= +github.com/vektah/gqlparser/v2 v2.5.1 h1:ZGu+bquAY23jsxDRcYpWjttRZrUz07LbiY77gUOHcr4= +github.com/vektah/gqlparser/v2 v2.5.1/go.mod h1:mPgqFBu/woKTVYWyNk8cO3kh4S/f4aRFZrvOnp3hmCs= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.2.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220411224347-583f2d630306/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.2.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200815165600-90abf76919f3/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= +golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.5.0 h1:+bSpV5HIeWkuvgaMfI3UmKRThoTA5ODJTUd8T17NO+4= +golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/cmd/root.go b/internal/cmd/root.go new file mode 100644 index 0000000..67fd5c4 --- /dev/null +++ b/internal/cmd/root.go @@ -0,0 +1,17 @@ +package cmd + +import ( + "github.com/urfave/cli/v2" +) + +var rootCmd = &cli.App{ + Name: "annict-epgstation-connector", + Usage: "generate recording rules based on the annict statuses", + Commands: []*cli.Command{ + syncCmd, + }, +} + +func Root() *cli.App { + return rootCmd +} diff --git a/internal/cmd/sync.go b/internal/cmd/sync.go new file mode 100644 index 0000000..d12273f --- /dev/null +++ b/internal/cmd/sync.go @@ -0,0 +1,16 @@ +package cmd + +import ( + "fmt" + + "github.com/urfave/cli/v2" +) + +var syncCmd = &cli.Command{ + Name: "sync", + Usage: "sync", + Action: func(c *cli.Context) error { + fmt.Println("added task: ", c.Args().First()) + return nil + }, +} diff --git a/main.go b/main.go deleted file mode 100644 index cd78efd..0000000 --- a/main.go +++ /dev/null @@ -1,9 +0,0 @@ -package main - -import ( - "fmt" -) - -func main() { - fmt.Println("hello world") -} diff --git a/scripts/get-annict-schema.sh b/scripts/get-annict-schema.sh new file mode 100644 index 0000000..cc35ed1 --- /dev/null +++ b/scripts/get-annict-schema.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +PROJECT_ROOT="$(readlink -f $(git rev-parse --git-dir) | sed 's/\/\.git.*//g')" +ANNICT_GRAPHQL_ENDPOINT=https://api.annict.com/graphql + +if [ $# != 1 ]; then + echo "Usage: $0 your-annict-api-token" + exit 1 +fi + +API_TOKEN="$1" + +set -o pipefall +set -o nounset +set -o errexit + +get-graphql-schema -h "Authorization=Bearer "${API_TOKEN}" "${ANNICT_GRAPHQL_ENDPOINT}" > "${PROJECT_ROOT}/annict/schema.graphql"