Skip to content

Commit 1a2a1f6

Browse files
feat(api): update via SDK Studio
1 parent e085c74 commit 1a2a1f6

File tree

1 file changed

+389
-0
lines changed

1 file changed

+389
-0
lines changed

packages/pagination/pagination.go

Lines changed: 389 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,3 +399,392 @@ func (r *EnvironnmentClassesPageAutoPager[T]) Err() error {
399399
func (r *EnvironnmentClassesPageAutoPager[T]) Index() int {
400400
return r.run
401401
}
402+
403+
type EnvironmentsPage[T any] struct {
404+
Environments []T `json:"environments"`
405+
NextToken string `json:"nextToken"`
406+
JSON environmentsPageJSON `json:"-"`
407+
cfg *requestconfig.RequestConfig
408+
res *http.Response
409+
}
410+
411+
// environmentsPageJSON contains the JSON metadata for the struct
412+
// [EnvironmentsPage[T]]
413+
type environmentsPageJSON struct {
414+
Environments apijson.Field
415+
NextToken apijson.Field
416+
raw string
417+
ExtraFields map[string]apijson.Field
418+
}
419+
420+
func (r *EnvironmentsPage[T]) UnmarshalJSON(data []byte) (err error) {
421+
return apijson.UnmarshalRoot(data, r)
422+
}
423+
424+
func (r environmentsPageJSON) RawJSON() string {
425+
return r.raw
426+
}
427+
428+
// GetNextPage returns the next page as defined by this pagination style. When
429+
// there is no next page, this function will return a 'nil' for the page value, but
430+
// will not return an error
431+
func (r *EnvironmentsPage[T]) GetNextPage() (res *EnvironmentsPage[T], err error) {
432+
next := r.NextToken
433+
if len(next) == 0 {
434+
return nil, nil
435+
}
436+
cfg := r.cfg.Clone(r.cfg.Context)
437+
cfg.Apply(option.WithQuery("token", next))
438+
var raw *http.Response
439+
cfg.ResponseInto = &raw
440+
cfg.ResponseBodyInto = &res
441+
err = cfg.Execute()
442+
if err != nil {
443+
return nil, err
444+
}
445+
res.SetPageConfig(cfg, raw)
446+
return res, nil
447+
}
448+
449+
func (r *EnvironmentsPage[T]) SetPageConfig(cfg *requestconfig.RequestConfig, res *http.Response) {
450+
if r == nil {
451+
r = &EnvironmentsPage[T]{}
452+
}
453+
r.cfg = cfg
454+
r.res = res
455+
}
456+
457+
type EnvironmentsPageAutoPager[T any] struct {
458+
page *EnvironmentsPage[T]
459+
cur T
460+
idx int
461+
run int
462+
err error
463+
}
464+
465+
func NewEnvironmentsPageAutoPager[T any](page *EnvironmentsPage[T], err error) *EnvironmentsPageAutoPager[T] {
466+
return &EnvironmentsPageAutoPager[T]{
467+
page: page,
468+
err: err,
469+
}
470+
}
471+
472+
func (r *EnvironmentsPageAutoPager[T]) Next() bool {
473+
if r.page == nil || len(r.page.Environments) == 0 {
474+
return false
475+
}
476+
if r.idx >= len(r.page.Environments) {
477+
r.idx = 0
478+
r.page, r.err = r.page.GetNextPage()
479+
if r.err != nil || r.page == nil || len(r.page.Environments) == 0 {
480+
return false
481+
}
482+
}
483+
r.cur = r.page.Environments[r.idx]
484+
r.run += 1
485+
r.idx += 1
486+
return true
487+
}
488+
489+
func (r *EnvironmentsPageAutoPager[T]) Current() T {
490+
return r.cur
491+
}
492+
493+
func (r *EnvironmentsPageAutoPager[T]) Err() error {
494+
return r.err
495+
}
496+
497+
func (r *EnvironmentsPageAutoPager[T]) Index() int {
498+
return r.run
499+
}
500+
501+
type EntriesPage[T any] struct {
502+
Entries []T `json:"entries"`
503+
NextToken string `json:"nextToken"`
504+
JSON entriesPageJSON `json:"-"`
505+
cfg *requestconfig.RequestConfig
506+
res *http.Response
507+
}
508+
509+
// entriesPageJSON contains the JSON metadata for the struct [EntriesPage[T]]
510+
type entriesPageJSON struct {
511+
Entries apijson.Field
512+
NextToken apijson.Field
513+
raw string
514+
ExtraFields map[string]apijson.Field
515+
}
516+
517+
func (r *EntriesPage[T]) UnmarshalJSON(data []byte) (err error) {
518+
return apijson.UnmarshalRoot(data, r)
519+
}
520+
521+
func (r entriesPageJSON) RawJSON() string {
522+
return r.raw
523+
}
524+
525+
// GetNextPage returns the next page as defined by this pagination style. When
526+
// there is no next page, this function will return a 'nil' for the page value, but
527+
// will not return an error
528+
func (r *EntriesPage[T]) GetNextPage() (res *EntriesPage[T], err error) {
529+
next := r.NextToken
530+
if len(next) == 0 {
531+
return nil, nil
532+
}
533+
cfg := r.cfg.Clone(r.cfg.Context)
534+
cfg.Apply(option.WithQuery("token", next))
535+
var raw *http.Response
536+
cfg.ResponseInto = &raw
537+
cfg.ResponseBodyInto = &res
538+
err = cfg.Execute()
539+
if err != nil {
540+
return nil, err
541+
}
542+
res.SetPageConfig(cfg, raw)
543+
return res, nil
544+
}
545+
546+
func (r *EntriesPage[T]) SetPageConfig(cfg *requestconfig.RequestConfig, res *http.Response) {
547+
if r == nil {
548+
r = &EntriesPage[T]{}
549+
}
550+
r.cfg = cfg
551+
r.res = res
552+
}
553+
554+
type EntriesPageAutoPager[T any] struct {
555+
page *EntriesPage[T]
556+
cur T
557+
idx int
558+
run int
559+
err error
560+
}
561+
562+
func NewEntriesPageAutoPager[T any](page *EntriesPage[T], err error) *EntriesPageAutoPager[T] {
563+
return &EntriesPageAutoPager[T]{
564+
page: page,
565+
err: err,
566+
}
567+
}
568+
569+
func (r *EntriesPageAutoPager[T]) Next() bool {
570+
if r.page == nil || len(r.page.Entries) == 0 {
571+
return false
572+
}
573+
if r.idx >= len(r.page.Entries) {
574+
r.idx = 0
575+
r.page, r.err = r.page.GetNextPage()
576+
if r.err != nil || r.page == nil || len(r.page.Entries) == 0 {
577+
return false
578+
}
579+
}
580+
r.cur = r.page.Entries[r.idx]
581+
r.run += 1
582+
r.idx += 1
583+
return true
584+
}
585+
586+
func (r *EntriesPageAutoPager[T]) Current() T {
587+
return r.cur
588+
}
589+
590+
func (r *EntriesPageAutoPager[T]) Err() error {
591+
return r.err
592+
}
593+
594+
func (r *EntriesPageAutoPager[T]) Index() int {
595+
return r.run
596+
}
597+
598+
type GroupsPage[T any] struct {
599+
Groups []T `json:"groups"`
600+
NextToken string `json:"nextToken"`
601+
JSON groupsPageJSON `json:"-"`
602+
cfg *requestconfig.RequestConfig
603+
res *http.Response
604+
}
605+
606+
// groupsPageJSON contains the JSON metadata for the struct [GroupsPage[T]]
607+
type groupsPageJSON struct {
608+
Groups apijson.Field
609+
NextToken apijson.Field
610+
raw string
611+
ExtraFields map[string]apijson.Field
612+
}
613+
614+
func (r *GroupsPage[T]) UnmarshalJSON(data []byte) (err error) {
615+
return apijson.UnmarshalRoot(data, r)
616+
}
617+
618+
func (r groupsPageJSON) RawJSON() string {
619+
return r.raw
620+
}
621+
622+
// GetNextPage returns the next page as defined by this pagination style. When
623+
// there is no next page, this function will return a 'nil' for the page value, but
624+
// will not return an error
625+
func (r *GroupsPage[T]) GetNextPage() (res *GroupsPage[T], err error) {
626+
next := r.NextToken
627+
if len(next) == 0 {
628+
return nil, nil
629+
}
630+
cfg := r.cfg.Clone(r.cfg.Context)
631+
cfg.Apply(option.WithQuery("token", next))
632+
var raw *http.Response
633+
cfg.ResponseInto = &raw
634+
cfg.ResponseBodyInto = &res
635+
err = cfg.Execute()
636+
if err != nil {
637+
return nil, err
638+
}
639+
res.SetPageConfig(cfg, raw)
640+
return res, nil
641+
}
642+
643+
func (r *GroupsPage[T]) SetPageConfig(cfg *requestconfig.RequestConfig, res *http.Response) {
644+
if r == nil {
645+
r = &GroupsPage[T]{}
646+
}
647+
r.cfg = cfg
648+
r.res = res
649+
}
650+
651+
type GroupsPageAutoPager[T any] struct {
652+
page *GroupsPage[T]
653+
cur T
654+
idx int
655+
run int
656+
err error
657+
}
658+
659+
func NewGroupsPageAutoPager[T any](page *GroupsPage[T], err error) *GroupsPageAutoPager[T] {
660+
return &GroupsPageAutoPager[T]{
661+
page: page,
662+
err: err,
663+
}
664+
}
665+
666+
func (r *GroupsPageAutoPager[T]) Next() bool {
667+
if r.page == nil || len(r.page.Groups) == 0 {
668+
return false
669+
}
670+
if r.idx >= len(r.page.Groups) {
671+
r.idx = 0
672+
r.page, r.err = r.page.GetNextPage()
673+
if r.err != nil || r.page == nil || len(r.page.Groups) == 0 {
674+
return false
675+
}
676+
}
677+
r.cur = r.page.Groups[r.idx]
678+
r.run += 1
679+
r.idx += 1
680+
return true
681+
}
682+
683+
func (r *GroupsPageAutoPager[T]) Current() T {
684+
return r.cur
685+
}
686+
687+
func (r *GroupsPageAutoPager[T]) Err() error {
688+
return r.err
689+
}
690+
691+
func (r *GroupsPageAutoPager[T]) Index() int {
692+
return r.run
693+
}
694+
695+
type MembersPage[T any] struct {
696+
Members []T `json:"members"`
697+
NextToken string `json:"nextToken"`
698+
JSON membersPageJSON `json:"-"`
699+
cfg *requestconfig.RequestConfig
700+
res *http.Response
701+
}
702+
703+
// membersPageJSON contains the JSON metadata for the struct [MembersPage[T]]
704+
type membersPageJSON struct {
705+
Members apijson.Field
706+
NextToken apijson.Field
707+
raw string
708+
ExtraFields map[string]apijson.Field
709+
}
710+
711+
func (r *MembersPage[T]) UnmarshalJSON(data []byte) (err error) {
712+
return apijson.UnmarshalRoot(data, r)
713+
}
714+
715+
func (r membersPageJSON) RawJSON() string {
716+
return r.raw
717+
}
718+
719+
// GetNextPage returns the next page as defined by this pagination style. When
720+
// there is no next page, this function will return a 'nil' for the page value, but
721+
// will not return an error
722+
func (r *MembersPage[T]) GetNextPage() (res *MembersPage[T], err error) {
723+
next := r.NextToken
724+
if len(next) == 0 {
725+
return nil, nil
726+
}
727+
cfg := r.cfg.Clone(r.cfg.Context)
728+
cfg.Apply(option.WithQuery("token", next))
729+
var raw *http.Response
730+
cfg.ResponseInto = &raw
731+
cfg.ResponseBodyInto = &res
732+
err = cfg.Execute()
733+
if err != nil {
734+
return nil, err
735+
}
736+
res.SetPageConfig(cfg, raw)
737+
return res, nil
738+
}
739+
740+
func (r *MembersPage[T]) SetPageConfig(cfg *requestconfig.RequestConfig, res *http.Response) {
741+
if r == nil {
742+
r = &MembersPage[T]{}
743+
}
744+
r.cfg = cfg
745+
r.res = res
746+
}
747+
748+
type MembersPageAutoPager[T any] struct {
749+
page *MembersPage[T]
750+
cur T
751+
idx int
752+
run int
753+
err error
754+
}
755+
756+
func NewMembersPageAutoPager[T any](page *MembersPage[T], err error) *MembersPageAutoPager[T] {
757+
return &MembersPageAutoPager[T]{
758+
page: page,
759+
err: err,
760+
}
761+
}
762+
763+
func (r *MembersPageAutoPager[T]) Next() bool {
764+
if r.page == nil || len(r.page.Members) == 0 {
765+
return false
766+
}
767+
if r.idx >= len(r.page.Members) {
768+
r.idx = 0
769+
r.page, r.err = r.page.GetNextPage()
770+
if r.err != nil || r.page == nil || len(r.page.Members) == 0 {
771+
return false
772+
}
773+
}
774+
r.cur = r.page.Members[r.idx]
775+
r.run += 1
776+
r.idx += 1
777+
return true
778+
}
779+
780+
func (r *MembersPageAutoPager[T]) Current() T {
781+
return r.cur
782+
}
783+
784+
func (r *MembersPageAutoPager[T]) Err() error {
785+
return r.err
786+
}
787+
788+
func (r *MembersPageAutoPager[T]) Index() int {
789+
return r.run
790+
}

0 commit comments

Comments
 (0)