saving progress

This commit is contained in:
Luke Hagar
2023-08-10 21:24:37 -05:00
parent b3b434493e
commit 85f8838465
163 changed files with 42926 additions and 1 deletions

4
.gitignore vendored
View File

@@ -15,7 +15,9 @@
*.out
# Dependency directories (remove the comment below to include it)
# vendor/
vendor/
# Go workspace file
go.work
api-specs/

14
Makefile Normal file
View File

@@ -0,0 +1,14 @@
.PHONY: specs
specs:
git clone https://github.com/LukeHagar/plex-api-spec.git api-specs
.PHONY: clean-specs
clean-specs:
rm -rf ./api-specs
build:
java -jar openapi-generator-cli.jar generate -i api-specs/pms/pms-spec.yaml -g go -o pms --global-property skipFormModel=false --config sdk-resources/pms-config.yaml -p enumClassPrefix=true --git-repo-id plexgo --git-user-id lukehagar
node sdk-resources/postscript.js ./pms
java -jar openapi-generator-cli.jar generate -i api-specs/plextv/plextv-spec.yaml -g go -o plextv --global-property skipFormModel=false --config sdk-resources/plextv-config.yaml -p enumClassPrefix=true --git-repo-id plexgo --git-user-id lukehagar
node sdk-resources/postscript.js ./plextv

62
client.go Normal file
View File

@@ -0,0 +1,62 @@
/*
IdentityNow V3 API
Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.
API version: 3.0.0
*/
package plexgo
import (
"regexp"
"github.com/hashicorp/go-retryablehttp"
"github.com/lukehagar/plexgo/plextv"
"github.com/lukehagar/plexgo/pms"
)
var (
jsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:vnd\.[^;]+\+)?json)`)
xmlCheck = regexp.MustCompile(`(?i:(?:application|text)/xml)`)
)
// APIClient manages communication with the Plex API
// In most cases there should be only one, shared, APIClient.
type APIClient struct {
cfg *Configuration
common service // Reuse a single struct instead of allocating one for each service on the heap.
// API Services
PMS *pms.APIClient
PlexTV *plextv.APIClient
token string
}
type service struct {
PMS *pms.APIClient
PlexTV *plextv.APIClient
}
// NewAPIClient creates a new API client. Requires a userAgent string describing your application.
// optionally a custom http.Client to allow for advanced features such as caching.
func NewAPIClient(cfg *Configuration) *APIClient {
if cfg.HTTPClient == nil {
cfg.HTTPClient = retryablehttp.NewClient()
}
c := &APIClient{}
ClientPMS := pms.NewConfiguration(cfg.ClientConfiguration.ClientId, cfg.ClientConfiguration.ClientSecret, cfg.ClientConfiguration.BaseURL, cfg.ClientConfiguration.TokenURL, cfg.ClientConfiguration.Token)
ClientPlexTV := plextv.NewConfiguration(cfg.ClientConfiguration.ClientId, cfg.ClientConfiguration.ClientSecret, "https://plex.tv/api", cfg.ClientConfiguration.TokenURL, cfg.ClientConfiguration.Token)
ClientPMS.HTTPClient = cfg.HTTPClient
ClientPlexTV.HTTPClient = cfg.HTTPClient
c.PMS = pms.NewAPIClient(ClientPMS)
c.PlexTV = plextv.NewAPIClient(ClientPlexTV)
// API Services
return c
}

183
configuration.go Normal file
View File

@@ -0,0 +1,183 @@
/*
IdentityNow V3 API
Use these APIs to interact with the IdentityNow platform to achieve repeatable, automated processes with greater scalability. We encourage you to join the SailPoint Developer Community forum at https://developer.sailpoint.com/discuss to connect with other developers using our APIs.
API version: 3.0.0
*/
package plexgo
import (
"fmt"
"os"
"path/filepath"
"time"
"github.com/hashicorp/go-retryablehttp"
"github.com/spf13/viper"
)
type PatConfig struct {
ClientID string `mapstructure:"clientid"`
ClientSecret string `mapstructure:"clientsecret"`
AccessToken string `mapstructure:"accesstoken"`
Expiry time.Time `mapstructure:"expiry"`
}
type Token struct {
AccessToken string `mapstructure:"accesstoken"`
Expiry time.Time `mapstructure:"expiry"`
}
type Environment struct {
TenantURL string `mapstructure:"tenanturl"`
BaseURL string `mapstructure:"baseurl"`
Pat PatConfig `mapstructure:"pat"`
OAuth Token `mapstructure:"oauth"`
}
type OrgConfig struct {
//Standard Variables
Debug bool `mapstructure:"debug"`
AuthType string `mapstructure:"authtype"`
ActiveEnvironment string `mapstructure:"activeenvironment"`
Environments map[string]Environment `mapstructure:"environments"`
}
type ClientConfiguration struct {
ClientId string
ClientSecret string
BaseURL string
TokenURL string
Token string
}
// ServerVariable stores the information about a server variable
type ServerVariable struct {
Description string
DefaultValue string
EnumValues []string
}
// Configuration stores the configuration of the API client
type Configuration struct {
Host string `json:"host,omitempty"`
Scheme string `json:"scheme,omitempty"`
DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
UserAgent string `json:"userAgent,omitempty"`
Debug bool `json:"debug,omitempty"`
HTTPClient *retryablehttp.Client
ClientConfiguration ClientConfiguration
}
// NewConfiguration returns a new Configuration object
func NewConfiguration(clientConfiguration ClientConfiguration) *Configuration {
cfg := &Configuration{
DefaultHeader: make(map[string]string),
UserAgent: "OpenAPI-Generator/0.1.0/go",
Debug: false,
ClientConfiguration: clientConfiguration,
}
return cfg
}
func localConfig() ClientConfiguration {
executableDir, err := os.Executable()
if err != nil {
panic(fmt.Errorf("unable to find executable directory: %s", err))
}
viper.AddConfigPath(filepath.Dir(executableDir))
viper.AddConfigPath(".")
viper.SetConfigName("config")
viper.SetConfigType("json")
if err2 := viper.ReadInConfig(); err != nil {
if _, ok := err2.(viper.ConfigFileNotFoundError); ok {
// Config file not found; ignore error if desired
// IGNORE they may be using env vars
} else {
// Config file was found but another error was produced
panic(fmt.Errorf("unable to read config: %s", err2))
}
}
var simpleConfig ClientConfiguration
err3 := viper.Unmarshal(&simpleConfig)
if err3 != nil {
panic(fmt.Errorf("unable to decode Config: %s", err3))
}
simpleConfig.TokenURL = simpleConfig.BaseURL + "/oauth/token"
return simpleConfig
}
func homeConfig() ClientConfiguration {
home, err := os.UserHomeDir()
if err != nil {
panic(fmt.Errorf("unable to find home directory: %s", err))
}
viper.AddConfigPath(filepath.Join(home, ".sailpoint"))
viper.SetConfigName("config")
viper.SetConfigType("yaml")
if err2 := viper.ReadInConfig(); err != nil {
if _, ok := err2.(viper.ConfigFileNotFoundError); ok {
// Config file not found; ignore error if desired
// IGNORE they may be using env vars
} else {
// Config file was found but another error was produced
panic(fmt.Errorf("unable to read config: %s", err2))
}
}
var config OrgConfig
err3 := viper.Unmarshal(&config)
if err3 != nil {
panic(fmt.Errorf("unable to decode Config: %s", err3))
}
var simpleConfig ClientConfiguration
simpleConfig.BaseURL = config.Environments[config.ActiveEnvironment].BaseURL
simpleConfig.ClientId = config.Environments[config.ActiveEnvironment].Pat.ClientID
simpleConfig.ClientSecret = config.Environments[config.ActiveEnvironment].Pat.ClientSecret
simpleConfig.TokenURL = simpleConfig.BaseURL + "/oauth/token"
return simpleConfig
}
func envConfig() ClientConfiguration {
var simpleConfig ClientConfiguration
if os.Getenv("SAIL_BASE_URL") != "" {
simpleConfig.BaseURL = os.Getenv("SAIL_BASE_URL")
}
if os.Getenv("SAIL_CLIENT_ID") != "" {
simpleConfig.ClientId = os.Getenv("SAIL_CLIENT_ID")
}
if os.Getenv("SAIL_CLIENT_SECRET") != "" {
simpleConfig.ClientSecret = os.Getenv("SAIL_CLIENT_SECRET")
}
simpleConfig.TokenURL = simpleConfig.BaseURL + "/oauth/token"
return simpleConfig
}
func NewDefaultConfiguration() *Configuration {
envConfiguration := envConfig()
if envConfiguration.BaseURL != "" {
return NewConfiguration(envConfiguration)
}
localConfiguration := localConfig()
if localConfiguration.BaseURL != "" {
return NewConfiguration(localConfiguration)
}
homeConfiguration := homeConfig()
if homeConfiguration.BaseURL != "" {
fmt.Printf("Configuration file found in home directory, this approach of loading configuration will be deprecated in future releases, please upgrade the CLI and use the new 'sail sdk init config' command to create a local configuration file")
return NewConfiguration(homeConfiguration)
}
panic(fmt.Errorf("unable to find any config file"))
}

30
examples/go.mod Normal file
View File

@@ -0,0 +1,30 @@
module sdk
go 1.18
require github.com/sailpoint-oss/golang-sdk v1.0.1
require (
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-retryablehttp v0.7.2 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/pelletier/go-toml/v2 v2.0.6 // indirect
github.com/spf13/afero v1.9.3 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.15.0 // indirect
github.com/subosito/gotenv v1.4.2 // indirect
golang.org/x/net v0.6.0 // indirect
golang.org/x/oauth2 v0.5.0 // indirect
golang.org/x/sys v0.5.0 // indirect
golang.org/x/text v0.7.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

501
examples/go.sum Normal file
View File

@@ -0,0 +1,501 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
github.com/hashicorp/go-hclog v1.2.0 h1:La19f8d7WIlm4ogzNHB0JGqs5AUDAZ2UfCY4sJXcJdM=
github.com/hashicorp/go-retryablehttp v0.7.2 h1:AcYqCvkpalPnPF2pn0KamgwamS42TqUDDYFRKq/RAd0=
github.com/hashicorp/go-retryablehttp v0.7.2/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
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 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU=
github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
github.com/sailpoint-oss/golang-sdk v1.0.1 h1:JFqoW5K7/RkwzqhEnh0bJfcDc5CDAwrf9TxXnYqK/Ho=
github.com/sailpoint-oss/golang-sdk v1.0.1/go.mod h1:aMxZu5ieAI89duSsOy/R7+dXwk5EbF6CAEvXt8ivMYw=
github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk=
github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU=
github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA=
github.com/stretchr/objx v0.1.0/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.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.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 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
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-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s=
golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/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-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/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-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
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=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
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 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=

28
examples/sdk.go Normal file
View File

@@ -0,0 +1,28 @@
package main
import (
"context"
"github.com/lukehagar/plexgo"
)
func main() {
ctx := context.TODO()
configuration := plexgo.NewDefaultConfiguration()
apiClient := plexgo.NewAPIClient(configuration)
configuration.HTTPClient.RetryMax = 10
getResults(ctx, apiClient)
//getAllPaginatedResults(ctx, apiClient)
}
func getResults(ctx context.Context, apiClient *plexgo.APIClient) {
apiClient.GetLibrarySections(ctx)
}

35
go.mod Normal file
View File

@@ -0,0 +1,35 @@
module github.com/lukehagar/plexgo
go 1.19
require github.com/sailpoint-oss/golang-sdk v1.1.6
require (
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/hashicorp/go-retryablehttp v0.7.2
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/magiconair/properties v1.8.6 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pelletier/go-toml/v2 v2.0.5 // indirect
github.com/spf13/afero v1.9.2 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.14.0
github.com/subosito/gotenv v1.4.1 // indirect
golang.org/x/net v0.5.0 // indirect
golang.org/x/sys v0.6.0 // indirect
golang.org/x/text v0.6.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
require (
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
golang.org/x/oauth2 v0.4.0 // indirect
)

503
go.sum Normal file
View File

@@ -0,0 +1,503 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
github.com/hashicorp/go-hclog v1.2.0 h1:La19f8d7WIlm4ogzNHB0JGqs5AUDAZ2UfCY4sJXcJdM=
github.com/hashicorp/go-retryablehttp v0.7.2 h1:AcYqCvkpalPnPF2pn0KamgwamS42TqUDDYFRKq/RAd0=
github.com/hashicorp/go-retryablehttp v0.7.2/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
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 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg=
github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
github.com/sailpoint-oss/golang-sdk v1.1.6 h1:5EZkxVDeJXl2ZZDfhnc/mgRPExCzBi1oOJSakcdItlM=
github.com/sailpoint-oss/golang-sdk v1.1.6/go.mod h1:llHaEhgszkfXiImwiwwe50WpRQm4xhFXqt19mnmcbk0=
github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.14.0 h1:Rg7d3Lo706X9tHsJMUjdiwMpHB7W8WnSVOssIY+JElU=
github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
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.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.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY=
github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs=
github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
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-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw=
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M=
golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/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-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/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-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k=
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/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-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
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=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
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 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/yaml.v2 v2.2.2/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.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=

BIN
openapi-generator-cli.jar Normal file

Binary file not shown.

51
paginator.go Normal file
View File

@@ -0,0 +1,51 @@
package plexgo
import (
"net/http"
"reflect"
)
func PaginateWithDefaults[T any](f interface{}) ([]T, *http.Response, error) {
return Paginate[T](f, 0, 250, 10000)
}
func Paginate[T any](f interface{}, initialOffset int32, increment int32, limit int32) ([]T, *http.Response, error) {
var offset int32 = initialOffset
var returnObject []T
var latestResponse *http.Response
incrementResp := Invoke(f, "Limit", increment)
for offset < limit {
// first invoke the Offset command to set the new offset
offsetResp := Invoke(incrementResp[0].Interface(), "Offset", offset)
// invoke the Execute function to get the response
resp := Invoke(offsetResp[0].Interface(), "Execute")
// convert the expected return values to their respective types
actualValue := resp[0].Interface().([]T)
latestResponse = resp[1].Interface().(*http.Response)
err := resp[2].Interface()
if err != nil {
return returnObject, latestResponse, err.(error)
}
// append the results to the main return object
returnObject = append(returnObject, actualValue...)
// check if this is the last set in the response. This could be enhanced by inspecting the header for the max results
if int32(len(actualValue)) < increment {
break
}
offset += increment
}
return returnObject, latestResponse, nil
}
func Invoke(any interface{}, name string, args ...interface{}) []reflect.Value {
inputs := make([]reflect.Value, len(args))
for i, v := range args {
inputs[i] = reflect.ValueOf(v)
}
return reflect.ValueOf(any).MethodByName(name).Call(inputs)
}

24
plextv/.gitignore vendored Normal file
View File

@@ -0,0 +1,24 @@
# Compiled Object files, Static and Dynamic libs (Shared Objects)
*.o
*.a
*.so
# Folders
_obj
_test
# Architecture specific extensions/prefixes
*.[568vq]
[568vq].out
*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*
_testmain.go
*.exe
*.test
*.prof

View File

@@ -0,0 +1,23 @@
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.
# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md

View File

@@ -0,0 +1,25 @@
.gitignore
.travis.yml
README.md
api/openapi.yaml
api_plex_tv.go
client.go
configuration.go
docs/GetCompanionsData401Response.md
docs/GetGeoData200Response.md
docs/GetPin200Response.md
docs/GetPin200ResponseLocation.md
docs/GetPin400Response.md
docs/GetUserOptOutSettings200Response.md
docs/PlexTvApi.md
git_push.sh
go.mod
go.sum
model_get_companions_data_401_response.go
model_get_geo_data_200_response.go
model_get_pin_200_response.go
model_get_pin_200_response_location.go
model_get_pin_400_response.go
model_get_user_opt_out_settings_200_response.go
response.go
utils.go

View File

@@ -0,0 +1 @@
6.6.0

8
plextv/.travis.yml Normal file
View File

@@ -0,0 +1,8 @@
language: go
install:
- go get -d -v .
script:
- go build -v ./

197
plextv/README.md Normal file
View File

@@ -0,0 +1,197 @@
# Go API client for plextv
An Open API Spec for interacting with Plex.tv
## Overview
This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.
- API version: 0.0.3
- Package version: 1.1.6
- Build package: org.openapitools.codegen.languages.GoClientCodegen
For more information, please visit [https://www.LukeHagar.com](https://www.LukeHagar.com)
## Installation
Install the following dependencies:
```shell
go get github.com/stretchr/testify/assert
go get golang.org/x/net/context
```
Put the package under your project folder and add the following in import:
```golang
import plextv "github.com/lukehagar/plexgo"
```
To use a proxy, set the environment variable `HTTP_PROXY`:
```golang
os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")
```
## Configuration of Server URL
Default configuration comes with `Servers` field that contains server objects as defined in the OpenAPI specification.
### Select Server Configuration
For using other server than the one defined on index 0 set context value `sw.ContextServerIndex` of type `int`.
```golang
ctx := context.WithValue(context.Background(), plextv.ContextServerIndex, 1)
```
### Templated Server URL
Templated server URL is formatted using default variables from configuration or from context value `sw.ContextServerVariables` of type `map[string]string`.
```golang
ctx := context.WithValue(context.Background(), plextv.ContextServerVariables, map[string]string{
"basePath": "v2",
})
```
Note, enum values are always validated and all unused variables are silently ignored.
### URLs Configuration per Operation
Each operation can use different server URL defined using `OperationServers` map in the `Configuration`.
An operation is uniquely identified by `"{classname}Service.{nickname}"` string.
Similar rules for overriding default operation server index and variables applies by using `sw.ContextOperationServerIndices` and `sw.ContextOperationServerVariables` context maps.
```golang
ctx := context.WithValue(context.Background(), plextv.ContextOperationServerIndices, map[string]int{
"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), plextv.ContextOperationServerVariables, map[string]map[string]string{
"{classname}Service.{nickname}": {
"port": "8443",
},
})
```
## Documentation for API Endpoints
All URIs are relative to *https://plex.tv/api/v2*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*PlexTvApi* | [**GetCompanionsData**](docs/PlexTvApi.md#getcompanionsdata) | **Get** /companions | Get Companions Data
*PlexTvApi* | [**GetDevices**](docs/PlexTvApi.md#getdevices) | **Get** /resources | Get Devices
*PlexTvApi* | [**GetGeoData**](docs/PlexTvApi.md#getgeodata) | **Get** /geoip | Get Geo Data
*PlexTvApi* | [**GetHomeData**](docs/PlexTvApi.md#gethomedata) | **Get** /home | Get Home Data
*PlexTvApi* | [**GetPin**](docs/PlexTvApi.md#getpin) | **Post** /pins | Get a Pin
*PlexTvApi* | [**GetToken**](docs/PlexTvApi.md#gettoken) | **Get** /pins/{pinID} | Get Access Token
*PlexTvApi* | [**GetUserDetails**](docs/PlexTvApi.md#getuserdetails) | **Get** /user | Get Logged in User
*PlexTvApi* | [**GetUserOptOutSettings**](docs/PlexTvApi.md#getuseroptoutsettings) | **Get** /user/settings/opt_outs | Get User Opt Out Settings
*PlexTvApi* | [**GetUserSettings**](docs/PlexTvApi.md#getusersettings) | **Get** /user/settings | Get User Settings
## Documentation For Models
- [GetCompanionsData401Response](docs/GetCompanionsData401Response.md)
- [GetGeoData200Response](docs/GetGeoData200Response.md)
- [GetPin200Response](docs/GetPin200Response.md)
- [GetPin200ResponseLocation](docs/GetPin200ResponseLocation.md)
- [GetPin400Response](docs/GetPin400Response.md)
- [GetUserOptOutSettings200Response](docs/GetUserOptOutSettings200Response.md)
## Documentation For Authorization
### Token
- **Type**: API key
- **API key parameter name**: X-Plex-Token
- **Location**: HTTP header
Note, each API key must be added to a map of `map[string]APIKey` where the key is: X-Plex-Token and passed in as the auth context for each request.
### ClientIdentifier
- **Type**: API key
- **API key parameter name**: X-Plex-Client-Identifier
- **Location**: HTTP header
Note, each API key must be added to a map of `map[string]APIKey` where the key is: X-Plex-Client-Identifier and passed in as the auth context for each request.
### DeviceName
- **Type**: API key
- **API key parameter name**: X-Plex-Device-Name
- **Location**: HTTP header
Note, each API key must be added to a map of `map[string]APIKey` where the key is: X-Plex-Device-Name and passed in as the auth context for each request.
### Device
- **Type**: API key
- **API key parameter name**: X-Plex-Device
- **Location**: HTTP header
Note, each API key must be added to a map of `map[string]APIKey` where the key is: X-Plex-Device and passed in as the auth context for each request.
### PlatformVersion
- **Type**: API key
- **API key parameter name**: X-Plex-Platform-Version
- **Location**: HTTP header
Note, each API key must be added to a map of `map[string]APIKey` where the key is: X-Plex-Platform-Version and passed in as the auth context for each request.
### Platform
- **Type**: API key
- **API key parameter name**: X-Plex-Platform
- **Location**: HTTP header
Note, each API key must be added to a map of `map[string]APIKey` where the key is: X-Plex-Platform and passed in as the auth context for each request.
### Product
- **Type**: API key
- **API key parameter name**: X-Plex-Product
- **Location**: HTTP header
Note, each API key must be added to a map of `map[string]APIKey` where the key is: X-Plex-Product and passed in as the auth context for each request.
### Version
- **Type**: API key
- **API key parameter name**: X-Plex-Version
- **Location**: HTTP header
Note, each API key must be added to a map of `map[string]APIKey` where the key is: X-Plex-Version and passed in as the auth context for each request.
## Documentation for Utility Methods
Due to the fact that model structure members are all pointers, this package contains
a number of utility functions to easily obtain pointers to values of basic types.
Each of these functions takes a value of the given basic type and returns a pointer to it:
* `PtrBool`
* `PtrInt`
* `PtrInt32`
* `PtrInt64`
* `PtrFloat`
* `PtrFloat32`
* `PtrFloat64`
* `PtrString`
* `PtrTime`
## Author
Lukeslakemail@gmail.com

599
plextv/api/openapi.yaml Normal file
View File

@@ -0,0 +1,599 @@
openapi: 3.1.0
info:
contact:
email: Lukeslakemail@gmail.com
name: Luke Hagar
url: https://www.LukeHagar.com
description: An Open API Spec for interacting with Plex.tv
license:
name: MIT
url: https://opensource.org/licenses/MIT
title: Plex-API
version: 0.0.3
servers:
- url: https://plex.tv/api/v2
security:
- Token: []
ClientIdentifier: []
Device: []
DeviceName: []
Platform: []
PlatformVersion: []
Product: []
Version: []
tags:
- description: |
Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints.
Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity.
Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint. Other details:
- They can contain a `progress` (from 0 to 100) marking the percent completion of the activity.
- They must contain an `type` which is used by clients to distinguish the specific activity.
- They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.)
- The may contain a `Response` object which attributes which represent the result of the asynchronous operation.
name: Activities
- description: |
API Calls regarding authentication for Plex Media Server
name: Authentication
- description: |
Butler is the task manager of the Plex Media Server Ecosystem.
name: Butler
- description: |
Operations against the Plex Media Server System.
name: Server
- description: |
This describes the API for searching and applying updates to the Plex Media Server.
Updates to the status can be observed via the Event API.
name: Updater
- description: |
Submit logs to the Log Handler for Plex Media Server
name: Log
- description: |
API Calls against Security for Plex Media Server
name: Security
- description: |
API Calls interacting with Plex Media Server Libraries
name: Library
- description: |
Hubs are a structured two-dimensional container for media, generally represented by multiple horizontal rows.
name: Hubs
- description: "Playlists are ordered collections of media. They can be dumb (just\
\ a list of media) or smart (based on a media query, such as \"all albums from\
\ 2017\"). \nThey can be organized in (optionally nesting) folders.\nRetrieving\
\ a playlist, or its items, will trigger a refresh of its metadata. \nThis may\
\ cause the duration and number of items to change.\n"
name: Playlists
- description: |
API Calls that perform search operations with Plex Media Server
name: Search
- description: |
API Calls that perform operations with Plex Media Server Users
name: User
paths:
/companions:
get:
description: Get Companions Data
operationId: getCompanionsData
responses:
"200":
content:
application/json:
schema:
items:
properties:
identifier:
example: tv.plex.sonos
baseURL:
example: https://sonos.plex.tv
title:
example: Sonos
linkURL:
example: https://sonos.plex.tv/link
provides:
example: clientplayer
token:
example: VFnxitsRFdWx_WrzsKL
description: Companions Data
"400":
description: "Bad Request - A parameter was not specified, or was specified\
\ incorrectly."
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/getCompanionsData_401_response'
description: Unauthorized - Returned if the X-Plex-Token is missing from
the header or query.
summary: Get Companions Data
tags:
- Plex.tv
/geoip:
get:
description: Get Geo Data
operationId: getGeoData
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGeoData_200_response'
description: Geo Data
"400":
description: "Bad Request - A parameter was not specified, or was specified\
\ incorrectly."
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/getCompanionsData_401_response'
description: Unauthorized - Returned if the X-Plex-Token is missing from
the header or query.
summary: Get Geo Data
tags:
- Plex.tv
/home:
get:
description: Get Home Data
operationId: getHomeData
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getGeoData_200_response'
description: Home Data
"400":
description: "Bad Request - A parameter was not specified, or was specified\
\ incorrectly."
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/getCompanionsData_401_response'
description: Unauthorized - Returned if the X-Plex-Token is missing from
the header or query.
summary: Get Home Data
tags:
- Plex.tv
/pins:
post:
description: Retrieve a Pin from Plex.tv for authentication flows
operationId: getPin
parameters:
- description: |
Determines the kind of code returned by the API call
Strong codes are used for Pin authentication flows
Non-Strong codes are used for `Plex.tv/link`
explode: true
in: query
name: strong
required: false
schema:
default: false
style: form
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getPin_200_response'
description: The Pin
"400":
content:
application/json:
schema:
$ref: '#/components/schemas/getPin_400_response'
description: X-Plex-Client-Identifier is missing
security:
- ClientIdentifier: []
summary: Get a Pin
tags:
- Plex.tv
/pins/{pinID}:
get:
description: Retrieve an Access Token from Plex.tv after the Pin has already
been authenticated
operationId: getToken
parameters:
- description: The PinID to retrieve an access token for
explode: false
in: path
name: pinID
required: true
schema: {}
style: simple
responses:
"200":
description: Access Token
"400":
content:
application/json:
schema:
$ref: '#/components/schemas/getPin_400_response'
description: X-Plex-Client-Identifier is missing
security:
- ClientIdentifier: []
summary: Get Access Token
tags:
- Plex.tv
/resources:
get:
description: Get Devices
operationId: getDevices
parameters:
- description: Include Https entries in the results
explode: true
in: query
name: includeHttps
required: false
schema:
enum:
- 0
- 1
style: form
- description: Include Relay addresses in the results
explode: true
in: query
name: includeRelay
required: false
schema:
enum:
- 0
- 1
style: form
- description: Include IPv6 entries in the results
explode: true
in: query
name: includeIPv6
required: false
schema:
enum:
- 0
- 1
style: form
responses:
"200":
content:
application/json:
schema:
items:
properties:
name:
example: Hera
product:
example: Plex Media Server
productVersion:
example: 1.31.3.6868-28fc46b27
platform:
example: Linux
platformVersion:
example: 5.19.17-Unraid (#2 SMP PREEMPT_DYNAMIC Wed Nov 2 11:54:15
PDT 2022)
device:
example: PC
clientIdentifier:
example: 96f2fe7a78c9dc1f16a16bedbe90f98149be16b4
createdAt:
example: 2022-06-02T00:54:26Z
format: date-time
lastSeenAt:
example: 2023-04-11T05:53:59Z
format: date-time
provides:
example: server
ownerId:
format: nullable
sourceTitle:
format: nullable
publicAddress:
example: 68.248.140.20
accessToken:
example: CR3nxzsaSHdWx_WwZsJL
owned: {}
home: {}
synced: {}
relay: {}
presence: {}
httpsRequired: {}
publicAddressMatches: {}
dnsRebindingProtection: {}
natLoopbackSupported: {}
connections:
items:
properties:
protocol:
example: http
address:
example: 172.18.0.1
port:
example: 32400
uri:
example: http://172.18.0.1:32400
local: {}
relay: {}
IPv6: {}
description: List of Plex Devices
"400":
description: "Bad Request - A parameter was not specified, or was specified\
\ incorrectly."
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/getCompanionsData_401_response'
description: Unauthorized - Returned if the X-Plex-Token is missing from
the header or query.
summary: Get Devices
tags:
- Plex.tv
/user:
get:
description: Get Logged in User
operationId: getUserDetails
responses:
"200":
description: Logged in user details
"400":
description: "Bad Request - A parameter was not specified, or was specified\
\ incorrectly."
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/getCompanionsData_401_response'
description: Unauthorized - Returned if the X-Plex-Token is missing from
the header or query.
summary: Get Logged in User
tags:
- Plex.tv
/user/settings:
get:
description: Get User Settings
operationId: getUserSettings
responses:
"200":
content:
application/json:
schema:
items:
properties:
id:
example: experience
type:
example: json
value: {}
hidden: {}
updatedAt:
example: 1681769995
description: User Settings
"400":
description: "Bad Request - A parameter was not specified, or was specified\
\ incorrectly."
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/getCompanionsData_401_response'
description: Unauthorized - Returned if the X-Plex-Token is missing from
the header or query.
summary: Get User Settings
tags:
- Plex.tv
/user/settings/opt_outs:
get:
description: Get User Opt Out Settings
operationId: getUserOptOutSettings
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/getUserOptOutSettings_200_response'
description: User Opt Out Settings
"400":
description: "Bad Request - A parameter was not specified, or was specified\
\ incorrectly."
"401":
content:
application/json:
schema:
$ref: '#/components/schemas/getCompanionsData_401_response'
description: Unauthorized - Returned if the X-Plex-Token is missing from
the header or query.
summary: Get User Opt Out Settings
tags:
- Plex.tv
components:
schemas:
getPin_400_response:
properties:
errors:
items:
properties:
code:
example: 1000
message:
example: X-Plex-Client-Identifier is missing
status:
example: 400
getPin_200_response_location:
example:
country: United States
code: US
city: Austin
european_union_member: ""
coordinates: 30.3768 -97.8935
continent_code: NA
time_zone: America/Chicago
postal_code: 78732
in_privacy_restricted_country: ""
subdivisions: Texas
properties:
code:
example: US
european_union_member: {}
continent_code:
example: NA
country:
example: United States
city:
example: Austin
time_zone:
example: America/Chicago
postal_code:
example: 78732
in_privacy_restricted_country: {}
subdivisions:
example: Texas
coordinates:
example: 30.3768 -97.8935
getPin_200_response:
example:
expiresIn: 1800
qr: https://plex.tv/api/v2/pins/qr/3patfx1a78ukcbr7x0n9bl26t
createdAt: 2023-04-12T17:00:03Z
product: Plex Web
code: 3patfx1a78ukcbr7x0n9bl26t
trusted: ""
newRegistration: ""
clientIdentifier: Postman
authToken: ""
location:
country: United States
code: US
city: Austin
european_union_member: ""
coordinates: 30.3768 -97.8935
continent_code: NA
time_zone: America/Chicago
postal_code: 78732
in_privacy_restricted_country: ""
subdivisions: Texas
id: 1272322473
expiresAt: 2023-04-12T17:30:03Z
properties:
id:
description: PinID for use with authentication
example: 1272322473
code:
example: 3patfx1a78ukcbr7x0n9bl26t
product:
example: Plex Web
trusted: {}
qr:
description: "a link to a QR code hosted on plex.tv \nThe QR code redirects\
\ to the relevant `plex.tv/link` authentication page\nWhich then prompts\
\ the user for the 4 Digit Link Pin\n"
example: https://plex.tv/api/v2/pins/qr/3patfx1a78ukcbr7x0n9bl26t
clientIdentifier:
example: Postman
location:
$ref: '#/components/schemas/getPin_200_response_location'
expiresIn:
example: 1800
createdAt:
example: 2023-04-12T17:00:03Z
format: date-time
expiresAt:
example: 2023-04-12T17:30:03Z
format: date-time
authToken:
format: nullable
newRegistration:
format: nullable
getUserOptOutSettings_200_response:
example:
tv.plex.provider.podcasts: opt_in
tv.plex.provider.webshows: opt_out
scrobbling: opt_in
tv.plex.provider.vod: opt_in
tv.plex.provider.news: opt_in
tv.plex.provider.music: opt_out
properties:
tv.plex.provider.podcasts:
example: opt_in
tv.plex.provider.news:
example: opt_in
tv.plex.provider.webshows:
example: opt_out
tv.plex.provider.music:
example: opt_out
tv.plex.provider.vod:
example: opt_in
scrobbling:
example: opt_in
getGeoData_200_response:
example:
guestUserID: 58815432
guestUserUUID: f3df4e01bfca0787
name: Blindkitty38's home
id: 1841489
subscription: ""
guestEnabled: ""
properties:
id:
example: 1841489
name:
example: Blindkitty38's home
guestUserID:
example: 58815432
guestUserUUID:
example: f3df4e01bfca0787
guestEnabled: {}
subscription: {}
getCompanionsData_401_response:
properties:
errors:
items:
properties:
code:
example: 1001
message:
example: User could not be authenticated
status:
example: 401
securitySchemes:
Token:
description: Plex Authentication Token
in: header
name: X-Plex-Token
type: apiKey
ClientIdentifier:
description: Plex Authentication Token
in: header
name: X-Plex-Client-Identifier
type: apiKey
DeviceName:
description: Primary name for the device eg. `Plex Web (Chrome)`
in: header
name: X-Plex-Device-Name
type: apiKey
Device:
description: |
The type of device your application is running on
Device name and or model number, eg `iPhone3,2`, `Motorola XOOM™`, `LG5200TV`
in: header
name: X-Plex-Device
type: apiKey
PlatformVersion:
description: |
Operating system version
eg `4.3.1`, `10.6.7`, `3.2`
in: header
name: X-Plex-Platform-Version
type: apiKey
Platform:
description: "Platform name \neg: `Web`, `iOS`, `MacOSX`, `Android`, `LG`\n"
in: header
name: X-Plex-Platform
type: apiKey
Product:
description: "Plex application name \neg: `Laika`, `Plex Media Server`, `Media\
\ Link`\n"
in: header
name: X-Plex-Product
type: apiKey
Version:
description: Plex application version number
in: header
name: X-Plex-Version
type: apiKey

1840
plextv/api_plex_tv.go Normal file

File diff suppressed because it is too large Load Diff

710
plextv/client.go Normal file
View File

@@ -0,0 +1,710 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package plextv
import (
"bytes"
"context"
"encoding/json"
"encoding/xml"
"errors"
"fmt"
"io"
"io/ioutil"
"log"
"mime/multipart"
"net/http"
"net/http/httputil"
"net/url"
"os"
"path/filepath"
"reflect"
"regexp"
"strconv"
"strings"
"time"
"unicode/utf8"
retryablehttp "github.com/hashicorp/go-retryablehttp"
)
var (
jsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:vnd\.[^;]+\+)?json)`)
xmlCheck = regexp.MustCompile(`(?i:(?:application|text)/xml)`)
queryParamSplit = regexp.MustCompile(`(^|&)([^&]+)`)
queryDescape = strings.NewReplacer( "%5B", "[", "%5D", "]" )
)
// APIClient manages communication with the Plex-API API v0.0.3
// In most cases there should be only one, shared, APIClient.
type APIClient struct {
cfg *Configuration
common service // Reuse a single struct instead of allocating one for each service on the heap.
// API Services
PlexTvApi *PlexTvApiService
}
type service struct {
client *APIClient
}
// NewAPIClient creates a new API client. Requires a userAgent string describing your application.
// optionally a custom http.Client to allow for advanced features such as caching.
func NewAPIClient(cfg *Configuration) *APIClient {
if cfg.HTTPClient == nil {
cfg.HTTPClient = retryablehttp.NewClient()
}
c := &APIClient{}
c.cfg = cfg
c.common.client = c
// API Services
c.PlexTvApi = (*PlexTvApiService)(&c.common)
return c
}
func atoi(in string) (int, error) {
return strconv.Atoi(in)
}
// selectHeaderContentType select a content type from the available list.
func selectHeaderContentType(contentTypes []string) string {
if len(contentTypes) == 0 {
return ""
}
if contains(contentTypes, "application/json") {
return "application/json"
}
return contentTypes[0] // use the first content type specified in 'consumes'
}
// selectHeaderAccept join all accept types and return
func selectHeaderAccept(accepts []string) string {
if len(accepts) == 0 {
return ""
}
if contains(accepts, "application/json") {
return "application/json"
}
return strings.Join(accepts, ",")
}
// contains is a case insensitive match, finding needle in a haystack
func contains(haystack []string, needle string) bool {
for _, a := range haystack {
if strings.EqualFold(a, needle) {
return true
}
}
return false
}
// Verify optional parameters are of the correct type.
func typeCheckParameter(obj interface{}, expected string, name string) error {
// Make sure there is an object.
if obj == nil {
return nil
}
// Check the type is as expected.
if reflect.TypeOf(obj).String() != expected {
return fmt.Errorf("expected %s to be of type %s but received %s", name, expected, reflect.TypeOf(obj).String())
}
return nil
}
func parameterValueToString( obj interface{}, key string ) string {
if reflect.TypeOf(obj).Kind() != reflect.Ptr {
return fmt.Sprintf("%v", obj)
}
var param,ok = obj.(MappedNullable)
if !ok {
return ""
}
dataMap,err := param.ToMap()
if err != nil {
return ""
}
return fmt.Sprintf("%v", dataMap[key])
}
// parameterAddToQuery adds the provided object to the url query supporting deep object syntax
func parameterAddToQuery(queryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
value = "null"
} else {
switch v.Kind() {
case reflect.Invalid:
value = "invalid"
case reflect.Struct:
if t,ok := obj.(MappedNullable); ok {
dataMap,err := t.ToMap()
if err != nil {
return
}
parameterAddToQuery(queryParams, keyPrefix, dataMap, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToQuery(queryParams, keyPrefix, t.Format(time.RFC3339), collectionType)
return
}
value = v.Type().String() + " value"
case reflect.Slice:
var indValue = reflect.ValueOf(obj)
if indValue == reflect.ValueOf(nil) {
return
}
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToQuery(queryParams, keyPrefix, arrayValue.Interface(), collectionType)
}
return
case reflect.Map:
var indValue = reflect.ValueOf(obj)
if indValue == reflect.ValueOf(nil) {
return
}
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToQuery(queryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToQuery(queryParams, keyPrefix, v.Elem().Interface(), collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,
reflect.Int32, reflect.Int64:
value = strconv.FormatInt(v.Int(), 10)
case reflect.Uint, reflect.Uint8, reflect.Uint16,
reflect.Uint32, reflect.Uint64, reflect.Uintptr:
value = strconv.FormatUint(v.Uint(), 10)
case reflect.Float32, reflect.Float64:
value = strconv.FormatFloat(v.Float(), 'g', -1, 32)
case reflect.Bool:
value = strconv.FormatBool(v.Bool())
case reflect.String:
value = v.String()
default:
value = v.Type().String() + " value"
}
}
switch valuesMap := queryParams.(type) {
case url.Values:
if collectionType == "csv" && valuesMap.Get(keyPrefix) != "" {
valuesMap.Set(keyPrefix, valuesMap.Get(keyPrefix) + "," + value)
} else {
valuesMap.Add(keyPrefix, value)
}
break
case map[string]string:
valuesMap[keyPrefix] = value
break
}
}
// helper for converting interface{} parameters to json strings
func parameterToJson(obj interface{}) (string, error) {
jsonBuf, err := json.Marshal(obj)
if err != nil {
return "", err
}
return string(jsonBuf), err
}
// callAPI do the request.
func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
if c.cfg.Debug {
dump, err := httputil.DumpRequestOut(request, true)
if err != nil {
return nil, err
}
log.Printf("\n%s\n", string(dump))
}
resp, err := c.cfg.HTTPClient.StandardClient().Do(request)
if err != nil {
return resp, err
}
if c.cfg.Debug {
dump, err := httputil.DumpResponse(resp, true)
if err != nil {
return resp, err
}
log.Printf("\n%s\n", string(dump))
}
return resp, err
}
// Allow modification of underlying config for alternate implementations and testing
// Caution: modifying the configuration while live can cause data races and potentially unwanted behavior
func (c *APIClient) GetConfig() *Configuration {
return c.cfg
}
func (c *APIClient) GetAPIClient() *APIClient {
return c.common.client
}
func (c *APIClient) GetCommon() *service {
return &c.common
}
type formFile struct {
fileBytes []byte
fileName string
formFileName string
}
// prepareRequest build the request
func (c *APIClient) prepareRequest(
ctx context.Context,
path string, method string,
postBody interface{},
headerParams map[string]string,
queryParams url.Values,
formParams url.Values,
formFiles []formFile) (localVarRequest *http.Request, err error) {
var body *bytes.Buffer
// Detect postBody type and post.
if postBody != nil {
contentType := headerParams["Content-Type"]
if contentType == "" {
contentType = detectContentType(postBody)
headerParams["Content-Type"] = contentType
}
body, err = setBody(postBody, contentType)
if err != nil {
return nil, err
}
}
// add form parameters and file if available.
if strings.HasPrefix(headerParams["Content-Type"], "multipart/form-data") && len(formParams) > 0 || (len(formFiles) > 0) {
if body != nil {
return nil, errors.New("Cannot specify postBody and multipart form at the same time.")
}
body = &bytes.Buffer{}
w := multipart.NewWriter(body)
for k, v := range formParams {
for _, iv := range v {
if strings.HasPrefix(k, "@") { // file
err = addFile(w, k[1:], iv)
if err != nil {
return nil, err
}
} else { // form value
w.WriteField(k, iv)
}
}
}
for _, formFile := range formFiles {
if len(formFile.fileBytes) > 0 && formFile.fileName != "" {
w.Boundary()
part, err := w.CreateFormFile(formFile.formFileName, filepath.Base(formFile.fileName))
if err != nil {
return nil, err
}
_, err = part.Write(formFile.fileBytes)
if err != nil {
return nil, err
}
}
}
// Set the Boundary in the Content-Type
headerParams["Content-Type"] = w.FormDataContentType()
// Set Content-Length
headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
w.Close()
}
if strings.HasPrefix(headerParams["Content-Type"], "application/x-www-form-urlencoded") && len(formParams) > 0 {
if body != nil {
return nil, errors.New("Cannot specify postBody and x-www-form-urlencoded form at the same time.")
}
body = &bytes.Buffer{}
body.WriteString(formParams.Encode())
// Set Content-Length
headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
}
// Setup path and query parameters
url, err := url.Parse(path)
if err != nil {
return nil, err
}
// Override request host, if applicable
if c.cfg.Host != "" {
url.Host = c.cfg.Host
}
// Override request scheme, if applicable
if c.cfg.Scheme != "" {
url.Scheme = c.cfg.Scheme
}
// Adding Query Param
query := url.Query()
for k, v := range queryParams {
for _, iv := range v {
query.Add(k, iv)
}
}
// Encode the parameters.
url.RawQuery = queryParamSplit.ReplaceAllStringFunc(query.Encode(), func(s string) string {
pieces := strings.Split(s, "=")
pieces[0] = queryDescape.Replace(pieces[0])
return strings.Join(pieces, "=")
})
// Generate a new request
if body != nil {
localVarRequest, err = http.NewRequest(method, url.String(), body)
} else {
localVarRequest, err = http.NewRequest(method, url.String(), nil)
}
if err != nil {
return nil, err
}
// add header parameters, if any
if len(headerParams) > 0 {
headers := http.Header{}
for h, v := range headerParams {
headers[h] = []string{v}
}
localVarRequest.Header = headers
}
// Add the user agent to the request.
localVarRequest.Header.Add("User-Agent", c.cfg.UserAgent)
localVarRequest.Header.Add("X-SailPoint-SDK", "1.1.6")
if ctx != nil {
// add context to the request
localVarRequest = localVarRequest.WithContext(ctx)
// Walk through any authentication.
}
for header, value := range c.cfg.DefaultHeader {
localVarRequest.Header.Add(header, value)
}
return localVarRequest, nil
}
type AccessToken struct {
AccessToken string `json:"access_token"`
TokenType string `json:"token_type"`
ExpiresIn int `json:"expires_in"`
Scope string `json:"scope"`
TenantId string `json:"tenant_id"`
Pod string `json:"pod"`
StrongAuthSupported bool `json:"strong_auth_supported"`
Org string `json:"org"`
IdentityId string `json:"identity_id"`
UserName string `json:"user_name"`
StrongAuth bool `json:"strong_auth"`
Jti string `json:"jti"`
}
func getAccessToken(clientId string, clientSecret string, tokenURL string) (string, error) {
url := tokenURL + "?grant_type=client_credentials&client_id=" + clientId + "&client_secret=" + clientSecret
method := "POST"
client := &http.Client{}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return "", err
}
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return "", err
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return "", err
}
var jsonMap AccessToken
json.Unmarshal([]byte(body), &jsonMap)
return jsonMap.AccessToken, nil
}
func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) {
if len(b) == 0 {
return nil
}
if s, ok := v.(*string); ok {
*s = string(b)
return nil
}
if f, ok := v.(*os.File); ok {
f, err = ioutil.TempFile("", "HttpClientFile")
if err != nil {
return
}
_, err = f.Write(b)
if err != nil {
return
}
_, err = f.Seek(0, io.SeekStart)
return
}
if f, ok := v.(**os.File); ok {
*f, err = ioutil.TempFile("", "HttpClientFile")
if err != nil {
return
}
_, err = (*f).Write(b)
if err != nil {
return
}
_, err = (*f).Seek(0, io.SeekStart)
return
}
if xmlCheck.MatchString(contentType) {
if err = xml.Unmarshal(b, v); err != nil {
return err
}
return nil
}
if jsonCheck.MatchString(contentType) {
if actualObj, ok := v.(interface{ GetActualInstance() interface{} }); ok { // oneOf, anyOf schemas
if unmarshalObj, ok := actualObj.(interface{ UnmarshalJSON([]byte) error }); ok { // make sure it has UnmarshalJSON defined
if err = unmarshalObj.UnmarshalJSON(b); err != nil {
return err
}
} else {
return errors.New("Unknown type with GetActualInstance but no unmarshalObj.UnmarshalJSON defined")
}
} else if err = json.Unmarshal(b, v); err != nil { // simple model
return err
}
return nil
}
return errors.New("undefined response type")
}
// Add a file to the multipart request
func addFile(w *multipart.Writer, fieldName, path string) error {
file, err := os.Open(filepath.Clean(path))
if err != nil {
return err
}
err = file.Close()
if err != nil {
return err
}
part, err := w.CreateFormFile(fieldName, filepath.Base(path))
if err != nil {
return err
}
_, err = io.Copy(part, file)
return err
}
// Prevent trying to import "fmt"
func reportError(format string, a ...interface{}) error {
return fmt.Errorf(format, a...)
}
// A wrapper for strict JSON decoding
func newStrictDecoder(data []byte) *json.Decoder {
dec := json.NewDecoder(bytes.NewBuffer(data))
dec.DisallowUnknownFields()
return dec
}
// Set request body from an interface{}
func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) {
if bodyBuf == nil {
bodyBuf = &bytes.Buffer{}
}
if reader, ok := body.(io.Reader); ok {
_, err = bodyBuf.ReadFrom(reader)
} else if fp, ok := body.(*os.File); ok {
_, err = bodyBuf.ReadFrom(fp)
} else if b, ok := body.([]byte); ok {
_, err = bodyBuf.Write(b)
} else if s, ok := body.(string); ok {
_, err = bodyBuf.WriteString(s)
} else if s, ok := body.(*string); ok {
_, err = bodyBuf.WriteString(*s)
} else if jsonCheck.MatchString(contentType) {
err = json.NewEncoder(bodyBuf).Encode(body)
} else if xmlCheck.MatchString(contentType) {
err = xml.NewEncoder(bodyBuf).Encode(body)
}
if err != nil {
return nil, err
}
if bodyBuf.Len() == 0 {
err = fmt.Errorf("invalid body type %s\n", contentType)
return nil, err
}
return bodyBuf, nil
}
// detectContentType method is used to figure out `Request.Body` content type for request header
func detectContentType(body interface{}) string {
contentType := "text/plain; charset=utf-8"
kind := reflect.TypeOf(body).Kind()
switch kind {
case reflect.Struct, reflect.Map, reflect.Ptr:
contentType = "application/json; charset=utf-8"
case reflect.String:
contentType = "text/plain; charset=utf-8"
default:
if b, ok := body.([]byte); ok {
contentType = http.DetectContentType(b)
} else if kind == reflect.Slice {
contentType = "application/json; charset=utf-8"
}
}
return contentType
}
// Ripped from https://github.com/gregjones/httpcache/blob/master/httpcache.go
type cacheControl map[string]string
func parseCacheControl(headers http.Header) cacheControl {
cc := cacheControl{}
ccHeader := headers.Get("Cache-Control")
for _, part := range strings.Split(ccHeader, ",") {
part = strings.Trim(part, " ")
if part == "" {
continue
}
if strings.ContainsRune(part, '=') {
keyval := strings.Split(part, "=")
cc[strings.Trim(keyval[0], " ")] = strings.Trim(keyval[1], ",")
} else {
cc[part] = ""
}
}
return cc
}
// CacheExpires helper function to determine remaining time before repeating a request.
func CacheExpires(r *http.Response) time.Time {
// Figure out when the cache expires.
var expires time.Time
now, err := time.Parse(time.RFC1123, r.Header.Get("date"))
if err != nil {
return time.Now()
}
respCacheControl := parseCacheControl(r.Header)
if maxAge, ok := respCacheControl["max-age"]; ok {
lifetime, err := time.ParseDuration(maxAge + "s")
if err != nil {
expires = now
} else {
expires = now.Add(lifetime)
}
} else {
expiresHeader := r.Header.Get("Expires")
if expiresHeader != "" {
expires, err = time.Parse(time.RFC1123, expiresHeader)
if err != nil {
expires = now
}
}
}
return expires
}
func strlen(s string) int {
return utf8.RuneCountInString(s)
}
// GenericOpenAPIError Provides access to the body, error and model on returned errors.
type GenericOpenAPIError struct {
body []byte
error string
model interface{}
}
// Error returns non-empty string if there was an error.
func (e GenericOpenAPIError) Error() string {
return e.error
}
// Body returns the raw bytes of the response
func (e GenericOpenAPIError) Body() []byte {
return e.body
}
// Model returns the unpacked model of the error
func (e GenericOpenAPIError) Model() interface{} {
return e.model
}
// format error message using title and detail when model implements rfc7807
func formatErrorMessage(status string, v interface{}) string {
str := ""
metaValue := reflect.ValueOf(v).Elem()
field := metaValue.FieldByName("Title")
if field != (reflect.Value{}) {
str = fmt.Sprintf("%s", field.Interface())
}
field = metaValue.FieldByName("Detail")
if field != (reflect.Value{}) {
str = fmt.Sprintf("%s (%s)", str, field.Interface())
}
// status title (detail)
return strings.TrimSpace(fmt.Sprintf("%s %s", status, str))
}

230
plextv/configuration.go Normal file
View File

@@ -0,0 +1,230 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package plextv
import (
"context"
"fmt"
"strings"
retryablehttp "github.com/hashicorp/go-retryablehttp"
)
// contextKeys are used to identify the type of value in the context.
// Since these are string, it is possible to get a short description of the
// context key for logging and debugging using key.String().
type contextKey string
func (c contextKey) String() string {
return "auth " + string(c)
}
var (
// ContextAPIKeys takes a string apikey as authentication for the request
ContextAPIKeys = contextKey("apiKeys")
// ContextServerIndex uses a server configuration from the index.
ContextServerIndex = contextKey("serverIndex")
// ContextOperationServerIndices uses a server configuration from the index mapping.
ContextOperationServerIndices = contextKey("serverOperationIndices")
// ContextServerVariables overrides a server configuration variables.
ContextServerVariables = contextKey("serverVariables")
// ContextOperationServerVariables overrides a server configuration variables using operation specific values.
ContextOperationServerVariables = contextKey("serverOperationVariables")
)
// BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth
type BasicAuth struct {
UserName string `json:"userName,omitempty"`
Password string `json:"password,omitempty"`
}
// APIKey provides API key based authentication to a request passed via context using ContextAPIKey
type APIKey struct {
Key string
Prefix string
}
// ServerVariable stores the information about a server variable
type ServerVariable struct {
Description string
DefaultValue string
EnumValues []string
}
// ServerConfiguration stores the information about a server
type ServerConfiguration struct {
URL string
Description string
Variables map[string]ServerVariable
}
// ServerConfigurations stores multiple ServerConfiguration items
type ServerConfigurations []ServerConfiguration
// Configuration stores the configuration of the API client
type Configuration struct {
Host string `json:"host,omitempty"`
Scheme string `json:"scheme,omitempty"`
DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
UserAgent string `json:"userAgent,omitempty"`
Debug bool `json:"debug,omitempty"`
Servers ServerConfigurations
OperationServers map[string]ServerConfigurations
HTTPClient *retryablehttp.Client
ClientId string
ClientSecret string
BaseURL string
TokenURL string
Token string
}
// NewConfiguration returns a new Configuration object
func NewConfiguration(clientId string, clientSecret string, baseURL string, tokenURL string, token string) *Configuration {
cfg := &Configuration{
ClientId: clientId,
ClientSecret: clientSecret,
BaseURL: baseURL,
TokenURL: tokenURL,
Token: token,
DefaultHeader: make(map[string]string),
UserAgent: "OpenAPI-Generator/1.1.6/go",
Debug: false,
Servers: ServerConfigurations{
{
URL: baseURL,
Description: "No description provided",
},
},
OperationServers: map[string]ServerConfigurations{
},
}
return cfg
}
// AddDefaultHeader adds a new HTTP header to the default header in the request
func (c *Configuration) AddDefaultHeader(key string, value string) {
c.DefaultHeader[key] = value
}
// URL formats template on a index using given variables
func (sc ServerConfigurations) URL(index int, variables map[string]string) (string, error) {
if index < 0 || len(sc) <= index {
return "", fmt.Errorf("index %v out of range %v", index, len(sc)-1)
}
server := sc[index]
url := server.URL
// go through variables and replace placeholders
for name, variable := range server.Variables {
if value, ok := variables[name]; ok {
found := bool(len(variable.EnumValues) == 0)
for _, enumValue := range variable.EnumValues {
if value == enumValue {
found = true
}
}
if !found {
return "", fmt.Errorf("the variable %s in the server URL has invalid value %v. Must be %v", name, value, variable.EnumValues)
}
url = strings.Replace(url, "{"+name+"}", value, -1)
} else {
url = strings.Replace(url, "{"+name+"}", variable.DefaultValue, -1)
}
}
return url, nil
}
// ServerURL returns URL based on server settings
func (c *Configuration) ServerURL(index int, variables map[string]string) (string, error) {
return c.Servers.URL(index, variables)
}
func getServerIndex(ctx context.Context) (int, error) {
si := ctx.Value(ContextServerIndex)
if si != nil {
if index, ok := si.(int); ok {
return index, nil
}
return 0, reportError("Invalid type %T should be int", si)
}
return 0, nil
}
func getServerOperationIndex(ctx context.Context, endpoint string) (int, error) {
osi := ctx.Value(ContextOperationServerIndices)
if osi != nil {
if operationIndices, ok := osi.(map[string]int); !ok {
return 0, reportError("Invalid type %T should be map[string]int", osi)
} else {
index, ok := operationIndices[endpoint]
if ok {
return index, nil
}
}
}
return getServerIndex(ctx)
}
func getServerVariables(ctx context.Context) (map[string]string, error) {
sv := ctx.Value(ContextServerVariables)
if sv != nil {
if variables, ok := sv.(map[string]string); ok {
return variables, nil
}
return nil, reportError("ctx value of ContextServerVariables has invalid type %T should be map[string]string", sv)
}
return nil, nil
}
func getServerOperationVariables(ctx context.Context, endpoint string) (map[string]string, error) {
osv := ctx.Value(ContextOperationServerVariables)
if osv != nil {
if operationVariables, ok := osv.(map[string]map[string]string); !ok {
return nil, reportError("ctx value of ContextOperationServerVariables has invalid type %T should be map[string]map[string]string", osv)
} else {
variables, ok := operationVariables[endpoint]
if ok {
return variables, nil
}
}
}
return getServerVariables(ctx)
}
// ServerURLWithContext returns a new server URL given an endpoint
func (c *Configuration) ServerURLWithContext(ctx context.Context, endpoint string) (string, error) {
sc, ok := c.OperationServers[endpoint]
if !ok {
sc = c.Servers
}
if ctx == nil {
return sc.URL(0, nil)
}
index, err := getServerOperationIndex(ctx, endpoint)
if err != nil {
return "", err
}
variables, err := getServerOperationVariables(ctx, endpoint)
if err != nil {
return "", err
}
return sc.URL(index, variables)
}

View File

@@ -0,0 +1,66 @@
# GetCompanionsData401Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Errors** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetCompanionsData401Response
`func NewGetCompanionsData401Response() *GetCompanionsData401Response`
NewGetCompanionsData401Response instantiates a new GetCompanionsData401Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetCompanionsData401ResponseWithDefaults
`func NewGetCompanionsData401ResponseWithDefaults() *GetCompanionsData401Response`
NewGetCompanionsData401ResponseWithDefaults instantiates a new GetCompanionsData401Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetErrors
`func (o *GetCompanionsData401Response) GetErrors() interface{}`
GetErrors returns the Errors field if non-nil, zero value otherwise.
### GetErrorsOk
`func (o *GetCompanionsData401Response) GetErrorsOk() (*interface{}, bool)`
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetErrors
`func (o *GetCompanionsData401Response) SetErrors(v interface{})`
SetErrors sets Errors field to given value.
### HasErrors
`func (o *GetCompanionsData401Response) HasErrors() bool`
HasErrors returns a boolean if a field has been set.
### SetErrorsNil
`func (o *GetCompanionsData401Response) SetErrorsNil(b bool)`
SetErrorsNil sets the value for Errors to be an explicit nil
### UnsetErrors
`func (o *GetCompanionsData401Response) UnsetErrors()`
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,246 @@
# GetGeoData200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | Pointer to **interface{}** | | [optional]
**Name** | Pointer to **interface{}** | | [optional]
**GuestUserID** | Pointer to **interface{}** | | [optional]
**GuestUserUUID** | Pointer to **interface{}** | | [optional]
**GuestEnabled** | Pointer to **interface{}** | | [optional]
**Subscription** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetGeoData200Response
`func NewGetGeoData200Response() *GetGeoData200Response`
NewGetGeoData200Response instantiates a new GetGeoData200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetGeoData200ResponseWithDefaults
`func NewGetGeoData200ResponseWithDefaults() *GetGeoData200Response`
NewGetGeoData200ResponseWithDefaults instantiates a new GetGeoData200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetId
`func (o *GetGeoData200Response) GetId() interface{}`
GetId returns the Id field if non-nil, zero value otherwise.
### GetIdOk
`func (o *GetGeoData200Response) GetIdOk() (*interface{}, bool)`
GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetId
`func (o *GetGeoData200Response) SetId(v interface{})`
SetId sets Id field to given value.
### HasId
`func (o *GetGeoData200Response) HasId() bool`
HasId returns a boolean if a field has been set.
### SetIdNil
`func (o *GetGeoData200Response) SetIdNil(b bool)`
SetIdNil sets the value for Id to be an explicit nil
### UnsetId
`func (o *GetGeoData200Response) UnsetId()`
UnsetId ensures that no value is present for Id, not even an explicit nil
### GetName
`func (o *GetGeoData200Response) GetName() interface{}`
GetName returns the Name field if non-nil, zero value otherwise.
### GetNameOk
`func (o *GetGeoData200Response) GetNameOk() (*interface{}, bool)`
GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetName
`func (o *GetGeoData200Response) SetName(v interface{})`
SetName sets Name field to given value.
### HasName
`func (o *GetGeoData200Response) HasName() bool`
HasName returns a boolean if a field has been set.
### SetNameNil
`func (o *GetGeoData200Response) SetNameNil(b bool)`
SetNameNil sets the value for Name to be an explicit nil
### UnsetName
`func (o *GetGeoData200Response) UnsetName()`
UnsetName ensures that no value is present for Name, not even an explicit nil
### GetGuestUserID
`func (o *GetGeoData200Response) GetGuestUserID() interface{}`
GetGuestUserID returns the GuestUserID field if non-nil, zero value otherwise.
### GetGuestUserIDOk
`func (o *GetGeoData200Response) GetGuestUserIDOk() (*interface{}, bool)`
GetGuestUserIDOk returns a tuple with the GuestUserID field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetGuestUserID
`func (o *GetGeoData200Response) SetGuestUserID(v interface{})`
SetGuestUserID sets GuestUserID field to given value.
### HasGuestUserID
`func (o *GetGeoData200Response) HasGuestUserID() bool`
HasGuestUserID returns a boolean if a field has been set.
### SetGuestUserIDNil
`func (o *GetGeoData200Response) SetGuestUserIDNil(b bool)`
SetGuestUserIDNil sets the value for GuestUserID to be an explicit nil
### UnsetGuestUserID
`func (o *GetGeoData200Response) UnsetGuestUserID()`
UnsetGuestUserID ensures that no value is present for GuestUserID, not even an explicit nil
### GetGuestUserUUID
`func (o *GetGeoData200Response) GetGuestUserUUID() interface{}`
GetGuestUserUUID returns the GuestUserUUID field if non-nil, zero value otherwise.
### GetGuestUserUUIDOk
`func (o *GetGeoData200Response) GetGuestUserUUIDOk() (*interface{}, bool)`
GetGuestUserUUIDOk returns a tuple with the GuestUserUUID field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetGuestUserUUID
`func (o *GetGeoData200Response) SetGuestUserUUID(v interface{})`
SetGuestUserUUID sets GuestUserUUID field to given value.
### HasGuestUserUUID
`func (o *GetGeoData200Response) HasGuestUserUUID() bool`
HasGuestUserUUID returns a boolean if a field has been set.
### SetGuestUserUUIDNil
`func (o *GetGeoData200Response) SetGuestUserUUIDNil(b bool)`
SetGuestUserUUIDNil sets the value for GuestUserUUID to be an explicit nil
### UnsetGuestUserUUID
`func (o *GetGeoData200Response) UnsetGuestUserUUID()`
UnsetGuestUserUUID ensures that no value is present for GuestUserUUID, not even an explicit nil
### GetGuestEnabled
`func (o *GetGeoData200Response) GetGuestEnabled() interface{}`
GetGuestEnabled returns the GuestEnabled field if non-nil, zero value otherwise.
### GetGuestEnabledOk
`func (o *GetGeoData200Response) GetGuestEnabledOk() (*interface{}, bool)`
GetGuestEnabledOk returns a tuple with the GuestEnabled field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetGuestEnabled
`func (o *GetGeoData200Response) SetGuestEnabled(v interface{})`
SetGuestEnabled sets GuestEnabled field to given value.
### HasGuestEnabled
`func (o *GetGeoData200Response) HasGuestEnabled() bool`
HasGuestEnabled returns a boolean if a field has been set.
### SetGuestEnabledNil
`func (o *GetGeoData200Response) SetGuestEnabledNil(b bool)`
SetGuestEnabledNil sets the value for GuestEnabled to be an explicit nil
### UnsetGuestEnabled
`func (o *GetGeoData200Response) UnsetGuestEnabled()`
UnsetGuestEnabled ensures that no value is present for GuestEnabled, not even an explicit nil
### GetSubscription
`func (o *GetGeoData200Response) GetSubscription() interface{}`
GetSubscription returns the Subscription field if non-nil, zero value otherwise.
### GetSubscriptionOk
`func (o *GetGeoData200Response) GetSubscriptionOk() (*interface{}, bool)`
GetSubscriptionOk returns a tuple with the Subscription field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSubscription
`func (o *GetGeoData200Response) SetSubscription(v interface{})`
SetSubscription sets Subscription field to given value.
### HasSubscription
`func (o *GetGeoData200Response) HasSubscription() bool`
HasSubscription returns a boolean if a field has been set.
### SetSubscriptionNil
`func (o *GetGeoData200Response) SetSubscriptionNil(b bool)`
SetSubscriptionNil sets the value for Subscription to be an explicit nil
### UnsetSubscription
`func (o *GetGeoData200Response) UnsetSubscription()`
UnsetSubscription ensures that no value is present for Subscription, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,452 @@
# GetPin200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | Pointer to **interface{}** | PinID for use with authentication | [optional]
**Code** | Pointer to **interface{}** | | [optional]
**Product** | Pointer to **interface{}** | | [optional]
**Trusted** | Pointer to **interface{}** | | [optional]
**Qr** | Pointer to **interface{}** | a link to a QR code hosted on plex.tv The QR code redirects to the relevant &#x60;plex.tv/link&#x60; authentication page Which then prompts the user for the 4 Digit Link Pin | [optional]
**ClientIdentifier** | Pointer to **interface{}** | | [optional]
**Location** | Pointer to [**GetPin200ResponseLocation**](GetPin200ResponseLocation.md) | | [optional]
**ExpiresIn** | Pointer to **interface{}** | | [optional]
**CreatedAt** | Pointer to **interface{}** | | [optional]
**ExpiresAt** | Pointer to **interface{}** | | [optional]
**AuthToken** | Pointer to **interface{}** | | [optional]
**NewRegistration** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetPin200Response
`func NewGetPin200Response() *GetPin200Response`
NewGetPin200Response instantiates a new GetPin200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetPin200ResponseWithDefaults
`func NewGetPin200ResponseWithDefaults() *GetPin200Response`
NewGetPin200ResponseWithDefaults instantiates a new GetPin200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetId
`func (o *GetPin200Response) GetId() interface{}`
GetId returns the Id field if non-nil, zero value otherwise.
### GetIdOk
`func (o *GetPin200Response) GetIdOk() (*interface{}, bool)`
GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetId
`func (o *GetPin200Response) SetId(v interface{})`
SetId sets Id field to given value.
### HasId
`func (o *GetPin200Response) HasId() bool`
HasId returns a boolean if a field has been set.
### SetIdNil
`func (o *GetPin200Response) SetIdNil(b bool)`
SetIdNil sets the value for Id to be an explicit nil
### UnsetId
`func (o *GetPin200Response) UnsetId()`
UnsetId ensures that no value is present for Id, not even an explicit nil
### GetCode
`func (o *GetPin200Response) GetCode() interface{}`
GetCode returns the Code field if non-nil, zero value otherwise.
### GetCodeOk
`func (o *GetPin200Response) GetCodeOk() (*interface{}, bool)`
GetCodeOk returns a tuple with the Code field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCode
`func (o *GetPin200Response) SetCode(v interface{})`
SetCode sets Code field to given value.
### HasCode
`func (o *GetPin200Response) HasCode() bool`
HasCode returns a boolean if a field has been set.
### SetCodeNil
`func (o *GetPin200Response) SetCodeNil(b bool)`
SetCodeNil sets the value for Code to be an explicit nil
### UnsetCode
`func (o *GetPin200Response) UnsetCode()`
UnsetCode ensures that no value is present for Code, not even an explicit nil
### GetProduct
`func (o *GetPin200Response) GetProduct() interface{}`
GetProduct returns the Product field if non-nil, zero value otherwise.
### GetProductOk
`func (o *GetPin200Response) GetProductOk() (*interface{}, bool)`
GetProductOk returns a tuple with the Product field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetProduct
`func (o *GetPin200Response) SetProduct(v interface{})`
SetProduct sets Product field to given value.
### HasProduct
`func (o *GetPin200Response) HasProduct() bool`
HasProduct returns a boolean if a field has been set.
### SetProductNil
`func (o *GetPin200Response) SetProductNil(b bool)`
SetProductNil sets the value for Product to be an explicit nil
### UnsetProduct
`func (o *GetPin200Response) UnsetProduct()`
UnsetProduct ensures that no value is present for Product, not even an explicit nil
### GetTrusted
`func (o *GetPin200Response) GetTrusted() interface{}`
GetTrusted returns the Trusted field if non-nil, zero value otherwise.
### GetTrustedOk
`func (o *GetPin200Response) GetTrustedOk() (*interface{}, bool)`
GetTrustedOk returns a tuple with the Trusted field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTrusted
`func (o *GetPin200Response) SetTrusted(v interface{})`
SetTrusted sets Trusted field to given value.
### HasTrusted
`func (o *GetPin200Response) HasTrusted() bool`
HasTrusted returns a boolean if a field has been set.
### SetTrustedNil
`func (o *GetPin200Response) SetTrustedNil(b bool)`
SetTrustedNil sets the value for Trusted to be an explicit nil
### UnsetTrusted
`func (o *GetPin200Response) UnsetTrusted()`
UnsetTrusted ensures that no value is present for Trusted, not even an explicit nil
### GetQr
`func (o *GetPin200Response) GetQr() interface{}`
GetQr returns the Qr field if non-nil, zero value otherwise.
### GetQrOk
`func (o *GetPin200Response) GetQrOk() (*interface{}, bool)`
GetQrOk returns a tuple with the Qr field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetQr
`func (o *GetPin200Response) SetQr(v interface{})`
SetQr sets Qr field to given value.
### HasQr
`func (o *GetPin200Response) HasQr() bool`
HasQr returns a boolean if a field has been set.
### SetQrNil
`func (o *GetPin200Response) SetQrNil(b bool)`
SetQrNil sets the value for Qr to be an explicit nil
### UnsetQr
`func (o *GetPin200Response) UnsetQr()`
UnsetQr ensures that no value is present for Qr, not even an explicit nil
### GetClientIdentifier
`func (o *GetPin200Response) GetClientIdentifier() interface{}`
GetClientIdentifier returns the ClientIdentifier field if non-nil, zero value otherwise.
### GetClientIdentifierOk
`func (o *GetPin200Response) GetClientIdentifierOk() (*interface{}, bool)`
GetClientIdentifierOk returns a tuple with the ClientIdentifier field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetClientIdentifier
`func (o *GetPin200Response) SetClientIdentifier(v interface{})`
SetClientIdentifier sets ClientIdentifier field to given value.
### HasClientIdentifier
`func (o *GetPin200Response) HasClientIdentifier() bool`
HasClientIdentifier returns a boolean if a field has been set.
### SetClientIdentifierNil
`func (o *GetPin200Response) SetClientIdentifierNil(b bool)`
SetClientIdentifierNil sets the value for ClientIdentifier to be an explicit nil
### UnsetClientIdentifier
`func (o *GetPin200Response) UnsetClientIdentifier()`
UnsetClientIdentifier ensures that no value is present for ClientIdentifier, not even an explicit nil
### GetLocation
`func (o *GetPin200Response) GetLocation() GetPin200ResponseLocation`
GetLocation returns the Location field if non-nil, zero value otherwise.
### GetLocationOk
`func (o *GetPin200Response) GetLocationOk() (*GetPin200ResponseLocation, bool)`
GetLocationOk returns a tuple with the Location field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetLocation
`func (o *GetPin200Response) SetLocation(v GetPin200ResponseLocation)`
SetLocation sets Location field to given value.
### HasLocation
`func (o *GetPin200Response) HasLocation() bool`
HasLocation returns a boolean if a field has been set.
### GetExpiresIn
`func (o *GetPin200Response) GetExpiresIn() interface{}`
GetExpiresIn returns the ExpiresIn field if non-nil, zero value otherwise.
### GetExpiresInOk
`func (o *GetPin200Response) GetExpiresInOk() (*interface{}, bool)`
GetExpiresInOk returns a tuple with the ExpiresIn field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetExpiresIn
`func (o *GetPin200Response) SetExpiresIn(v interface{})`
SetExpiresIn sets ExpiresIn field to given value.
### HasExpiresIn
`func (o *GetPin200Response) HasExpiresIn() bool`
HasExpiresIn returns a boolean if a field has been set.
### SetExpiresInNil
`func (o *GetPin200Response) SetExpiresInNil(b bool)`
SetExpiresInNil sets the value for ExpiresIn to be an explicit nil
### UnsetExpiresIn
`func (o *GetPin200Response) UnsetExpiresIn()`
UnsetExpiresIn ensures that no value is present for ExpiresIn, not even an explicit nil
### GetCreatedAt
`func (o *GetPin200Response) GetCreatedAt() interface{}`
GetCreatedAt returns the CreatedAt field if non-nil, zero value otherwise.
### GetCreatedAtOk
`func (o *GetPin200Response) GetCreatedAtOk() (*interface{}, bool)`
GetCreatedAtOk returns a tuple with the CreatedAt field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCreatedAt
`func (o *GetPin200Response) SetCreatedAt(v interface{})`
SetCreatedAt sets CreatedAt field to given value.
### HasCreatedAt
`func (o *GetPin200Response) HasCreatedAt() bool`
HasCreatedAt returns a boolean if a field has been set.
### SetCreatedAtNil
`func (o *GetPin200Response) SetCreatedAtNil(b bool)`
SetCreatedAtNil sets the value for CreatedAt to be an explicit nil
### UnsetCreatedAt
`func (o *GetPin200Response) UnsetCreatedAt()`
UnsetCreatedAt ensures that no value is present for CreatedAt, not even an explicit nil
### GetExpiresAt
`func (o *GetPin200Response) GetExpiresAt() interface{}`
GetExpiresAt returns the ExpiresAt field if non-nil, zero value otherwise.
### GetExpiresAtOk
`func (o *GetPin200Response) GetExpiresAtOk() (*interface{}, bool)`
GetExpiresAtOk returns a tuple with the ExpiresAt field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetExpiresAt
`func (o *GetPin200Response) SetExpiresAt(v interface{})`
SetExpiresAt sets ExpiresAt field to given value.
### HasExpiresAt
`func (o *GetPin200Response) HasExpiresAt() bool`
HasExpiresAt returns a boolean if a field has been set.
### SetExpiresAtNil
`func (o *GetPin200Response) SetExpiresAtNil(b bool)`
SetExpiresAtNil sets the value for ExpiresAt to be an explicit nil
### UnsetExpiresAt
`func (o *GetPin200Response) UnsetExpiresAt()`
UnsetExpiresAt ensures that no value is present for ExpiresAt, not even an explicit nil
### GetAuthToken
`func (o *GetPin200Response) GetAuthToken() interface{}`
GetAuthToken returns the AuthToken field if non-nil, zero value otherwise.
### GetAuthTokenOk
`func (o *GetPin200Response) GetAuthTokenOk() (*interface{}, bool)`
GetAuthTokenOk returns a tuple with the AuthToken field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetAuthToken
`func (o *GetPin200Response) SetAuthToken(v interface{})`
SetAuthToken sets AuthToken field to given value.
### HasAuthToken
`func (o *GetPin200Response) HasAuthToken() bool`
HasAuthToken returns a boolean if a field has been set.
### SetAuthTokenNil
`func (o *GetPin200Response) SetAuthTokenNil(b bool)`
SetAuthTokenNil sets the value for AuthToken to be an explicit nil
### UnsetAuthToken
`func (o *GetPin200Response) UnsetAuthToken()`
UnsetAuthToken ensures that no value is present for AuthToken, not even an explicit nil
### GetNewRegistration
`func (o *GetPin200Response) GetNewRegistration() interface{}`
GetNewRegistration returns the NewRegistration field if non-nil, zero value otherwise.
### GetNewRegistrationOk
`func (o *GetPin200Response) GetNewRegistrationOk() (*interface{}, bool)`
GetNewRegistrationOk returns a tuple with the NewRegistration field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetNewRegistration
`func (o *GetPin200Response) SetNewRegistration(v interface{})`
SetNewRegistration sets NewRegistration field to given value.
### HasNewRegistration
`func (o *GetPin200Response) HasNewRegistration() bool`
HasNewRegistration returns a boolean if a field has been set.
### SetNewRegistrationNil
`func (o *GetPin200Response) SetNewRegistrationNil(b bool)`
SetNewRegistrationNil sets the value for NewRegistration to be an explicit nil
### UnsetNewRegistration
`func (o *GetPin200Response) UnsetNewRegistration()`
UnsetNewRegistration ensures that no value is present for NewRegistration, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,390 @@
# GetPin200ResponseLocation
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Code** | Pointer to **interface{}** | | [optional]
**EuropeanUnionMember** | Pointer to **interface{}** | | [optional]
**ContinentCode** | Pointer to **interface{}** | | [optional]
**Country** | Pointer to **interface{}** | | [optional]
**City** | Pointer to **interface{}** | | [optional]
**TimeZone** | Pointer to **interface{}** | | [optional]
**PostalCode** | Pointer to **interface{}** | | [optional]
**InPrivacyRestrictedCountry** | Pointer to **interface{}** | | [optional]
**Subdivisions** | Pointer to **interface{}** | | [optional]
**Coordinates** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetPin200ResponseLocation
`func NewGetPin200ResponseLocation() *GetPin200ResponseLocation`
NewGetPin200ResponseLocation instantiates a new GetPin200ResponseLocation object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetPin200ResponseLocationWithDefaults
`func NewGetPin200ResponseLocationWithDefaults() *GetPin200ResponseLocation`
NewGetPin200ResponseLocationWithDefaults instantiates a new GetPin200ResponseLocation object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetCode
`func (o *GetPin200ResponseLocation) GetCode() interface{}`
GetCode returns the Code field if non-nil, zero value otherwise.
### GetCodeOk
`func (o *GetPin200ResponseLocation) GetCodeOk() (*interface{}, bool)`
GetCodeOk returns a tuple with the Code field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCode
`func (o *GetPin200ResponseLocation) SetCode(v interface{})`
SetCode sets Code field to given value.
### HasCode
`func (o *GetPin200ResponseLocation) HasCode() bool`
HasCode returns a boolean if a field has been set.
### SetCodeNil
`func (o *GetPin200ResponseLocation) SetCodeNil(b bool)`
SetCodeNil sets the value for Code to be an explicit nil
### UnsetCode
`func (o *GetPin200ResponseLocation) UnsetCode()`
UnsetCode ensures that no value is present for Code, not even an explicit nil
### GetEuropeanUnionMember
`func (o *GetPin200ResponseLocation) GetEuropeanUnionMember() interface{}`
GetEuropeanUnionMember returns the EuropeanUnionMember field if non-nil, zero value otherwise.
### GetEuropeanUnionMemberOk
`func (o *GetPin200ResponseLocation) GetEuropeanUnionMemberOk() (*interface{}, bool)`
GetEuropeanUnionMemberOk returns a tuple with the EuropeanUnionMember field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetEuropeanUnionMember
`func (o *GetPin200ResponseLocation) SetEuropeanUnionMember(v interface{})`
SetEuropeanUnionMember sets EuropeanUnionMember field to given value.
### HasEuropeanUnionMember
`func (o *GetPin200ResponseLocation) HasEuropeanUnionMember() bool`
HasEuropeanUnionMember returns a boolean if a field has been set.
### SetEuropeanUnionMemberNil
`func (o *GetPin200ResponseLocation) SetEuropeanUnionMemberNil(b bool)`
SetEuropeanUnionMemberNil sets the value for EuropeanUnionMember to be an explicit nil
### UnsetEuropeanUnionMember
`func (o *GetPin200ResponseLocation) UnsetEuropeanUnionMember()`
UnsetEuropeanUnionMember ensures that no value is present for EuropeanUnionMember, not even an explicit nil
### GetContinentCode
`func (o *GetPin200ResponseLocation) GetContinentCode() interface{}`
GetContinentCode returns the ContinentCode field if non-nil, zero value otherwise.
### GetContinentCodeOk
`func (o *GetPin200ResponseLocation) GetContinentCodeOk() (*interface{}, bool)`
GetContinentCodeOk returns a tuple with the ContinentCode field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetContinentCode
`func (o *GetPin200ResponseLocation) SetContinentCode(v interface{})`
SetContinentCode sets ContinentCode field to given value.
### HasContinentCode
`func (o *GetPin200ResponseLocation) HasContinentCode() bool`
HasContinentCode returns a boolean if a field has been set.
### SetContinentCodeNil
`func (o *GetPin200ResponseLocation) SetContinentCodeNil(b bool)`
SetContinentCodeNil sets the value for ContinentCode to be an explicit nil
### UnsetContinentCode
`func (o *GetPin200ResponseLocation) UnsetContinentCode()`
UnsetContinentCode ensures that no value is present for ContinentCode, not even an explicit nil
### GetCountry
`func (o *GetPin200ResponseLocation) GetCountry() interface{}`
GetCountry returns the Country field if non-nil, zero value otherwise.
### GetCountryOk
`func (o *GetPin200ResponseLocation) GetCountryOk() (*interface{}, bool)`
GetCountryOk returns a tuple with the Country field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCountry
`func (o *GetPin200ResponseLocation) SetCountry(v interface{})`
SetCountry sets Country field to given value.
### HasCountry
`func (o *GetPin200ResponseLocation) HasCountry() bool`
HasCountry returns a boolean if a field has been set.
### SetCountryNil
`func (o *GetPin200ResponseLocation) SetCountryNil(b bool)`
SetCountryNil sets the value for Country to be an explicit nil
### UnsetCountry
`func (o *GetPin200ResponseLocation) UnsetCountry()`
UnsetCountry ensures that no value is present for Country, not even an explicit nil
### GetCity
`func (o *GetPin200ResponseLocation) GetCity() interface{}`
GetCity returns the City field if non-nil, zero value otherwise.
### GetCityOk
`func (o *GetPin200ResponseLocation) GetCityOk() (*interface{}, bool)`
GetCityOk returns a tuple with the City field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCity
`func (o *GetPin200ResponseLocation) SetCity(v interface{})`
SetCity sets City field to given value.
### HasCity
`func (o *GetPin200ResponseLocation) HasCity() bool`
HasCity returns a boolean if a field has been set.
### SetCityNil
`func (o *GetPin200ResponseLocation) SetCityNil(b bool)`
SetCityNil sets the value for City to be an explicit nil
### UnsetCity
`func (o *GetPin200ResponseLocation) UnsetCity()`
UnsetCity ensures that no value is present for City, not even an explicit nil
### GetTimeZone
`func (o *GetPin200ResponseLocation) GetTimeZone() interface{}`
GetTimeZone returns the TimeZone field if non-nil, zero value otherwise.
### GetTimeZoneOk
`func (o *GetPin200ResponseLocation) GetTimeZoneOk() (*interface{}, bool)`
GetTimeZoneOk returns a tuple with the TimeZone field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTimeZone
`func (o *GetPin200ResponseLocation) SetTimeZone(v interface{})`
SetTimeZone sets TimeZone field to given value.
### HasTimeZone
`func (o *GetPin200ResponseLocation) HasTimeZone() bool`
HasTimeZone returns a boolean if a field has been set.
### SetTimeZoneNil
`func (o *GetPin200ResponseLocation) SetTimeZoneNil(b bool)`
SetTimeZoneNil sets the value for TimeZone to be an explicit nil
### UnsetTimeZone
`func (o *GetPin200ResponseLocation) UnsetTimeZone()`
UnsetTimeZone ensures that no value is present for TimeZone, not even an explicit nil
### GetPostalCode
`func (o *GetPin200ResponseLocation) GetPostalCode() interface{}`
GetPostalCode returns the PostalCode field if non-nil, zero value otherwise.
### GetPostalCodeOk
`func (o *GetPin200ResponseLocation) GetPostalCodeOk() (*interface{}, bool)`
GetPostalCodeOk returns a tuple with the PostalCode field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetPostalCode
`func (o *GetPin200ResponseLocation) SetPostalCode(v interface{})`
SetPostalCode sets PostalCode field to given value.
### HasPostalCode
`func (o *GetPin200ResponseLocation) HasPostalCode() bool`
HasPostalCode returns a boolean if a field has been set.
### SetPostalCodeNil
`func (o *GetPin200ResponseLocation) SetPostalCodeNil(b bool)`
SetPostalCodeNil sets the value for PostalCode to be an explicit nil
### UnsetPostalCode
`func (o *GetPin200ResponseLocation) UnsetPostalCode()`
UnsetPostalCode ensures that no value is present for PostalCode, not even an explicit nil
### GetInPrivacyRestrictedCountry
`func (o *GetPin200ResponseLocation) GetInPrivacyRestrictedCountry() interface{}`
GetInPrivacyRestrictedCountry returns the InPrivacyRestrictedCountry field if non-nil, zero value otherwise.
### GetInPrivacyRestrictedCountryOk
`func (o *GetPin200ResponseLocation) GetInPrivacyRestrictedCountryOk() (*interface{}, bool)`
GetInPrivacyRestrictedCountryOk returns a tuple with the InPrivacyRestrictedCountry field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetInPrivacyRestrictedCountry
`func (o *GetPin200ResponseLocation) SetInPrivacyRestrictedCountry(v interface{})`
SetInPrivacyRestrictedCountry sets InPrivacyRestrictedCountry field to given value.
### HasInPrivacyRestrictedCountry
`func (o *GetPin200ResponseLocation) HasInPrivacyRestrictedCountry() bool`
HasInPrivacyRestrictedCountry returns a boolean if a field has been set.
### SetInPrivacyRestrictedCountryNil
`func (o *GetPin200ResponseLocation) SetInPrivacyRestrictedCountryNil(b bool)`
SetInPrivacyRestrictedCountryNil sets the value for InPrivacyRestrictedCountry to be an explicit nil
### UnsetInPrivacyRestrictedCountry
`func (o *GetPin200ResponseLocation) UnsetInPrivacyRestrictedCountry()`
UnsetInPrivacyRestrictedCountry ensures that no value is present for InPrivacyRestrictedCountry, not even an explicit nil
### GetSubdivisions
`func (o *GetPin200ResponseLocation) GetSubdivisions() interface{}`
GetSubdivisions returns the Subdivisions field if non-nil, zero value otherwise.
### GetSubdivisionsOk
`func (o *GetPin200ResponseLocation) GetSubdivisionsOk() (*interface{}, bool)`
GetSubdivisionsOk returns a tuple with the Subdivisions field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSubdivisions
`func (o *GetPin200ResponseLocation) SetSubdivisions(v interface{})`
SetSubdivisions sets Subdivisions field to given value.
### HasSubdivisions
`func (o *GetPin200ResponseLocation) HasSubdivisions() bool`
HasSubdivisions returns a boolean if a field has been set.
### SetSubdivisionsNil
`func (o *GetPin200ResponseLocation) SetSubdivisionsNil(b bool)`
SetSubdivisionsNil sets the value for Subdivisions to be an explicit nil
### UnsetSubdivisions
`func (o *GetPin200ResponseLocation) UnsetSubdivisions()`
UnsetSubdivisions ensures that no value is present for Subdivisions, not even an explicit nil
### GetCoordinates
`func (o *GetPin200ResponseLocation) GetCoordinates() interface{}`
GetCoordinates returns the Coordinates field if non-nil, zero value otherwise.
### GetCoordinatesOk
`func (o *GetPin200ResponseLocation) GetCoordinatesOk() (*interface{}, bool)`
GetCoordinatesOk returns a tuple with the Coordinates field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCoordinates
`func (o *GetPin200ResponseLocation) SetCoordinates(v interface{})`
SetCoordinates sets Coordinates field to given value.
### HasCoordinates
`func (o *GetPin200ResponseLocation) HasCoordinates() bool`
HasCoordinates returns a boolean if a field has been set.
### SetCoordinatesNil
`func (o *GetPin200ResponseLocation) SetCoordinatesNil(b bool)`
SetCoordinatesNil sets the value for Coordinates to be an explicit nil
### UnsetCoordinates
`func (o *GetPin200ResponseLocation) UnsetCoordinates()`
UnsetCoordinates ensures that no value is present for Coordinates, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,66 @@
# GetPin400Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Errors** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetPin400Response
`func NewGetPin400Response() *GetPin400Response`
NewGetPin400Response instantiates a new GetPin400Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetPin400ResponseWithDefaults
`func NewGetPin400ResponseWithDefaults() *GetPin400Response`
NewGetPin400ResponseWithDefaults instantiates a new GetPin400Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetErrors
`func (o *GetPin400Response) GetErrors() interface{}`
GetErrors returns the Errors field if non-nil, zero value otherwise.
### GetErrorsOk
`func (o *GetPin400Response) GetErrorsOk() (*interface{}, bool)`
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetErrors
`func (o *GetPin400Response) SetErrors(v interface{})`
SetErrors sets Errors field to given value.
### HasErrors
`func (o *GetPin400Response) HasErrors() bool`
HasErrors returns a boolean if a field has been set.
### SetErrorsNil
`func (o *GetPin400Response) SetErrorsNil(b bool)`
SetErrorsNil sets the value for Errors to be an explicit nil
### UnsetErrors
`func (o *GetPin400Response) UnsetErrors()`
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,246 @@
# GetUserOptOutSettings200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**TvPlexProviderPodcasts** | Pointer to **interface{}** | | [optional]
**TvPlexProviderNews** | Pointer to **interface{}** | | [optional]
**TvPlexProviderWebshows** | Pointer to **interface{}** | | [optional]
**TvPlexProviderMusic** | Pointer to **interface{}** | | [optional]
**TvPlexProviderVod** | Pointer to **interface{}** | | [optional]
**Scrobbling** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetUserOptOutSettings200Response
`func NewGetUserOptOutSettings200Response() *GetUserOptOutSettings200Response`
NewGetUserOptOutSettings200Response instantiates a new GetUserOptOutSettings200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetUserOptOutSettings200ResponseWithDefaults
`func NewGetUserOptOutSettings200ResponseWithDefaults() *GetUserOptOutSettings200Response`
NewGetUserOptOutSettings200ResponseWithDefaults instantiates a new GetUserOptOutSettings200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetTvPlexProviderPodcasts
`func (o *GetUserOptOutSettings200Response) GetTvPlexProviderPodcasts() interface{}`
GetTvPlexProviderPodcasts returns the TvPlexProviderPodcasts field if non-nil, zero value otherwise.
### GetTvPlexProviderPodcastsOk
`func (o *GetUserOptOutSettings200Response) GetTvPlexProviderPodcastsOk() (*interface{}, bool)`
GetTvPlexProviderPodcastsOk returns a tuple with the TvPlexProviderPodcasts field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTvPlexProviderPodcasts
`func (o *GetUserOptOutSettings200Response) SetTvPlexProviderPodcasts(v interface{})`
SetTvPlexProviderPodcasts sets TvPlexProviderPodcasts field to given value.
### HasTvPlexProviderPodcasts
`func (o *GetUserOptOutSettings200Response) HasTvPlexProviderPodcasts() bool`
HasTvPlexProviderPodcasts returns a boolean if a field has been set.
### SetTvPlexProviderPodcastsNil
`func (o *GetUserOptOutSettings200Response) SetTvPlexProviderPodcastsNil(b bool)`
SetTvPlexProviderPodcastsNil sets the value for TvPlexProviderPodcasts to be an explicit nil
### UnsetTvPlexProviderPodcasts
`func (o *GetUserOptOutSettings200Response) UnsetTvPlexProviderPodcasts()`
UnsetTvPlexProviderPodcasts ensures that no value is present for TvPlexProviderPodcasts, not even an explicit nil
### GetTvPlexProviderNews
`func (o *GetUserOptOutSettings200Response) GetTvPlexProviderNews() interface{}`
GetTvPlexProviderNews returns the TvPlexProviderNews field if non-nil, zero value otherwise.
### GetTvPlexProviderNewsOk
`func (o *GetUserOptOutSettings200Response) GetTvPlexProviderNewsOk() (*interface{}, bool)`
GetTvPlexProviderNewsOk returns a tuple with the TvPlexProviderNews field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTvPlexProviderNews
`func (o *GetUserOptOutSettings200Response) SetTvPlexProviderNews(v interface{})`
SetTvPlexProviderNews sets TvPlexProviderNews field to given value.
### HasTvPlexProviderNews
`func (o *GetUserOptOutSettings200Response) HasTvPlexProviderNews() bool`
HasTvPlexProviderNews returns a boolean if a field has been set.
### SetTvPlexProviderNewsNil
`func (o *GetUserOptOutSettings200Response) SetTvPlexProviderNewsNil(b bool)`
SetTvPlexProviderNewsNil sets the value for TvPlexProviderNews to be an explicit nil
### UnsetTvPlexProviderNews
`func (o *GetUserOptOutSettings200Response) UnsetTvPlexProviderNews()`
UnsetTvPlexProviderNews ensures that no value is present for TvPlexProviderNews, not even an explicit nil
### GetTvPlexProviderWebshows
`func (o *GetUserOptOutSettings200Response) GetTvPlexProviderWebshows() interface{}`
GetTvPlexProviderWebshows returns the TvPlexProviderWebshows field if non-nil, zero value otherwise.
### GetTvPlexProviderWebshowsOk
`func (o *GetUserOptOutSettings200Response) GetTvPlexProviderWebshowsOk() (*interface{}, bool)`
GetTvPlexProviderWebshowsOk returns a tuple with the TvPlexProviderWebshows field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTvPlexProviderWebshows
`func (o *GetUserOptOutSettings200Response) SetTvPlexProviderWebshows(v interface{})`
SetTvPlexProviderWebshows sets TvPlexProviderWebshows field to given value.
### HasTvPlexProviderWebshows
`func (o *GetUserOptOutSettings200Response) HasTvPlexProviderWebshows() bool`
HasTvPlexProviderWebshows returns a boolean if a field has been set.
### SetTvPlexProviderWebshowsNil
`func (o *GetUserOptOutSettings200Response) SetTvPlexProviderWebshowsNil(b bool)`
SetTvPlexProviderWebshowsNil sets the value for TvPlexProviderWebshows to be an explicit nil
### UnsetTvPlexProviderWebshows
`func (o *GetUserOptOutSettings200Response) UnsetTvPlexProviderWebshows()`
UnsetTvPlexProviderWebshows ensures that no value is present for TvPlexProviderWebshows, not even an explicit nil
### GetTvPlexProviderMusic
`func (o *GetUserOptOutSettings200Response) GetTvPlexProviderMusic() interface{}`
GetTvPlexProviderMusic returns the TvPlexProviderMusic field if non-nil, zero value otherwise.
### GetTvPlexProviderMusicOk
`func (o *GetUserOptOutSettings200Response) GetTvPlexProviderMusicOk() (*interface{}, bool)`
GetTvPlexProviderMusicOk returns a tuple with the TvPlexProviderMusic field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTvPlexProviderMusic
`func (o *GetUserOptOutSettings200Response) SetTvPlexProviderMusic(v interface{})`
SetTvPlexProviderMusic sets TvPlexProviderMusic field to given value.
### HasTvPlexProviderMusic
`func (o *GetUserOptOutSettings200Response) HasTvPlexProviderMusic() bool`
HasTvPlexProviderMusic returns a boolean if a field has been set.
### SetTvPlexProviderMusicNil
`func (o *GetUserOptOutSettings200Response) SetTvPlexProviderMusicNil(b bool)`
SetTvPlexProviderMusicNil sets the value for TvPlexProviderMusic to be an explicit nil
### UnsetTvPlexProviderMusic
`func (o *GetUserOptOutSettings200Response) UnsetTvPlexProviderMusic()`
UnsetTvPlexProviderMusic ensures that no value is present for TvPlexProviderMusic, not even an explicit nil
### GetTvPlexProviderVod
`func (o *GetUserOptOutSettings200Response) GetTvPlexProviderVod() interface{}`
GetTvPlexProviderVod returns the TvPlexProviderVod field if non-nil, zero value otherwise.
### GetTvPlexProviderVodOk
`func (o *GetUserOptOutSettings200Response) GetTvPlexProviderVodOk() (*interface{}, bool)`
GetTvPlexProviderVodOk returns a tuple with the TvPlexProviderVod field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTvPlexProviderVod
`func (o *GetUserOptOutSettings200Response) SetTvPlexProviderVod(v interface{})`
SetTvPlexProviderVod sets TvPlexProviderVod field to given value.
### HasTvPlexProviderVod
`func (o *GetUserOptOutSettings200Response) HasTvPlexProviderVod() bool`
HasTvPlexProviderVod returns a boolean if a field has been set.
### SetTvPlexProviderVodNil
`func (o *GetUserOptOutSettings200Response) SetTvPlexProviderVodNil(b bool)`
SetTvPlexProviderVodNil sets the value for TvPlexProviderVod to be an explicit nil
### UnsetTvPlexProviderVod
`func (o *GetUserOptOutSettings200Response) UnsetTvPlexProviderVod()`
UnsetTvPlexProviderVod ensures that no value is present for TvPlexProviderVod, not even an explicit nil
### GetScrobbling
`func (o *GetUserOptOutSettings200Response) GetScrobbling() interface{}`
GetScrobbling returns the Scrobbling field if non-nil, zero value otherwise.
### GetScrobblingOk
`func (o *GetUserOptOutSettings200Response) GetScrobblingOk() (*interface{}, bool)`
GetScrobblingOk returns a tuple with the Scrobbling field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetScrobbling
`func (o *GetUserOptOutSettings200Response) SetScrobbling(v interface{})`
SetScrobbling sets Scrobbling field to given value.
### HasScrobbling
`func (o *GetUserOptOutSettings200Response) HasScrobbling() bool`
HasScrobbling returns a boolean if a field has been set.
### SetScrobblingNil
`func (o *GetUserOptOutSettings200Response) SetScrobblingNil(b bool)`
SetScrobblingNil sets the value for Scrobbling to be an explicit nil
### UnsetScrobbling
`func (o *GetUserOptOutSettings200Response) UnsetScrobbling()`
UnsetScrobbling ensures that no value is present for Scrobbling, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

585
plextv/docs/PlexTvApi.md Normal file
View File

@@ -0,0 +1,585 @@
# \PlexTvApi
All URIs are relative to *https://plex.tv/api/v2*
Method | HTTP request | Description
------------- | ------------- | -------------
[**GetCompanionsData**](PlexTvApi.md#GetCompanionsData) | **Get** /companions | Get Companions Data
[**GetDevices**](PlexTvApi.md#GetDevices) | **Get** /resources | Get Devices
[**GetGeoData**](PlexTvApi.md#GetGeoData) | **Get** /geoip | Get Geo Data
[**GetHomeData**](PlexTvApi.md#GetHomeData) | **Get** /home | Get Home Data
[**GetPin**](PlexTvApi.md#GetPin) | **Post** /pins | Get a Pin
[**GetToken**](PlexTvApi.md#GetToken) | **Get** /pins/{pinID} | Get Access Token
[**GetUserDetails**](PlexTvApi.md#GetUserDetails) | **Get** /user | Get Logged in User
[**GetUserOptOutSettings**](PlexTvApi.md#GetUserOptOutSettings) | **Get** /user/settings/opt_outs | Get User Opt Out Settings
[**GetUserSettings**](PlexTvApi.md#GetUserSettings) | **Get** /user/settings | Get User Settings
## GetCompanionsData
> interface{} GetCompanionsData(ctx).Execute()
Get Companions Data
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlexTvApi.GetCompanionsData(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlexTvApi.GetCompanionsData``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetCompanionsData`: interface{}
fmt.Fprintf(os.Stdout, "Response from `PlexTvApi.GetCompanionsData`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetCompanionsDataRequest struct via the builder pattern
### Return type
**interface{}**
### Authorization
[PlatformVersion](../README.md#PlatformVersion), [ClientIdentifier](../README.md#ClientIdentifier), [Platform](../README.md#Platform), [Version](../README.md#Version), [Device](../README.md#Device), [Product](../README.md#Product), [Token](../README.md#Token), [DeviceName](../README.md#DeviceName)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetDevices
> interface{} GetDevices(ctx).IncludeHttps(includeHttps).IncludeRelay(includeRelay).IncludeIPv6(includeIPv6).Execute()
Get Devices
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
includeHttps := TODO // interface{} | Include Https entries in the results (optional)
includeRelay := TODO // interface{} | Include Relay addresses in the results (optional)
includeIPv6 := TODO // interface{} | Include IPv6 entries in the results (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlexTvApi.GetDevices(context.Background()).IncludeHttps(includeHttps).IncludeRelay(includeRelay).IncludeIPv6(includeIPv6).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlexTvApi.GetDevices``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetDevices`: interface{}
fmt.Fprintf(os.Stdout, "Response from `PlexTvApi.GetDevices`: %v\n", resp)
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiGetDevicesRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**includeHttps** | [**interface{}**](interface{}.md) | Include Https entries in the results |
**includeRelay** | [**interface{}**](interface{}.md) | Include Relay addresses in the results |
**includeIPv6** | [**interface{}**](interface{}.md) | Include IPv6 entries in the results |
### Return type
**interface{}**
### Authorization
[PlatformVersion](../README.md#PlatformVersion), [ClientIdentifier](../README.md#ClientIdentifier), [Platform](../README.md#Platform), [Version](../README.md#Version), [Device](../README.md#Device), [Product](../README.md#Product), [Token](../README.md#Token), [DeviceName](../README.md#DeviceName)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetGeoData
> GetGeoData200Response GetGeoData(ctx).Execute()
Get Geo Data
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlexTvApi.GetGeoData(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlexTvApi.GetGeoData``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetGeoData`: GetGeoData200Response
fmt.Fprintf(os.Stdout, "Response from `PlexTvApi.GetGeoData`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetGeoDataRequest struct via the builder pattern
### Return type
[**GetGeoData200Response**](GetGeoData200Response.md)
### Authorization
[PlatformVersion](../README.md#PlatformVersion), [ClientIdentifier](../README.md#ClientIdentifier), [Platform](../README.md#Platform), [Version](../README.md#Version), [Device](../README.md#Device), [Product](../README.md#Product), [Token](../README.md#Token), [DeviceName](../README.md#DeviceName)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetHomeData
> GetGeoData200Response GetHomeData(ctx).Execute()
Get Home Data
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlexTvApi.GetHomeData(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlexTvApi.GetHomeData``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetHomeData`: GetGeoData200Response
fmt.Fprintf(os.Stdout, "Response from `PlexTvApi.GetHomeData`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetHomeDataRequest struct via the builder pattern
### Return type
[**GetGeoData200Response**](GetGeoData200Response.md)
### Authorization
[PlatformVersion](../README.md#PlatformVersion), [ClientIdentifier](../README.md#ClientIdentifier), [Platform](../README.md#Platform), [Version](../README.md#Version), [Device](../README.md#Device), [Product](../README.md#Product), [Token](../README.md#Token), [DeviceName](../README.md#DeviceName)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetPin
> GetPin200Response GetPin(ctx).Strong(strong).Execute()
Get a Pin
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
strong := TODO // interface{} | Determines the kind of code returned by the API call Strong codes are used for Pin authentication flows Non-Strong codes are used for `Plex.tv/link` (optional) (default to false)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlexTvApi.GetPin(context.Background()).Strong(strong).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlexTvApi.GetPin``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetPin`: GetPin200Response
fmt.Fprintf(os.Stdout, "Response from `PlexTvApi.GetPin`: %v\n", resp)
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiGetPinRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**strong** | [**interface{}**](interface{}.md) | Determines the kind of code returned by the API call Strong codes are used for Pin authentication flows Non-Strong codes are used for &#x60;Plex.tv/link&#x60; | [default to false]
### Return type
[**GetPin200Response**](GetPin200Response.md)
### Authorization
[ClientIdentifier](../README.md#ClientIdentifier)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetToken
> GetToken(ctx, pinID).Execute()
Get Access Token
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
pinID := TODO // interface{} | The PinID to retrieve an access token for
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlexTvApi.GetToken(context.Background(), pinID).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlexTvApi.GetToken``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**pinID** | [**interface{}**](.md) | The PinID to retrieve an access token for |
### Other Parameters
Other parameters are passed through a pointer to a apiGetTokenRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[ClientIdentifier](../README.md#ClientIdentifier)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetUserDetails
> GetUserDetails(ctx).Execute()
Get Logged in User
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlexTvApi.GetUserDetails(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlexTvApi.GetUserDetails``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetUserDetailsRequest struct via the builder pattern
### Return type
(empty response body)
### Authorization
[PlatformVersion](../README.md#PlatformVersion), [ClientIdentifier](../README.md#ClientIdentifier), [Platform](../README.md#Platform), [Version](../README.md#Version), [Device](../README.md#Device), [Product](../README.md#Product), [Token](../README.md#Token), [DeviceName](../README.md#DeviceName)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetUserOptOutSettings
> GetUserOptOutSettings200Response GetUserOptOutSettings(ctx).Execute()
Get User Opt Out Settings
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlexTvApi.GetUserOptOutSettings(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlexTvApi.GetUserOptOutSettings``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetUserOptOutSettings`: GetUserOptOutSettings200Response
fmt.Fprintf(os.Stdout, "Response from `PlexTvApi.GetUserOptOutSettings`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetUserOptOutSettingsRequest struct via the builder pattern
### Return type
[**GetUserOptOutSettings200Response**](GetUserOptOutSettings200Response.md)
### Authorization
[PlatformVersion](../README.md#PlatformVersion), [ClientIdentifier](../README.md#ClientIdentifier), [Platform](../README.md#Platform), [Version](../README.md#Version), [Device](../README.md#Device), [Product](../README.md#Product), [Token](../README.md#Token), [DeviceName](../README.md#DeviceName)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetUserSettings
> interface{} GetUserSettings(ctx).Execute()
Get User Settings
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlexTvApi.GetUserSettings(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlexTvApi.GetUserSettings``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetUserSettings`: interface{}
fmt.Fprintf(os.Stdout, "Response from `PlexTvApi.GetUserSettings`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetUserSettingsRequest struct via the builder pattern
### Return type
**interface{}**
### Authorization
[PlatformVersion](../README.md#PlatformVersion), [ClientIdentifier](../README.md#ClientIdentifier), [Platform](../README.md#Platform), [Version](../README.md#Version), [Device](../README.md#Device), [Product](../README.md#Product), [Token](../README.md#Token), [DeviceName](../README.md#DeviceName)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

57
plextv/git_push.sh Normal file
View File

@@ -0,0 +1,57 @@
#!/bin/sh
# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
#
# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com"
git_user_id=$1
git_repo_id=$2
release_note=$3
git_host=$4
if [ "$git_host" = "" ]; then
git_host="github.com"
echo "[INFO] No command line input provided. Set \$git_host to $git_host"
fi
if [ "$git_user_id" = "" ]; then
git_user_id="lukehagar"
echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
fi
if [ "$git_repo_id" = "" ]; then
git_repo_id="plexgo"
echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
fi
if [ "$release_note" = "" ]; then
release_note="Minor update"
echo "[INFO] No command line input provided. Set \$release_note to $release_note"
fi
# Initialize the local directory as a Git repository
git init
# Adds the files in the local repository and stages them for commit.
git add .
# Commits the tracked changes and prepares them to be pushed to a remote repository.
git commit -m "$release_note"
# Sets the new remote
git_remote=$(git remote)
if [ "$git_remote" = "" ]; then # git remote not defined
if [ "$GIT_TOKEN" = "" ]; then
echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
else
git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git
fi
fi
git pull origin master
# Pushes (Forces) the changes in the local repository up to the remote repository
echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
git push origin master 2>&1 | grep -v 'To https'

7
plextv/go.mod Normal file
View File

@@ -0,0 +1,7 @@
module github.com/sailpoint-oss/golang-sdk/sdk-output/v3
go 1.13
require (
github.com/hashicorp/go-retryablehttp v0.7.2 // indirect
)

11
plextv/go.sum Normal file
View File

@@ -0,0 +1,11 @@
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=

View File

@@ -0,0 +1,153 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package plextv
import (
"encoding/json"
)
// checks if the GetCompanionsData401Response type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &GetCompanionsData401Response{}
// GetCompanionsData401Response struct for GetCompanionsData401Response
type GetCompanionsData401Response struct {
Errors interface{} `json:"errors,omitempty"`
AdditionalProperties map[string]interface{}
}
type _GetCompanionsData401Response GetCompanionsData401Response
// NewGetCompanionsData401Response instantiates a new GetCompanionsData401Response object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewGetCompanionsData401Response() *GetCompanionsData401Response {
this := GetCompanionsData401Response{}
return &this
}
// NewGetCompanionsData401ResponseWithDefaults instantiates a new GetCompanionsData401Response object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewGetCompanionsData401ResponseWithDefaults() *GetCompanionsData401Response {
this := GetCompanionsData401Response{}
return &this
}
// GetErrors returns the Errors field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetCompanionsData401Response) GetErrors() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Errors
}
// GetErrorsOk returns a tuple with the Errors field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetCompanionsData401Response) GetErrorsOk() (*interface{}, bool) {
if o == nil || isNil(o.Errors) {
return nil, false
}
return &o.Errors, true
}
// HasErrors returns a boolean if a field has been set.
func (o *GetCompanionsData401Response) HasErrors() bool {
if o != nil && isNil(o.Errors) {
return true
}
return false
}
// SetErrors gets a reference to the given interface{} and assigns it to the Errors field.
func (o *GetCompanionsData401Response) SetErrors(v interface{}) {
o.Errors = v
}
func (o GetCompanionsData401Response) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o GetCompanionsData401Response) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if o.Errors != nil {
toSerialize["errors"] = o.Errors
}
for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return toSerialize, nil
}
func (o *GetCompanionsData401Response) UnmarshalJSON(bytes []byte) (err error) {
varGetCompanionsData401Response := _GetCompanionsData401Response{}
if err = json.Unmarshal(bytes, &varGetCompanionsData401Response); err == nil {
*o = GetCompanionsData401Response(varGetCompanionsData401Response)
}
additionalProperties := make(map[string]interface{})
if err = json.Unmarshal(bytes, &additionalProperties); err == nil {
delete(additionalProperties, "errors")
o.AdditionalProperties = additionalProperties
}
return err
}
type NullableGetCompanionsData401Response struct {
value *GetCompanionsData401Response
isSet bool
}
func (v NullableGetCompanionsData401Response) Get() *GetCompanionsData401Response {
return v.value
}
func (v *NullableGetCompanionsData401Response) Set(val *GetCompanionsData401Response) {
v.value = val
v.isSet = true
}
func (v NullableGetCompanionsData401Response) IsSet() bool {
return v.isSet
}
func (v *NullableGetCompanionsData401Response) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableGetCompanionsData401Response(val *GetCompanionsData401Response) *NullableGetCompanionsData401Response {
return &NullableGetCompanionsData401Response{value: val, isSet: true}
}
func (v NullableGetCompanionsData401Response) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableGetCompanionsData401Response) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

View File

@@ -0,0 +1,343 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package plextv
import (
"encoding/json"
)
// checks if the GetGeoData200Response type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &GetGeoData200Response{}
// GetGeoData200Response struct for GetGeoData200Response
type GetGeoData200Response struct {
Id interface{} `json:"id,omitempty"`
Name interface{} `json:"name,omitempty"`
GuestUserID interface{} `json:"guestUserID,omitempty"`
GuestUserUUID interface{} `json:"guestUserUUID,omitempty"`
GuestEnabled interface{} `json:"guestEnabled,omitempty"`
Subscription interface{} `json:"subscription,omitempty"`
AdditionalProperties map[string]interface{}
}
type _GetGeoData200Response GetGeoData200Response
// NewGetGeoData200Response instantiates a new GetGeoData200Response object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewGetGeoData200Response() *GetGeoData200Response {
this := GetGeoData200Response{}
return &this
}
// NewGetGeoData200ResponseWithDefaults instantiates a new GetGeoData200Response object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewGetGeoData200ResponseWithDefaults() *GetGeoData200Response {
this := GetGeoData200Response{}
return &this
}
// GetId returns the Id field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetGeoData200Response) GetId() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Id
}
// GetIdOk returns a tuple with the Id field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetGeoData200Response) GetIdOk() (*interface{}, bool) {
if o == nil || isNil(o.Id) {
return nil, false
}
return &o.Id, true
}
// HasId returns a boolean if a field has been set.
func (o *GetGeoData200Response) HasId() bool {
if o != nil && isNil(o.Id) {
return true
}
return false
}
// SetId gets a reference to the given interface{} and assigns it to the Id field.
func (o *GetGeoData200Response) SetId(v interface{}) {
o.Id = v
}
// GetName returns the Name field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetGeoData200Response) GetName() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Name
}
// GetNameOk returns a tuple with the Name field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetGeoData200Response) GetNameOk() (*interface{}, bool) {
if o == nil || isNil(o.Name) {
return nil, false
}
return &o.Name, true
}
// HasName returns a boolean if a field has been set.
func (o *GetGeoData200Response) HasName() bool {
if o != nil && isNil(o.Name) {
return true
}
return false
}
// SetName gets a reference to the given interface{} and assigns it to the Name field.
func (o *GetGeoData200Response) SetName(v interface{}) {
o.Name = v
}
// GetGuestUserID returns the GuestUserID field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetGeoData200Response) GetGuestUserID() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.GuestUserID
}
// GetGuestUserIDOk returns a tuple with the GuestUserID field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetGeoData200Response) GetGuestUserIDOk() (*interface{}, bool) {
if o == nil || isNil(o.GuestUserID) {
return nil, false
}
return &o.GuestUserID, true
}
// HasGuestUserID returns a boolean if a field has been set.
func (o *GetGeoData200Response) HasGuestUserID() bool {
if o != nil && isNil(o.GuestUserID) {
return true
}
return false
}
// SetGuestUserID gets a reference to the given interface{} and assigns it to the GuestUserID field.
func (o *GetGeoData200Response) SetGuestUserID(v interface{}) {
o.GuestUserID = v
}
// GetGuestUserUUID returns the GuestUserUUID field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetGeoData200Response) GetGuestUserUUID() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.GuestUserUUID
}
// GetGuestUserUUIDOk returns a tuple with the GuestUserUUID field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetGeoData200Response) GetGuestUserUUIDOk() (*interface{}, bool) {
if o == nil || isNil(o.GuestUserUUID) {
return nil, false
}
return &o.GuestUserUUID, true
}
// HasGuestUserUUID returns a boolean if a field has been set.
func (o *GetGeoData200Response) HasGuestUserUUID() bool {
if o != nil && isNil(o.GuestUserUUID) {
return true
}
return false
}
// SetGuestUserUUID gets a reference to the given interface{} and assigns it to the GuestUserUUID field.
func (o *GetGeoData200Response) SetGuestUserUUID(v interface{}) {
o.GuestUserUUID = v
}
// GetGuestEnabled returns the GuestEnabled field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetGeoData200Response) GetGuestEnabled() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.GuestEnabled
}
// GetGuestEnabledOk returns a tuple with the GuestEnabled field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetGeoData200Response) GetGuestEnabledOk() (*interface{}, bool) {
if o == nil || isNil(o.GuestEnabled) {
return nil, false
}
return &o.GuestEnabled, true
}
// HasGuestEnabled returns a boolean if a field has been set.
func (o *GetGeoData200Response) HasGuestEnabled() bool {
if o != nil && isNil(o.GuestEnabled) {
return true
}
return false
}
// SetGuestEnabled gets a reference to the given interface{} and assigns it to the GuestEnabled field.
func (o *GetGeoData200Response) SetGuestEnabled(v interface{}) {
o.GuestEnabled = v
}
// GetSubscription returns the Subscription field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetGeoData200Response) GetSubscription() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Subscription
}
// GetSubscriptionOk returns a tuple with the Subscription field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetGeoData200Response) GetSubscriptionOk() (*interface{}, bool) {
if o == nil || isNil(o.Subscription) {
return nil, false
}
return &o.Subscription, true
}
// HasSubscription returns a boolean if a field has been set.
func (o *GetGeoData200Response) HasSubscription() bool {
if o != nil && isNil(o.Subscription) {
return true
}
return false
}
// SetSubscription gets a reference to the given interface{} and assigns it to the Subscription field.
func (o *GetGeoData200Response) SetSubscription(v interface{}) {
o.Subscription = v
}
func (o GetGeoData200Response) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o GetGeoData200Response) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if o.Id != nil {
toSerialize["id"] = o.Id
}
if o.Name != nil {
toSerialize["name"] = o.Name
}
if o.GuestUserID != nil {
toSerialize["guestUserID"] = o.GuestUserID
}
if o.GuestUserUUID != nil {
toSerialize["guestUserUUID"] = o.GuestUserUUID
}
if o.GuestEnabled != nil {
toSerialize["guestEnabled"] = o.GuestEnabled
}
if o.Subscription != nil {
toSerialize["subscription"] = o.Subscription
}
for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return toSerialize, nil
}
func (o *GetGeoData200Response) UnmarshalJSON(bytes []byte) (err error) {
varGetGeoData200Response := _GetGeoData200Response{}
if err = json.Unmarshal(bytes, &varGetGeoData200Response); err == nil {
*o = GetGeoData200Response(varGetGeoData200Response)
}
additionalProperties := make(map[string]interface{})
if err = json.Unmarshal(bytes, &additionalProperties); err == nil {
delete(additionalProperties, "id")
delete(additionalProperties, "name")
delete(additionalProperties, "guestUserID")
delete(additionalProperties, "guestUserUUID")
delete(additionalProperties, "guestEnabled")
delete(additionalProperties, "subscription")
o.AdditionalProperties = additionalProperties
}
return err
}
type NullableGetGeoData200Response struct {
value *GetGeoData200Response
isSet bool
}
func (v NullableGetGeoData200Response) Get() *GetGeoData200Response {
return v.value
}
func (v *NullableGetGeoData200Response) Set(val *GetGeoData200Response) {
v.value = val
v.isSet = true
}
func (v NullableGetGeoData200Response) IsSet() bool {
return v.isSet
}
func (v *NullableGetGeoData200Response) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableGetGeoData200Response(val *GetGeoData200Response) *NullableGetGeoData200Response {
return &NullableGetGeoData200Response{value: val, isSet: true}
}
func (v NullableGetGeoData200Response) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableGetGeoData200Response) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

View File

@@ -0,0 +1,572 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package plextv
import (
"encoding/json"
)
// checks if the GetPin200Response type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &GetPin200Response{}
// GetPin200Response struct for GetPin200Response
type GetPin200Response struct {
// PinID for use with authentication
Id interface{} `json:"id,omitempty"`
Code interface{} `json:"code,omitempty"`
Product interface{} `json:"product,omitempty"`
Trusted interface{} `json:"trusted,omitempty"`
// a link to a QR code hosted on plex.tv The QR code redirects to the relevant `plex.tv/link` authentication page Which then prompts the user for the 4 Digit Link Pin
Qr interface{} `json:"qr,omitempty"`
ClientIdentifier interface{} `json:"clientIdentifier,omitempty"`
Location *GetPin200ResponseLocation `json:"location,omitempty"`
ExpiresIn interface{} `json:"expiresIn,omitempty"`
CreatedAt interface{} `json:"createdAt,omitempty"`
ExpiresAt interface{} `json:"expiresAt,omitempty"`
AuthToken interface{} `json:"authToken,omitempty"`
NewRegistration interface{} `json:"newRegistration,omitempty"`
AdditionalProperties map[string]interface{}
}
type _GetPin200Response GetPin200Response
// NewGetPin200Response instantiates a new GetPin200Response object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewGetPin200Response() *GetPin200Response {
this := GetPin200Response{}
return &this
}
// NewGetPin200ResponseWithDefaults instantiates a new GetPin200Response object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewGetPin200ResponseWithDefaults() *GetPin200Response {
this := GetPin200Response{}
return &this
}
// GetId returns the Id field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetId() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Id
}
// GetIdOk returns a tuple with the Id field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetIdOk() (*interface{}, bool) {
if o == nil || isNil(o.Id) {
return nil, false
}
return &o.Id, true
}
// HasId returns a boolean if a field has been set.
func (o *GetPin200Response) HasId() bool {
if o != nil && isNil(o.Id) {
return true
}
return false
}
// SetId gets a reference to the given interface{} and assigns it to the Id field.
func (o *GetPin200Response) SetId(v interface{}) {
o.Id = v
}
// GetCode returns the Code field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetCode() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Code
}
// GetCodeOk returns a tuple with the Code field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetCodeOk() (*interface{}, bool) {
if o == nil || isNil(o.Code) {
return nil, false
}
return &o.Code, true
}
// HasCode returns a boolean if a field has been set.
func (o *GetPin200Response) HasCode() bool {
if o != nil && isNil(o.Code) {
return true
}
return false
}
// SetCode gets a reference to the given interface{} and assigns it to the Code field.
func (o *GetPin200Response) SetCode(v interface{}) {
o.Code = v
}
// GetProduct returns the Product field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetProduct() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Product
}
// GetProductOk returns a tuple with the Product field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetProductOk() (*interface{}, bool) {
if o == nil || isNil(o.Product) {
return nil, false
}
return &o.Product, true
}
// HasProduct returns a boolean if a field has been set.
func (o *GetPin200Response) HasProduct() bool {
if o != nil && isNil(o.Product) {
return true
}
return false
}
// SetProduct gets a reference to the given interface{} and assigns it to the Product field.
func (o *GetPin200Response) SetProduct(v interface{}) {
o.Product = v
}
// GetTrusted returns the Trusted field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetTrusted() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Trusted
}
// GetTrustedOk returns a tuple with the Trusted field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetTrustedOk() (*interface{}, bool) {
if o == nil || isNil(o.Trusted) {
return nil, false
}
return &o.Trusted, true
}
// HasTrusted returns a boolean if a field has been set.
func (o *GetPin200Response) HasTrusted() bool {
if o != nil && isNil(o.Trusted) {
return true
}
return false
}
// SetTrusted gets a reference to the given interface{} and assigns it to the Trusted field.
func (o *GetPin200Response) SetTrusted(v interface{}) {
o.Trusted = v
}
// GetQr returns the Qr field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetQr() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Qr
}
// GetQrOk returns a tuple with the Qr field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetQrOk() (*interface{}, bool) {
if o == nil || isNil(o.Qr) {
return nil, false
}
return &o.Qr, true
}
// HasQr returns a boolean if a field has been set.
func (o *GetPin200Response) HasQr() bool {
if o != nil && isNil(o.Qr) {
return true
}
return false
}
// SetQr gets a reference to the given interface{} and assigns it to the Qr field.
func (o *GetPin200Response) SetQr(v interface{}) {
o.Qr = v
}
// GetClientIdentifier returns the ClientIdentifier field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetClientIdentifier() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.ClientIdentifier
}
// GetClientIdentifierOk returns a tuple with the ClientIdentifier field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetClientIdentifierOk() (*interface{}, bool) {
if o == nil || isNil(o.ClientIdentifier) {
return nil, false
}
return &o.ClientIdentifier, true
}
// HasClientIdentifier returns a boolean if a field has been set.
func (o *GetPin200Response) HasClientIdentifier() bool {
if o != nil && isNil(o.ClientIdentifier) {
return true
}
return false
}
// SetClientIdentifier gets a reference to the given interface{} and assigns it to the ClientIdentifier field.
func (o *GetPin200Response) SetClientIdentifier(v interface{}) {
o.ClientIdentifier = v
}
// GetLocation returns the Location field value if set, zero value otherwise.
func (o *GetPin200Response) GetLocation() GetPin200ResponseLocation {
if o == nil || isNil(o.Location) {
var ret GetPin200ResponseLocation
return ret
}
return *o.Location
}
// GetLocationOk returns a tuple with the Location field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *GetPin200Response) GetLocationOk() (*GetPin200ResponseLocation, bool) {
if o == nil || isNil(o.Location) {
return nil, false
}
return o.Location, true
}
// HasLocation returns a boolean if a field has been set.
func (o *GetPin200Response) HasLocation() bool {
if o != nil && !isNil(o.Location) {
return true
}
return false
}
// SetLocation gets a reference to the given GetPin200ResponseLocation and assigns it to the Location field.
func (o *GetPin200Response) SetLocation(v GetPin200ResponseLocation) {
o.Location = &v
}
// GetExpiresIn returns the ExpiresIn field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetExpiresIn() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.ExpiresIn
}
// GetExpiresInOk returns a tuple with the ExpiresIn field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetExpiresInOk() (*interface{}, bool) {
if o == nil || isNil(o.ExpiresIn) {
return nil, false
}
return &o.ExpiresIn, true
}
// HasExpiresIn returns a boolean if a field has been set.
func (o *GetPin200Response) HasExpiresIn() bool {
if o != nil && isNil(o.ExpiresIn) {
return true
}
return false
}
// SetExpiresIn gets a reference to the given interface{} and assigns it to the ExpiresIn field.
func (o *GetPin200Response) SetExpiresIn(v interface{}) {
o.ExpiresIn = v
}
// GetCreatedAt returns the CreatedAt field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetCreatedAt() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.CreatedAt
}
// GetCreatedAtOk returns a tuple with the CreatedAt field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetCreatedAtOk() (*interface{}, bool) {
if o == nil || isNil(o.CreatedAt) {
return nil, false
}
return &o.CreatedAt, true
}
// HasCreatedAt returns a boolean if a field has been set.
func (o *GetPin200Response) HasCreatedAt() bool {
if o != nil && isNil(o.CreatedAt) {
return true
}
return false
}
// SetCreatedAt gets a reference to the given interface{} and assigns it to the CreatedAt field.
func (o *GetPin200Response) SetCreatedAt(v interface{}) {
o.CreatedAt = v
}
// GetExpiresAt returns the ExpiresAt field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetExpiresAt() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.ExpiresAt
}
// GetExpiresAtOk returns a tuple with the ExpiresAt field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetExpiresAtOk() (*interface{}, bool) {
if o == nil || isNil(o.ExpiresAt) {
return nil, false
}
return &o.ExpiresAt, true
}
// HasExpiresAt returns a boolean if a field has been set.
func (o *GetPin200Response) HasExpiresAt() bool {
if o != nil && isNil(o.ExpiresAt) {
return true
}
return false
}
// SetExpiresAt gets a reference to the given interface{} and assigns it to the ExpiresAt field.
func (o *GetPin200Response) SetExpiresAt(v interface{}) {
o.ExpiresAt = v
}
// GetAuthToken returns the AuthToken field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetAuthToken() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.AuthToken
}
// GetAuthTokenOk returns a tuple with the AuthToken field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetAuthTokenOk() (*interface{}, bool) {
if o == nil || isNil(o.AuthToken) {
return nil, false
}
return &o.AuthToken, true
}
// HasAuthToken returns a boolean if a field has been set.
func (o *GetPin200Response) HasAuthToken() bool {
if o != nil && isNil(o.AuthToken) {
return true
}
return false
}
// SetAuthToken gets a reference to the given interface{} and assigns it to the AuthToken field.
func (o *GetPin200Response) SetAuthToken(v interface{}) {
o.AuthToken = v
}
// GetNewRegistration returns the NewRegistration field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200Response) GetNewRegistration() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.NewRegistration
}
// GetNewRegistrationOk returns a tuple with the NewRegistration field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200Response) GetNewRegistrationOk() (*interface{}, bool) {
if o == nil || isNil(o.NewRegistration) {
return nil, false
}
return &o.NewRegistration, true
}
// HasNewRegistration returns a boolean if a field has been set.
func (o *GetPin200Response) HasNewRegistration() bool {
if o != nil && isNil(o.NewRegistration) {
return true
}
return false
}
// SetNewRegistration gets a reference to the given interface{} and assigns it to the NewRegistration field.
func (o *GetPin200Response) SetNewRegistration(v interface{}) {
o.NewRegistration = v
}
func (o GetPin200Response) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o GetPin200Response) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if o.Id != nil {
toSerialize["id"] = o.Id
}
if o.Code != nil {
toSerialize["code"] = o.Code
}
if o.Product != nil {
toSerialize["product"] = o.Product
}
if o.Trusted != nil {
toSerialize["trusted"] = o.Trusted
}
if o.Qr != nil {
toSerialize["qr"] = o.Qr
}
if o.ClientIdentifier != nil {
toSerialize["clientIdentifier"] = o.ClientIdentifier
}
if !isNil(o.Location) {
toSerialize["location"] = o.Location
}
if o.ExpiresIn != nil {
toSerialize["expiresIn"] = o.ExpiresIn
}
if o.CreatedAt != nil {
toSerialize["createdAt"] = o.CreatedAt
}
if o.ExpiresAt != nil {
toSerialize["expiresAt"] = o.ExpiresAt
}
if o.AuthToken != nil {
toSerialize["authToken"] = o.AuthToken
}
if o.NewRegistration != nil {
toSerialize["newRegistration"] = o.NewRegistration
}
for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return toSerialize, nil
}
func (o *GetPin200Response) UnmarshalJSON(bytes []byte) (err error) {
varGetPin200Response := _GetPin200Response{}
if err = json.Unmarshal(bytes, &varGetPin200Response); err == nil {
*o = GetPin200Response(varGetPin200Response)
}
additionalProperties := make(map[string]interface{})
if err = json.Unmarshal(bytes, &additionalProperties); err == nil {
delete(additionalProperties, "id")
delete(additionalProperties, "code")
delete(additionalProperties, "product")
delete(additionalProperties, "trusted")
delete(additionalProperties, "qr")
delete(additionalProperties, "clientIdentifier")
delete(additionalProperties, "location")
delete(additionalProperties, "expiresIn")
delete(additionalProperties, "createdAt")
delete(additionalProperties, "expiresAt")
delete(additionalProperties, "authToken")
delete(additionalProperties, "newRegistration")
o.AdditionalProperties = additionalProperties
}
return err
}
type NullableGetPin200Response struct {
value *GetPin200Response
isSet bool
}
func (v NullableGetPin200Response) Get() *GetPin200Response {
return v.value
}
func (v *NullableGetPin200Response) Set(val *GetPin200Response) {
v.value = val
v.isSet = true
}
func (v NullableGetPin200Response) IsSet() bool {
return v.isSet
}
func (v *NullableGetPin200Response) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableGetPin200Response(val *GetPin200Response) *NullableGetPin200Response {
return &NullableGetPin200Response{value: val, isSet: true}
}
func (v NullableGetPin200Response) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableGetPin200Response) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

View File

@@ -0,0 +1,495 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package plextv
import (
"encoding/json"
)
// checks if the GetPin200ResponseLocation type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &GetPin200ResponseLocation{}
// GetPin200ResponseLocation struct for GetPin200ResponseLocation
type GetPin200ResponseLocation struct {
Code interface{} `json:"code,omitempty"`
EuropeanUnionMember interface{} `json:"european_union_member,omitempty"`
ContinentCode interface{} `json:"continent_code,omitempty"`
Country interface{} `json:"country,omitempty"`
City interface{} `json:"city,omitempty"`
TimeZone interface{} `json:"time_zone,omitempty"`
PostalCode interface{} `json:"postal_code,omitempty"`
InPrivacyRestrictedCountry interface{} `json:"in_privacy_restricted_country,omitempty"`
Subdivisions interface{} `json:"subdivisions,omitempty"`
Coordinates interface{} `json:"coordinates,omitempty"`
AdditionalProperties map[string]interface{}
}
type _GetPin200ResponseLocation GetPin200ResponseLocation
// NewGetPin200ResponseLocation instantiates a new GetPin200ResponseLocation object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewGetPin200ResponseLocation() *GetPin200ResponseLocation {
this := GetPin200ResponseLocation{}
return &this
}
// NewGetPin200ResponseLocationWithDefaults instantiates a new GetPin200ResponseLocation object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewGetPin200ResponseLocationWithDefaults() *GetPin200ResponseLocation {
this := GetPin200ResponseLocation{}
return &this
}
// GetCode returns the Code field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200ResponseLocation) GetCode() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Code
}
// GetCodeOk returns a tuple with the Code field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200ResponseLocation) GetCodeOk() (*interface{}, bool) {
if o == nil || isNil(o.Code) {
return nil, false
}
return &o.Code, true
}
// HasCode returns a boolean if a field has been set.
func (o *GetPin200ResponseLocation) HasCode() bool {
if o != nil && isNil(o.Code) {
return true
}
return false
}
// SetCode gets a reference to the given interface{} and assigns it to the Code field.
func (o *GetPin200ResponseLocation) SetCode(v interface{}) {
o.Code = v
}
// GetEuropeanUnionMember returns the EuropeanUnionMember field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200ResponseLocation) GetEuropeanUnionMember() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.EuropeanUnionMember
}
// GetEuropeanUnionMemberOk returns a tuple with the EuropeanUnionMember field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200ResponseLocation) GetEuropeanUnionMemberOk() (*interface{}, bool) {
if o == nil || isNil(o.EuropeanUnionMember) {
return nil, false
}
return &o.EuropeanUnionMember, true
}
// HasEuropeanUnionMember returns a boolean if a field has been set.
func (o *GetPin200ResponseLocation) HasEuropeanUnionMember() bool {
if o != nil && isNil(o.EuropeanUnionMember) {
return true
}
return false
}
// SetEuropeanUnionMember gets a reference to the given interface{} and assigns it to the EuropeanUnionMember field.
func (o *GetPin200ResponseLocation) SetEuropeanUnionMember(v interface{}) {
o.EuropeanUnionMember = v
}
// GetContinentCode returns the ContinentCode field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200ResponseLocation) GetContinentCode() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.ContinentCode
}
// GetContinentCodeOk returns a tuple with the ContinentCode field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200ResponseLocation) GetContinentCodeOk() (*interface{}, bool) {
if o == nil || isNil(o.ContinentCode) {
return nil, false
}
return &o.ContinentCode, true
}
// HasContinentCode returns a boolean if a field has been set.
func (o *GetPin200ResponseLocation) HasContinentCode() bool {
if o != nil && isNil(o.ContinentCode) {
return true
}
return false
}
// SetContinentCode gets a reference to the given interface{} and assigns it to the ContinentCode field.
func (o *GetPin200ResponseLocation) SetContinentCode(v interface{}) {
o.ContinentCode = v
}
// GetCountry returns the Country field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200ResponseLocation) GetCountry() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Country
}
// GetCountryOk returns a tuple with the Country field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200ResponseLocation) GetCountryOk() (*interface{}, bool) {
if o == nil || isNil(o.Country) {
return nil, false
}
return &o.Country, true
}
// HasCountry returns a boolean if a field has been set.
func (o *GetPin200ResponseLocation) HasCountry() bool {
if o != nil && isNil(o.Country) {
return true
}
return false
}
// SetCountry gets a reference to the given interface{} and assigns it to the Country field.
func (o *GetPin200ResponseLocation) SetCountry(v interface{}) {
o.Country = v
}
// GetCity returns the City field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200ResponseLocation) GetCity() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.City
}
// GetCityOk returns a tuple with the City field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200ResponseLocation) GetCityOk() (*interface{}, bool) {
if o == nil || isNil(o.City) {
return nil, false
}
return &o.City, true
}
// HasCity returns a boolean if a field has been set.
func (o *GetPin200ResponseLocation) HasCity() bool {
if o != nil && isNil(o.City) {
return true
}
return false
}
// SetCity gets a reference to the given interface{} and assigns it to the City field.
func (o *GetPin200ResponseLocation) SetCity(v interface{}) {
o.City = v
}
// GetTimeZone returns the TimeZone field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200ResponseLocation) GetTimeZone() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.TimeZone
}
// GetTimeZoneOk returns a tuple with the TimeZone field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200ResponseLocation) GetTimeZoneOk() (*interface{}, bool) {
if o == nil || isNil(o.TimeZone) {
return nil, false
}
return &o.TimeZone, true
}
// HasTimeZone returns a boolean if a field has been set.
func (o *GetPin200ResponseLocation) HasTimeZone() bool {
if o != nil && isNil(o.TimeZone) {
return true
}
return false
}
// SetTimeZone gets a reference to the given interface{} and assigns it to the TimeZone field.
func (o *GetPin200ResponseLocation) SetTimeZone(v interface{}) {
o.TimeZone = v
}
// GetPostalCode returns the PostalCode field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200ResponseLocation) GetPostalCode() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.PostalCode
}
// GetPostalCodeOk returns a tuple with the PostalCode field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200ResponseLocation) GetPostalCodeOk() (*interface{}, bool) {
if o == nil || isNil(o.PostalCode) {
return nil, false
}
return &o.PostalCode, true
}
// HasPostalCode returns a boolean if a field has been set.
func (o *GetPin200ResponseLocation) HasPostalCode() bool {
if o != nil && isNil(o.PostalCode) {
return true
}
return false
}
// SetPostalCode gets a reference to the given interface{} and assigns it to the PostalCode field.
func (o *GetPin200ResponseLocation) SetPostalCode(v interface{}) {
o.PostalCode = v
}
// GetInPrivacyRestrictedCountry returns the InPrivacyRestrictedCountry field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200ResponseLocation) GetInPrivacyRestrictedCountry() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.InPrivacyRestrictedCountry
}
// GetInPrivacyRestrictedCountryOk returns a tuple with the InPrivacyRestrictedCountry field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200ResponseLocation) GetInPrivacyRestrictedCountryOk() (*interface{}, bool) {
if o == nil || isNil(o.InPrivacyRestrictedCountry) {
return nil, false
}
return &o.InPrivacyRestrictedCountry, true
}
// HasInPrivacyRestrictedCountry returns a boolean if a field has been set.
func (o *GetPin200ResponseLocation) HasInPrivacyRestrictedCountry() bool {
if o != nil && isNil(o.InPrivacyRestrictedCountry) {
return true
}
return false
}
// SetInPrivacyRestrictedCountry gets a reference to the given interface{} and assigns it to the InPrivacyRestrictedCountry field.
func (o *GetPin200ResponseLocation) SetInPrivacyRestrictedCountry(v interface{}) {
o.InPrivacyRestrictedCountry = v
}
// GetSubdivisions returns the Subdivisions field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200ResponseLocation) GetSubdivisions() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Subdivisions
}
// GetSubdivisionsOk returns a tuple with the Subdivisions field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200ResponseLocation) GetSubdivisionsOk() (*interface{}, bool) {
if o == nil || isNil(o.Subdivisions) {
return nil, false
}
return &o.Subdivisions, true
}
// HasSubdivisions returns a boolean if a field has been set.
func (o *GetPin200ResponseLocation) HasSubdivisions() bool {
if o != nil && isNil(o.Subdivisions) {
return true
}
return false
}
// SetSubdivisions gets a reference to the given interface{} and assigns it to the Subdivisions field.
func (o *GetPin200ResponseLocation) SetSubdivisions(v interface{}) {
o.Subdivisions = v
}
// GetCoordinates returns the Coordinates field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin200ResponseLocation) GetCoordinates() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Coordinates
}
// GetCoordinatesOk returns a tuple with the Coordinates field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin200ResponseLocation) GetCoordinatesOk() (*interface{}, bool) {
if o == nil || isNil(o.Coordinates) {
return nil, false
}
return &o.Coordinates, true
}
// HasCoordinates returns a boolean if a field has been set.
func (o *GetPin200ResponseLocation) HasCoordinates() bool {
if o != nil && isNil(o.Coordinates) {
return true
}
return false
}
// SetCoordinates gets a reference to the given interface{} and assigns it to the Coordinates field.
func (o *GetPin200ResponseLocation) SetCoordinates(v interface{}) {
o.Coordinates = v
}
func (o GetPin200ResponseLocation) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o GetPin200ResponseLocation) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if o.Code != nil {
toSerialize["code"] = o.Code
}
if o.EuropeanUnionMember != nil {
toSerialize["european_union_member"] = o.EuropeanUnionMember
}
if o.ContinentCode != nil {
toSerialize["continent_code"] = o.ContinentCode
}
if o.Country != nil {
toSerialize["country"] = o.Country
}
if o.City != nil {
toSerialize["city"] = o.City
}
if o.TimeZone != nil {
toSerialize["time_zone"] = o.TimeZone
}
if o.PostalCode != nil {
toSerialize["postal_code"] = o.PostalCode
}
if o.InPrivacyRestrictedCountry != nil {
toSerialize["in_privacy_restricted_country"] = o.InPrivacyRestrictedCountry
}
if o.Subdivisions != nil {
toSerialize["subdivisions"] = o.Subdivisions
}
if o.Coordinates != nil {
toSerialize["coordinates"] = o.Coordinates
}
for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return toSerialize, nil
}
func (o *GetPin200ResponseLocation) UnmarshalJSON(bytes []byte) (err error) {
varGetPin200ResponseLocation := _GetPin200ResponseLocation{}
if err = json.Unmarshal(bytes, &varGetPin200ResponseLocation); err == nil {
*o = GetPin200ResponseLocation(varGetPin200ResponseLocation)
}
additionalProperties := make(map[string]interface{})
if err = json.Unmarshal(bytes, &additionalProperties); err == nil {
delete(additionalProperties, "code")
delete(additionalProperties, "european_union_member")
delete(additionalProperties, "continent_code")
delete(additionalProperties, "country")
delete(additionalProperties, "city")
delete(additionalProperties, "time_zone")
delete(additionalProperties, "postal_code")
delete(additionalProperties, "in_privacy_restricted_country")
delete(additionalProperties, "subdivisions")
delete(additionalProperties, "coordinates")
o.AdditionalProperties = additionalProperties
}
return err
}
type NullableGetPin200ResponseLocation struct {
value *GetPin200ResponseLocation
isSet bool
}
func (v NullableGetPin200ResponseLocation) Get() *GetPin200ResponseLocation {
return v.value
}
func (v *NullableGetPin200ResponseLocation) Set(val *GetPin200ResponseLocation) {
v.value = val
v.isSet = true
}
func (v NullableGetPin200ResponseLocation) IsSet() bool {
return v.isSet
}
func (v *NullableGetPin200ResponseLocation) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableGetPin200ResponseLocation(val *GetPin200ResponseLocation) *NullableGetPin200ResponseLocation {
return &NullableGetPin200ResponseLocation{value: val, isSet: true}
}
func (v NullableGetPin200ResponseLocation) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableGetPin200ResponseLocation) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

View File

@@ -0,0 +1,153 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package plextv
import (
"encoding/json"
)
// checks if the GetPin400Response type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &GetPin400Response{}
// GetPin400Response struct for GetPin400Response
type GetPin400Response struct {
Errors interface{} `json:"errors,omitempty"`
AdditionalProperties map[string]interface{}
}
type _GetPin400Response GetPin400Response
// NewGetPin400Response instantiates a new GetPin400Response object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewGetPin400Response() *GetPin400Response {
this := GetPin400Response{}
return &this
}
// NewGetPin400ResponseWithDefaults instantiates a new GetPin400Response object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewGetPin400ResponseWithDefaults() *GetPin400Response {
this := GetPin400Response{}
return &this
}
// GetErrors returns the Errors field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetPin400Response) GetErrors() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Errors
}
// GetErrorsOk returns a tuple with the Errors field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetPin400Response) GetErrorsOk() (*interface{}, bool) {
if o == nil || isNil(o.Errors) {
return nil, false
}
return &o.Errors, true
}
// HasErrors returns a boolean if a field has been set.
func (o *GetPin400Response) HasErrors() bool {
if o != nil && isNil(o.Errors) {
return true
}
return false
}
// SetErrors gets a reference to the given interface{} and assigns it to the Errors field.
func (o *GetPin400Response) SetErrors(v interface{}) {
o.Errors = v
}
func (o GetPin400Response) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o GetPin400Response) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if o.Errors != nil {
toSerialize["errors"] = o.Errors
}
for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return toSerialize, nil
}
func (o *GetPin400Response) UnmarshalJSON(bytes []byte) (err error) {
varGetPin400Response := _GetPin400Response{}
if err = json.Unmarshal(bytes, &varGetPin400Response); err == nil {
*o = GetPin400Response(varGetPin400Response)
}
additionalProperties := make(map[string]interface{})
if err = json.Unmarshal(bytes, &additionalProperties); err == nil {
delete(additionalProperties, "errors")
o.AdditionalProperties = additionalProperties
}
return err
}
type NullableGetPin400Response struct {
value *GetPin400Response
isSet bool
}
func (v NullableGetPin400Response) Get() *GetPin400Response {
return v.value
}
func (v *NullableGetPin400Response) Set(val *GetPin400Response) {
v.value = val
v.isSet = true
}
func (v NullableGetPin400Response) IsSet() bool {
return v.isSet
}
func (v *NullableGetPin400Response) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableGetPin400Response(val *GetPin400Response) *NullableGetPin400Response {
return &NullableGetPin400Response{value: val, isSet: true}
}
func (v NullableGetPin400Response) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableGetPin400Response) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

View File

@@ -0,0 +1,343 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package plextv
import (
"encoding/json"
)
// checks if the GetUserOptOutSettings200Response type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &GetUserOptOutSettings200Response{}
// GetUserOptOutSettings200Response struct for GetUserOptOutSettings200Response
type GetUserOptOutSettings200Response struct {
TvPlexProviderPodcasts interface{} `json:"tv.plex.provider.podcasts,omitempty"`
TvPlexProviderNews interface{} `json:"tv.plex.provider.news,omitempty"`
TvPlexProviderWebshows interface{} `json:"tv.plex.provider.webshows,omitempty"`
TvPlexProviderMusic interface{} `json:"tv.plex.provider.music,omitempty"`
TvPlexProviderVod interface{} `json:"tv.plex.provider.vod,omitempty"`
Scrobbling interface{} `json:"scrobbling,omitempty"`
AdditionalProperties map[string]interface{}
}
type _GetUserOptOutSettings200Response GetUserOptOutSettings200Response
// NewGetUserOptOutSettings200Response instantiates a new GetUserOptOutSettings200Response object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewGetUserOptOutSettings200Response() *GetUserOptOutSettings200Response {
this := GetUserOptOutSettings200Response{}
return &this
}
// NewGetUserOptOutSettings200ResponseWithDefaults instantiates a new GetUserOptOutSettings200Response object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewGetUserOptOutSettings200ResponseWithDefaults() *GetUserOptOutSettings200Response {
this := GetUserOptOutSettings200Response{}
return &this
}
// GetTvPlexProviderPodcasts returns the TvPlexProviderPodcasts field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetUserOptOutSettings200Response) GetTvPlexProviderPodcasts() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.TvPlexProviderPodcasts
}
// GetTvPlexProviderPodcastsOk returns a tuple with the TvPlexProviderPodcasts field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetUserOptOutSettings200Response) GetTvPlexProviderPodcastsOk() (*interface{}, bool) {
if o == nil || isNil(o.TvPlexProviderPodcasts) {
return nil, false
}
return &o.TvPlexProviderPodcasts, true
}
// HasTvPlexProviderPodcasts returns a boolean if a field has been set.
func (o *GetUserOptOutSettings200Response) HasTvPlexProviderPodcasts() bool {
if o != nil && isNil(o.TvPlexProviderPodcasts) {
return true
}
return false
}
// SetTvPlexProviderPodcasts gets a reference to the given interface{} and assigns it to the TvPlexProviderPodcasts field.
func (o *GetUserOptOutSettings200Response) SetTvPlexProviderPodcasts(v interface{}) {
o.TvPlexProviderPodcasts = v
}
// GetTvPlexProviderNews returns the TvPlexProviderNews field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetUserOptOutSettings200Response) GetTvPlexProviderNews() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.TvPlexProviderNews
}
// GetTvPlexProviderNewsOk returns a tuple with the TvPlexProviderNews field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetUserOptOutSettings200Response) GetTvPlexProviderNewsOk() (*interface{}, bool) {
if o == nil || isNil(o.TvPlexProviderNews) {
return nil, false
}
return &o.TvPlexProviderNews, true
}
// HasTvPlexProviderNews returns a boolean if a field has been set.
func (o *GetUserOptOutSettings200Response) HasTvPlexProviderNews() bool {
if o != nil && isNil(o.TvPlexProviderNews) {
return true
}
return false
}
// SetTvPlexProviderNews gets a reference to the given interface{} and assigns it to the TvPlexProviderNews field.
func (o *GetUserOptOutSettings200Response) SetTvPlexProviderNews(v interface{}) {
o.TvPlexProviderNews = v
}
// GetTvPlexProviderWebshows returns the TvPlexProviderWebshows field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetUserOptOutSettings200Response) GetTvPlexProviderWebshows() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.TvPlexProviderWebshows
}
// GetTvPlexProviderWebshowsOk returns a tuple with the TvPlexProviderWebshows field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetUserOptOutSettings200Response) GetTvPlexProviderWebshowsOk() (*interface{}, bool) {
if o == nil || isNil(o.TvPlexProviderWebshows) {
return nil, false
}
return &o.TvPlexProviderWebshows, true
}
// HasTvPlexProviderWebshows returns a boolean if a field has been set.
func (o *GetUserOptOutSettings200Response) HasTvPlexProviderWebshows() bool {
if o != nil && isNil(o.TvPlexProviderWebshows) {
return true
}
return false
}
// SetTvPlexProviderWebshows gets a reference to the given interface{} and assigns it to the TvPlexProviderWebshows field.
func (o *GetUserOptOutSettings200Response) SetTvPlexProviderWebshows(v interface{}) {
o.TvPlexProviderWebshows = v
}
// GetTvPlexProviderMusic returns the TvPlexProviderMusic field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetUserOptOutSettings200Response) GetTvPlexProviderMusic() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.TvPlexProviderMusic
}
// GetTvPlexProviderMusicOk returns a tuple with the TvPlexProviderMusic field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetUserOptOutSettings200Response) GetTvPlexProviderMusicOk() (*interface{}, bool) {
if o == nil || isNil(o.TvPlexProviderMusic) {
return nil, false
}
return &o.TvPlexProviderMusic, true
}
// HasTvPlexProviderMusic returns a boolean if a field has been set.
func (o *GetUserOptOutSettings200Response) HasTvPlexProviderMusic() bool {
if o != nil && isNil(o.TvPlexProviderMusic) {
return true
}
return false
}
// SetTvPlexProviderMusic gets a reference to the given interface{} and assigns it to the TvPlexProviderMusic field.
func (o *GetUserOptOutSettings200Response) SetTvPlexProviderMusic(v interface{}) {
o.TvPlexProviderMusic = v
}
// GetTvPlexProviderVod returns the TvPlexProviderVod field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetUserOptOutSettings200Response) GetTvPlexProviderVod() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.TvPlexProviderVod
}
// GetTvPlexProviderVodOk returns a tuple with the TvPlexProviderVod field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetUserOptOutSettings200Response) GetTvPlexProviderVodOk() (*interface{}, bool) {
if o == nil || isNil(o.TvPlexProviderVod) {
return nil, false
}
return &o.TvPlexProviderVod, true
}
// HasTvPlexProviderVod returns a boolean if a field has been set.
func (o *GetUserOptOutSettings200Response) HasTvPlexProviderVod() bool {
if o != nil && isNil(o.TvPlexProviderVod) {
return true
}
return false
}
// SetTvPlexProviderVod gets a reference to the given interface{} and assigns it to the TvPlexProviderVod field.
func (o *GetUserOptOutSettings200Response) SetTvPlexProviderVod(v interface{}) {
o.TvPlexProviderVod = v
}
// GetScrobbling returns the Scrobbling field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *GetUserOptOutSettings200Response) GetScrobbling() interface{} {
if o == nil {
var ret interface{}
return ret
}
return o.Scrobbling
}
// GetScrobblingOk returns a tuple with the Scrobbling field value if set, nil otherwise
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *GetUserOptOutSettings200Response) GetScrobblingOk() (*interface{}, bool) {
if o == nil || isNil(o.Scrobbling) {
return nil, false
}
return &o.Scrobbling, true
}
// HasScrobbling returns a boolean if a field has been set.
func (o *GetUserOptOutSettings200Response) HasScrobbling() bool {
if o != nil && isNil(o.Scrobbling) {
return true
}
return false
}
// SetScrobbling gets a reference to the given interface{} and assigns it to the Scrobbling field.
func (o *GetUserOptOutSettings200Response) SetScrobbling(v interface{}) {
o.Scrobbling = v
}
func (o GetUserOptOutSettings200Response) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o GetUserOptOutSettings200Response) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if o.TvPlexProviderPodcasts != nil {
toSerialize["tv.plex.provider.podcasts"] = o.TvPlexProviderPodcasts
}
if o.TvPlexProviderNews != nil {
toSerialize["tv.plex.provider.news"] = o.TvPlexProviderNews
}
if o.TvPlexProviderWebshows != nil {
toSerialize["tv.plex.provider.webshows"] = o.TvPlexProviderWebshows
}
if o.TvPlexProviderMusic != nil {
toSerialize["tv.plex.provider.music"] = o.TvPlexProviderMusic
}
if o.TvPlexProviderVod != nil {
toSerialize["tv.plex.provider.vod"] = o.TvPlexProviderVod
}
if o.Scrobbling != nil {
toSerialize["scrobbling"] = o.Scrobbling
}
for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return toSerialize, nil
}
func (o *GetUserOptOutSettings200Response) UnmarshalJSON(bytes []byte) (err error) {
varGetUserOptOutSettings200Response := _GetUserOptOutSettings200Response{}
if err = json.Unmarshal(bytes, &varGetUserOptOutSettings200Response); err == nil {
*o = GetUserOptOutSettings200Response(varGetUserOptOutSettings200Response)
}
additionalProperties := make(map[string]interface{})
if err = json.Unmarshal(bytes, &additionalProperties); err == nil {
delete(additionalProperties, "tv.plex.provider.podcasts")
delete(additionalProperties, "tv.plex.provider.news")
delete(additionalProperties, "tv.plex.provider.webshows")
delete(additionalProperties, "tv.plex.provider.music")
delete(additionalProperties, "tv.plex.provider.vod")
delete(additionalProperties, "scrobbling")
o.AdditionalProperties = additionalProperties
}
return err
}
type NullableGetUserOptOutSettings200Response struct {
value *GetUserOptOutSettings200Response
isSet bool
}
func (v NullableGetUserOptOutSettings200Response) Get() *GetUserOptOutSettings200Response {
return v.value
}
func (v *NullableGetUserOptOutSettings200Response) Set(val *GetUserOptOutSettings200Response) {
v.value = val
v.isSet = true
}
func (v NullableGetUserOptOutSettings200Response) IsSet() bool {
return v.isSet
}
func (v *NullableGetUserOptOutSettings200Response) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableGetUserOptOutSettings200Response(val *GetUserOptOutSettings200Response) *NullableGetUserOptOutSettings200Response {
return &NullableGetUserOptOutSettings200Response{value: val, isSet: true}
}
func (v NullableGetUserOptOutSettings200Response) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableGetUserOptOutSettings200Response) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

48
plextv/response.go Normal file
View File

@@ -0,0 +1,48 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package plextv
import (
"net/http"
)
// APIResponse stores the API response returned by the server.
type APIResponse struct {
*http.Response `json:"-"`
Message string `json:"message,omitempty"`
// Operation is the name of the OpenAPI operation.
Operation string `json:"operation,omitempty"`
// RequestURL is the request URL. This value is always available, even if the
// embedded *http.Response is nil.
RequestURL string `json:"url,omitempty"`
// Method is the HTTP method used for the request. This value is always
// available, even if the embedded *http.Response is nil.
Method string `json:"method,omitempty"`
// Payload holds the contents of the response body (which may be nil or empty).
// This is provided here as the raw response.Body() reader will have already
// been drained.
Payload []byte `json:"-"`
}
// NewAPIResponse returns a new APIResponse object.
func NewAPIResponse(r *http.Response) *APIResponse {
response := &APIResponse{Response: r}
return response
}
// NewAPIResponseWithError returns a new APIResponse object with the provided error message.
func NewAPIResponseWithError(errorMessage string) *APIResponse {
response := &APIResponse{Message: errorMessage}
return response
}

View File

@@ -0,0 +1,133 @@
/*
Plex-API
Testing PlexTvApiService
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech);
package plextv
import (
"context"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"testing"
openapiclient "github.com/lukehagar/plexgo"
)
func Test_plextv_PlexTvApiService(t *testing.T) {
configuration := openapiclient.NewDefaultConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
t.Run("Test PlexTvApiService GetCompanionsData", func(t *testing.T) {
t.Skip("skip test") // remove to run test
resp, httpRes, err := apiClient.PLEXTV.PlexTvApi.GetCompanionsData(context.Background()).Execute()
require.Nil(t, err)
require.NotNil(t, resp)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test PlexTvApiService GetDevices", func(t *testing.T) {
t.Skip("skip test") // remove to run test
resp, httpRes, err := apiClient.PLEXTV.PlexTvApi.GetDevices(context.Background()).Execute()
require.Nil(t, err)
require.NotNil(t, resp)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test PlexTvApiService GetGeoData", func(t *testing.T) {
t.Skip("skip test") // remove to run test
resp, httpRes, err := apiClient.PLEXTV.PlexTvApi.GetGeoData(context.Background()).Execute()
require.Nil(t, err)
require.NotNil(t, resp)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test PlexTvApiService GetHomeData", func(t *testing.T) {
t.Skip("skip test") // remove to run test
resp, httpRes, err := apiClient.PLEXTV.PlexTvApi.GetHomeData(context.Background()).Execute()
require.Nil(t, err)
require.NotNil(t, resp)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test PlexTvApiService GetPin", func(t *testing.T) {
t.Skip("skip test") // remove to run test
resp, httpRes, err := apiClient.PLEXTV.PlexTvApi.GetPin(context.Background()).Execute()
require.Nil(t, err)
require.NotNil(t, resp)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test PlexTvApiService GetToken", func(t *testing.T) {
t.Skip("skip test") // remove to run test
var pinID interface{}
httpRes, err := apiClient.PLEXTV.PlexTvApi.GetToken(context.Background(), pinID).Execute()
require.Nil(t, err)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test PlexTvApiService GetUserDetails", func(t *testing.T) {
t.Skip("skip test") // remove to run test
httpRes, err := apiClient.PLEXTV.PlexTvApi.GetUserDetails(context.Background()).Execute()
require.Nil(t, err)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test PlexTvApiService GetUserOptOutSettings", func(t *testing.T) {
t.Skip("skip test") // remove to run test
resp, httpRes, err := apiClient.PLEXTV.PlexTvApi.GetUserOptOutSettings(context.Background()).Execute()
require.Nil(t, err)
require.NotNil(t, resp)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test PlexTvApiService GetUserSettings", func(t *testing.T) {
t.Skip("skip test") // remove to run test
resp, httpRes, err := apiClient.PLEXTV.PlexTvApi.GetUserSettings(context.Background()).Execute()
require.Nil(t, err)
require.NotNil(t, resp)
assert.Equal(t, 200, httpRes.StatusCode)
})
}

348
plextv/utils.go Normal file
View File

@@ -0,0 +1,348 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package plextv
import (
"encoding/json"
"reflect"
"time"
)
// PtrBool is a helper routine that returns a pointer to given boolean value.
func PtrBool(v bool) *bool { return &v }
// PtrInt is a helper routine that returns a pointer to given integer value.
func PtrInt(v int) *int { return &v }
// PtrInt32 is a helper routine that returns a pointer to given integer value.
func PtrInt32(v int32) *int32 { return &v }
// PtrInt64 is a helper routine that returns a pointer to given integer value.
func PtrInt64(v int64) *int64 { return &v }
// PtrFloat32 is a helper routine that returns a pointer to given float value.
func PtrFloat32(v float32) *float32 { return &v }
// PtrFloat64 is a helper routine that returns a pointer to given float value.
func PtrFloat64(v float64) *float64 { return &v }
// PtrString is a helper routine that returns a pointer to given string value.
func PtrString(v string) *string { return &v }
// PtrTime is helper routine that returns a pointer to given Time value.
func PtrTime(v time.Time) *time.Time { return &v }
type NullableBool struct {
value *bool
isSet bool
}
func (v NullableBool) Get() *bool {
return v.value
}
func (v *NullableBool) Set(val *bool) {
v.value = val
v.isSet = true
}
func (v NullableBool) IsSet() bool {
return v.isSet
}
func (v *NullableBool) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableBool(val *bool) *NullableBool {
return &NullableBool{value: val, isSet: true}
}
func (v NullableBool) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableBool) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableInt struct {
value *int
isSet bool
}
func (v NullableInt) Get() *int {
return v.value
}
func (v *NullableInt) Set(val *int) {
v.value = val
v.isSet = true
}
func (v NullableInt) IsSet() bool {
return v.isSet
}
func (v *NullableInt) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableInt(val *int) *NullableInt {
return &NullableInt{value: val, isSet: true}
}
func (v NullableInt) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableInt) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableInt32 struct {
value *int32
isSet bool
}
func (v NullableInt32) Get() *int32 {
return v.value
}
func (v *NullableInt32) Set(val *int32) {
v.value = val
v.isSet = true
}
func (v NullableInt32) IsSet() bool {
return v.isSet
}
func (v *NullableInt32) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableInt32(val *int32) *NullableInt32 {
return &NullableInt32{value: val, isSet: true}
}
func (v NullableInt32) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableInt32) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableInt64 struct {
value *int64
isSet bool
}
func (v NullableInt64) Get() *int64 {
return v.value
}
func (v *NullableInt64) Set(val *int64) {
v.value = val
v.isSet = true
}
func (v NullableInt64) IsSet() bool {
return v.isSet
}
func (v *NullableInt64) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableInt64(val *int64) *NullableInt64 {
return &NullableInt64{value: val, isSet: true}
}
func (v NullableInt64) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableInt64) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableFloat32 struct {
value *float32
isSet bool
}
func (v NullableFloat32) Get() *float32 {
return v.value
}
func (v *NullableFloat32) Set(val *float32) {
v.value = val
v.isSet = true
}
func (v NullableFloat32) IsSet() bool {
return v.isSet
}
func (v *NullableFloat32) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableFloat32(val *float32) *NullableFloat32 {
return &NullableFloat32{value: val, isSet: true}
}
func (v NullableFloat32) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableFloat32) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableFloat64 struct {
value *float64
isSet bool
}
func (v NullableFloat64) Get() *float64 {
return v.value
}
func (v *NullableFloat64) Set(val *float64) {
v.value = val
v.isSet = true
}
func (v NullableFloat64) IsSet() bool {
return v.isSet
}
func (v *NullableFloat64) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableFloat64(val *float64) *NullableFloat64 {
return &NullableFloat64{value: val, isSet: true}
}
func (v NullableFloat64) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableFloat64) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableString struct {
value *string
isSet bool
}
func (v NullableString) Get() *string {
return v.value
}
func (v *NullableString) Set(val *string) {
v.value = val
v.isSet = true
}
func (v NullableString) IsSet() bool {
return v.isSet
}
func (v *NullableString) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableString(val *string) *NullableString {
return &NullableString{value: val, isSet: true}
}
func (v NullableString) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableString) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableTime struct {
value *time.Time
isSet bool
}
func (v NullableTime) Get() *time.Time {
return v.value
}
func (v *NullableTime) Set(val *time.Time) {
v.value = val
v.isSet = true
}
func (v NullableTime) IsSet() bool {
return v.isSet
}
func (v *NullableTime) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableTime(val *time.Time) *NullableTime {
return &NullableTime{value: val, isSet: true}
}
func (v NullableTime) MarshalJSON() ([]byte, error) {
return v.value.MarshalJSON()
}
func (v *NullableTime) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
// isNil checks if an input is nil
func isNil(i interface{}) bool {
if i == nil {
return true
}
switch reflect.TypeOf(i).Kind() {
case reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.UnsafePointer, reflect.Interface, reflect.Slice:
return reflect.ValueOf(i).IsNil()
case reflect.Array:
return reflect.ValueOf(i).IsZero()
}
return false
}
type MappedNullable interface {
ToMap() (map[string]interface{}, error)
}

24
pms/.gitignore vendored Normal file
View File

@@ -0,0 +1,24 @@
# Compiled Object files, Static and Dynamic libs (Shared Objects)
*.o
*.a
*.so
# Folders
_obj
_test
# Architecture specific extensions/prefixes
*.[568vq]
[568vq].out
*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*
_testmain.go
*.exe
*.test
*.prof

View File

@@ -0,0 +1,23 @@
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.
# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md

View File

@@ -0,0 +1,83 @@
.gitignore
.travis.yml
README.md
api/openapi.yaml
api_activities.go
api_butler.go
api_hubs.go
api_library.go
api_log.go
api_media.go
api_playlists.go
api_search.go
api_security.go
api_server.go
api_sessions.go
api_updater.go
api_video.go
client.go
configuration.go
docs/ActivitiesApi.md
docs/ButlerApi.md
docs/GetButlerTasks200Response.md
docs/GetButlerTasks200ResponseButlerTasks.md
docs/GetDevices200Response.md
docs/GetDevices200ResponseMediaContainer.md
docs/GetMyPlexAccount200Response.md
docs/GetMyPlexAccount200ResponseMyPlex.md
docs/GetOnDeck200Response.md
docs/GetOnDeck200ResponseMediaContainer.md
docs/GetRecentlyAdded200Response.md
docs/GetRecentlyAdded200ResponseMediaContainer.md
docs/GetSearchResults200Response.md
docs/GetSearchResults200ResponseMediaContainer.md
docs/GetServerActivities200Response.md
docs/GetServerActivities200ResponseMediaContainer.md
docs/GetServerCapabilities200Response.md
docs/GetServerCapabilities200ResponseMediaContainer.md
docs/GetServerCapabilities401Response.md
docs/GetServerIdentity200Response.md
docs/GetServerIdentity200ResponseMediaContainer.md
docs/GetServerList200Response.md
docs/GetServerList200ResponseMediaContainer.md
docs/GetTranscodeSessions200Response.md
docs/GetTranscodeSessions200ResponseMediaContainer.md
docs/HubsApi.md
docs/LibraryApi.md
docs/LogApi.md
docs/MediaApi.md
docs/PlaylistsApi.md
docs/SearchApi.md
docs/SecurityApi.md
docs/ServerApi.md
docs/SessionsApi.md
docs/UpdaterApi.md
docs/VideoApi.md
git_push.sh
go.mod
go.sum
model_get_butler_tasks_200_response.go
model_get_butler_tasks_200_response_butler_tasks.go
model_get_devices_200_response.go
model_get_devices_200_response_media_container.go
model_get_my_plex_account_200_response.go
model_get_my_plex_account_200_response_my_plex.go
model_get_on_deck_200_response.go
model_get_on_deck_200_response_media_container.go
model_get_recently_added_200_response.go
model_get_recently_added_200_response_media_container.go
model_get_search_results_200_response.go
model_get_search_results_200_response_media_container.go
model_get_server_activities_200_response.go
model_get_server_activities_200_response_media_container.go
model_get_server_capabilities_200_response.go
model_get_server_capabilities_200_response_media_container.go
model_get_server_capabilities_401_response.go
model_get_server_identity_200_response.go
model_get_server_identity_200_response_media_container.go
model_get_server_list_200_response.go
model_get_server_list_200_response_media_container.go
model_get_transcode_sessions_200_response.go
model_get_transcode_sessions_200_response_media_container.go
response.go
utils.go

View File

@@ -0,0 +1 @@
6.6.0

8
pms/.travis.yml Normal file
View File

@@ -0,0 +1,8 @@
language: go
install:
- go get -d -v .
script:
- go build -v ./

200
pms/README.md Normal file
View File

@@ -0,0 +1,200 @@
# Go API client for pms
An Open API Spec for interacting with Plex.tv and Plex Servers
## Overview
This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.
- API version: 0.0.3
- Package version: 1.1.6
- Build package: org.openapitools.codegen.languages.GoClientCodegen
For more information, please visit [https://www.LukeHagar.com](https://www.LukeHagar.com)
## Installation
Install the following dependencies:
```shell
go get github.com/stretchr/testify/assert
go get golang.org/x/net/context
```
Put the package under your project folder and add the following in import:
```golang
import pms "github.com/lukehagar/plexgo"
```
To use a proxy, set the environment variable `HTTP_PROXY`:
```golang
os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")
```
## Configuration of Server URL
Default configuration comes with `Servers` field that contains server objects as defined in the OpenAPI specification.
### Select Server Configuration
For using other server than the one defined on index 0 set context value `sw.ContextServerIndex` of type `int`.
```golang
ctx := context.WithValue(context.Background(), pms.ContextServerIndex, 1)
```
### Templated Server URL
Templated server URL is formatted using default variables from configuration or from context value `sw.ContextServerVariables` of type `map[string]string`.
```golang
ctx := context.WithValue(context.Background(), pms.ContextServerVariables, map[string]string{
"basePath": "v2",
})
```
Note, enum values are always validated and all unused variables are silently ignored.
### URLs Configuration per Operation
Each operation can use different server URL defined using `OperationServers` map in the `Configuration`.
An operation is uniquely identified by `"{classname}Service.{nickname}"` string.
Similar rules for overriding default operation server index and variables applies by using `sw.ContextOperationServerIndices` and `sw.ContextOperationServerVariables` context maps.
```golang
ctx := context.WithValue(context.Background(), pms.ContextOperationServerIndices, map[string]int{
"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), pms.ContextOperationServerVariables, map[string]map[string]string{
"{classname}Service.{nickname}": {
"port": "8443",
},
})
```
## Documentation for API Endpoints
All URIs are relative to *http://10.10.10.47:32400*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*ActivitiesApi* | [**CancelServerActivities**](docs/ActivitiesApi.md#cancelserveractivities) | **Delete** /activities/{activityUUID} | Cancel Server Activities
*ActivitiesApi* | [**GetServerActivities**](docs/ActivitiesApi.md#getserveractivities) | **Get** /activities | Get Server Activities
*ButlerApi* | [**GetButlerTasks**](docs/ButlerApi.md#getbutlertasks) | **Get** /butler | Get Butler tasks
*ButlerApi* | [**StartAllTasks**](docs/ButlerApi.md#startalltasks) | **Post** /butler | Start all Butler tasks
*ButlerApi* | [**StartTask**](docs/ButlerApi.md#starttask) | **Post** /butler/{taskName} | Start a single Butler task
*ButlerApi* | [**StopAllTasks**](docs/ButlerApi.md#stopalltasks) | **Delete** /butler | Stop all Butler tasks
*ButlerApi* | [**StopTask**](docs/ButlerApi.md#stoptask) | **Delete** /butler/{taskName} | Stop a single Butler task
*HubsApi* | [**GetGlobalHubs**](docs/HubsApi.md#getglobalhubs) | **Get** /hubs | Get Global Hubs
*HubsApi* | [**GetLibraryHubs**](docs/HubsApi.md#getlibraryhubs) | **Get** /hubs/sections/{sectionId} | Get library specific hubs
*LibraryApi* | [**DeleteLibrary**](docs/LibraryApi.md#deletelibrary) | **Delete** /library/sections/{sectionId} | Delete Library Section
*LibraryApi* | [**GetCommonLibraryItems**](docs/LibraryApi.md#getcommonlibraryitems) | **Get** /library/sections/{sectionId}/common | Get Common Library Items
*LibraryApi* | [**GetFileHash**](docs/LibraryApi.md#getfilehash) | **Get** /library/hashes | Get Hash Value
*LibraryApi* | [**GetLatestLibraryItems**](docs/LibraryApi.md#getlatestlibraryitems) | **Get** /library/sections/{sectionId}/latest | Get Latest Library Items
*LibraryApi* | [**GetLibraries**](docs/LibraryApi.md#getlibraries) | **Get** /library/sections | Get All Libraries
*LibraryApi* | [**GetLibrary**](docs/LibraryApi.md#getlibrary) | **Get** /library/sections/{sectionId} | Get Library Details
*LibraryApi* | [**GetLibraryItems**](docs/LibraryApi.md#getlibraryitems) | **Get** /library/sections/{sectionId}/all | Get Library Items
*LibraryApi* | [**GetMetadata**](docs/LibraryApi.md#getmetadata) | **Get** /library/metadata/{ratingKey} | Get Items Metadata
*LibraryApi* | [**GetMetadataChildren**](docs/LibraryApi.md#getmetadatachildren) | **Get** /library/metadata/{ratingKey}/children | Get Items Children
*LibraryApi* | [**GetOnDeck**](docs/LibraryApi.md#getondeck) | **Get** /library/onDeck | Get On Deck
*LibraryApi* | [**GetRecentlyAdded**](docs/LibraryApi.md#getrecentlyadded) | **Get** /library/recentlyAdded | Get Recently Added
*LibraryApi* | [**RefreshLibrary**](docs/LibraryApi.md#refreshlibrary) | **Get** /library/sections/{sectionId}/refresh | Refresh Library
*LogApi* | [**EnablePaperTrail**](docs/LogApi.md#enablepapertrail) | **Get** /log/networked | Enabling Papertrail
*LogApi* | [**LogLine**](docs/LogApi.md#logline) | **Get** /log | Logging a single line message.
*LogApi* | [**LogMultiLine**](docs/LogApi.md#logmultiline) | **Post** /log | Logging a multi-line message
*MediaApi* | [**MarkPlayed**](docs/MediaApi.md#markplayed) | **Get** /:/scrobble | Mark Media Played
*MediaApi* | [**MarkUnplayed**](docs/MediaApi.md#markunplayed) | **Get** /:/unscrobble | Mark Media Unplayed
*MediaApi* | [**UpdatePlayProgress**](docs/MediaApi.md#updateplayprogress) | **Post** /:/progress | Update Media Play Progress
*PlaylistsApi* | [**AddPlaylistContents**](docs/PlaylistsApi.md#addplaylistcontents) | **Put** /playlists/{playlistID}/items | Adding to a Playlist
*PlaylistsApi* | [**ClearPlaylistContents**](docs/PlaylistsApi.md#clearplaylistcontents) | **Delete** /playlists/{playlistID}/items | Delete Playlist Contents
*PlaylistsApi* | [**CreatePlaylist**](docs/PlaylistsApi.md#createplaylist) | **Post** /playlists | Create a Playlist
*PlaylistsApi* | [**DeletePlaylist**](docs/PlaylistsApi.md#deleteplaylist) | **Delete** /playlists/{playlistID} | Deletes a Playlist
*PlaylistsApi* | [**GetPlaylist**](docs/PlaylistsApi.md#getplaylist) | **Get** /playlists/{playlistID} | Retrieve Playlist
*PlaylistsApi* | [**GetPlaylistContents**](docs/PlaylistsApi.md#getplaylistcontents) | **Get** /playlists/{playlistID}/items | Retrieve Playlist Contents
*PlaylistsApi* | [**GetPlaylists**](docs/PlaylistsApi.md#getplaylists) | **Get** /playlists/all | Get All Playlists
*PlaylistsApi* | [**UpdatePlaylist**](docs/PlaylistsApi.md#updateplaylist) | **Put** /playlists/{playlistID} | Update a Playlist
*PlaylistsApi* | [**UploadPlaylist**](docs/PlaylistsApi.md#uploadplaylist) | **Post** /playlists/upload | Upload Playlist
*SearchApi* | [**GetSearchResults**](docs/SearchApi.md#getsearchresults) | **Get** /search | Get Search Results
*SearchApi* | [**PerformSearch**](docs/SearchApi.md#performsearch) | **Get** /hubs/search | Perform a search
*SearchApi* | [**PerformVoiceSearch**](docs/SearchApi.md#performvoicesearch) | **Get** /hubs/search/voice | Perform a voice search
*SecurityApi* | [**GetSourceConnectionInformation**](docs/SecurityApi.md#getsourceconnectioninformation) | **Get** /security/resources | Get Source Connection Information
*SecurityApi* | [**GetTransientToken**](docs/SecurityApi.md#gettransienttoken) | **Get** /security/token | Get a Transient Token.
*ServerApi* | [**GetAvailableClients**](docs/ServerApi.md#getavailableclients) | **Get** /clients | Get Available Clients
*ServerApi* | [**GetDevices**](docs/ServerApi.md#getdevices) | **Get** /devices | Get Devices
*ServerApi* | [**GetMyPlexAccount**](docs/ServerApi.md#getmyplexaccount) | **Get** /myplex/account | Get MyPlex Account
*ServerApi* | [**GetResizedPhoto**](docs/ServerApi.md#getresizedphoto) | **Get** /photo/:/transcode | Get a Resized Photo
*ServerApi* | [**GetServerCapabilities**](docs/ServerApi.md#getservercapabilities) | **Get** / | Server Capabilities
*ServerApi* | [**GetServerIdentity**](docs/ServerApi.md#getserveridentity) | **Get** /identity | Get Server Identity
*ServerApi* | [**GetServerList**](docs/ServerApi.md#getserverlist) | **Get** /servers | Get Server List
*ServerApi* | [**GetServerPreferences**](docs/ServerApi.md#getserverpreferences) | **Get** /:/prefs | Get Server Preferences
*SessionsApi* | [**GetSessionHistory**](docs/SessionsApi.md#getsessionhistory) | **Get** /status/sessions/history/all | Get Session History
*SessionsApi* | [**GetSessions**](docs/SessionsApi.md#getsessions) | **Get** /status/sessions | Get Active Sessions
*SessionsApi* | [**GetTranscodeSessions**](docs/SessionsApi.md#gettranscodesessions) | **Get** /transcode/sessions | Get Transcode Sessions
*SessionsApi* | [**StopTranscodeSession**](docs/SessionsApi.md#stoptranscodesession) | **Delete** /transcode/sessions/{sessionKey} | Stop a Transcode Session
*UpdaterApi* | [**ApplyUpdates**](docs/UpdaterApi.md#applyupdates) | **Put** /updater/apply | Apply Updates
*UpdaterApi* | [**CheckForUpdates**](docs/UpdaterApi.md#checkforupdates) | **Put** /updater/check | Checking for updates
*UpdaterApi* | [**GetUpdateStatus**](docs/UpdaterApi.md#getupdatestatus) | **Get** /updater/status | Querying status of updates
*VideoApi* | [**GetTimeline**](docs/VideoApi.md#gettimeline) | **Get** /:/timeline | Get the timeline for a media item
*VideoApi* | [**StartUniversalTranscode**](docs/VideoApi.md#startuniversaltranscode) | **Get** /video/:/transcode/universal/start.mpd | Start Universal Transcode
## Documentation For Models
- [GetButlerTasks200Response](docs/GetButlerTasks200Response.md)
- [GetButlerTasks200ResponseButlerTasks](docs/GetButlerTasks200ResponseButlerTasks.md)
- [GetDevices200Response](docs/GetDevices200Response.md)
- [GetDevices200ResponseMediaContainer](docs/GetDevices200ResponseMediaContainer.md)
- [GetMyPlexAccount200Response](docs/GetMyPlexAccount200Response.md)
- [GetMyPlexAccount200ResponseMyPlex](docs/GetMyPlexAccount200ResponseMyPlex.md)
- [GetOnDeck200Response](docs/GetOnDeck200Response.md)
- [GetOnDeck200ResponseMediaContainer](docs/GetOnDeck200ResponseMediaContainer.md)
- [GetRecentlyAdded200Response](docs/GetRecentlyAdded200Response.md)
- [GetRecentlyAdded200ResponseMediaContainer](docs/GetRecentlyAdded200ResponseMediaContainer.md)
- [GetSearchResults200Response](docs/GetSearchResults200Response.md)
- [GetSearchResults200ResponseMediaContainer](docs/GetSearchResults200ResponseMediaContainer.md)
- [GetServerActivities200Response](docs/GetServerActivities200Response.md)
- [GetServerActivities200ResponseMediaContainer](docs/GetServerActivities200ResponseMediaContainer.md)
- [GetServerCapabilities200Response](docs/GetServerCapabilities200Response.md)
- [GetServerCapabilities200ResponseMediaContainer](docs/GetServerCapabilities200ResponseMediaContainer.md)
- [GetServerCapabilities401Response](docs/GetServerCapabilities401Response.md)
- [GetServerIdentity200Response](docs/GetServerIdentity200Response.md)
- [GetServerIdentity200ResponseMediaContainer](docs/GetServerIdentity200ResponseMediaContainer.md)
- [GetServerList200Response](docs/GetServerList200Response.md)
- [GetServerList200ResponseMediaContainer](docs/GetServerList200ResponseMediaContainer.md)
- [GetTranscodeSessions200Response](docs/GetTranscodeSessions200Response.md)
- [GetTranscodeSessions200ResponseMediaContainer](docs/GetTranscodeSessions200ResponseMediaContainer.md)
## Documentation For Authorization
### accessToken
- **Type**: API key
- **API key parameter name**: X-Plex-Token
- **Location**: HTTP header
Note, each API key must be added to a map of `map[string]APIKey` where the key is: X-Plex-Token and passed in as the auth context for each request.
## Documentation for Utility Methods
Due to the fact that model structure members are all pointers, this package contains
a number of utility functions to easily obtain pointers to values of basic types.
Each of these functions takes a value of the given basic type and returns a pointer to it:
* `PtrBool`
* `PtrInt`
* `PtrInt32`
* `PtrInt64`
* `PtrFloat`
* `PtrFloat32`
* `PtrFloat64`
* `PtrString`
* `PtrTime`
## Author
Lukeslakemail@gmail.com

3294
pms/api/openapi.yaml Normal file

File diff suppressed because it is too large Load Diff

264
pms/api_activities.go Normal file
View File

@@ -0,0 +1,264 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"io/ioutil"
"net/http"
"net/url"
"strings"
)
// ActivitiesApiService ActivitiesApi service
type ActivitiesApiService service
type ApiCancelServerActivitiesRequest struct {
ctx context.Context
ApiService *ActivitiesApiService
activityUUID interface{}
}
func (r ApiCancelServerActivitiesRequest) Execute() (*http.Response, error) {
return r.ApiService.CancelServerActivitiesExecute(r)
}
/*
CancelServerActivities Cancel Server Activities
Cancel Server Activities
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param activityUUID The UUID of the activity to cancel.
@return ApiCancelServerActivitiesRequest
*/
func (a *ActivitiesApiService) CancelServerActivities(ctx context.Context, activityUUID interface{}) ApiCancelServerActivitiesRequest {
return ApiCancelServerActivitiesRequest{
ApiService: a,
ctx: ctx,
activityUUID: activityUUID,
}
}
// Execute executes the request
func (a *ActivitiesApiService) CancelServerActivitiesExecute(r ApiCancelServerActivitiesRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodDelete
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ActivitiesApiService.CancelServerActivities")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/activities/{activityUUID}"
localVarPath = strings.Replace(localVarPath, "{"+"activityUUID"+"}", url.PathEscape(parameterValueToString(r.activityUUID, "activityUUID")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiGetServerActivitiesRequest struct {
ctx context.Context
ApiService *ActivitiesApiService
}
func (r ApiGetServerActivitiesRequest) Execute() (*GetServerActivities200Response, *http.Response, error) {
return r.ApiService.GetServerActivitiesExecute(r)
}
/*
GetServerActivities Get Server Activities
Get Server Activities
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetServerActivitiesRequest
*/
func (a *ActivitiesApiService) GetServerActivities(ctx context.Context) ApiGetServerActivitiesRequest {
return ApiGetServerActivitiesRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
// @return GetServerActivities200Response
func (a *ActivitiesApiService) GetServerActivitiesExecute(r ApiGetServerActivitiesRequest) (*GetServerActivities200Response, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *GetServerActivities200Response
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ActivitiesApiService.GetServerActivities")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/activities"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}

618
pms/api_butler.go Normal file
View File

@@ -0,0 +1,618 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"io/ioutil"
"net/http"
"net/url"
"strings"
)
// ButlerApiService ButlerApi service
type ButlerApiService service
type ApiGetButlerTasksRequest struct {
ctx context.Context
ApiService *ButlerApiService
}
func (r ApiGetButlerTasksRequest) Execute() (*GetButlerTasks200Response, *http.Response, error) {
return r.ApiService.GetButlerTasksExecute(r)
}
/*
GetButlerTasks Get Butler tasks
Returns a list of butler tasks
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetButlerTasksRequest
*/
func (a *ButlerApiService) GetButlerTasks(ctx context.Context) ApiGetButlerTasksRequest {
return ApiGetButlerTasksRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
// @return GetButlerTasks200Response
func (a *ButlerApiService) GetButlerTasksExecute(r ApiGetButlerTasksRequest) (*GetButlerTasks200Response, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *GetButlerTasks200Response
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ButlerApiService.GetButlerTasks")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/butler"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}
type ApiStartAllTasksRequest struct {
ctx context.Context
ApiService *ButlerApiService
}
func (r ApiStartAllTasksRequest) Execute() (*http.Response, error) {
return r.ApiService.StartAllTasksExecute(r)
}
/*
StartAllTasks Start all Butler tasks
This endpoint will attempt to start all Butler tasks that are enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:
1. Any tasks not scheduled to run on the current day will be skipped.
2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
4. If we are outside the configured window, the task will start immediately.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiStartAllTasksRequest
*/
func (a *ButlerApiService) StartAllTasks(ctx context.Context) ApiStartAllTasksRequest {
return ApiStartAllTasksRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *ButlerApiService) StartAllTasksExecute(r ApiStartAllTasksRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodPost
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ButlerApiService.StartAllTasks")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/butler"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiStartTaskRequest struct {
ctx context.Context
ApiService *ButlerApiService
taskName interface{}
}
func (r ApiStartTaskRequest) Execute() (*http.Response, error) {
return r.ApiService.StartTaskExecute(r)
}
/*
StartTask Start a single Butler task
This endpoint will attempt to start a single Butler task that is enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:
1. Any tasks not scheduled to run on the current day will be skipped.
2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
4. If we are outside the configured window, the task will start immediately.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param taskName the name of the task to be started.
@return ApiStartTaskRequest
*/
func (a *ButlerApiService) StartTask(ctx context.Context, taskName interface{}) ApiStartTaskRequest {
return ApiStartTaskRequest{
ApiService: a,
ctx: ctx,
taskName: taskName,
}
}
// Execute executes the request
func (a *ButlerApiService) StartTaskExecute(r ApiStartTaskRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodPost
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ButlerApiService.StartTask")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/butler/{taskName}"
localVarPath = strings.Replace(localVarPath, "{"+"taskName"+"}", url.PathEscape(parameterValueToString(r.taskName, "taskName")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiStopAllTasksRequest struct {
ctx context.Context
ApiService *ButlerApiService
}
func (r ApiStopAllTasksRequest) Execute() (*http.Response, error) {
return r.ApiService.StopAllTasksExecute(r)
}
/*
StopAllTasks Stop all Butler tasks
This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiStopAllTasksRequest
*/
func (a *ButlerApiService) StopAllTasks(ctx context.Context) ApiStopAllTasksRequest {
return ApiStopAllTasksRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *ButlerApiService) StopAllTasksExecute(r ApiStopAllTasksRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodDelete
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ButlerApiService.StopAllTasks")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/butler"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiStopTaskRequest struct {
ctx context.Context
ApiService *ButlerApiService
taskName interface{}
}
func (r ApiStopTaskRequest) Execute() (*http.Response, error) {
return r.ApiService.StopTaskExecute(r)
}
/*
StopTask Stop a single Butler task
This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param taskName The name of the task to be started.
@return ApiStopTaskRequest
*/
func (a *ButlerApiService) StopTask(ctx context.Context, taskName interface{}) ApiStopTaskRequest {
return ApiStopTaskRequest{
ApiService: a,
ctx: ctx,
taskName: taskName,
}
}
// Execute executes the request
func (a *ButlerApiService) StopTaskExecute(r ApiStopTaskRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodDelete
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ButlerApiService.StopTask")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/butler/{taskName}"
localVarPath = strings.Replace(localVarPath, "{"+"taskName"+"}", url.PathEscape(parameterValueToString(r.taskName, "taskName")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}

294
pms/api_hubs.go Normal file
View File

@@ -0,0 +1,294 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"io/ioutil"
"net/http"
"net/url"
"strings"
)
// HubsApiService HubsApi service
type HubsApiService service
type ApiGetGlobalHubsRequest struct {
ctx context.Context
ApiService *HubsApiService
count *interface{}
onlyTransient *interface{}
}
// The number of items to return with each hub.
func (r ApiGetGlobalHubsRequest) Count(count interface{}) ApiGetGlobalHubsRequest {
r.count = &count
return r
}
// Only return hubs which are \&quot;transient\&quot;, meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added).
func (r ApiGetGlobalHubsRequest) OnlyTransient(onlyTransient interface{}) ApiGetGlobalHubsRequest {
r.onlyTransient = &onlyTransient
return r
}
func (r ApiGetGlobalHubsRequest) Execute() (*http.Response, error) {
return r.ApiService.GetGlobalHubsExecute(r)
}
/*
GetGlobalHubs Get Global Hubs
Get Global Hubs filtered by the parameters provided.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetGlobalHubsRequest
*/
func (a *HubsApiService) GetGlobalHubs(ctx context.Context) ApiGetGlobalHubsRequest {
return ApiGetGlobalHubsRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *HubsApiService) GetGlobalHubsExecute(r ApiGetGlobalHubsRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "HubsApiService.GetGlobalHubs")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/hubs"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.count != nil {
parameterAddToQuery(localVarQueryParams, "count", r.count, "")
}
if r.onlyTransient != nil {
parameterAddToQuery(localVarQueryParams, "onlyTransient", r.onlyTransient, "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiGetLibraryHubsRequest struct {
ctx context.Context
ApiService *HubsApiService
sectionId interface{}
count *interface{}
onlyTransient *interface{}
}
// The number of items to return with each hub.
func (r ApiGetLibraryHubsRequest) Count(count interface{}) ApiGetLibraryHubsRequest {
r.count = &count
return r
}
// Only return hubs which are \&quot;transient\&quot;, meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added).
func (r ApiGetLibraryHubsRequest) OnlyTransient(onlyTransient interface{}) ApiGetLibraryHubsRequest {
r.onlyTransient = &onlyTransient
return r
}
func (r ApiGetLibraryHubsRequest) Execute() (*http.Response, error) {
return r.ApiService.GetLibraryHubsExecute(r)
}
/*
GetLibraryHubs Get library specific hubs
This endpoint will return a list of library specific hubs
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param sectionId the Id of the library to query
@return ApiGetLibraryHubsRequest
*/
func (a *HubsApiService) GetLibraryHubs(ctx context.Context, sectionId interface{}) ApiGetLibraryHubsRequest {
return ApiGetLibraryHubsRequest{
ApiService: a,
ctx: ctx,
sectionId: sectionId,
}
}
// Execute executes the request
func (a *HubsApiService) GetLibraryHubsExecute(r ApiGetLibraryHubsRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "HubsApiService.GetLibraryHubs")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/hubs/sections/{sectionId}"
localVarPath = strings.Replace(localVarPath, "{"+"sectionId"+"}", url.PathEscape(parameterValueToString(r.sectionId, "sectionId")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.count != nil {
parameterAddToQuery(localVarQueryParams, "count", r.count, "")
}
if r.onlyTransient != nil {
parameterAddToQuery(localVarQueryParams, "onlyTransient", r.onlyTransient, "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}

1550
pms/api_library.go Normal file

File diff suppressed because it is too large Load Diff

396
pms/api_log.go Normal file
View File

@@ -0,0 +1,396 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"io/ioutil"
"net/http"
"net/url"
)
// LogApiService LogApi service
type LogApiService service
type ApiEnablePaperTrailRequest struct {
ctx context.Context
ApiService *LogApiService
}
func (r ApiEnablePaperTrailRequest) Execute() (*http.Response, error) {
return r.ApiService.EnablePaperTrailExecute(r)
}
/*
EnablePaperTrail Enabling Papertrail
This endpoint will enable all Plex Media Serverlogs to be sent to the Papertrail networked logging site for a period of time.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiEnablePaperTrailRequest
*/
func (a *LogApiService) EnablePaperTrail(ctx context.Context) ApiEnablePaperTrailRequest {
return ApiEnablePaperTrailRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *LogApiService) EnablePaperTrailExecute(r ApiEnablePaperTrailRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "LogApiService.EnablePaperTrail")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/log/networked"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiLogLineRequest struct {
ctx context.Context
ApiService *LogApiService
level *interface{}
message *interface{}
source *interface{}
}
// An integer log level to write to the PMS log with. 0: Error 1: Warning 2: Info 3: Debug 4: Verbose
func (r ApiLogLineRequest) Level(level interface{}) ApiLogLineRequest {
r.level = &level
return r
}
// The text of the message to write to the log.
func (r ApiLogLineRequest) Message(message interface{}) ApiLogLineRequest {
r.message = &message
return r
}
// a string indicating the source of the message.
func (r ApiLogLineRequest) Source(source interface{}) ApiLogLineRequest {
r.source = &source
return r
}
func (r ApiLogLineRequest) Execute() (*http.Response, error) {
return r.ApiService.LogLineExecute(r)
}
/*
LogLine Logging a single line message.
This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiLogLineRequest
*/
func (a *LogApiService) LogLine(ctx context.Context) ApiLogLineRequest {
return ApiLogLineRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *LogApiService) LogLineExecute(r ApiLogLineRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "LogApiService.LogLine")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/log"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.level == nil {
return nil, reportError("level is required and must be specified")
}
if r.message == nil {
return nil, reportError("message is required and must be specified")
}
if r.source == nil {
return nil, reportError("source is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "level", r.level, "")
parameterAddToQuery(localVarQueryParams, "message", r.message, "")
parameterAddToQuery(localVarQueryParams, "source", r.source, "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiLogMultiLineRequest struct {
ctx context.Context
ApiService *LogApiService
}
func (r ApiLogMultiLineRequest) Execute() (*http.Response, error) {
return r.ApiService.LogMultiLineExecute(r)
}
/*
LogMultiLine Logging a multi-line message
This endpoint will write multiple lines to the main Plex Media Server log in a single request. It takes a set of query strings as would normally sent to the above GET endpoint as a linefeed-separated block of POST data. The parameters for each query string match as above.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiLogMultiLineRequest
*/
func (a *LogApiService) LogMultiLine(ctx context.Context) ApiLogMultiLineRequest {
return ApiLogMultiLineRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *LogApiService) LogMultiLineExecute(r ApiLogMultiLineRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodPost
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "LogApiService.LogMultiLine")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/log"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}

416
pms/api_media.go Normal file
View File

@@ -0,0 +1,416 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"io/ioutil"
"net/http"
"net/url"
)
// MediaApiService MediaApi service
type MediaApiService service
type ApiMarkPlayedRequest struct {
ctx context.Context
ApiService *MediaApiService
key *interface{}
}
// The media key to mark as played
func (r ApiMarkPlayedRequest) Key(key interface{}) ApiMarkPlayedRequest {
r.key = &key
return r
}
func (r ApiMarkPlayedRequest) Execute() (*http.Response, error) {
return r.ApiService.MarkPlayedExecute(r)
}
/*
MarkPlayed Mark Media Played
This will mark the provided media key as Played.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiMarkPlayedRequest
*/
func (a *MediaApiService) MarkPlayed(ctx context.Context) ApiMarkPlayedRequest {
return ApiMarkPlayedRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *MediaApiService) MarkPlayedExecute(r ApiMarkPlayedRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MediaApiService.MarkPlayed")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/:/scrobble"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.key == nil {
return nil, reportError("key is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "key", r.key, "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiMarkUnplayedRequest struct {
ctx context.Context
ApiService *MediaApiService
key *interface{}
}
// The media key to mark as Unplayed
func (r ApiMarkUnplayedRequest) Key(key interface{}) ApiMarkUnplayedRequest {
r.key = &key
return r
}
func (r ApiMarkUnplayedRequest) Execute() (*http.Response, error) {
return r.ApiService.MarkUnplayedExecute(r)
}
/*
MarkUnplayed Mark Media Unplayed
This will mark the provided media key as Unplayed.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiMarkUnplayedRequest
*/
func (a *MediaApiService) MarkUnplayed(ctx context.Context) ApiMarkUnplayedRequest {
return ApiMarkUnplayedRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *MediaApiService) MarkUnplayedExecute(r ApiMarkUnplayedRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MediaApiService.MarkUnplayed")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/:/unscrobble"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.key == nil {
return nil, reportError("key is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "key", r.key, "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiUpdatePlayProgressRequest struct {
ctx context.Context
ApiService *MediaApiService
key *interface{}
time *interface{}
state *interface{}
}
// the media key
func (r ApiUpdatePlayProgressRequest) Key(key interface{}) ApiUpdatePlayProgressRequest {
r.key = &key
return r
}
// The time, in milliseconds, used to set the media playback progress.
func (r ApiUpdatePlayProgressRequest) Time(time interface{}) ApiUpdatePlayProgressRequest {
r.time = &time
return r
}
// The playback state of the media item.
func (r ApiUpdatePlayProgressRequest) State(state interface{}) ApiUpdatePlayProgressRequest {
r.state = &state
return r
}
func (r ApiUpdatePlayProgressRequest) Execute() (*http.Response, error) {
return r.ApiService.UpdatePlayProgressExecute(r)
}
/*
UpdatePlayProgress Update Media Play Progress
This API command can be used to update the play progress of a media item.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiUpdatePlayProgressRequest
*/
func (a *MediaApiService) UpdatePlayProgress(ctx context.Context) ApiUpdatePlayProgressRequest {
return ApiUpdatePlayProgressRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *MediaApiService) UpdatePlayProgressExecute(r ApiUpdatePlayProgressRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodPost
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "MediaApiService.UpdatePlayProgress")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/:/progress"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.key == nil {
return nil, reportError("key is required and must be specified")
}
if r.time == nil {
return nil, reportError("time is required and must be specified")
}
if r.state == nil {
return nil, reportError("state is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "key", r.key, "")
parameterAddToQuery(localVarQueryParams, "time", r.time, "")
parameterAddToQuery(localVarQueryParams, "state", r.state, "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}

1200
pms/api_playlists.go Normal file

File diff suppressed because it is too large Load Diff

460
pms/api_search.go Normal file
View File

@@ -0,0 +1,460 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"io/ioutil"
"net/http"
"net/url"
)
// SearchApiService SearchApi service
type SearchApiService service
type ApiGetSearchResultsRequest struct {
ctx context.Context
ApiService *SearchApiService
query *interface{}
}
// The search query string to use
func (r ApiGetSearchResultsRequest) Query(query interface{}) ApiGetSearchResultsRequest {
r.query = &query
return r
}
func (r ApiGetSearchResultsRequest) Execute() (*GetSearchResults200Response, *http.Response, error) {
return r.ApiService.GetSearchResultsExecute(r)
}
/*
GetSearchResults Get Search Results
This will search the database for the string provided.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetSearchResultsRequest
*/
func (a *SearchApiService) GetSearchResults(ctx context.Context) ApiGetSearchResultsRequest {
return ApiGetSearchResultsRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
// @return GetSearchResults200Response
func (a *SearchApiService) GetSearchResultsExecute(r ApiGetSearchResultsRequest) (*GetSearchResults200Response, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *GetSearchResults200Response
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SearchApiService.GetSearchResults")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/search"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.query == nil {
return localVarReturnValue, nil, reportError("query is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "query", r.query, "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}
type ApiPerformSearchRequest struct {
ctx context.Context
ApiService *SearchApiService
query *interface{}
sectionId *interface{}
limit *interface{}
}
// The query term
func (r ApiPerformSearchRequest) Query(query interface{}) ApiPerformSearchRequest {
r.query = &query
return r
}
// This gives context to the search, and can result in re-ordering of search result hubs
func (r ApiPerformSearchRequest) SectionId(sectionId interface{}) ApiPerformSearchRequest {
r.sectionId = &sectionId
return r
}
// The number of items to return per hub
func (r ApiPerformSearchRequest) Limit(limit interface{}) ApiPerformSearchRequest {
r.limit = &limit
return r
}
func (r ApiPerformSearchRequest) Execute() (*http.Response, error) {
return r.ApiService.PerformSearchExecute(r)
}
/*
PerformSearch Perform a search
This endpoint performs a search across all library sections, or a single section, and returns matches as hubs, split up by type. It performs spell checking, looks for partial matches, and orders the hubs based on quality of results. In addition, based on matches, it will return other related matches (e.g. for a genre match, it may return movies in that genre, or for an actor match, movies with that actor).
In the response's items, the following extra attributes are returned to further describe or disambiguate the result:
- `reason`: The reason for the result, if not because of a direct search term match; can be either:
- `section`: There are multiple identical results from different sections.
- `originalTitle`: There was a search term match from the original title field (sometimes those can be very different or in a foreign language).
- `<hub identifier>`: If the reason for the result is due to a result in another hub, the source hub identifier is returned. For example, if the search is for "dylan" then Bob Dylan may be returned as an artist result, an a few of his albums returned as album results with a reason code of `artist` (the identifier of that particular hub). Or if the search is for "arnold", there might be movie results returned with a reason of `actor`
- `reasonTitle`: The string associated with the reason code. For a section reason, it'll be the section name; For a hub identifier, it'll be a string associated with the match (e.g. `Arnold Schwarzenegger` for movies which were returned because the search was for "arnold").
- `reasonID`: The ID of the item associated with the reason for the result. This might be a section ID, a tag ID, an artist ID, or a show ID.
This request is intended to be very fast, and called as the user types.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiPerformSearchRequest
*/
func (a *SearchApiService) PerformSearch(ctx context.Context) ApiPerformSearchRequest {
return ApiPerformSearchRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *SearchApiService) PerformSearchExecute(r ApiPerformSearchRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SearchApiService.PerformSearch")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/hubs/search"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.query == nil {
return nil, reportError("query is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "query", r.query, "")
if r.sectionId != nil {
parameterAddToQuery(localVarQueryParams, "sectionId", r.sectionId, "")
}
if r.limit != nil {
parameterAddToQuery(localVarQueryParams, "limit", r.limit, "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiPerformVoiceSearchRequest struct {
ctx context.Context
ApiService *SearchApiService
query *interface{}
sectionId *interface{}
limit *interface{}
}
// The query term
func (r ApiPerformVoiceSearchRequest) Query(query interface{}) ApiPerformVoiceSearchRequest {
r.query = &query
return r
}
// This gives context to the search, and can result in re-ordering of search result hubs
func (r ApiPerformVoiceSearchRequest) SectionId(sectionId interface{}) ApiPerformVoiceSearchRequest {
r.sectionId = &sectionId
return r
}
// The number of items to return per hub
func (r ApiPerformVoiceSearchRequest) Limit(limit interface{}) ApiPerformVoiceSearchRequest {
r.limit = &limit
return r
}
func (r ApiPerformVoiceSearchRequest) Execute() (*http.Response, error) {
return r.ApiService.PerformVoiceSearchExecute(r)
}
/*
PerformVoiceSearch Perform a voice search
This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint.
It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint.
Whenever possible, clients should limit the search to the appropriate type.
Results, as well as their containing per-type hubs, contain a `distance` attribute which can be used to judge result quality.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiPerformVoiceSearchRequest
*/
func (a *SearchApiService) PerformVoiceSearch(ctx context.Context) ApiPerformVoiceSearchRequest {
return ApiPerformVoiceSearchRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *SearchApiService) PerformVoiceSearchExecute(r ApiPerformVoiceSearchRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SearchApiService.PerformVoiceSearch")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/hubs/search/voice"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.query == nil {
return nil, reportError("query is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "query", r.query, "")
if r.sectionId != nil {
parameterAddToQuery(localVarQueryParams, "sectionId", r.sectionId, "")
}
if r.limit != nil {
parameterAddToQuery(localVarQueryParams, "limit", r.limit, "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}

284
pms/api_security.go Normal file
View File

@@ -0,0 +1,284 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"io/ioutil"
"net/http"
"net/url"
)
// SecurityApiService SecurityApi service
type SecurityApiService service
type ApiGetSourceConnectionInformationRequest struct {
ctx context.Context
ApiService *SecurityApiService
source *interface{}
}
// The source identifier with an included prefix.
func (r ApiGetSourceConnectionInformationRequest) Source(source interface{}) ApiGetSourceConnectionInformationRequest {
r.source = &source
return r
}
func (r ApiGetSourceConnectionInformationRequest) Execute() (*http.Response, error) {
return r.ApiService.GetSourceConnectionInformationExecute(r)
}
/*
GetSourceConnectionInformation Get Source Connection Information
If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token.
Note: requires Plex Media Server >= 1.15.4.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetSourceConnectionInformationRequest
*/
func (a *SecurityApiService) GetSourceConnectionInformation(ctx context.Context) ApiGetSourceConnectionInformationRequest {
return ApiGetSourceConnectionInformationRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *SecurityApiService) GetSourceConnectionInformationExecute(r ApiGetSourceConnectionInformationRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SecurityApiService.GetSourceConnectionInformation")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/security/resources"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.source == nil {
return nil, reportError("source is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "source", r.source, "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiGetTransientTokenRequest struct {
ctx context.Context
ApiService *SecurityApiService
type_ *interface{}
scope *interface{}
}
// &#x60;delegation&#x60; - This is the only supported &#x60;type&#x60; parameter.
func (r ApiGetTransientTokenRequest) Type_(type_ interface{}) ApiGetTransientTokenRequest {
r.type_ = &type_
return r
}
// &#x60;all&#x60; - This is the only supported &#x60;scope&#x60; parameter.
func (r ApiGetTransientTokenRequest) Scope(scope interface{}) ApiGetTransientTokenRequest {
r.scope = &scope
return r
}
func (r ApiGetTransientTokenRequest) Execute() (*http.Response, error) {
return r.ApiService.GetTransientTokenExecute(r)
}
/*
GetTransientToken Get a Transient Token.
This endpoint provides the caller with a temporary token with the same access level as the caller's token. These tokens are valid for up to 48 hours and are destroyed if the server instance is restarted.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetTransientTokenRequest
*/
func (a *SecurityApiService) GetTransientToken(ctx context.Context) ApiGetTransientTokenRequest {
return ApiGetTransientTokenRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *SecurityApiService) GetTransientTokenExecute(r ApiGetTransientTokenRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SecurityApiService.GetTransientToken")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/security/token"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.type_ == nil {
return nil, reportError("type_ is required and must be specified")
}
if r.scope == nil {
return nil, reportError("scope is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "type", r.type_, "")
parameterAddToQuery(localVarQueryParams, "scope", r.scope, "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}

1070
pms/api_server.go Normal file

File diff suppressed because it is too large Load Diff

488
pms/api_sessions.go Normal file
View File

@@ -0,0 +1,488 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"io/ioutil"
"net/http"
"net/url"
"strings"
)
// SessionsApiService SessionsApi service
type SessionsApiService service
type ApiGetSessionHistoryRequest struct {
ctx context.Context
ApiService *SessionsApiService
}
func (r ApiGetSessionHistoryRequest) Execute() (*http.Response, error) {
return r.ApiService.GetSessionHistoryExecute(r)
}
/*
GetSessionHistory Get Session History
This will Retrieve a listing of all history views.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetSessionHistoryRequest
*/
func (a *SessionsApiService) GetSessionHistory(ctx context.Context) ApiGetSessionHistoryRequest {
return ApiGetSessionHistoryRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *SessionsApiService) GetSessionHistoryExecute(r ApiGetSessionHistoryRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SessionsApiService.GetSessionHistory")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/status/sessions/history/all"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiGetSessionsRequest struct {
ctx context.Context
ApiService *SessionsApiService
}
func (r ApiGetSessionsRequest) Execute() (*http.Response, error) {
return r.ApiService.GetSessionsExecute(r)
}
/*
GetSessions Get Active Sessions
This will retrieve the "Now Playing" Information of the PMS.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetSessionsRequest
*/
func (a *SessionsApiService) GetSessions(ctx context.Context) ApiGetSessionsRequest {
return ApiGetSessionsRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *SessionsApiService) GetSessionsExecute(r ApiGetSessionsRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SessionsApiService.GetSessions")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/status/sessions"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiGetTranscodeSessionsRequest struct {
ctx context.Context
ApiService *SessionsApiService
}
func (r ApiGetTranscodeSessionsRequest) Execute() (*GetTranscodeSessions200Response, *http.Response, error) {
return r.ApiService.GetTranscodeSessionsExecute(r)
}
/*
GetTranscodeSessions Get Transcode Sessions
Get Transcode Sessions
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetTranscodeSessionsRequest
*/
func (a *SessionsApiService) GetTranscodeSessions(ctx context.Context) ApiGetTranscodeSessionsRequest {
return ApiGetTranscodeSessionsRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
// @return GetTranscodeSessions200Response
func (a *SessionsApiService) GetTranscodeSessionsExecute(r ApiGetTranscodeSessionsRequest) (*GetTranscodeSessions200Response, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *GetTranscodeSessions200Response
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SessionsApiService.GetTranscodeSessions")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/transcode/sessions"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}
type ApiStopTranscodeSessionRequest struct {
ctx context.Context
ApiService *SessionsApiService
sessionKey interface{}
}
func (r ApiStopTranscodeSessionRequest) Execute() (*http.Response, error) {
return r.ApiService.StopTranscodeSessionExecute(r)
}
/*
StopTranscodeSession Stop a Transcode Session
Stop a Transcode Session
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param sessionKey the Key of the transcode session to stop
@return ApiStopTranscodeSessionRequest
*/
func (a *SessionsApiService) StopTranscodeSession(ctx context.Context, sessionKey interface{}) ApiStopTranscodeSessionRequest {
return ApiStopTranscodeSessionRequest{
ApiService: a,
ctx: ctx,
sessionKey: sessionKey,
}
}
// Execute executes the request
func (a *SessionsApiService) StopTranscodeSessionExecute(r ApiStopTranscodeSessionRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodDelete
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SessionsApiService.StopTranscodeSession")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/transcode/sessions/{sessionKey}"
localVarPath = strings.Replace(localVarPath, "{"+"sessionKey"+"}", url.PathEscape(parameterValueToString(r.sessionKey, "sessionKey")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}

392
pms/api_updater.go Normal file
View File

@@ -0,0 +1,392 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"io/ioutil"
"net/http"
"net/url"
)
// UpdaterApiService UpdaterApi service
type UpdaterApiService service
type ApiApplyUpdatesRequest struct {
ctx context.Context
ApiService *UpdaterApiService
tonight *interface{}
skip *interface{}
}
// Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install
func (r ApiApplyUpdatesRequest) Tonight(tonight interface{}) ApiApplyUpdatesRequest {
r.tonight = &tonight
return r
}
// Indicate that the latest version should be marked as skipped. The &lt;Release&gt; entry for this version will have the &#x60;state&#x60; set to &#x60;skipped&#x60;.
func (r ApiApplyUpdatesRequest) Skip(skip interface{}) ApiApplyUpdatesRequest {
r.skip = &skip
return r
}
func (r ApiApplyUpdatesRequest) Execute() (*http.Response, error) {
return r.ApiService.ApplyUpdatesExecute(r)
}
/*
ApplyUpdates Apply Updates
Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiApplyUpdatesRequest
*/
func (a *UpdaterApiService) ApplyUpdates(ctx context.Context) ApiApplyUpdatesRequest {
return ApiApplyUpdatesRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *UpdaterApiService) ApplyUpdatesExecute(r ApiApplyUpdatesRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodPut
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "UpdaterApiService.ApplyUpdates")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/updater/apply"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.tonight != nil {
parameterAddToQuery(localVarQueryParams, "tonight", r.tonight, "")
}
if r.skip != nil {
parameterAddToQuery(localVarQueryParams, "skip", r.skip, "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiCheckForUpdatesRequest struct {
ctx context.Context
ApiService *UpdaterApiService
download *interface{}
}
// Indicate that you want to start download any updates found.
func (r ApiCheckForUpdatesRequest) Download(download interface{}) ApiCheckForUpdatesRequest {
r.download = &download
return r
}
func (r ApiCheckForUpdatesRequest) Execute() (*http.Response, error) {
return r.ApiService.CheckForUpdatesExecute(r)
}
/*
CheckForUpdates Checking for updates
Checking for updates
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiCheckForUpdatesRequest
*/
func (a *UpdaterApiService) CheckForUpdates(ctx context.Context) ApiCheckForUpdatesRequest {
return ApiCheckForUpdatesRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *UpdaterApiService) CheckForUpdatesExecute(r ApiCheckForUpdatesRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodPut
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "UpdaterApiService.CheckForUpdates")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/updater/check"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.download != nil {
parameterAddToQuery(localVarQueryParams, "download", r.download, "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiGetUpdateStatusRequest struct {
ctx context.Context
ApiService *UpdaterApiService
}
func (r ApiGetUpdateStatusRequest) Execute() (*http.Response, error) {
return r.ApiService.GetUpdateStatusExecute(r)
}
/*
GetUpdateStatus Querying status of updates
Querying status of updates
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetUpdateStatusRequest
*/
func (a *UpdaterApiService) GetUpdateStatus(ctx context.Context) ApiGetUpdateStatusRequest {
return ApiGetUpdateStatusRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *UpdaterApiService) GetUpdateStatusExecute(r ApiGetUpdateStatusRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "UpdaterApiService.GetUpdateStatus")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/updater/status"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}

523
pms/api_video.go Normal file
View File

@@ -0,0 +1,523 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"io/ioutil"
"net/http"
"net/url"
)
// VideoApiService VideoApi service
type VideoApiService service
type ApiGetTimelineRequest struct {
ctx context.Context
ApiService *VideoApiService
ratingKey *interface{}
key *interface{}
state *interface{}
hasMDE *interface{}
time *interface{}
duration *interface{}
context *interface{}
playQueueItemID *interface{}
playBackTime *interface{}
row *interface{}
}
// The rating key of the media item
func (r ApiGetTimelineRequest) RatingKey(ratingKey interface{}) ApiGetTimelineRequest {
r.ratingKey = &ratingKey
return r
}
// The key of the media item to get the timeline for
func (r ApiGetTimelineRequest) Key(key interface{}) ApiGetTimelineRequest {
r.key = &key
return r
}
// The state of the media item
func (r ApiGetTimelineRequest) State(state interface{}) ApiGetTimelineRequest {
r.state = &state
return r
}
// Whether the media item has MDE
func (r ApiGetTimelineRequest) HasMDE(hasMDE interface{}) ApiGetTimelineRequest {
r.hasMDE = &hasMDE
return r
}
// The time of the media item
func (r ApiGetTimelineRequest) Time(time interface{}) ApiGetTimelineRequest {
r.time = &time
return r
}
// The duration of the media item
func (r ApiGetTimelineRequest) Duration(duration interface{}) ApiGetTimelineRequest {
r.duration = &duration
return r
}
// The context of the media item
func (r ApiGetTimelineRequest) Context(context interface{}) ApiGetTimelineRequest {
r.context = &context
return r
}
// The play queue item ID of the media item
func (r ApiGetTimelineRequest) PlayQueueItemID(playQueueItemID interface{}) ApiGetTimelineRequest {
r.playQueueItemID = &playQueueItemID
return r
}
// The playback time of the media item
func (r ApiGetTimelineRequest) PlayBackTime(playBackTime interface{}) ApiGetTimelineRequest {
r.playBackTime = &playBackTime
return r
}
// The row of the media item
func (r ApiGetTimelineRequest) Row(row interface{}) ApiGetTimelineRequest {
r.row = &row
return r
}
func (r ApiGetTimelineRequest) Execute() (*http.Response, error) {
return r.ApiService.GetTimelineExecute(r)
}
/*
GetTimeline Get the timeline for a media item
Get the timeline for a media item
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetTimelineRequest
*/
func (a *VideoApiService) GetTimeline(ctx context.Context) ApiGetTimelineRequest {
return ApiGetTimelineRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *VideoApiService) GetTimelineExecute(r ApiGetTimelineRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "VideoApiService.GetTimeline")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/:/timeline"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.ratingKey == nil {
return nil, reportError("ratingKey is required and must be specified")
}
if r.key == nil {
return nil, reportError("key is required and must be specified")
}
if r.state == nil {
return nil, reportError("state is required and must be specified")
}
if r.hasMDE == nil {
return nil, reportError("hasMDE is required and must be specified")
}
if r.time == nil {
return nil, reportError("time is required and must be specified")
}
if r.duration == nil {
return nil, reportError("duration is required and must be specified")
}
if r.context == nil {
return nil, reportError("context is required and must be specified")
}
if r.playQueueItemID == nil {
return nil, reportError("playQueueItemID is required and must be specified")
}
if r.playBackTime == nil {
return nil, reportError("playBackTime is required and must be specified")
}
if r.row == nil {
return nil, reportError("row is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "ratingKey", r.ratingKey, "")
parameterAddToQuery(localVarQueryParams, "key", r.key, "")
parameterAddToQuery(localVarQueryParams, "state", r.state, "")
parameterAddToQuery(localVarQueryParams, "hasMDE", r.hasMDE, "")
parameterAddToQuery(localVarQueryParams, "time", r.time, "")
parameterAddToQuery(localVarQueryParams, "duration", r.duration, "")
parameterAddToQuery(localVarQueryParams, "context", r.context, "")
parameterAddToQuery(localVarQueryParams, "playQueueItemID", r.playQueueItemID, "")
parameterAddToQuery(localVarQueryParams, "playBackTime", r.playBackTime, "")
parameterAddToQuery(localVarQueryParams, "row", r.row, "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiStartUniversalTranscodeRequest struct {
ctx context.Context
ApiService *VideoApiService
hasMDE *interface{}
path *interface{}
mediaIndex *interface{}
partIndex *interface{}
protocol *interface{}
fastSeek *interface{}
directPlay *interface{}
directStream *interface{}
subtitleSize *interface{}
subtites *interface{}
audioBoost *interface{}
location *interface{}
mediaBufferSize *interface{}
session *interface{}
addDebugOverlay *interface{}
autoAdjustQuality *interface{}
}
// Whether the media item has MDE
func (r ApiStartUniversalTranscodeRequest) HasMDE(hasMDE interface{}) ApiStartUniversalTranscodeRequest {
r.hasMDE = &hasMDE
return r
}
// The path to the media item to transcode
func (r ApiStartUniversalTranscodeRequest) Path(path interface{}) ApiStartUniversalTranscodeRequest {
r.path = &path
return r
}
// The index of the media item to transcode
func (r ApiStartUniversalTranscodeRequest) MediaIndex(mediaIndex interface{}) ApiStartUniversalTranscodeRequest {
r.mediaIndex = &mediaIndex
return r
}
// The index of the part to transcode
func (r ApiStartUniversalTranscodeRequest) PartIndex(partIndex interface{}) ApiStartUniversalTranscodeRequest {
r.partIndex = &partIndex
return r
}
// The protocol to use for the transcode session
func (r ApiStartUniversalTranscodeRequest) Protocol(protocol interface{}) ApiStartUniversalTranscodeRequest {
r.protocol = &protocol
return r
}
// Whether to use fast seek or not
func (r ApiStartUniversalTranscodeRequest) FastSeek(fastSeek interface{}) ApiStartUniversalTranscodeRequest {
r.fastSeek = &fastSeek
return r
}
// Whether to use direct play or not
func (r ApiStartUniversalTranscodeRequest) DirectPlay(directPlay interface{}) ApiStartUniversalTranscodeRequest {
r.directPlay = &directPlay
return r
}
// Whether to use direct stream or not
func (r ApiStartUniversalTranscodeRequest) DirectStream(directStream interface{}) ApiStartUniversalTranscodeRequest {
r.directStream = &directStream
return r
}
// The size of the subtitles
func (r ApiStartUniversalTranscodeRequest) SubtitleSize(subtitleSize interface{}) ApiStartUniversalTranscodeRequest {
r.subtitleSize = &subtitleSize
return r
}
// The subtitles
func (r ApiStartUniversalTranscodeRequest) Subtites(subtites interface{}) ApiStartUniversalTranscodeRequest {
r.subtites = &subtites
return r
}
// The audio boost
func (r ApiStartUniversalTranscodeRequest) AudioBoost(audioBoost interface{}) ApiStartUniversalTranscodeRequest {
r.audioBoost = &audioBoost
return r
}
// The location of the transcode session
func (r ApiStartUniversalTranscodeRequest) Location(location interface{}) ApiStartUniversalTranscodeRequest {
r.location = &location
return r
}
// The size of the media buffer
func (r ApiStartUniversalTranscodeRequest) MediaBufferSize(mediaBufferSize interface{}) ApiStartUniversalTranscodeRequest {
r.mediaBufferSize = &mediaBufferSize
return r
}
// The session ID
func (r ApiStartUniversalTranscodeRequest) Session(session interface{}) ApiStartUniversalTranscodeRequest {
r.session = &session
return r
}
// Whether to add a debug overlay or not
func (r ApiStartUniversalTranscodeRequest) AddDebugOverlay(addDebugOverlay interface{}) ApiStartUniversalTranscodeRequest {
r.addDebugOverlay = &addDebugOverlay
return r
}
// Whether to auto adjust quality or not
func (r ApiStartUniversalTranscodeRequest) AutoAdjustQuality(autoAdjustQuality interface{}) ApiStartUniversalTranscodeRequest {
r.autoAdjustQuality = &autoAdjustQuality
return r
}
func (r ApiStartUniversalTranscodeRequest) Execute() (*http.Response, error) {
return r.ApiService.StartUniversalTranscodeExecute(r)
}
/*
StartUniversalTranscode Start Universal Transcode
Begin a Universal Transcode Session
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiStartUniversalTranscodeRequest
*/
func (a *VideoApiService) StartUniversalTranscode(ctx context.Context) ApiStartUniversalTranscodeRequest {
return ApiStartUniversalTranscodeRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *VideoApiService) StartUniversalTranscodeExecute(r ApiStartUniversalTranscodeRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "VideoApiService.StartUniversalTranscode")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/video/:/transcode/universal/start.mpd"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.hasMDE == nil {
return nil, reportError("hasMDE is required and must be specified")
}
if r.path == nil {
return nil, reportError("path is required and must be specified")
}
if r.mediaIndex == nil {
return nil, reportError("mediaIndex is required and must be specified")
}
if r.partIndex == nil {
return nil, reportError("partIndex is required and must be specified")
}
if r.protocol == nil {
return nil, reportError("protocol is required and must be specified")
}
parameterAddToQuery(localVarQueryParams, "hasMDE", r.hasMDE, "")
parameterAddToQuery(localVarQueryParams, "path", r.path, "")
parameterAddToQuery(localVarQueryParams, "mediaIndex", r.mediaIndex, "")
parameterAddToQuery(localVarQueryParams, "partIndex", r.partIndex, "")
parameterAddToQuery(localVarQueryParams, "protocol", r.protocol, "")
if r.fastSeek != nil {
parameterAddToQuery(localVarQueryParams, "fastSeek", r.fastSeek, "")
}
if r.directPlay != nil {
parameterAddToQuery(localVarQueryParams, "directPlay", r.directPlay, "")
}
if r.directStream != nil {
parameterAddToQuery(localVarQueryParams, "directStream", r.directStream, "")
}
if r.subtitleSize != nil {
parameterAddToQuery(localVarQueryParams, "subtitleSize", r.subtitleSize, "")
}
if r.subtites != nil {
parameterAddToQuery(localVarQueryParams, "subtites", r.subtites, "")
}
if r.audioBoost != nil {
parameterAddToQuery(localVarQueryParams, "audioBoost", r.audioBoost, "")
}
if r.location != nil {
parameterAddToQuery(localVarQueryParams, "location", r.location, "")
}
if r.mediaBufferSize != nil {
parameterAddToQuery(localVarQueryParams, "mediaBufferSize", r.mediaBufferSize, "")
}
if r.session != nil {
parameterAddToQuery(localVarQueryParams, "session", r.session, "")
}
if r.addDebugOverlay != nil {
parameterAddToQuery(localVarQueryParams, "addDebugOverlay", r.addDebugOverlay, "")
}
if r.autoAdjustQuality != nil {
parameterAddToQuery(localVarQueryParams, "autoAdjustQuality", r.autoAdjustQuality, "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["accessToken"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["X-Plex-Token"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
if localVarHTTPResponse.StatusCode == 401 {
var v GetServerCapabilities401Response
err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarHTTPResponse, newErr
}
newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v)
newErr.model = v
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}

746
pms/client.go Normal file
View File

@@ -0,0 +1,746 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"bytes"
"context"
"encoding/json"
"encoding/xml"
"errors"
"fmt"
"io"
"io/ioutil"
"log"
"mime/multipart"
"net/http"
"net/http/httputil"
"net/url"
"os"
"path/filepath"
"reflect"
"regexp"
"strconv"
"strings"
"time"
"unicode/utf8"
retryablehttp "github.com/hashicorp/go-retryablehttp"
)
var (
jsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:vnd\.[^;]+\+)?json)`)
xmlCheck = regexp.MustCompile(`(?i:(?:application|text)/xml)`)
queryParamSplit = regexp.MustCompile(`(^|&)([^&]+)`)
queryDescape = strings.NewReplacer( "%5B", "[", "%5D", "]" )
)
// APIClient manages communication with the Plex-API API v0.0.3
// In most cases there should be only one, shared, APIClient.
type APIClient struct {
cfg *Configuration
common service // Reuse a single struct instead of allocating one for each service on the heap.
// API Services
ActivitiesApi *ActivitiesApiService
ButlerApi *ButlerApiService
HubsApi *HubsApiService
LibraryApi *LibraryApiService
LogApi *LogApiService
MediaApi *MediaApiService
PlaylistsApi *PlaylistsApiService
SearchApi *SearchApiService
SecurityApi *SecurityApiService
ServerApi *ServerApiService
SessionsApi *SessionsApiService
UpdaterApi *UpdaterApiService
VideoApi *VideoApiService
}
type service struct {
client *APIClient
}
// NewAPIClient creates a new API client. Requires a userAgent string describing your application.
// optionally a custom http.Client to allow for advanced features such as caching.
func NewAPIClient(cfg *Configuration) *APIClient {
if cfg.HTTPClient == nil {
cfg.HTTPClient = retryablehttp.NewClient()
}
c := &APIClient{}
c.cfg = cfg
c.common.client = c
// API Services
c.ActivitiesApi = (*ActivitiesApiService)(&c.common)
c.ButlerApi = (*ButlerApiService)(&c.common)
c.HubsApi = (*HubsApiService)(&c.common)
c.LibraryApi = (*LibraryApiService)(&c.common)
c.LogApi = (*LogApiService)(&c.common)
c.MediaApi = (*MediaApiService)(&c.common)
c.PlaylistsApi = (*PlaylistsApiService)(&c.common)
c.SearchApi = (*SearchApiService)(&c.common)
c.SecurityApi = (*SecurityApiService)(&c.common)
c.ServerApi = (*ServerApiService)(&c.common)
c.SessionsApi = (*SessionsApiService)(&c.common)
c.UpdaterApi = (*UpdaterApiService)(&c.common)
c.VideoApi = (*VideoApiService)(&c.common)
return c
}
func atoi(in string) (int, error) {
return strconv.Atoi(in)
}
// selectHeaderContentType select a content type from the available list.
func selectHeaderContentType(contentTypes []string) string {
if len(contentTypes) == 0 {
return ""
}
if contains(contentTypes, "application/json") {
return "application/json"
}
return contentTypes[0] // use the first content type specified in 'consumes'
}
// selectHeaderAccept join all accept types and return
func selectHeaderAccept(accepts []string) string {
if len(accepts) == 0 {
return ""
}
if contains(accepts, "application/json") {
return "application/json"
}
return strings.Join(accepts, ",")
}
// contains is a case insensitive match, finding needle in a haystack
func contains(haystack []string, needle string) bool {
for _, a := range haystack {
if strings.EqualFold(a, needle) {
return true
}
}
return false
}
// Verify optional parameters are of the correct type.
func typeCheckParameter(obj interface{}, expected string, name string) error {
// Make sure there is an object.
if obj == nil {
return nil
}
// Check the type is as expected.
if reflect.TypeOf(obj).String() != expected {
return fmt.Errorf("expected %s to be of type %s but received %s", name, expected, reflect.TypeOf(obj).String())
}
return nil
}
func parameterValueToString( obj interface{}, key string ) string {
if reflect.TypeOf(obj).Kind() != reflect.Ptr {
return fmt.Sprintf("%v", obj)
}
var param,ok = obj.(MappedNullable)
if !ok {
return ""
}
dataMap,err := param.ToMap()
if err != nil {
return ""
}
return fmt.Sprintf("%v", dataMap[key])
}
// parameterAddToQuery adds the provided object to the url query supporting deep object syntax
func parameterAddToQuery(queryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
value = "null"
} else {
switch v.Kind() {
case reflect.Invalid:
value = "invalid"
case reflect.Struct:
if t,ok := obj.(MappedNullable); ok {
dataMap,err := t.ToMap()
if err != nil {
return
}
parameterAddToQuery(queryParams, keyPrefix, dataMap, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToQuery(queryParams, keyPrefix, t.Format(time.RFC3339), collectionType)
return
}
value = v.Type().String() + " value"
case reflect.Slice:
var indValue = reflect.ValueOf(obj)
if indValue == reflect.ValueOf(nil) {
return
}
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToQuery(queryParams, keyPrefix, arrayValue.Interface(), collectionType)
}
return
case reflect.Map:
var indValue = reflect.ValueOf(obj)
if indValue == reflect.ValueOf(nil) {
return
}
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToQuery(queryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToQuery(queryParams, keyPrefix, v.Elem().Interface(), collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,
reflect.Int32, reflect.Int64:
value = strconv.FormatInt(v.Int(), 10)
case reflect.Uint, reflect.Uint8, reflect.Uint16,
reflect.Uint32, reflect.Uint64, reflect.Uintptr:
value = strconv.FormatUint(v.Uint(), 10)
case reflect.Float32, reflect.Float64:
value = strconv.FormatFloat(v.Float(), 'g', -1, 32)
case reflect.Bool:
value = strconv.FormatBool(v.Bool())
case reflect.String:
value = v.String()
default:
value = v.Type().String() + " value"
}
}
switch valuesMap := queryParams.(type) {
case url.Values:
if collectionType == "csv" && valuesMap.Get(keyPrefix) != "" {
valuesMap.Set(keyPrefix, valuesMap.Get(keyPrefix) + "," + value)
} else {
valuesMap.Add(keyPrefix, value)
}
break
case map[string]string:
valuesMap[keyPrefix] = value
break
}
}
// helper for converting interface{} parameters to json strings
func parameterToJson(obj interface{}) (string, error) {
jsonBuf, err := json.Marshal(obj)
if err != nil {
return "", err
}
return string(jsonBuf), err
}
// callAPI do the request.
func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
if c.cfg.Debug {
dump, err := httputil.DumpRequestOut(request, true)
if err != nil {
return nil, err
}
log.Printf("\n%s\n", string(dump))
}
resp, err := c.cfg.HTTPClient.StandardClient().Do(request)
if err != nil {
return resp, err
}
if c.cfg.Debug {
dump, err := httputil.DumpResponse(resp, true)
if err != nil {
return resp, err
}
log.Printf("\n%s\n", string(dump))
}
return resp, err
}
// Allow modification of underlying config for alternate implementations and testing
// Caution: modifying the configuration while live can cause data races and potentially unwanted behavior
func (c *APIClient) GetConfig() *Configuration {
return c.cfg
}
func (c *APIClient) GetAPIClient() *APIClient {
return c.common.client
}
func (c *APIClient) GetCommon() *service {
return &c.common
}
type formFile struct {
fileBytes []byte
fileName string
formFileName string
}
// prepareRequest build the request
func (c *APIClient) prepareRequest(
ctx context.Context,
path string, method string,
postBody interface{},
headerParams map[string]string,
queryParams url.Values,
formParams url.Values,
formFiles []formFile) (localVarRequest *http.Request, err error) {
var body *bytes.Buffer
// Detect postBody type and post.
if postBody != nil {
contentType := headerParams["Content-Type"]
if contentType == "" {
contentType = detectContentType(postBody)
headerParams["Content-Type"] = contentType
}
body, err = setBody(postBody, contentType)
if err != nil {
return nil, err
}
}
// add form parameters and file if available.
if strings.HasPrefix(headerParams["Content-Type"], "multipart/form-data") && len(formParams) > 0 || (len(formFiles) > 0) {
if body != nil {
return nil, errors.New("Cannot specify postBody and multipart form at the same time.")
}
body = &bytes.Buffer{}
w := multipart.NewWriter(body)
for k, v := range formParams {
for _, iv := range v {
if strings.HasPrefix(k, "@") { // file
err = addFile(w, k[1:], iv)
if err != nil {
return nil, err
}
} else { // form value
w.WriteField(k, iv)
}
}
}
for _, formFile := range formFiles {
if len(formFile.fileBytes) > 0 && formFile.fileName != "" {
w.Boundary()
part, err := w.CreateFormFile(formFile.formFileName, filepath.Base(formFile.fileName))
if err != nil {
return nil, err
}
_, err = part.Write(formFile.fileBytes)
if err != nil {
return nil, err
}
}
}
// Set the Boundary in the Content-Type
headerParams["Content-Type"] = w.FormDataContentType()
// Set Content-Length
headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
w.Close()
}
if strings.HasPrefix(headerParams["Content-Type"], "application/x-www-form-urlencoded") && len(formParams) > 0 {
if body != nil {
return nil, errors.New("Cannot specify postBody and x-www-form-urlencoded form at the same time.")
}
body = &bytes.Buffer{}
body.WriteString(formParams.Encode())
// Set Content-Length
headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
}
// Setup path and query parameters
url, err := url.Parse(path)
if err != nil {
return nil, err
}
// Override request host, if applicable
if c.cfg.Host != "" {
url.Host = c.cfg.Host
}
// Override request scheme, if applicable
if c.cfg.Scheme != "" {
url.Scheme = c.cfg.Scheme
}
// Adding Query Param
query := url.Query()
for k, v := range queryParams {
for _, iv := range v {
query.Add(k, iv)
}
}
// Encode the parameters.
url.RawQuery = queryParamSplit.ReplaceAllStringFunc(query.Encode(), func(s string) string {
pieces := strings.Split(s, "=")
pieces[0] = queryDescape.Replace(pieces[0])
return strings.Join(pieces, "=")
})
// Generate a new request
if body != nil {
localVarRequest, err = http.NewRequest(method, url.String(), body)
} else {
localVarRequest, err = http.NewRequest(method, url.String(), nil)
}
if err != nil {
return nil, err
}
// add header parameters, if any
if len(headerParams) > 0 {
headers := http.Header{}
for h, v := range headerParams {
headers[h] = []string{v}
}
localVarRequest.Header = headers
}
// Add the user agent to the request.
localVarRequest.Header.Add("User-Agent", c.cfg.UserAgent)
localVarRequest.Header.Add("X-SailPoint-SDK", "1.1.6")
if ctx != nil {
// add context to the request
localVarRequest = localVarRequest.WithContext(ctx)
// Walk through any authentication.
}
for header, value := range c.cfg.DefaultHeader {
localVarRequest.Header.Add(header, value)
}
return localVarRequest, nil
}
type AccessToken struct {
AccessToken string `json:"access_token"`
TokenType string `json:"token_type"`
ExpiresIn int `json:"expires_in"`
Scope string `json:"scope"`
TenantId string `json:"tenant_id"`
Pod string `json:"pod"`
StrongAuthSupported bool `json:"strong_auth_supported"`
Org string `json:"org"`
IdentityId string `json:"identity_id"`
UserName string `json:"user_name"`
StrongAuth bool `json:"strong_auth"`
Jti string `json:"jti"`
}
func getAccessToken(clientId string, clientSecret string, tokenURL string) (string, error) {
url := tokenURL + "?grant_type=client_credentials&client_id=" + clientId + "&client_secret=" + clientSecret
method := "POST"
client := &http.Client{}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return "", err
}
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return "", err
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return "", err
}
var jsonMap AccessToken
json.Unmarshal([]byte(body), &jsonMap)
return jsonMap.AccessToken, nil
}
func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) {
if len(b) == 0 {
return nil
}
if s, ok := v.(*string); ok {
*s = string(b)
return nil
}
if f, ok := v.(*os.File); ok {
f, err = ioutil.TempFile("", "HttpClientFile")
if err != nil {
return
}
_, err = f.Write(b)
if err != nil {
return
}
_, err = f.Seek(0, io.SeekStart)
return
}
if f, ok := v.(**os.File); ok {
*f, err = ioutil.TempFile("", "HttpClientFile")
if err != nil {
return
}
_, err = (*f).Write(b)
if err != nil {
return
}
_, err = (*f).Seek(0, io.SeekStart)
return
}
if xmlCheck.MatchString(contentType) {
if err = xml.Unmarshal(b, v); err != nil {
return err
}
return nil
}
if jsonCheck.MatchString(contentType) {
if actualObj, ok := v.(interface{ GetActualInstance() interface{} }); ok { // oneOf, anyOf schemas
if unmarshalObj, ok := actualObj.(interface{ UnmarshalJSON([]byte) error }); ok { // make sure it has UnmarshalJSON defined
if err = unmarshalObj.UnmarshalJSON(b); err != nil {
return err
}
} else {
return errors.New("Unknown type with GetActualInstance but no unmarshalObj.UnmarshalJSON defined")
}
} else if err = json.Unmarshal(b, v); err != nil { // simple model
return err
}
return nil
}
return errors.New("undefined response type")
}
// Add a file to the multipart request
func addFile(w *multipart.Writer, fieldName, path string) error {
file, err := os.Open(filepath.Clean(path))
if err != nil {
return err
}
err = file.Close()
if err != nil {
return err
}
part, err := w.CreateFormFile(fieldName, filepath.Base(path))
if err != nil {
return err
}
_, err = io.Copy(part, file)
return err
}
// Prevent trying to import "fmt"
func reportError(format string, a ...interface{}) error {
return fmt.Errorf(format, a...)
}
// A wrapper for strict JSON decoding
func newStrictDecoder(data []byte) *json.Decoder {
dec := json.NewDecoder(bytes.NewBuffer(data))
dec.DisallowUnknownFields()
return dec
}
// Set request body from an interface{}
func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) {
if bodyBuf == nil {
bodyBuf = &bytes.Buffer{}
}
if reader, ok := body.(io.Reader); ok {
_, err = bodyBuf.ReadFrom(reader)
} else if fp, ok := body.(*os.File); ok {
_, err = bodyBuf.ReadFrom(fp)
} else if b, ok := body.([]byte); ok {
_, err = bodyBuf.Write(b)
} else if s, ok := body.(string); ok {
_, err = bodyBuf.WriteString(s)
} else if s, ok := body.(*string); ok {
_, err = bodyBuf.WriteString(*s)
} else if jsonCheck.MatchString(contentType) {
err = json.NewEncoder(bodyBuf).Encode(body)
} else if xmlCheck.MatchString(contentType) {
err = xml.NewEncoder(bodyBuf).Encode(body)
}
if err != nil {
return nil, err
}
if bodyBuf.Len() == 0 {
err = fmt.Errorf("invalid body type %s\n", contentType)
return nil, err
}
return bodyBuf, nil
}
// detectContentType method is used to figure out `Request.Body` content type for request header
func detectContentType(body interface{}) string {
contentType := "text/plain; charset=utf-8"
kind := reflect.TypeOf(body).Kind()
switch kind {
case reflect.Struct, reflect.Map, reflect.Ptr:
contentType = "application/json; charset=utf-8"
case reflect.String:
contentType = "text/plain; charset=utf-8"
default:
if b, ok := body.([]byte); ok {
contentType = http.DetectContentType(b)
} else if kind == reflect.Slice {
contentType = "application/json; charset=utf-8"
}
}
return contentType
}
// Ripped from https://github.com/gregjones/httpcache/blob/master/httpcache.go
type cacheControl map[string]string
func parseCacheControl(headers http.Header) cacheControl {
cc := cacheControl{}
ccHeader := headers.Get("Cache-Control")
for _, part := range strings.Split(ccHeader, ",") {
part = strings.Trim(part, " ")
if part == "" {
continue
}
if strings.ContainsRune(part, '=') {
keyval := strings.Split(part, "=")
cc[strings.Trim(keyval[0], " ")] = strings.Trim(keyval[1], ",")
} else {
cc[part] = ""
}
}
return cc
}
// CacheExpires helper function to determine remaining time before repeating a request.
func CacheExpires(r *http.Response) time.Time {
// Figure out when the cache expires.
var expires time.Time
now, err := time.Parse(time.RFC1123, r.Header.Get("date"))
if err != nil {
return time.Now()
}
respCacheControl := parseCacheControl(r.Header)
if maxAge, ok := respCacheControl["max-age"]; ok {
lifetime, err := time.ParseDuration(maxAge + "s")
if err != nil {
expires = now
} else {
expires = now.Add(lifetime)
}
} else {
expiresHeader := r.Header.Get("Expires")
if expiresHeader != "" {
expires, err = time.Parse(time.RFC1123, expiresHeader)
if err != nil {
expires = now
}
}
}
return expires
}
func strlen(s string) int {
return utf8.RuneCountInString(s)
}
// GenericOpenAPIError Provides access to the body, error and model on returned errors.
type GenericOpenAPIError struct {
body []byte
error string
model interface{}
}
// Error returns non-empty string if there was an error.
func (e GenericOpenAPIError) Error() string {
return e.error
}
// Body returns the raw bytes of the response
func (e GenericOpenAPIError) Body() []byte {
return e.body
}
// Model returns the unpacked model of the error
func (e GenericOpenAPIError) Model() interface{} {
return e.model
}
// format error message using title and detail when model implements rfc7807
func formatErrorMessage(status string, v interface{}) string {
str := ""
metaValue := reflect.ValueOf(v).Elem()
field := metaValue.FieldByName("Title")
if field != (reflect.Value{}) {
str = fmt.Sprintf("%s", field.Interface())
}
field = metaValue.FieldByName("Detail")
if field != (reflect.Value{}) {
str = fmt.Sprintf("%s (%s)", str, field.Interface())
}
// status title (detail)
return strings.TrimSpace(fmt.Sprintf("%s %s", status, str))
}

248
pms/configuration.go Normal file
View File

@@ -0,0 +1,248 @@
/*
Plex-API
An Open API Spec for interacting with Plex.tv and Plex Servers
API version: 0.0.3
Contact: Lukeslakemail@gmail.com
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package pms
import (
"context"
"fmt"
"strings"
retryablehttp "github.com/hashicorp/go-retryablehttp"
)
// contextKeys are used to identify the type of value in the context.
// Since these are string, it is possible to get a short description of the
// context key for logging and debugging using key.String().
type contextKey string
func (c contextKey) String() string {
return "auth " + string(c)
}
var (
// ContextAPIKeys takes a string apikey as authentication for the request
ContextAPIKeys = contextKey("apiKeys")
// ContextServerIndex uses a server configuration from the index.
ContextServerIndex = contextKey("serverIndex")
// ContextOperationServerIndices uses a server configuration from the index mapping.
ContextOperationServerIndices = contextKey("serverOperationIndices")
// ContextServerVariables overrides a server configuration variables.
ContextServerVariables = contextKey("serverVariables")
// ContextOperationServerVariables overrides a server configuration variables using operation specific values.
ContextOperationServerVariables = contextKey("serverOperationVariables")
)
// BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth
type BasicAuth struct {
UserName string `json:"userName,omitempty"`
Password string `json:"password,omitempty"`
}
// APIKey provides API key based authentication to a request passed via context using ContextAPIKey
type APIKey struct {
Key string
Prefix string
}
// ServerVariable stores the information about a server variable
type ServerVariable struct {
Description string
DefaultValue string
EnumValues []string
}
// ServerConfiguration stores the information about a server
type ServerConfiguration struct {
URL string
Description string
Variables map[string]ServerVariable
}
// ServerConfigurations stores multiple ServerConfiguration items
type ServerConfigurations []ServerConfiguration
// Configuration stores the configuration of the API client
type Configuration struct {
Host string `json:"host,omitempty"`
Scheme string `json:"scheme,omitempty"`
DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
UserAgent string `json:"userAgent,omitempty"`
Debug bool `json:"debug,omitempty"`
Servers ServerConfigurations
OperationServers map[string]ServerConfigurations
HTTPClient *retryablehttp.Client
ClientId string
ClientSecret string
BaseURL string
TokenURL string
Token string
}
// NewConfiguration returns a new Configuration object
func NewConfiguration(clientId string, clientSecret string, baseURL string, tokenURL string, token string) *Configuration {
cfg := &Configuration{
ClientId: clientId,
ClientSecret: clientSecret,
BaseURL: baseURL,
TokenURL: tokenURL,
Token: token,
DefaultHeader: make(map[string]string),
UserAgent: "OpenAPI-Generator/1.1.6/go",
Debug: false,
Servers: ServerConfigurations{
{
URL: baseURL,
Description: "The full address of your Plex Server",
Variables: map[string]ServerVariable{
"protocol": ServerVariable{
Description: "The protocol to use when connecting to your plex server.",
DefaultValue: "http",
EnumValues: []string{
"http",
"https",
},
},
"ip": ServerVariable{
Description: "The Local IP Address of your plex server.",
DefaultValue: "10.10.10.47",
},
"port": ServerVariable{
Description: "The port to access your plex server.",
DefaultValue: "32400",
},
},
},
},
OperationServers: map[string]ServerConfigurations{
},
}
return cfg
}
// AddDefaultHeader adds a new HTTP header to the default header in the request
func (c *Configuration) AddDefaultHeader(key string, value string) {
c.DefaultHeader[key] = value
}
// URL formats template on a index using given variables
func (sc ServerConfigurations) URL(index int, variables map[string]string) (string, error) {
if index < 0 || len(sc) <= index {
return "", fmt.Errorf("index %v out of range %v", index, len(sc)-1)
}
server := sc[index]
url := server.URL
// go through variables and replace placeholders
for name, variable := range server.Variables {
if value, ok := variables[name]; ok {
found := bool(len(variable.EnumValues) == 0)
for _, enumValue := range variable.EnumValues {
if value == enumValue {
found = true
}
}
if !found {
return "", fmt.Errorf("the variable %s in the server URL has invalid value %v. Must be %v", name, value, variable.EnumValues)
}
url = strings.Replace(url, "{"+name+"}", value, -1)
} else {
url = strings.Replace(url, "{"+name+"}", variable.DefaultValue, -1)
}
}
return url, nil
}
// ServerURL returns URL based on server settings
func (c *Configuration) ServerURL(index int, variables map[string]string) (string, error) {
return c.Servers.URL(index, variables)
}
func getServerIndex(ctx context.Context) (int, error) {
si := ctx.Value(ContextServerIndex)
if si != nil {
if index, ok := si.(int); ok {
return index, nil
}
return 0, reportError("Invalid type %T should be int", si)
}
return 0, nil
}
func getServerOperationIndex(ctx context.Context, endpoint string) (int, error) {
osi := ctx.Value(ContextOperationServerIndices)
if osi != nil {
if operationIndices, ok := osi.(map[string]int); !ok {
return 0, reportError("Invalid type %T should be map[string]int", osi)
} else {
index, ok := operationIndices[endpoint]
if ok {
return index, nil
}
}
}
return getServerIndex(ctx)
}
func getServerVariables(ctx context.Context) (map[string]string, error) {
sv := ctx.Value(ContextServerVariables)
if sv != nil {
if variables, ok := sv.(map[string]string); ok {
return variables, nil
}
return nil, reportError("ctx value of ContextServerVariables has invalid type %T should be map[string]string", sv)
}
return nil, nil
}
func getServerOperationVariables(ctx context.Context, endpoint string) (map[string]string, error) {
osv := ctx.Value(ContextOperationServerVariables)
if osv != nil {
if operationVariables, ok := osv.(map[string]map[string]string); !ok {
return nil, reportError("ctx value of ContextOperationServerVariables has invalid type %T should be map[string]map[string]string", osv)
} else {
variables, ok := operationVariables[endpoint]
if ok {
return variables, nil
}
}
}
return getServerVariables(ctx)
}
// ServerURLWithContext returns a new server URL given an endpoint
func (c *Configuration) ServerURLWithContext(ctx context.Context, endpoint string) (string, error) {
sc, ok := c.OperationServers[endpoint]
if !ok {
sc = c.Servers
}
if ctx == nil {
return sc.URL(0, nil)
}
index, err := getServerOperationIndex(ctx, endpoint)
if err != nil {
return "", err
}
variables, err := getServerOperationVariables(ctx, endpoint)
if err != nil {
return "", err
}
return sc.URL(index, variables)
}

139
pms/docs/ActivitiesApi.md Normal file
View File

@@ -0,0 +1,139 @@
# \ActivitiesApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**CancelServerActivities**](ActivitiesApi.md#CancelServerActivities) | **Delete** /activities/{activityUUID} | Cancel Server Activities
[**GetServerActivities**](ActivitiesApi.md#GetServerActivities) | **Get** /activities | Get Server Activities
## CancelServerActivities
> CancelServerActivities(ctx, activityUUID).Execute()
Cancel Server Activities
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
activityUUID := TODO // interface{} | The UUID of the activity to cancel.
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ActivitiesApi.CancelServerActivities(context.Background(), activityUUID).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ActivitiesApi.CancelServerActivities``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**activityUUID** | [**interface{}**](.md) | The UUID of the activity to cancel. |
### Other Parameters
Other parameters are passed through a pointer to a apiCancelServerActivitiesRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetServerActivities
> GetServerActivities200Response GetServerActivities(ctx).Execute()
Get Server Activities
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ActivitiesApi.GetServerActivities(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ActivitiesApi.GetServerActivities``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetServerActivities`: GetServerActivities200Response
fmt.Fprintf(os.Stdout, "Response from `ActivitiesApi.GetServerActivities`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetServerActivitiesRequest struct via the builder pattern
### Return type
[**GetServerActivities200Response**](GetServerActivities200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

328
pms/docs/ButlerApi.md Normal file
View File

@@ -0,0 +1,328 @@
# \ButlerApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**GetButlerTasks**](ButlerApi.md#GetButlerTasks) | **Get** /butler | Get Butler tasks
[**StartAllTasks**](ButlerApi.md#StartAllTasks) | **Post** /butler | Start all Butler tasks
[**StartTask**](ButlerApi.md#StartTask) | **Post** /butler/{taskName} | Start a single Butler task
[**StopAllTasks**](ButlerApi.md#StopAllTasks) | **Delete** /butler | Stop all Butler tasks
[**StopTask**](ButlerApi.md#StopTask) | **Delete** /butler/{taskName} | Stop a single Butler task
## GetButlerTasks
> GetButlerTasks200Response GetButlerTasks(ctx).Execute()
Get Butler tasks
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ButlerApi.GetButlerTasks(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ButlerApi.GetButlerTasks``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetButlerTasks`: GetButlerTasks200Response
fmt.Fprintf(os.Stdout, "Response from `ButlerApi.GetButlerTasks`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetButlerTasksRequest struct via the builder pattern
### Return type
[**GetButlerTasks200Response**](GetButlerTasks200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## StartAllTasks
> StartAllTasks(ctx).Execute()
Start all Butler tasks
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ButlerApi.StartAllTasks(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ButlerApi.StartAllTasks``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiStartAllTasksRequest struct via the builder pattern
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## StartTask
> StartTask(ctx, taskName).Execute()
Start a single Butler task
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
taskName := TODO // interface{} | the name of the task to be started.
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ButlerApi.StartTask(context.Background(), taskName).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ButlerApi.StartTask``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**taskName** | [**interface{}**](.md) | the name of the task to be started. |
### Other Parameters
Other parameters are passed through a pointer to a apiStartTaskRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## StopAllTasks
> StopAllTasks(ctx).Execute()
Stop all Butler tasks
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ButlerApi.StopAllTasks(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ButlerApi.StopAllTasks``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiStopAllTasksRequest struct via the builder pattern
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## StopTask
> StopTask(ctx, taskName).Execute()
Stop a single Butler task
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
taskName := TODO // interface{} | The name of the task to be started.
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ButlerApi.StopTask(context.Background(), taskName).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ButlerApi.StopTask``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**taskName** | [**interface{}**](.md) | The name of the task to be started. |
### Other Parameters
Other parameters are passed through a pointer to a apiStopTaskRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetButlerTasks200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**ButlerTasks** | Pointer to [**GetButlerTasks200ResponseButlerTasks**](GetButlerTasks200ResponseButlerTasks.md) | | [optional]
## Methods
### NewGetButlerTasks200Response
`func NewGetButlerTasks200Response() *GetButlerTasks200Response`
NewGetButlerTasks200Response instantiates a new GetButlerTasks200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetButlerTasks200ResponseWithDefaults
`func NewGetButlerTasks200ResponseWithDefaults() *GetButlerTasks200Response`
NewGetButlerTasks200ResponseWithDefaults instantiates a new GetButlerTasks200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetButlerTasks
`func (o *GetButlerTasks200Response) GetButlerTasks() GetButlerTasks200ResponseButlerTasks`
GetButlerTasks returns the ButlerTasks field if non-nil, zero value otherwise.
### GetButlerTasksOk
`func (o *GetButlerTasks200Response) GetButlerTasksOk() (*GetButlerTasks200ResponseButlerTasks, bool)`
GetButlerTasksOk returns a tuple with the ButlerTasks field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetButlerTasks
`func (o *GetButlerTasks200Response) SetButlerTasks(v GetButlerTasks200ResponseButlerTasks)`
SetButlerTasks sets ButlerTasks field to given value.
### HasButlerTasks
`func (o *GetButlerTasks200Response) HasButlerTasks() bool`
HasButlerTasks returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,66 @@
# GetButlerTasks200ResponseButlerTasks
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**ButlerTask** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetButlerTasks200ResponseButlerTasks
`func NewGetButlerTasks200ResponseButlerTasks() *GetButlerTasks200ResponseButlerTasks`
NewGetButlerTasks200ResponseButlerTasks instantiates a new GetButlerTasks200ResponseButlerTasks object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetButlerTasks200ResponseButlerTasksWithDefaults
`func NewGetButlerTasks200ResponseButlerTasksWithDefaults() *GetButlerTasks200ResponseButlerTasks`
NewGetButlerTasks200ResponseButlerTasksWithDefaults instantiates a new GetButlerTasks200ResponseButlerTasks object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetButlerTask
`func (o *GetButlerTasks200ResponseButlerTasks) GetButlerTask() interface{}`
GetButlerTask returns the ButlerTask field if non-nil, zero value otherwise.
### GetButlerTaskOk
`func (o *GetButlerTasks200ResponseButlerTasks) GetButlerTaskOk() (*interface{}, bool)`
GetButlerTaskOk returns a tuple with the ButlerTask field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetButlerTask
`func (o *GetButlerTasks200ResponseButlerTasks) SetButlerTask(v interface{})`
SetButlerTask sets ButlerTask field to given value.
### HasButlerTask
`func (o *GetButlerTasks200ResponseButlerTasks) HasButlerTask() bool`
HasButlerTask returns a boolean if a field has been set.
### SetButlerTaskNil
`func (o *GetButlerTasks200ResponseButlerTasks) SetButlerTaskNil(b bool)`
SetButlerTaskNil sets the value for ButlerTask to be an explicit nil
### UnsetButlerTask
`func (o *GetButlerTasks200ResponseButlerTasks) UnsetButlerTask()`
UnsetButlerTask ensures that no value is present for ButlerTask, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetDevices200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**MediaContainer** | Pointer to [**GetDevices200ResponseMediaContainer**](GetDevices200ResponseMediaContainer.md) | | [optional]
## Methods
### NewGetDevices200Response
`func NewGetDevices200Response() *GetDevices200Response`
NewGetDevices200Response instantiates a new GetDevices200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetDevices200ResponseWithDefaults
`func NewGetDevices200ResponseWithDefaults() *GetDevices200Response`
NewGetDevices200ResponseWithDefaults instantiates a new GetDevices200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMediaContainer
`func (o *GetDevices200Response) GetMediaContainer() GetDevices200ResponseMediaContainer`
GetMediaContainer returns the MediaContainer field if non-nil, zero value otherwise.
### GetMediaContainerOk
`func (o *GetDevices200Response) GetMediaContainerOk() (*GetDevices200ResponseMediaContainer, bool)`
GetMediaContainerOk returns a tuple with the MediaContainer field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaContainer
`func (o *GetDevices200Response) SetMediaContainer(v GetDevices200ResponseMediaContainer)`
SetMediaContainer sets MediaContainer field to given value.
### HasMediaContainer
`func (o *GetDevices200Response) HasMediaContainer() bool`
HasMediaContainer returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,138 @@
# GetDevices200ResponseMediaContainer
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Size** | Pointer to **interface{}** | | [optional]
**Identifier** | Pointer to **interface{}** | | [optional]
**Device** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetDevices200ResponseMediaContainer
`func NewGetDevices200ResponseMediaContainer() *GetDevices200ResponseMediaContainer`
NewGetDevices200ResponseMediaContainer instantiates a new GetDevices200ResponseMediaContainer object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetDevices200ResponseMediaContainerWithDefaults
`func NewGetDevices200ResponseMediaContainerWithDefaults() *GetDevices200ResponseMediaContainer`
NewGetDevices200ResponseMediaContainerWithDefaults instantiates a new GetDevices200ResponseMediaContainer object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetSize
`func (o *GetDevices200ResponseMediaContainer) GetSize() interface{}`
GetSize returns the Size field if non-nil, zero value otherwise.
### GetSizeOk
`func (o *GetDevices200ResponseMediaContainer) GetSizeOk() (*interface{}, bool)`
GetSizeOk returns a tuple with the Size field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSize
`func (o *GetDevices200ResponseMediaContainer) SetSize(v interface{})`
SetSize sets Size field to given value.
### HasSize
`func (o *GetDevices200ResponseMediaContainer) HasSize() bool`
HasSize returns a boolean if a field has been set.
### SetSizeNil
`func (o *GetDevices200ResponseMediaContainer) SetSizeNil(b bool)`
SetSizeNil sets the value for Size to be an explicit nil
### UnsetSize
`func (o *GetDevices200ResponseMediaContainer) UnsetSize()`
UnsetSize ensures that no value is present for Size, not even an explicit nil
### GetIdentifier
`func (o *GetDevices200ResponseMediaContainer) GetIdentifier() interface{}`
GetIdentifier returns the Identifier field if non-nil, zero value otherwise.
### GetIdentifierOk
`func (o *GetDevices200ResponseMediaContainer) GetIdentifierOk() (*interface{}, bool)`
GetIdentifierOk returns a tuple with the Identifier field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetIdentifier
`func (o *GetDevices200ResponseMediaContainer) SetIdentifier(v interface{})`
SetIdentifier sets Identifier field to given value.
### HasIdentifier
`func (o *GetDevices200ResponseMediaContainer) HasIdentifier() bool`
HasIdentifier returns a boolean if a field has been set.
### SetIdentifierNil
`func (o *GetDevices200ResponseMediaContainer) SetIdentifierNil(b bool)`
SetIdentifierNil sets the value for Identifier to be an explicit nil
### UnsetIdentifier
`func (o *GetDevices200ResponseMediaContainer) UnsetIdentifier()`
UnsetIdentifier ensures that no value is present for Identifier, not even an explicit nil
### GetDevice
`func (o *GetDevices200ResponseMediaContainer) GetDevice() interface{}`
GetDevice returns the Device field if non-nil, zero value otherwise.
### GetDeviceOk
`func (o *GetDevices200ResponseMediaContainer) GetDeviceOk() (*interface{}, bool)`
GetDeviceOk returns a tuple with the Device field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetDevice
`func (o *GetDevices200ResponseMediaContainer) SetDevice(v interface{})`
SetDevice sets Device field to given value.
### HasDevice
`func (o *GetDevices200ResponseMediaContainer) HasDevice() bool`
HasDevice returns a boolean if a field has been set.
### SetDeviceNil
`func (o *GetDevices200ResponseMediaContainer) SetDeviceNil(b bool)`
SetDeviceNil sets the value for Device to be an explicit nil
### UnsetDevice
`func (o *GetDevices200ResponseMediaContainer) UnsetDevice()`
UnsetDevice ensures that no value is present for Device, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetMyPlexAccount200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**MyPlex** | Pointer to [**GetMyPlexAccount200ResponseMyPlex**](GetMyPlexAccount200ResponseMyPlex.md) | | [optional]
## Methods
### NewGetMyPlexAccount200Response
`func NewGetMyPlexAccount200Response() *GetMyPlexAccount200Response`
NewGetMyPlexAccount200Response instantiates a new GetMyPlexAccount200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetMyPlexAccount200ResponseWithDefaults
`func NewGetMyPlexAccount200ResponseWithDefaults() *GetMyPlexAccount200Response`
NewGetMyPlexAccount200ResponseWithDefaults instantiates a new GetMyPlexAccount200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMyPlex
`func (o *GetMyPlexAccount200Response) GetMyPlex() GetMyPlexAccount200ResponseMyPlex`
GetMyPlex returns the MyPlex field if non-nil, zero value otherwise.
### GetMyPlexOk
`func (o *GetMyPlexAccount200Response) GetMyPlexOk() (*GetMyPlexAccount200ResponseMyPlex, bool)`
GetMyPlexOk returns a tuple with the MyPlex field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMyPlex
`func (o *GetMyPlexAccount200Response) SetMyPlex(v GetMyPlexAccount200ResponseMyPlex)`
SetMyPlex sets MyPlex field to given value.
### HasMyPlex
`func (o *GetMyPlexAccount200Response) HasMyPlex() bool`
HasMyPlex returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,462 @@
# GetMyPlexAccount200ResponseMyPlex
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**AuthToken** | Pointer to **interface{}** | | [optional]
**Username** | Pointer to **interface{}** | | [optional]
**MappingState** | Pointer to **interface{}** | | [optional]
**MappingError** | Pointer to **interface{}** | | [optional]
**SignInState** | Pointer to **interface{}** | | [optional]
**PublicAddress** | Pointer to **interface{}** | | [optional]
**PublicPort** | Pointer to **interface{}** | | [optional]
**PrivateAddress** | Pointer to **interface{}** | | [optional]
**PrivatePort** | Pointer to **interface{}** | | [optional]
**SubscriptionFeatures** | Pointer to **interface{}** | | [optional]
**SubscriptionActive** | Pointer to **interface{}** | | [optional]
**SubscriptionState** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetMyPlexAccount200ResponseMyPlex
`func NewGetMyPlexAccount200ResponseMyPlex() *GetMyPlexAccount200ResponseMyPlex`
NewGetMyPlexAccount200ResponseMyPlex instantiates a new GetMyPlexAccount200ResponseMyPlex object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetMyPlexAccount200ResponseMyPlexWithDefaults
`func NewGetMyPlexAccount200ResponseMyPlexWithDefaults() *GetMyPlexAccount200ResponseMyPlex`
NewGetMyPlexAccount200ResponseMyPlexWithDefaults instantiates a new GetMyPlexAccount200ResponseMyPlex object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetAuthToken
`func (o *GetMyPlexAccount200ResponseMyPlex) GetAuthToken() interface{}`
GetAuthToken returns the AuthToken field if non-nil, zero value otherwise.
### GetAuthTokenOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetAuthTokenOk() (*interface{}, bool)`
GetAuthTokenOk returns a tuple with the AuthToken field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetAuthToken
`func (o *GetMyPlexAccount200ResponseMyPlex) SetAuthToken(v interface{})`
SetAuthToken sets AuthToken field to given value.
### HasAuthToken
`func (o *GetMyPlexAccount200ResponseMyPlex) HasAuthToken() bool`
HasAuthToken returns a boolean if a field has been set.
### SetAuthTokenNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetAuthTokenNil(b bool)`
SetAuthTokenNil sets the value for AuthToken to be an explicit nil
### UnsetAuthToken
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetAuthToken()`
UnsetAuthToken ensures that no value is present for AuthToken, not even an explicit nil
### GetUsername
`func (o *GetMyPlexAccount200ResponseMyPlex) GetUsername() interface{}`
GetUsername returns the Username field if non-nil, zero value otherwise.
### GetUsernameOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetUsernameOk() (*interface{}, bool)`
GetUsernameOk returns a tuple with the Username field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetUsername
`func (o *GetMyPlexAccount200ResponseMyPlex) SetUsername(v interface{})`
SetUsername sets Username field to given value.
### HasUsername
`func (o *GetMyPlexAccount200ResponseMyPlex) HasUsername() bool`
HasUsername returns a boolean if a field has been set.
### SetUsernameNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetUsernameNil(b bool)`
SetUsernameNil sets the value for Username to be an explicit nil
### UnsetUsername
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetUsername()`
UnsetUsername ensures that no value is present for Username, not even an explicit nil
### GetMappingState
`func (o *GetMyPlexAccount200ResponseMyPlex) GetMappingState() interface{}`
GetMappingState returns the MappingState field if non-nil, zero value otherwise.
### GetMappingStateOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetMappingStateOk() (*interface{}, bool)`
GetMappingStateOk returns a tuple with the MappingState field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMappingState
`func (o *GetMyPlexAccount200ResponseMyPlex) SetMappingState(v interface{})`
SetMappingState sets MappingState field to given value.
### HasMappingState
`func (o *GetMyPlexAccount200ResponseMyPlex) HasMappingState() bool`
HasMappingState returns a boolean if a field has been set.
### SetMappingStateNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetMappingStateNil(b bool)`
SetMappingStateNil sets the value for MappingState to be an explicit nil
### UnsetMappingState
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetMappingState()`
UnsetMappingState ensures that no value is present for MappingState, not even an explicit nil
### GetMappingError
`func (o *GetMyPlexAccount200ResponseMyPlex) GetMappingError() interface{}`
GetMappingError returns the MappingError field if non-nil, zero value otherwise.
### GetMappingErrorOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetMappingErrorOk() (*interface{}, bool)`
GetMappingErrorOk returns a tuple with the MappingError field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMappingError
`func (o *GetMyPlexAccount200ResponseMyPlex) SetMappingError(v interface{})`
SetMappingError sets MappingError field to given value.
### HasMappingError
`func (o *GetMyPlexAccount200ResponseMyPlex) HasMappingError() bool`
HasMappingError returns a boolean if a field has been set.
### SetMappingErrorNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetMappingErrorNil(b bool)`
SetMappingErrorNil sets the value for MappingError to be an explicit nil
### UnsetMappingError
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetMappingError()`
UnsetMappingError ensures that no value is present for MappingError, not even an explicit nil
### GetSignInState
`func (o *GetMyPlexAccount200ResponseMyPlex) GetSignInState() interface{}`
GetSignInState returns the SignInState field if non-nil, zero value otherwise.
### GetSignInStateOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetSignInStateOk() (*interface{}, bool)`
GetSignInStateOk returns a tuple with the SignInState field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSignInState
`func (o *GetMyPlexAccount200ResponseMyPlex) SetSignInState(v interface{})`
SetSignInState sets SignInState field to given value.
### HasSignInState
`func (o *GetMyPlexAccount200ResponseMyPlex) HasSignInState() bool`
HasSignInState returns a boolean if a field has been set.
### SetSignInStateNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetSignInStateNil(b bool)`
SetSignInStateNil sets the value for SignInState to be an explicit nil
### UnsetSignInState
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetSignInState()`
UnsetSignInState ensures that no value is present for SignInState, not even an explicit nil
### GetPublicAddress
`func (o *GetMyPlexAccount200ResponseMyPlex) GetPublicAddress() interface{}`
GetPublicAddress returns the PublicAddress field if non-nil, zero value otherwise.
### GetPublicAddressOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetPublicAddressOk() (*interface{}, bool)`
GetPublicAddressOk returns a tuple with the PublicAddress field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetPublicAddress
`func (o *GetMyPlexAccount200ResponseMyPlex) SetPublicAddress(v interface{})`
SetPublicAddress sets PublicAddress field to given value.
### HasPublicAddress
`func (o *GetMyPlexAccount200ResponseMyPlex) HasPublicAddress() bool`
HasPublicAddress returns a boolean if a field has been set.
### SetPublicAddressNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetPublicAddressNil(b bool)`
SetPublicAddressNil sets the value for PublicAddress to be an explicit nil
### UnsetPublicAddress
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetPublicAddress()`
UnsetPublicAddress ensures that no value is present for PublicAddress, not even an explicit nil
### GetPublicPort
`func (o *GetMyPlexAccount200ResponseMyPlex) GetPublicPort() interface{}`
GetPublicPort returns the PublicPort field if non-nil, zero value otherwise.
### GetPublicPortOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetPublicPortOk() (*interface{}, bool)`
GetPublicPortOk returns a tuple with the PublicPort field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetPublicPort
`func (o *GetMyPlexAccount200ResponseMyPlex) SetPublicPort(v interface{})`
SetPublicPort sets PublicPort field to given value.
### HasPublicPort
`func (o *GetMyPlexAccount200ResponseMyPlex) HasPublicPort() bool`
HasPublicPort returns a boolean if a field has been set.
### SetPublicPortNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetPublicPortNil(b bool)`
SetPublicPortNil sets the value for PublicPort to be an explicit nil
### UnsetPublicPort
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetPublicPort()`
UnsetPublicPort ensures that no value is present for PublicPort, not even an explicit nil
### GetPrivateAddress
`func (o *GetMyPlexAccount200ResponseMyPlex) GetPrivateAddress() interface{}`
GetPrivateAddress returns the PrivateAddress field if non-nil, zero value otherwise.
### GetPrivateAddressOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetPrivateAddressOk() (*interface{}, bool)`
GetPrivateAddressOk returns a tuple with the PrivateAddress field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetPrivateAddress
`func (o *GetMyPlexAccount200ResponseMyPlex) SetPrivateAddress(v interface{})`
SetPrivateAddress sets PrivateAddress field to given value.
### HasPrivateAddress
`func (o *GetMyPlexAccount200ResponseMyPlex) HasPrivateAddress() bool`
HasPrivateAddress returns a boolean if a field has been set.
### SetPrivateAddressNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetPrivateAddressNil(b bool)`
SetPrivateAddressNil sets the value for PrivateAddress to be an explicit nil
### UnsetPrivateAddress
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetPrivateAddress()`
UnsetPrivateAddress ensures that no value is present for PrivateAddress, not even an explicit nil
### GetPrivatePort
`func (o *GetMyPlexAccount200ResponseMyPlex) GetPrivatePort() interface{}`
GetPrivatePort returns the PrivatePort field if non-nil, zero value otherwise.
### GetPrivatePortOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetPrivatePortOk() (*interface{}, bool)`
GetPrivatePortOk returns a tuple with the PrivatePort field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetPrivatePort
`func (o *GetMyPlexAccount200ResponseMyPlex) SetPrivatePort(v interface{})`
SetPrivatePort sets PrivatePort field to given value.
### HasPrivatePort
`func (o *GetMyPlexAccount200ResponseMyPlex) HasPrivatePort() bool`
HasPrivatePort returns a boolean if a field has been set.
### SetPrivatePortNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetPrivatePortNil(b bool)`
SetPrivatePortNil sets the value for PrivatePort to be an explicit nil
### UnsetPrivatePort
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetPrivatePort()`
UnsetPrivatePort ensures that no value is present for PrivatePort, not even an explicit nil
### GetSubscriptionFeatures
`func (o *GetMyPlexAccount200ResponseMyPlex) GetSubscriptionFeatures() interface{}`
GetSubscriptionFeatures returns the SubscriptionFeatures field if non-nil, zero value otherwise.
### GetSubscriptionFeaturesOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetSubscriptionFeaturesOk() (*interface{}, bool)`
GetSubscriptionFeaturesOk returns a tuple with the SubscriptionFeatures field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSubscriptionFeatures
`func (o *GetMyPlexAccount200ResponseMyPlex) SetSubscriptionFeatures(v interface{})`
SetSubscriptionFeatures sets SubscriptionFeatures field to given value.
### HasSubscriptionFeatures
`func (o *GetMyPlexAccount200ResponseMyPlex) HasSubscriptionFeatures() bool`
HasSubscriptionFeatures returns a boolean if a field has been set.
### SetSubscriptionFeaturesNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetSubscriptionFeaturesNil(b bool)`
SetSubscriptionFeaturesNil sets the value for SubscriptionFeatures to be an explicit nil
### UnsetSubscriptionFeatures
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetSubscriptionFeatures()`
UnsetSubscriptionFeatures ensures that no value is present for SubscriptionFeatures, not even an explicit nil
### GetSubscriptionActive
`func (o *GetMyPlexAccount200ResponseMyPlex) GetSubscriptionActive() interface{}`
GetSubscriptionActive returns the SubscriptionActive field if non-nil, zero value otherwise.
### GetSubscriptionActiveOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetSubscriptionActiveOk() (*interface{}, bool)`
GetSubscriptionActiveOk returns a tuple with the SubscriptionActive field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSubscriptionActive
`func (o *GetMyPlexAccount200ResponseMyPlex) SetSubscriptionActive(v interface{})`
SetSubscriptionActive sets SubscriptionActive field to given value.
### HasSubscriptionActive
`func (o *GetMyPlexAccount200ResponseMyPlex) HasSubscriptionActive() bool`
HasSubscriptionActive returns a boolean if a field has been set.
### SetSubscriptionActiveNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetSubscriptionActiveNil(b bool)`
SetSubscriptionActiveNil sets the value for SubscriptionActive to be an explicit nil
### UnsetSubscriptionActive
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetSubscriptionActive()`
UnsetSubscriptionActive ensures that no value is present for SubscriptionActive, not even an explicit nil
### GetSubscriptionState
`func (o *GetMyPlexAccount200ResponseMyPlex) GetSubscriptionState() interface{}`
GetSubscriptionState returns the SubscriptionState field if non-nil, zero value otherwise.
### GetSubscriptionStateOk
`func (o *GetMyPlexAccount200ResponseMyPlex) GetSubscriptionStateOk() (*interface{}, bool)`
GetSubscriptionStateOk returns a tuple with the SubscriptionState field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSubscriptionState
`func (o *GetMyPlexAccount200ResponseMyPlex) SetSubscriptionState(v interface{})`
SetSubscriptionState sets SubscriptionState field to given value.
### HasSubscriptionState
`func (o *GetMyPlexAccount200ResponseMyPlex) HasSubscriptionState() bool`
HasSubscriptionState returns a boolean if a field has been set.
### SetSubscriptionStateNil
`func (o *GetMyPlexAccount200ResponseMyPlex) SetSubscriptionStateNil(b bool)`
SetSubscriptionStateNil sets the value for SubscriptionState to be an explicit nil
### UnsetSubscriptionState
`func (o *GetMyPlexAccount200ResponseMyPlex) UnsetSubscriptionState()`
UnsetSubscriptionState ensures that no value is present for SubscriptionState, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetOnDeck200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**MediaContainer** | Pointer to [**GetOnDeck200ResponseMediaContainer**](GetOnDeck200ResponseMediaContainer.md) | | [optional]
## Methods
### NewGetOnDeck200Response
`func NewGetOnDeck200Response() *GetOnDeck200Response`
NewGetOnDeck200Response instantiates a new GetOnDeck200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetOnDeck200ResponseWithDefaults
`func NewGetOnDeck200ResponseWithDefaults() *GetOnDeck200Response`
NewGetOnDeck200ResponseWithDefaults instantiates a new GetOnDeck200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMediaContainer
`func (o *GetOnDeck200Response) GetMediaContainer() GetOnDeck200ResponseMediaContainer`
GetMediaContainer returns the MediaContainer field if non-nil, zero value otherwise.
### GetMediaContainerOk
`func (o *GetOnDeck200Response) GetMediaContainerOk() (*GetOnDeck200ResponseMediaContainer, bool)`
GetMediaContainerOk returns a tuple with the MediaContainer field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaContainer
`func (o *GetOnDeck200Response) SetMediaContainer(v GetOnDeck200ResponseMediaContainer)`
SetMediaContainer sets MediaContainer field to given value.
### HasMediaContainer
`func (o *GetOnDeck200Response) HasMediaContainer() bool`
HasMediaContainer returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,282 @@
# GetOnDeck200ResponseMediaContainer
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Size** | Pointer to **interface{}** | | [optional]
**AllowSync** | Pointer to **interface{}** | | [optional]
**Identifier** | Pointer to **interface{}** | | [optional]
**MediaTagPrefix** | Pointer to **interface{}** | | [optional]
**MediaTagVersion** | Pointer to **interface{}** | | [optional]
**MixedParents** | Pointer to **interface{}** | | [optional]
**Metadata** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetOnDeck200ResponseMediaContainer
`func NewGetOnDeck200ResponseMediaContainer() *GetOnDeck200ResponseMediaContainer`
NewGetOnDeck200ResponseMediaContainer instantiates a new GetOnDeck200ResponseMediaContainer object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetOnDeck200ResponseMediaContainerWithDefaults
`func NewGetOnDeck200ResponseMediaContainerWithDefaults() *GetOnDeck200ResponseMediaContainer`
NewGetOnDeck200ResponseMediaContainerWithDefaults instantiates a new GetOnDeck200ResponseMediaContainer object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetSize
`func (o *GetOnDeck200ResponseMediaContainer) GetSize() interface{}`
GetSize returns the Size field if non-nil, zero value otherwise.
### GetSizeOk
`func (o *GetOnDeck200ResponseMediaContainer) GetSizeOk() (*interface{}, bool)`
GetSizeOk returns a tuple with the Size field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSize
`func (o *GetOnDeck200ResponseMediaContainer) SetSize(v interface{})`
SetSize sets Size field to given value.
### HasSize
`func (o *GetOnDeck200ResponseMediaContainer) HasSize() bool`
HasSize returns a boolean if a field has been set.
### SetSizeNil
`func (o *GetOnDeck200ResponseMediaContainer) SetSizeNil(b bool)`
SetSizeNil sets the value for Size to be an explicit nil
### UnsetSize
`func (o *GetOnDeck200ResponseMediaContainer) UnsetSize()`
UnsetSize ensures that no value is present for Size, not even an explicit nil
### GetAllowSync
`func (o *GetOnDeck200ResponseMediaContainer) GetAllowSync() interface{}`
GetAllowSync returns the AllowSync field if non-nil, zero value otherwise.
### GetAllowSyncOk
`func (o *GetOnDeck200ResponseMediaContainer) GetAllowSyncOk() (*interface{}, bool)`
GetAllowSyncOk returns a tuple with the AllowSync field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetAllowSync
`func (o *GetOnDeck200ResponseMediaContainer) SetAllowSync(v interface{})`
SetAllowSync sets AllowSync field to given value.
### HasAllowSync
`func (o *GetOnDeck200ResponseMediaContainer) HasAllowSync() bool`
HasAllowSync returns a boolean if a field has been set.
### SetAllowSyncNil
`func (o *GetOnDeck200ResponseMediaContainer) SetAllowSyncNil(b bool)`
SetAllowSyncNil sets the value for AllowSync to be an explicit nil
### UnsetAllowSync
`func (o *GetOnDeck200ResponseMediaContainer) UnsetAllowSync()`
UnsetAllowSync ensures that no value is present for AllowSync, not even an explicit nil
### GetIdentifier
`func (o *GetOnDeck200ResponseMediaContainer) GetIdentifier() interface{}`
GetIdentifier returns the Identifier field if non-nil, zero value otherwise.
### GetIdentifierOk
`func (o *GetOnDeck200ResponseMediaContainer) GetIdentifierOk() (*interface{}, bool)`
GetIdentifierOk returns a tuple with the Identifier field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetIdentifier
`func (o *GetOnDeck200ResponseMediaContainer) SetIdentifier(v interface{})`
SetIdentifier sets Identifier field to given value.
### HasIdentifier
`func (o *GetOnDeck200ResponseMediaContainer) HasIdentifier() bool`
HasIdentifier returns a boolean if a field has been set.
### SetIdentifierNil
`func (o *GetOnDeck200ResponseMediaContainer) SetIdentifierNil(b bool)`
SetIdentifierNil sets the value for Identifier to be an explicit nil
### UnsetIdentifier
`func (o *GetOnDeck200ResponseMediaContainer) UnsetIdentifier()`
UnsetIdentifier ensures that no value is present for Identifier, not even an explicit nil
### GetMediaTagPrefix
`func (o *GetOnDeck200ResponseMediaContainer) GetMediaTagPrefix() interface{}`
GetMediaTagPrefix returns the MediaTagPrefix field if non-nil, zero value otherwise.
### GetMediaTagPrefixOk
`func (o *GetOnDeck200ResponseMediaContainer) GetMediaTagPrefixOk() (*interface{}, bool)`
GetMediaTagPrefixOk returns a tuple with the MediaTagPrefix field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaTagPrefix
`func (o *GetOnDeck200ResponseMediaContainer) SetMediaTagPrefix(v interface{})`
SetMediaTagPrefix sets MediaTagPrefix field to given value.
### HasMediaTagPrefix
`func (o *GetOnDeck200ResponseMediaContainer) HasMediaTagPrefix() bool`
HasMediaTagPrefix returns a boolean if a field has been set.
### SetMediaTagPrefixNil
`func (o *GetOnDeck200ResponseMediaContainer) SetMediaTagPrefixNil(b bool)`
SetMediaTagPrefixNil sets the value for MediaTagPrefix to be an explicit nil
### UnsetMediaTagPrefix
`func (o *GetOnDeck200ResponseMediaContainer) UnsetMediaTagPrefix()`
UnsetMediaTagPrefix ensures that no value is present for MediaTagPrefix, not even an explicit nil
### GetMediaTagVersion
`func (o *GetOnDeck200ResponseMediaContainer) GetMediaTagVersion() interface{}`
GetMediaTagVersion returns the MediaTagVersion field if non-nil, zero value otherwise.
### GetMediaTagVersionOk
`func (o *GetOnDeck200ResponseMediaContainer) GetMediaTagVersionOk() (*interface{}, bool)`
GetMediaTagVersionOk returns a tuple with the MediaTagVersion field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaTagVersion
`func (o *GetOnDeck200ResponseMediaContainer) SetMediaTagVersion(v interface{})`
SetMediaTagVersion sets MediaTagVersion field to given value.
### HasMediaTagVersion
`func (o *GetOnDeck200ResponseMediaContainer) HasMediaTagVersion() bool`
HasMediaTagVersion returns a boolean if a field has been set.
### SetMediaTagVersionNil
`func (o *GetOnDeck200ResponseMediaContainer) SetMediaTagVersionNil(b bool)`
SetMediaTagVersionNil sets the value for MediaTagVersion to be an explicit nil
### UnsetMediaTagVersion
`func (o *GetOnDeck200ResponseMediaContainer) UnsetMediaTagVersion()`
UnsetMediaTagVersion ensures that no value is present for MediaTagVersion, not even an explicit nil
### GetMixedParents
`func (o *GetOnDeck200ResponseMediaContainer) GetMixedParents() interface{}`
GetMixedParents returns the MixedParents field if non-nil, zero value otherwise.
### GetMixedParentsOk
`func (o *GetOnDeck200ResponseMediaContainer) GetMixedParentsOk() (*interface{}, bool)`
GetMixedParentsOk returns a tuple with the MixedParents field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMixedParents
`func (o *GetOnDeck200ResponseMediaContainer) SetMixedParents(v interface{})`
SetMixedParents sets MixedParents field to given value.
### HasMixedParents
`func (o *GetOnDeck200ResponseMediaContainer) HasMixedParents() bool`
HasMixedParents returns a boolean if a field has been set.
### SetMixedParentsNil
`func (o *GetOnDeck200ResponseMediaContainer) SetMixedParentsNil(b bool)`
SetMixedParentsNil sets the value for MixedParents to be an explicit nil
### UnsetMixedParents
`func (o *GetOnDeck200ResponseMediaContainer) UnsetMixedParents()`
UnsetMixedParents ensures that no value is present for MixedParents, not even an explicit nil
### GetMetadata
`func (o *GetOnDeck200ResponseMediaContainer) GetMetadata() interface{}`
GetMetadata returns the Metadata field if non-nil, zero value otherwise.
### GetMetadataOk
`func (o *GetOnDeck200ResponseMediaContainer) GetMetadataOk() (*interface{}, bool)`
GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMetadata
`func (o *GetOnDeck200ResponseMediaContainer) SetMetadata(v interface{})`
SetMetadata sets Metadata field to given value.
### HasMetadata
`func (o *GetOnDeck200ResponseMediaContainer) HasMetadata() bool`
HasMetadata returns a boolean if a field has been set.
### SetMetadataNil
`func (o *GetOnDeck200ResponseMediaContainer) SetMetadataNil(b bool)`
SetMetadataNil sets the value for Metadata to be an explicit nil
### UnsetMetadata
`func (o *GetOnDeck200ResponseMediaContainer) UnsetMetadata()`
UnsetMetadata ensures that no value is present for Metadata, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetRecentlyAdded200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**MediaContainer** | Pointer to [**GetRecentlyAdded200ResponseMediaContainer**](GetRecentlyAdded200ResponseMediaContainer.md) | | [optional]
## Methods
### NewGetRecentlyAdded200Response
`func NewGetRecentlyAdded200Response() *GetRecentlyAdded200Response`
NewGetRecentlyAdded200Response instantiates a new GetRecentlyAdded200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetRecentlyAdded200ResponseWithDefaults
`func NewGetRecentlyAdded200ResponseWithDefaults() *GetRecentlyAdded200Response`
NewGetRecentlyAdded200ResponseWithDefaults instantiates a new GetRecentlyAdded200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMediaContainer
`func (o *GetRecentlyAdded200Response) GetMediaContainer() GetRecentlyAdded200ResponseMediaContainer`
GetMediaContainer returns the MediaContainer field if non-nil, zero value otherwise.
### GetMediaContainerOk
`func (o *GetRecentlyAdded200Response) GetMediaContainerOk() (*GetRecentlyAdded200ResponseMediaContainer, bool)`
GetMediaContainerOk returns a tuple with the MediaContainer field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaContainer
`func (o *GetRecentlyAdded200Response) SetMediaContainer(v GetRecentlyAdded200ResponseMediaContainer)`
SetMediaContainer sets MediaContainer field to given value.
### HasMediaContainer
`func (o *GetRecentlyAdded200Response) HasMediaContainer() bool`
HasMediaContainer returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,282 @@
# GetRecentlyAdded200ResponseMediaContainer
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Size** | Pointer to **interface{}** | | [optional]
**AllowSync** | Pointer to **interface{}** | | [optional]
**Identifier** | Pointer to **interface{}** | | [optional]
**MediaTagPrefix** | Pointer to **interface{}** | | [optional]
**MediaTagVersion** | Pointer to **interface{}** | | [optional]
**MixedParents** | Pointer to **interface{}** | | [optional]
**Metadata** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetRecentlyAdded200ResponseMediaContainer
`func NewGetRecentlyAdded200ResponseMediaContainer() *GetRecentlyAdded200ResponseMediaContainer`
NewGetRecentlyAdded200ResponseMediaContainer instantiates a new GetRecentlyAdded200ResponseMediaContainer object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetRecentlyAdded200ResponseMediaContainerWithDefaults
`func NewGetRecentlyAdded200ResponseMediaContainerWithDefaults() *GetRecentlyAdded200ResponseMediaContainer`
NewGetRecentlyAdded200ResponseMediaContainerWithDefaults instantiates a new GetRecentlyAdded200ResponseMediaContainer object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetSize
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetSize() interface{}`
GetSize returns the Size field if non-nil, zero value otherwise.
### GetSizeOk
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetSizeOk() (*interface{}, bool)`
GetSizeOk returns a tuple with the Size field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSize
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetSize(v interface{})`
SetSize sets Size field to given value.
### HasSize
`func (o *GetRecentlyAdded200ResponseMediaContainer) HasSize() bool`
HasSize returns a boolean if a field has been set.
### SetSizeNil
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetSizeNil(b bool)`
SetSizeNil sets the value for Size to be an explicit nil
### UnsetSize
`func (o *GetRecentlyAdded200ResponseMediaContainer) UnsetSize()`
UnsetSize ensures that no value is present for Size, not even an explicit nil
### GetAllowSync
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetAllowSync() interface{}`
GetAllowSync returns the AllowSync field if non-nil, zero value otherwise.
### GetAllowSyncOk
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetAllowSyncOk() (*interface{}, bool)`
GetAllowSyncOk returns a tuple with the AllowSync field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetAllowSync
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetAllowSync(v interface{})`
SetAllowSync sets AllowSync field to given value.
### HasAllowSync
`func (o *GetRecentlyAdded200ResponseMediaContainer) HasAllowSync() bool`
HasAllowSync returns a boolean if a field has been set.
### SetAllowSyncNil
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetAllowSyncNil(b bool)`
SetAllowSyncNil sets the value for AllowSync to be an explicit nil
### UnsetAllowSync
`func (o *GetRecentlyAdded200ResponseMediaContainer) UnsetAllowSync()`
UnsetAllowSync ensures that no value is present for AllowSync, not even an explicit nil
### GetIdentifier
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetIdentifier() interface{}`
GetIdentifier returns the Identifier field if non-nil, zero value otherwise.
### GetIdentifierOk
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetIdentifierOk() (*interface{}, bool)`
GetIdentifierOk returns a tuple with the Identifier field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetIdentifier
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetIdentifier(v interface{})`
SetIdentifier sets Identifier field to given value.
### HasIdentifier
`func (o *GetRecentlyAdded200ResponseMediaContainer) HasIdentifier() bool`
HasIdentifier returns a boolean if a field has been set.
### SetIdentifierNil
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetIdentifierNil(b bool)`
SetIdentifierNil sets the value for Identifier to be an explicit nil
### UnsetIdentifier
`func (o *GetRecentlyAdded200ResponseMediaContainer) UnsetIdentifier()`
UnsetIdentifier ensures that no value is present for Identifier, not even an explicit nil
### GetMediaTagPrefix
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetMediaTagPrefix() interface{}`
GetMediaTagPrefix returns the MediaTagPrefix field if non-nil, zero value otherwise.
### GetMediaTagPrefixOk
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetMediaTagPrefixOk() (*interface{}, bool)`
GetMediaTagPrefixOk returns a tuple with the MediaTagPrefix field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaTagPrefix
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetMediaTagPrefix(v interface{})`
SetMediaTagPrefix sets MediaTagPrefix field to given value.
### HasMediaTagPrefix
`func (o *GetRecentlyAdded200ResponseMediaContainer) HasMediaTagPrefix() bool`
HasMediaTagPrefix returns a boolean if a field has been set.
### SetMediaTagPrefixNil
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetMediaTagPrefixNil(b bool)`
SetMediaTagPrefixNil sets the value for MediaTagPrefix to be an explicit nil
### UnsetMediaTagPrefix
`func (o *GetRecentlyAdded200ResponseMediaContainer) UnsetMediaTagPrefix()`
UnsetMediaTagPrefix ensures that no value is present for MediaTagPrefix, not even an explicit nil
### GetMediaTagVersion
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetMediaTagVersion() interface{}`
GetMediaTagVersion returns the MediaTagVersion field if non-nil, zero value otherwise.
### GetMediaTagVersionOk
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetMediaTagVersionOk() (*interface{}, bool)`
GetMediaTagVersionOk returns a tuple with the MediaTagVersion field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaTagVersion
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetMediaTagVersion(v interface{})`
SetMediaTagVersion sets MediaTagVersion field to given value.
### HasMediaTagVersion
`func (o *GetRecentlyAdded200ResponseMediaContainer) HasMediaTagVersion() bool`
HasMediaTagVersion returns a boolean if a field has been set.
### SetMediaTagVersionNil
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetMediaTagVersionNil(b bool)`
SetMediaTagVersionNil sets the value for MediaTagVersion to be an explicit nil
### UnsetMediaTagVersion
`func (o *GetRecentlyAdded200ResponseMediaContainer) UnsetMediaTagVersion()`
UnsetMediaTagVersion ensures that no value is present for MediaTagVersion, not even an explicit nil
### GetMixedParents
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetMixedParents() interface{}`
GetMixedParents returns the MixedParents field if non-nil, zero value otherwise.
### GetMixedParentsOk
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetMixedParentsOk() (*interface{}, bool)`
GetMixedParentsOk returns a tuple with the MixedParents field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMixedParents
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetMixedParents(v interface{})`
SetMixedParents sets MixedParents field to given value.
### HasMixedParents
`func (o *GetRecentlyAdded200ResponseMediaContainer) HasMixedParents() bool`
HasMixedParents returns a boolean if a field has been set.
### SetMixedParentsNil
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetMixedParentsNil(b bool)`
SetMixedParentsNil sets the value for MixedParents to be an explicit nil
### UnsetMixedParents
`func (o *GetRecentlyAdded200ResponseMediaContainer) UnsetMixedParents()`
UnsetMixedParents ensures that no value is present for MixedParents, not even an explicit nil
### GetMetadata
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetMetadata() interface{}`
GetMetadata returns the Metadata field if non-nil, zero value otherwise.
### GetMetadataOk
`func (o *GetRecentlyAdded200ResponseMediaContainer) GetMetadataOk() (*interface{}, bool)`
GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMetadata
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetMetadata(v interface{})`
SetMetadata sets Metadata field to given value.
### HasMetadata
`func (o *GetRecentlyAdded200ResponseMediaContainer) HasMetadata() bool`
HasMetadata returns a boolean if a field has been set.
### SetMetadataNil
`func (o *GetRecentlyAdded200ResponseMediaContainer) SetMetadataNil(b bool)`
SetMetadataNil sets the value for Metadata to be an explicit nil
### UnsetMetadata
`func (o *GetRecentlyAdded200ResponseMediaContainer) UnsetMetadata()`
UnsetMetadata ensures that no value is present for Metadata, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetSearchResults200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**MediaContainer** | Pointer to [**GetSearchResults200ResponseMediaContainer**](GetSearchResults200ResponseMediaContainer.md) | | [optional]
## Methods
### NewGetSearchResults200Response
`func NewGetSearchResults200Response() *GetSearchResults200Response`
NewGetSearchResults200Response instantiates a new GetSearchResults200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetSearchResults200ResponseWithDefaults
`func NewGetSearchResults200ResponseWithDefaults() *GetSearchResults200Response`
NewGetSearchResults200ResponseWithDefaults instantiates a new GetSearchResults200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMediaContainer
`func (o *GetSearchResults200Response) GetMediaContainer() GetSearchResults200ResponseMediaContainer`
GetMediaContainer returns the MediaContainer field if non-nil, zero value otherwise.
### GetMediaContainerOk
`func (o *GetSearchResults200Response) GetMediaContainerOk() (*GetSearchResults200ResponseMediaContainer, bool)`
GetMediaContainerOk returns a tuple with the MediaContainer field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaContainer
`func (o *GetSearchResults200Response) SetMediaContainer(v GetSearchResults200ResponseMediaContainer)`
SetMediaContainer sets MediaContainer field to given value.
### HasMediaContainer
`func (o *GetSearchResults200Response) HasMediaContainer() bool`
HasMediaContainer returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,246 @@
# GetSearchResults200ResponseMediaContainer
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Size** | Pointer to **interface{}** | | [optional]
**Identifier** | Pointer to **interface{}** | | [optional]
**MediaTagPrefix** | Pointer to **interface{}** | | [optional]
**MediaTagVersion** | Pointer to **interface{}** | | [optional]
**Metadata** | Pointer to **interface{}** | | [optional]
**Provider** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetSearchResults200ResponseMediaContainer
`func NewGetSearchResults200ResponseMediaContainer() *GetSearchResults200ResponseMediaContainer`
NewGetSearchResults200ResponseMediaContainer instantiates a new GetSearchResults200ResponseMediaContainer object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetSearchResults200ResponseMediaContainerWithDefaults
`func NewGetSearchResults200ResponseMediaContainerWithDefaults() *GetSearchResults200ResponseMediaContainer`
NewGetSearchResults200ResponseMediaContainerWithDefaults instantiates a new GetSearchResults200ResponseMediaContainer object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetSize
`func (o *GetSearchResults200ResponseMediaContainer) GetSize() interface{}`
GetSize returns the Size field if non-nil, zero value otherwise.
### GetSizeOk
`func (o *GetSearchResults200ResponseMediaContainer) GetSizeOk() (*interface{}, bool)`
GetSizeOk returns a tuple with the Size field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSize
`func (o *GetSearchResults200ResponseMediaContainer) SetSize(v interface{})`
SetSize sets Size field to given value.
### HasSize
`func (o *GetSearchResults200ResponseMediaContainer) HasSize() bool`
HasSize returns a boolean if a field has been set.
### SetSizeNil
`func (o *GetSearchResults200ResponseMediaContainer) SetSizeNil(b bool)`
SetSizeNil sets the value for Size to be an explicit nil
### UnsetSize
`func (o *GetSearchResults200ResponseMediaContainer) UnsetSize()`
UnsetSize ensures that no value is present for Size, not even an explicit nil
### GetIdentifier
`func (o *GetSearchResults200ResponseMediaContainer) GetIdentifier() interface{}`
GetIdentifier returns the Identifier field if non-nil, zero value otherwise.
### GetIdentifierOk
`func (o *GetSearchResults200ResponseMediaContainer) GetIdentifierOk() (*interface{}, bool)`
GetIdentifierOk returns a tuple with the Identifier field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetIdentifier
`func (o *GetSearchResults200ResponseMediaContainer) SetIdentifier(v interface{})`
SetIdentifier sets Identifier field to given value.
### HasIdentifier
`func (o *GetSearchResults200ResponseMediaContainer) HasIdentifier() bool`
HasIdentifier returns a boolean if a field has been set.
### SetIdentifierNil
`func (o *GetSearchResults200ResponseMediaContainer) SetIdentifierNil(b bool)`
SetIdentifierNil sets the value for Identifier to be an explicit nil
### UnsetIdentifier
`func (o *GetSearchResults200ResponseMediaContainer) UnsetIdentifier()`
UnsetIdentifier ensures that no value is present for Identifier, not even an explicit nil
### GetMediaTagPrefix
`func (o *GetSearchResults200ResponseMediaContainer) GetMediaTagPrefix() interface{}`
GetMediaTagPrefix returns the MediaTagPrefix field if non-nil, zero value otherwise.
### GetMediaTagPrefixOk
`func (o *GetSearchResults200ResponseMediaContainer) GetMediaTagPrefixOk() (*interface{}, bool)`
GetMediaTagPrefixOk returns a tuple with the MediaTagPrefix field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaTagPrefix
`func (o *GetSearchResults200ResponseMediaContainer) SetMediaTagPrefix(v interface{})`
SetMediaTagPrefix sets MediaTagPrefix field to given value.
### HasMediaTagPrefix
`func (o *GetSearchResults200ResponseMediaContainer) HasMediaTagPrefix() bool`
HasMediaTagPrefix returns a boolean if a field has been set.
### SetMediaTagPrefixNil
`func (o *GetSearchResults200ResponseMediaContainer) SetMediaTagPrefixNil(b bool)`
SetMediaTagPrefixNil sets the value for MediaTagPrefix to be an explicit nil
### UnsetMediaTagPrefix
`func (o *GetSearchResults200ResponseMediaContainer) UnsetMediaTagPrefix()`
UnsetMediaTagPrefix ensures that no value is present for MediaTagPrefix, not even an explicit nil
### GetMediaTagVersion
`func (o *GetSearchResults200ResponseMediaContainer) GetMediaTagVersion() interface{}`
GetMediaTagVersion returns the MediaTagVersion field if non-nil, zero value otherwise.
### GetMediaTagVersionOk
`func (o *GetSearchResults200ResponseMediaContainer) GetMediaTagVersionOk() (*interface{}, bool)`
GetMediaTagVersionOk returns a tuple with the MediaTagVersion field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaTagVersion
`func (o *GetSearchResults200ResponseMediaContainer) SetMediaTagVersion(v interface{})`
SetMediaTagVersion sets MediaTagVersion field to given value.
### HasMediaTagVersion
`func (o *GetSearchResults200ResponseMediaContainer) HasMediaTagVersion() bool`
HasMediaTagVersion returns a boolean if a field has been set.
### SetMediaTagVersionNil
`func (o *GetSearchResults200ResponseMediaContainer) SetMediaTagVersionNil(b bool)`
SetMediaTagVersionNil sets the value for MediaTagVersion to be an explicit nil
### UnsetMediaTagVersion
`func (o *GetSearchResults200ResponseMediaContainer) UnsetMediaTagVersion()`
UnsetMediaTagVersion ensures that no value is present for MediaTagVersion, not even an explicit nil
### GetMetadata
`func (o *GetSearchResults200ResponseMediaContainer) GetMetadata() interface{}`
GetMetadata returns the Metadata field if non-nil, zero value otherwise.
### GetMetadataOk
`func (o *GetSearchResults200ResponseMediaContainer) GetMetadataOk() (*interface{}, bool)`
GetMetadataOk returns a tuple with the Metadata field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMetadata
`func (o *GetSearchResults200ResponseMediaContainer) SetMetadata(v interface{})`
SetMetadata sets Metadata field to given value.
### HasMetadata
`func (o *GetSearchResults200ResponseMediaContainer) HasMetadata() bool`
HasMetadata returns a boolean if a field has been set.
### SetMetadataNil
`func (o *GetSearchResults200ResponseMediaContainer) SetMetadataNil(b bool)`
SetMetadataNil sets the value for Metadata to be an explicit nil
### UnsetMetadata
`func (o *GetSearchResults200ResponseMediaContainer) UnsetMetadata()`
UnsetMetadata ensures that no value is present for Metadata, not even an explicit nil
### GetProvider
`func (o *GetSearchResults200ResponseMediaContainer) GetProvider() interface{}`
GetProvider returns the Provider field if non-nil, zero value otherwise.
### GetProviderOk
`func (o *GetSearchResults200ResponseMediaContainer) GetProviderOk() (*interface{}, bool)`
GetProviderOk returns a tuple with the Provider field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetProvider
`func (o *GetSearchResults200ResponseMediaContainer) SetProvider(v interface{})`
SetProvider sets Provider field to given value.
### HasProvider
`func (o *GetSearchResults200ResponseMediaContainer) HasProvider() bool`
HasProvider returns a boolean if a field has been set.
### SetProviderNil
`func (o *GetSearchResults200ResponseMediaContainer) SetProviderNil(b bool)`
SetProviderNil sets the value for Provider to be an explicit nil
### UnsetProvider
`func (o *GetSearchResults200ResponseMediaContainer) UnsetProvider()`
UnsetProvider ensures that no value is present for Provider, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetServerActivities200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**MediaContainer** | Pointer to [**GetServerActivities200ResponseMediaContainer**](GetServerActivities200ResponseMediaContainer.md) | | [optional]
## Methods
### NewGetServerActivities200Response
`func NewGetServerActivities200Response() *GetServerActivities200Response`
NewGetServerActivities200Response instantiates a new GetServerActivities200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetServerActivities200ResponseWithDefaults
`func NewGetServerActivities200ResponseWithDefaults() *GetServerActivities200Response`
NewGetServerActivities200ResponseWithDefaults instantiates a new GetServerActivities200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMediaContainer
`func (o *GetServerActivities200Response) GetMediaContainer() GetServerActivities200ResponseMediaContainer`
GetMediaContainer returns the MediaContainer field if non-nil, zero value otherwise.
### GetMediaContainerOk
`func (o *GetServerActivities200Response) GetMediaContainerOk() (*GetServerActivities200ResponseMediaContainer, bool)`
GetMediaContainerOk returns a tuple with the MediaContainer field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaContainer
`func (o *GetServerActivities200Response) SetMediaContainer(v GetServerActivities200ResponseMediaContainer)`
SetMediaContainer sets MediaContainer field to given value.
### HasMediaContainer
`func (o *GetServerActivities200Response) HasMediaContainer() bool`
HasMediaContainer returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,102 @@
# GetServerActivities200ResponseMediaContainer
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Size** | Pointer to **interface{}** | | [optional]
**Activity** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetServerActivities200ResponseMediaContainer
`func NewGetServerActivities200ResponseMediaContainer() *GetServerActivities200ResponseMediaContainer`
NewGetServerActivities200ResponseMediaContainer instantiates a new GetServerActivities200ResponseMediaContainer object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetServerActivities200ResponseMediaContainerWithDefaults
`func NewGetServerActivities200ResponseMediaContainerWithDefaults() *GetServerActivities200ResponseMediaContainer`
NewGetServerActivities200ResponseMediaContainerWithDefaults instantiates a new GetServerActivities200ResponseMediaContainer object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetSize
`func (o *GetServerActivities200ResponseMediaContainer) GetSize() interface{}`
GetSize returns the Size field if non-nil, zero value otherwise.
### GetSizeOk
`func (o *GetServerActivities200ResponseMediaContainer) GetSizeOk() (*interface{}, bool)`
GetSizeOk returns a tuple with the Size field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSize
`func (o *GetServerActivities200ResponseMediaContainer) SetSize(v interface{})`
SetSize sets Size field to given value.
### HasSize
`func (o *GetServerActivities200ResponseMediaContainer) HasSize() bool`
HasSize returns a boolean if a field has been set.
### SetSizeNil
`func (o *GetServerActivities200ResponseMediaContainer) SetSizeNil(b bool)`
SetSizeNil sets the value for Size to be an explicit nil
### UnsetSize
`func (o *GetServerActivities200ResponseMediaContainer) UnsetSize()`
UnsetSize ensures that no value is present for Size, not even an explicit nil
### GetActivity
`func (o *GetServerActivities200ResponseMediaContainer) GetActivity() interface{}`
GetActivity returns the Activity field if non-nil, zero value otherwise.
### GetActivityOk
`func (o *GetServerActivities200ResponseMediaContainer) GetActivityOk() (*interface{}, bool)`
GetActivityOk returns a tuple with the Activity field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetActivity
`func (o *GetServerActivities200ResponseMediaContainer) SetActivity(v interface{})`
SetActivity sets Activity field to given value.
### HasActivity
`func (o *GetServerActivities200ResponseMediaContainer) HasActivity() bool`
HasActivity returns a boolean if a field has been set.
### SetActivityNil
`func (o *GetServerActivities200ResponseMediaContainer) SetActivityNil(b bool)`
SetActivityNil sets the value for Activity to be an explicit nil
### UnsetActivity
`func (o *GetServerActivities200ResponseMediaContainer) UnsetActivity()`
UnsetActivity ensures that no value is present for Activity, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetServerCapabilities200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**MediaContainer** | Pointer to [**GetServerCapabilities200ResponseMediaContainer**](GetServerCapabilities200ResponseMediaContainer.md) | | [optional]
## Methods
### NewGetServerCapabilities200Response
`func NewGetServerCapabilities200Response() *GetServerCapabilities200Response`
NewGetServerCapabilities200Response instantiates a new GetServerCapabilities200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetServerCapabilities200ResponseWithDefaults
`func NewGetServerCapabilities200ResponseWithDefaults() *GetServerCapabilities200Response`
NewGetServerCapabilities200ResponseWithDefaults instantiates a new GetServerCapabilities200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMediaContainer
`func (o *GetServerCapabilities200Response) GetMediaContainer() GetServerCapabilities200ResponseMediaContainer`
GetMediaContainer returns the MediaContainer field if non-nil, zero value otherwise.
### GetMediaContainerOk
`func (o *GetServerCapabilities200Response) GetMediaContainerOk() (*GetServerCapabilities200ResponseMediaContainer, bool)`
GetMediaContainerOk returns a tuple with the MediaContainer field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaContainer
`func (o *GetServerCapabilities200Response) SetMediaContainer(v GetServerCapabilities200ResponseMediaContainer)`
SetMediaContainer sets MediaContainer field to given value.
### HasMediaContainer
`func (o *GetServerCapabilities200Response) HasMediaContainer() bool`
HasMediaContainer returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,66 @@
# GetServerCapabilities401Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Errors** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetServerCapabilities401Response
`func NewGetServerCapabilities401Response() *GetServerCapabilities401Response`
NewGetServerCapabilities401Response instantiates a new GetServerCapabilities401Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetServerCapabilities401ResponseWithDefaults
`func NewGetServerCapabilities401ResponseWithDefaults() *GetServerCapabilities401Response`
NewGetServerCapabilities401ResponseWithDefaults instantiates a new GetServerCapabilities401Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetErrors
`func (o *GetServerCapabilities401Response) GetErrors() interface{}`
GetErrors returns the Errors field if non-nil, zero value otherwise.
### GetErrorsOk
`func (o *GetServerCapabilities401Response) GetErrorsOk() (*interface{}, bool)`
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetErrors
`func (o *GetServerCapabilities401Response) SetErrors(v interface{})`
SetErrors sets Errors field to given value.
### HasErrors
`func (o *GetServerCapabilities401Response) HasErrors() bool`
HasErrors returns a boolean if a field has been set.
### SetErrorsNil
`func (o *GetServerCapabilities401Response) SetErrorsNil(b bool)`
SetErrorsNil sets the value for Errors to be an explicit nil
### UnsetErrors
`func (o *GetServerCapabilities401Response) UnsetErrors()`
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetServerIdentity200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**MediaContainer** | Pointer to [**GetServerIdentity200ResponseMediaContainer**](GetServerIdentity200ResponseMediaContainer.md) | | [optional]
## Methods
### NewGetServerIdentity200Response
`func NewGetServerIdentity200Response() *GetServerIdentity200Response`
NewGetServerIdentity200Response instantiates a new GetServerIdentity200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetServerIdentity200ResponseWithDefaults
`func NewGetServerIdentity200ResponseWithDefaults() *GetServerIdentity200Response`
NewGetServerIdentity200ResponseWithDefaults instantiates a new GetServerIdentity200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMediaContainer
`func (o *GetServerIdentity200Response) GetMediaContainer() GetServerIdentity200ResponseMediaContainer`
GetMediaContainer returns the MediaContainer field if non-nil, zero value otherwise.
### GetMediaContainerOk
`func (o *GetServerIdentity200Response) GetMediaContainerOk() (*GetServerIdentity200ResponseMediaContainer, bool)`
GetMediaContainerOk returns a tuple with the MediaContainer field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaContainer
`func (o *GetServerIdentity200Response) SetMediaContainer(v GetServerIdentity200ResponseMediaContainer)`
SetMediaContainer sets MediaContainer field to given value.
### HasMediaContainer
`func (o *GetServerIdentity200Response) HasMediaContainer() bool`
HasMediaContainer returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,174 @@
# GetServerIdentity200ResponseMediaContainer
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Size** | Pointer to **interface{}** | | [optional]
**Claimed** | Pointer to **interface{}** | | [optional]
**MachineIdentifier** | Pointer to **interface{}** | | [optional]
**Version** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetServerIdentity200ResponseMediaContainer
`func NewGetServerIdentity200ResponseMediaContainer() *GetServerIdentity200ResponseMediaContainer`
NewGetServerIdentity200ResponseMediaContainer instantiates a new GetServerIdentity200ResponseMediaContainer object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetServerIdentity200ResponseMediaContainerWithDefaults
`func NewGetServerIdentity200ResponseMediaContainerWithDefaults() *GetServerIdentity200ResponseMediaContainer`
NewGetServerIdentity200ResponseMediaContainerWithDefaults instantiates a new GetServerIdentity200ResponseMediaContainer object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetSize
`func (o *GetServerIdentity200ResponseMediaContainer) GetSize() interface{}`
GetSize returns the Size field if non-nil, zero value otherwise.
### GetSizeOk
`func (o *GetServerIdentity200ResponseMediaContainer) GetSizeOk() (*interface{}, bool)`
GetSizeOk returns a tuple with the Size field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSize
`func (o *GetServerIdentity200ResponseMediaContainer) SetSize(v interface{})`
SetSize sets Size field to given value.
### HasSize
`func (o *GetServerIdentity200ResponseMediaContainer) HasSize() bool`
HasSize returns a boolean if a field has been set.
### SetSizeNil
`func (o *GetServerIdentity200ResponseMediaContainer) SetSizeNil(b bool)`
SetSizeNil sets the value for Size to be an explicit nil
### UnsetSize
`func (o *GetServerIdentity200ResponseMediaContainer) UnsetSize()`
UnsetSize ensures that no value is present for Size, not even an explicit nil
### GetClaimed
`func (o *GetServerIdentity200ResponseMediaContainer) GetClaimed() interface{}`
GetClaimed returns the Claimed field if non-nil, zero value otherwise.
### GetClaimedOk
`func (o *GetServerIdentity200ResponseMediaContainer) GetClaimedOk() (*interface{}, bool)`
GetClaimedOk returns a tuple with the Claimed field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetClaimed
`func (o *GetServerIdentity200ResponseMediaContainer) SetClaimed(v interface{})`
SetClaimed sets Claimed field to given value.
### HasClaimed
`func (o *GetServerIdentity200ResponseMediaContainer) HasClaimed() bool`
HasClaimed returns a boolean if a field has been set.
### SetClaimedNil
`func (o *GetServerIdentity200ResponseMediaContainer) SetClaimedNil(b bool)`
SetClaimedNil sets the value for Claimed to be an explicit nil
### UnsetClaimed
`func (o *GetServerIdentity200ResponseMediaContainer) UnsetClaimed()`
UnsetClaimed ensures that no value is present for Claimed, not even an explicit nil
### GetMachineIdentifier
`func (o *GetServerIdentity200ResponseMediaContainer) GetMachineIdentifier() interface{}`
GetMachineIdentifier returns the MachineIdentifier field if non-nil, zero value otherwise.
### GetMachineIdentifierOk
`func (o *GetServerIdentity200ResponseMediaContainer) GetMachineIdentifierOk() (*interface{}, bool)`
GetMachineIdentifierOk returns a tuple with the MachineIdentifier field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMachineIdentifier
`func (o *GetServerIdentity200ResponseMediaContainer) SetMachineIdentifier(v interface{})`
SetMachineIdentifier sets MachineIdentifier field to given value.
### HasMachineIdentifier
`func (o *GetServerIdentity200ResponseMediaContainer) HasMachineIdentifier() bool`
HasMachineIdentifier returns a boolean if a field has been set.
### SetMachineIdentifierNil
`func (o *GetServerIdentity200ResponseMediaContainer) SetMachineIdentifierNil(b bool)`
SetMachineIdentifierNil sets the value for MachineIdentifier to be an explicit nil
### UnsetMachineIdentifier
`func (o *GetServerIdentity200ResponseMediaContainer) UnsetMachineIdentifier()`
UnsetMachineIdentifier ensures that no value is present for MachineIdentifier, not even an explicit nil
### GetVersion
`func (o *GetServerIdentity200ResponseMediaContainer) GetVersion() interface{}`
GetVersion returns the Version field if non-nil, zero value otherwise.
### GetVersionOk
`func (o *GetServerIdentity200ResponseMediaContainer) GetVersionOk() (*interface{}, bool)`
GetVersionOk returns a tuple with the Version field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetVersion
`func (o *GetServerIdentity200ResponseMediaContainer) SetVersion(v interface{})`
SetVersion sets Version field to given value.
### HasVersion
`func (o *GetServerIdentity200ResponseMediaContainer) HasVersion() bool`
HasVersion returns a boolean if a field has been set.
### SetVersionNil
`func (o *GetServerIdentity200ResponseMediaContainer) SetVersionNil(b bool)`
SetVersionNil sets the value for Version to be an explicit nil
### UnsetVersion
`func (o *GetServerIdentity200ResponseMediaContainer) UnsetVersion()`
UnsetVersion ensures that no value is present for Version, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetServerList200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**MediaContainer** | Pointer to [**GetServerList200ResponseMediaContainer**](GetServerList200ResponseMediaContainer.md) | | [optional]
## Methods
### NewGetServerList200Response
`func NewGetServerList200Response() *GetServerList200Response`
NewGetServerList200Response instantiates a new GetServerList200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetServerList200ResponseWithDefaults
`func NewGetServerList200ResponseWithDefaults() *GetServerList200Response`
NewGetServerList200ResponseWithDefaults instantiates a new GetServerList200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMediaContainer
`func (o *GetServerList200Response) GetMediaContainer() GetServerList200ResponseMediaContainer`
GetMediaContainer returns the MediaContainer field if non-nil, zero value otherwise.
### GetMediaContainerOk
`func (o *GetServerList200Response) GetMediaContainerOk() (*GetServerList200ResponseMediaContainer, bool)`
GetMediaContainerOk returns a tuple with the MediaContainer field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaContainer
`func (o *GetServerList200Response) SetMediaContainer(v GetServerList200ResponseMediaContainer)`
SetMediaContainer sets MediaContainer field to given value.
### HasMediaContainer
`func (o *GetServerList200Response) HasMediaContainer() bool`
HasMediaContainer returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,102 @@
# GetServerList200ResponseMediaContainer
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Size** | Pointer to **interface{}** | | [optional]
**Server** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetServerList200ResponseMediaContainer
`func NewGetServerList200ResponseMediaContainer() *GetServerList200ResponseMediaContainer`
NewGetServerList200ResponseMediaContainer instantiates a new GetServerList200ResponseMediaContainer object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetServerList200ResponseMediaContainerWithDefaults
`func NewGetServerList200ResponseMediaContainerWithDefaults() *GetServerList200ResponseMediaContainer`
NewGetServerList200ResponseMediaContainerWithDefaults instantiates a new GetServerList200ResponseMediaContainer object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetSize
`func (o *GetServerList200ResponseMediaContainer) GetSize() interface{}`
GetSize returns the Size field if non-nil, zero value otherwise.
### GetSizeOk
`func (o *GetServerList200ResponseMediaContainer) GetSizeOk() (*interface{}, bool)`
GetSizeOk returns a tuple with the Size field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSize
`func (o *GetServerList200ResponseMediaContainer) SetSize(v interface{})`
SetSize sets Size field to given value.
### HasSize
`func (o *GetServerList200ResponseMediaContainer) HasSize() bool`
HasSize returns a boolean if a field has been set.
### SetSizeNil
`func (o *GetServerList200ResponseMediaContainer) SetSizeNil(b bool)`
SetSizeNil sets the value for Size to be an explicit nil
### UnsetSize
`func (o *GetServerList200ResponseMediaContainer) UnsetSize()`
UnsetSize ensures that no value is present for Size, not even an explicit nil
### GetServer
`func (o *GetServerList200ResponseMediaContainer) GetServer() interface{}`
GetServer returns the Server field if non-nil, zero value otherwise.
### GetServerOk
`func (o *GetServerList200ResponseMediaContainer) GetServerOk() (*interface{}, bool)`
GetServerOk returns a tuple with the Server field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetServer
`func (o *GetServerList200ResponseMediaContainer) SetServer(v interface{})`
SetServer sets Server field to given value.
### HasServer
`func (o *GetServerList200ResponseMediaContainer) HasServer() bool`
HasServer returns a boolean if a field has been set.
### SetServerNil
`func (o *GetServerList200ResponseMediaContainer) SetServerNil(b bool)`
SetServerNil sets the value for Server to be an explicit nil
### UnsetServer
`func (o *GetServerList200ResponseMediaContainer) UnsetServer()`
UnsetServer ensures that no value is present for Server, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,56 @@
# GetTranscodeSessions200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**MediaContainer** | Pointer to [**GetTranscodeSessions200ResponseMediaContainer**](GetTranscodeSessions200ResponseMediaContainer.md) | | [optional]
## Methods
### NewGetTranscodeSessions200Response
`func NewGetTranscodeSessions200Response() *GetTranscodeSessions200Response`
NewGetTranscodeSessions200Response instantiates a new GetTranscodeSessions200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetTranscodeSessions200ResponseWithDefaults
`func NewGetTranscodeSessions200ResponseWithDefaults() *GetTranscodeSessions200Response`
NewGetTranscodeSessions200ResponseWithDefaults instantiates a new GetTranscodeSessions200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMediaContainer
`func (o *GetTranscodeSessions200Response) GetMediaContainer() GetTranscodeSessions200ResponseMediaContainer`
GetMediaContainer returns the MediaContainer field if non-nil, zero value otherwise.
### GetMediaContainerOk
`func (o *GetTranscodeSessions200Response) GetMediaContainerOk() (*GetTranscodeSessions200ResponseMediaContainer, bool)`
GetMediaContainerOk returns a tuple with the MediaContainer field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMediaContainer
`func (o *GetTranscodeSessions200Response) SetMediaContainer(v GetTranscodeSessions200ResponseMediaContainer)`
SetMediaContainer sets MediaContainer field to given value.
### HasMediaContainer
`func (o *GetTranscodeSessions200Response) HasMediaContainer() bool`
HasMediaContainer returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,102 @@
# GetTranscodeSessions200ResponseMediaContainer
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Size** | Pointer to **interface{}** | | [optional]
**TranscodeSession** | Pointer to **interface{}** | | [optional]
## Methods
### NewGetTranscodeSessions200ResponseMediaContainer
`func NewGetTranscodeSessions200ResponseMediaContainer() *GetTranscodeSessions200ResponseMediaContainer`
NewGetTranscodeSessions200ResponseMediaContainer instantiates a new GetTranscodeSessions200ResponseMediaContainer object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewGetTranscodeSessions200ResponseMediaContainerWithDefaults
`func NewGetTranscodeSessions200ResponseMediaContainerWithDefaults() *GetTranscodeSessions200ResponseMediaContainer`
NewGetTranscodeSessions200ResponseMediaContainerWithDefaults instantiates a new GetTranscodeSessions200ResponseMediaContainer object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetSize
`func (o *GetTranscodeSessions200ResponseMediaContainer) GetSize() interface{}`
GetSize returns the Size field if non-nil, zero value otherwise.
### GetSizeOk
`func (o *GetTranscodeSessions200ResponseMediaContainer) GetSizeOk() (*interface{}, bool)`
GetSizeOk returns a tuple with the Size field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSize
`func (o *GetTranscodeSessions200ResponseMediaContainer) SetSize(v interface{})`
SetSize sets Size field to given value.
### HasSize
`func (o *GetTranscodeSessions200ResponseMediaContainer) HasSize() bool`
HasSize returns a boolean if a field has been set.
### SetSizeNil
`func (o *GetTranscodeSessions200ResponseMediaContainer) SetSizeNil(b bool)`
SetSizeNil sets the value for Size to be an explicit nil
### UnsetSize
`func (o *GetTranscodeSessions200ResponseMediaContainer) UnsetSize()`
UnsetSize ensures that no value is present for Size, not even an explicit nil
### GetTranscodeSession
`func (o *GetTranscodeSessions200ResponseMediaContainer) GetTranscodeSession() interface{}`
GetTranscodeSession returns the TranscodeSession field if non-nil, zero value otherwise.
### GetTranscodeSessionOk
`func (o *GetTranscodeSessions200ResponseMediaContainer) GetTranscodeSessionOk() (*interface{}, bool)`
GetTranscodeSessionOk returns a tuple with the TranscodeSession field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTranscodeSession
`func (o *GetTranscodeSessions200ResponseMediaContainer) SetTranscodeSession(v interface{})`
SetTranscodeSession sets TranscodeSession field to given value.
### HasTranscodeSession
`func (o *GetTranscodeSessions200ResponseMediaContainer) HasTranscodeSession() bool`
HasTranscodeSession returns a boolean if a field has been set.
### SetTranscodeSessionNil
`func (o *GetTranscodeSessions200ResponseMediaContainer) SetTranscodeSessionNil(b bool)`
SetTranscodeSessionNil sets the value for TranscodeSession to be an explicit nil
### UnsetTranscodeSession
`func (o *GetTranscodeSessions200ResponseMediaContainer) UnsetTranscodeSession()`
UnsetTranscodeSession ensures that no value is present for TranscodeSession, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

148
pms/docs/HubsApi.md Normal file
View File

@@ -0,0 +1,148 @@
# \HubsApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**GetGlobalHubs**](HubsApi.md#GetGlobalHubs) | **Get** /hubs | Get Global Hubs
[**GetLibraryHubs**](HubsApi.md#GetLibraryHubs) | **Get** /hubs/sections/{sectionId} | Get library specific hubs
## GetGlobalHubs
> GetGlobalHubs(ctx).Count(count).OnlyTransient(onlyTransient).Execute()
Get Global Hubs
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
count := TODO // interface{} | The number of items to return with each hub. (optional)
onlyTransient := TODO // interface{} | Only return hubs which are \"transient\", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.HubsApi.GetGlobalHubs(context.Background()).Count(count).OnlyTransient(onlyTransient).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `HubsApi.GetGlobalHubs``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiGetGlobalHubsRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**count** | [**interface{}**](interface{}.md) | The number of items to return with each hub. |
**onlyTransient** | [**interface{}**](interface{}.md) | Only return hubs which are \&quot;transient\&quot;, meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetLibraryHubs
> GetLibraryHubs(ctx, sectionId).Count(count).OnlyTransient(onlyTransient).Execute()
Get library specific hubs
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
sectionId := TODO // interface{} | the Id of the library to query
count := TODO // interface{} | The number of items to return with each hub. (optional)
onlyTransient := TODO // interface{} | Only return hubs which are \"transient\", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.HubsApi.GetLibraryHubs(context.Background(), sectionId).Count(count).OnlyTransient(onlyTransient).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `HubsApi.GetLibraryHubs``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**sectionId** | [**interface{}**](.md) | the Id of the library to query |
### Other Parameters
Other parameters are passed through a pointer to a apiGetLibraryHubsRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**count** | [**interface{}**](interface{}.md) | The number of items to return with each hub. |
**onlyTransient** | [**interface{}**](interface{}.md) | Only return hubs which are \&quot;transient\&quot;, meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

825
pms/docs/LibraryApi.md Normal file
View File

@@ -0,0 +1,825 @@
# \LibraryApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**DeleteLibrary**](LibraryApi.md#DeleteLibrary) | **Delete** /library/sections/{sectionId} | Delete Library Section
[**GetCommonLibraryItems**](LibraryApi.md#GetCommonLibraryItems) | **Get** /library/sections/{sectionId}/common | Get Common Library Items
[**GetFileHash**](LibraryApi.md#GetFileHash) | **Get** /library/hashes | Get Hash Value
[**GetLatestLibraryItems**](LibraryApi.md#GetLatestLibraryItems) | **Get** /library/sections/{sectionId}/latest | Get Latest Library Items
[**GetLibraries**](LibraryApi.md#GetLibraries) | **Get** /library/sections | Get All Libraries
[**GetLibrary**](LibraryApi.md#GetLibrary) | **Get** /library/sections/{sectionId} | Get Library Details
[**GetLibraryItems**](LibraryApi.md#GetLibraryItems) | **Get** /library/sections/{sectionId}/all | Get Library Items
[**GetMetadata**](LibraryApi.md#GetMetadata) | **Get** /library/metadata/{ratingKey} | Get Items Metadata
[**GetMetadataChildren**](LibraryApi.md#GetMetadataChildren) | **Get** /library/metadata/{ratingKey}/children | Get Items Children
[**GetOnDeck**](LibraryApi.md#GetOnDeck) | **Get** /library/onDeck | Get On Deck
[**GetRecentlyAdded**](LibraryApi.md#GetRecentlyAdded) | **Get** /library/recentlyAdded | Get Recently Added
[**RefreshLibrary**](LibraryApi.md#RefreshLibrary) | **Get** /library/sections/{sectionId}/refresh | Refresh Library
## DeleteLibrary
> DeleteLibrary(ctx, sectionId).Execute()
Delete Library Section
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
sectionId := TODO // interface{} | the Id of the library to query
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.DeleteLibrary(context.Background(), sectionId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.DeleteLibrary``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**sectionId** | [**interface{}**](.md) | the Id of the library to query |
### Other Parameters
Other parameters are passed through a pointer to a apiDeleteLibraryRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetCommonLibraryItems
> GetCommonLibraryItems(ctx, sectionId).Type_(type_).Filter(filter).Execute()
Get Common Library Items
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
sectionId := TODO // interface{} | the Id of the library to query
type_ := TODO // interface{} | item type
filter := TODO // interface{} | the filter parameter (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.GetCommonLibraryItems(context.Background(), sectionId).Type_(type_).Filter(filter).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.GetCommonLibraryItems``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**sectionId** | [**interface{}**](.md) | the Id of the library to query |
### Other Parameters
Other parameters are passed through a pointer to a apiGetCommonLibraryItemsRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**type_** | [**interface{}**](interface{}.md) | item type |
**filter** | [**interface{}**](interface{}.md) | the filter parameter |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetFileHash
> GetFileHash(ctx).Url(url).Type_(type_).Execute()
Get Hash Value
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
url := TODO // interface{} | This is the path to the local file, must be prefixed by `file://`
type_ := TODO // interface{} | Item type (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.GetFileHash(context.Background()).Url(url).Type_(type_).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.GetFileHash``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiGetFileHashRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**url** | [**interface{}**](interface{}.md) | This is the path to the local file, must be prefixed by &#x60;file://&#x60; |
**type_** | [**interface{}**](interface{}.md) | Item type |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetLatestLibraryItems
> GetLatestLibraryItems(ctx, sectionId).Type_(type_).Filter(filter).Execute()
Get Latest Library Items
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
sectionId := TODO // interface{} | the Id of the library to query
type_ := TODO // interface{} | item type
filter := TODO // interface{} | the filter parameter (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.GetLatestLibraryItems(context.Background(), sectionId).Type_(type_).Filter(filter).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.GetLatestLibraryItems``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**sectionId** | [**interface{}**](.md) | the Id of the library to query |
### Other Parameters
Other parameters are passed through a pointer to a apiGetLatestLibraryItemsRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**type_** | [**interface{}**](interface{}.md) | item type |
**filter** | [**interface{}**](interface{}.md) | the filter parameter |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetLibraries
> GetLibraries(ctx).Execute()
Get All Libraries
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.GetLibraries(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.GetLibraries``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetLibrariesRequest struct via the builder pattern
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetLibrary
> GetLibrary(ctx, sectionId).IncludeDetails(includeDetails).Execute()
Get Library Details
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
sectionId := TODO // interface{} | the Id of the library to query
includeDetails := TODO // interface{} | Whether or not to include details for a section (types, filters, and sorts). Only exists for backwards compatibility, media providers other than the server libraries have it on always. (optional) (default to 0)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.GetLibrary(context.Background(), sectionId).IncludeDetails(includeDetails).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.GetLibrary``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**sectionId** | [**interface{}**](.md) | the Id of the library to query |
### Other Parameters
Other parameters are passed through a pointer to a apiGetLibraryRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**includeDetails** | [**interface{}**](interface{}.md) | Whether or not to include details for a section (types, filters, and sorts). Only exists for backwards compatibility, media providers other than the server libraries have it on always. | [default to 0]
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetLibraryItems
> GetLibraryItems(ctx, sectionId).Type_(type_).Filter(filter).Execute()
Get Library Items
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
sectionId := TODO // interface{} | the Id of the library to query
type_ := TODO // interface{} | item type (optional)
filter := TODO // interface{} | the filter parameter (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.GetLibraryItems(context.Background(), sectionId).Type_(type_).Filter(filter).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.GetLibraryItems``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**sectionId** | [**interface{}**](.md) | the Id of the library to query |
### Other Parameters
Other parameters are passed through a pointer to a apiGetLibraryItemsRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**type_** | [**interface{}**](interface{}.md) | item type |
**filter** | [**interface{}**](interface{}.md) | the filter parameter |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetMetadata
> GetMetadata(ctx, ratingKey).Execute()
Get Items Metadata
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
ratingKey := TODO // interface{} | the id of the library item to return the children of.
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.GetMetadata(context.Background(), ratingKey).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.GetMetadata``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**ratingKey** | [**interface{}**](.md) | the id of the library item to return the children of. |
### Other Parameters
Other parameters are passed through a pointer to a apiGetMetadataRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetMetadataChildren
> GetMetadataChildren(ctx, ratingKey).Execute()
Get Items Children
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
ratingKey := TODO // interface{} | the id of the library item to return the children of.
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.GetMetadataChildren(context.Background(), ratingKey).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.GetMetadataChildren``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**ratingKey** | [**interface{}**](.md) | the id of the library item to return the children of. |
### Other Parameters
Other parameters are passed through a pointer to a apiGetMetadataChildrenRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetOnDeck
> GetOnDeck200Response GetOnDeck(ctx).Execute()
Get On Deck
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.GetOnDeck(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.GetOnDeck``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetOnDeck`: GetOnDeck200Response
fmt.Fprintf(os.Stdout, "Response from `LibraryApi.GetOnDeck`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetOnDeckRequest struct via the builder pattern
### Return type
[**GetOnDeck200Response**](GetOnDeck200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetRecentlyAdded
> GetRecentlyAdded200Response GetRecentlyAdded(ctx).Execute()
Get Recently Added
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.GetRecentlyAdded(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.GetRecentlyAdded``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetRecentlyAdded`: GetRecentlyAdded200Response
fmt.Fprintf(os.Stdout, "Response from `LibraryApi.GetRecentlyAdded`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetRecentlyAddedRequest struct via the builder pattern
### Return type
[**GetRecentlyAdded200Response**](GetRecentlyAdded200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## RefreshLibrary
> RefreshLibrary(ctx, sectionId).Execute()
Refresh Library
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
sectionId := TODO // interface{} | the Id of the library to refresh
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LibraryApi.RefreshLibrary(context.Background(), sectionId).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LibraryApi.RefreshLibrary``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**sectionId** | [**interface{}**](.md) | the Id of the library to refresh |
### Other Parameters
Other parameters are passed through a pointer to a apiRefreshLibraryRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

197
pms/docs/LogApi.md Normal file
View File

@@ -0,0 +1,197 @@
# \LogApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**EnablePaperTrail**](LogApi.md#EnablePaperTrail) | **Get** /log/networked | Enabling Papertrail
[**LogLine**](LogApi.md#LogLine) | **Get** /log | Logging a single line message.
[**LogMultiLine**](LogApi.md#LogMultiLine) | **Post** /log | Logging a multi-line message
## EnablePaperTrail
> EnablePaperTrail(ctx).Execute()
Enabling Papertrail
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LogApi.EnablePaperTrail(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LogApi.EnablePaperTrail``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiEnablePaperTrailRequest struct via the builder pattern
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## LogLine
> LogLine(ctx).Level(level).Message(message).Source(source).Execute()
Logging a single line message.
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
level := TODO // interface{} | An integer log level to write to the PMS log with. 0: Error 1: Warning 2: Info 3: Debug 4: Verbose
message := TODO // interface{} | The text of the message to write to the log.
source := TODO // interface{} | a string indicating the source of the message.
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LogApi.LogLine(context.Background()).Level(level).Message(message).Source(source).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LogApi.LogLine``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiLogLineRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**level** | [**interface{}**](interface{}.md) | An integer log level to write to the PMS log with. 0: Error 1: Warning 2: Info 3: Debug 4: Verbose |
**message** | [**interface{}**](interface{}.md) | The text of the message to write to the log. |
**source** | [**interface{}**](interface{}.md) | a string indicating the source of the message. |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## LogMultiLine
> LogMultiLine(ctx).Execute()
Logging a multi-line message
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LogApi.LogMultiLine(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LogApi.LogMultiLine``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiLogMultiLineRequest struct via the builder pattern
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

207
pms/docs/MediaApi.md Normal file
View File

@@ -0,0 +1,207 @@
# \MediaApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**MarkPlayed**](MediaApi.md#MarkPlayed) | **Get** /:/scrobble | Mark Media Played
[**MarkUnplayed**](MediaApi.md#MarkUnplayed) | **Get** /:/unscrobble | Mark Media Unplayed
[**UpdatePlayProgress**](MediaApi.md#UpdatePlayProgress) | **Post** /:/progress | Update Media Play Progress
## MarkPlayed
> MarkPlayed(ctx).Key(key).Execute()
Mark Media Played
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
key := TODO // interface{} | The media key to mark as played
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.MediaApi.MarkPlayed(context.Background()).Key(key).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `MediaApi.MarkPlayed``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiMarkPlayedRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**key** | [**interface{}**](interface{}.md) | The media key to mark as played |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## MarkUnplayed
> MarkUnplayed(ctx).Key(key).Execute()
Mark Media Unplayed
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
key := TODO // interface{} | The media key to mark as Unplayed
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.MediaApi.MarkUnplayed(context.Background()).Key(key).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `MediaApi.MarkUnplayed``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiMarkUnplayedRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**key** | [**interface{}**](interface{}.md) | The media key to mark as Unplayed |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## UpdatePlayProgress
> UpdatePlayProgress(ctx).Key(key).Time(time).State(state).Execute()
Update Media Play Progress
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
key := TODO // interface{} | the media key
time := TODO // interface{} | The time, in milliseconds, used to set the media playback progress.
state := TODO // interface{} | The playback state of the media item.
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.MediaApi.UpdatePlayProgress(context.Background()).Key(key).Time(time).State(state).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `MediaApi.UpdatePlayProgress``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiUpdatePlayProgressRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**key** | [**interface{}**](interface{}.md) | the media key |
**time** | [**interface{}**](interface{}.md) | The time, in milliseconds, used to set the media playback progress. |
**state** | [**interface{}**](interface{}.md) | The playback state of the media item. |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

635
pms/docs/PlaylistsApi.md Normal file
View File

@@ -0,0 +1,635 @@
# \PlaylistsApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**AddPlaylistContents**](PlaylistsApi.md#AddPlaylistContents) | **Put** /playlists/{playlistID}/items | Adding to a Playlist
[**ClearPlaylistContents**](PlaylistsApi.md#ClearPlaylistContents) | **Delete** /playlists/{playlistID}/items | Delete Playlist Contents
[**CreatePlaylist**](PlaylistsApi.md#CreatePlaylist) | **Post** /playlists | Create a Playlist
[**DeletePlaylist**](PlaylistsApi.md#DeletePlaylist) | **Delete** /playlists/{playlistID} | Deletes a Playlist
[**GetPlaylist**](PlaylistsApi.md#GetPlaylist) | **Get** /playlists/{playlistID} | Retrieve Playlist
[**GetPlaylistContents**](PlaylistsApi.md#GetPlaylistContents) | **Get** /playlists/{playlistID}/items | Retrieve Playlist Contents
[**GetPlaylists**](PlaylistsApi.md#GetPlaylists) | **Get** /playlists/all | Get All Playlists
[**UpdatePlaylist**](PlaylistsApi.md#UpdatePlaylist) | **Put** /playlists/{playlistID} | Update a Playlist
[**UploadPlaylist**](PlaylistsApi.md#UploadPlaylist) | **Post** /playlists/upload | Upload Playlist
## AddPlaylistContents
> AddPlaylistContents(ctx, playlistID).Uri(uri).PlayQueueID(playQueueID).Execute()
Adding to a Playlist
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
playlistID := TODO // interface{} | the ID of the playlist
uri := TODO // interface{} | the content URI for the playlist
playQueueID := TODO // interface{} | the play queue to add to a playlist
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlaylistsApi.AddPlaylistContents(context.Background(), playlistID).Uri(uri).PlayQueueID(playQueueID).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlaylistsApi.AddPlaylistContents``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**playlistID** | [**interface{}**](.md) | the ID of the playlist |
### Other Parameters
Other parameters are passed through a pointer to a apiAddPlaylistContentsRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**uri** | [**interface{}**](interface{}.md) | the content URI for the playlist |
**playQueueID** | [**interface{}**](interface{}.md) | the play queue to add to a playlist |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## ClearPlaylistContents
> ClearPlaylistContents(ctx, playlistID).Execute()
Delete Playlist Contents
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
playlistID := TODO // interface{} | the ID of the playlist
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlaylistsApi.ClearPlaylistContents(context.Background(), playlistID).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlaylistsApi.ClearPlaylistContents``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**playlistID** | [**interface{}**](.md) | the ID of the playlist |
### Other Parameters
Other parameters are passed through a pointer to a apiClearPlaylistContentsRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## CreatePlaylist
> CreatePlaylist(ctx).Title(title).Type_(type_).Smart(smart).Uri(uri).PlayQueueID(playQueueID).Execute()
Create a Playlist
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
title := TODO // interface{} | name of the playlist
type_ := TODO // interface{} | type of playlist to create
smart := TODO // interface{} | whether the playlist is smart or not
uri := TODO // interface{} | the content URI for the playlist (optional)
playQueueID := TODO // interface{} | the play queue to copy to a playlist (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlaylistsApi.CreatePlaylist(context.Background()).Title(title).Type_(type_).Smart(smart).Uri(uri).PlayQueueID(playQueueID).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlaylistsApi.CreatePlaylist``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiCreatePlaylistRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**title** | [**interface{}**](interface{}.md) | name of the playlist |
**type_** | [**interface{}**](interface{}.md) | type of playlist to create |
**smart** | [**interface{}**](interface{}.md) | whether the playlist is smart or not |
**uri** | [**interface{}**](interface{}.md) | the content URI for the playlist |
**playQueueID** | [**interface{}**](interface{}.md) | the play queue to copy to a playlist |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## DeletePlaylist
> DeletePlaylist(ctx, playlistID).Execute()
Deletes a Playlist
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
playlistID := TODO // interface{} | the ID of the playlist
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlaylistsApi.DeletePlaylist(context.Background(), playlistID).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlaylistsApi.DeletePlaylist``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**playlistID** | [**interface{}**](.md) | the ID of the playlist |
### Other Parameters
Other parameters are passed through a pointer to a apiDeletePlaylistRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetPlaylist
> GetPlaylist(ctx, playlistID).Execute()
Retrieve Playlist
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
playlistID := TODO // interface{} | the ID of the playlist
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlaylistsApi.GetPlaylist(context.Background(), playlistID).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlaylistsApi.GetPlaylist``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**playlistID** | [**interface{}**](.md) | the ID of the playlist |
### Other Parameters
Other parameters are passed through a pointer to a apiGetPlaylistRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetPlaylistContents
> GetPlaylistContents(ctx, playlistID).Type_(type_).Execute()
Retrieve Playlist Contents
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
playlistID := TODO // interface{} | the ID of the playlist
type_ := TODO // interface{} | the metadata type of the item to return
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlaylistsApi.GetPlaylistContents(context.Background(), playlistID).Type_(type_).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlaylistsApi.GetPlaylistContents``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**playlistID** | [**interface{}**](.md) | the ID of the playlist |
### Other Parameters
Other parameters are passed through a pointer to a apiGetPlaylistContentsRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**type_** | [**interface{}**](interface{}.md) | the metadata type of the item to return |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetPlaylists
> GetPlaylists(ctx).PlaylistType(playlistType).Smart(smart).Execute()
Get All Playlists
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
playlistType := TODO // interface{} | limit to a type of playlist. (optional)
smart := TODO // interface{} | type of playlists to return (default is all). (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlaylistsApi.GetPlaylists(context.Background()).PlaylistType(playlistType).Smart(smart).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlaylistsApi.GetPlaylists``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiGetPlaylistsRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**playlistType** | [**interface{}**](interface{}.md) | limit to a type of playlist. |
**smart** | [**interface{}**](interface{}.md) | type of playlists to return (default is all). |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## UpdatePlaylist
> UpdatePlaylist(ctx, playlistID).Execute()
Update a Playlist
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
playlistID := TODO // interface{} | the ID of the playlist
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlaylistsApi.UpdatePlaylist(context.Background(), playlistID).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlaylistsApi.UpdatePlaylist``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**playlistID** | [**interface{}**](.md) | the ID of the playlist |
### Other Parameters
Other parameters are passed through a pointer to a apiUpdatePlaylistRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## UploadPlaylist
> UploadPlaylist(ctx).Path(path).Force(force).Execute()
Upload Playlist
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
path := TODO // interface{} | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. If the `path` argument is a directory, that path will be scanned for playlist files to be processed. Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. The GUID of each playlist is based on the filename. If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. The GUID of each playlist is based on the filename.
force := TODO // interface{} | force overwriting of duplicate playlists. By default, a playlist file uploaded with the same path will overwrite the existing playlist. The `force` argument is used to disable overwriting. If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.PlaylistsApi.UploadPlaylist(context.Background()).Path(path).Force(force).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PlaylistsApi.UploadPlaylist``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiUploadPlaylistRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**path** | [**interface{}**](interface{}.md) | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. If the &#x60;path&#x60; argument is a directory, that path will be scanned for playlist files to be processed. Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. The GUID of each playlist is based on the filename. If the &#x60;path&#x60; argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. The GUID of each playlist is based on the filename. |
**force** | [**interface{}**](interface{}.md) | force overwriting of duplicate playlists. By default, a playlist file uploaded with the same path will overwrite the existing playlist. The &#x60;force&#x60; argument is used to disable overwriting. If the &#x60;force&#x60; argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded. |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

213
pms/docs/SearchApi.md Normal file
View File

@@ -0,0 +1,213 @@
# \SearchApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**GetSearchResults**](SearchApi.md#GetSearchResults) | **Get** /search | Get Search Results
[**PerformSearch**](SearchApi.md#PerformSearch) | **Get** /hubs/search | Perform a search
[**PerformVoiceSearch**](SearchApi.md#PerformVoiceSearch) | **Get** /hubs/search/voice | Perform a voice search
## GetSearchResults
> GetSearchResults200Response GetSearchResults(ctx).Query(query).Execute()
Get Search Results
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
query := TODO // interface{} | The search query string to use
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.SearchApi.GetSearchResults(context.Background()).Query(query).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SearchApi.GetSearchResults``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetSearchResults`: GetSearchResults200Response
fmt.Fprintf(os.Stdout, "Response from `SearchApi.GetSearchResults`: %v\n", resp)
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiGetSearchResultsRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**query** | [**interface{}**](interface{}.md) | The search query string to use |
### Return type
[**GetSearchResults200Response**](GetSearchResults200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## PerformSearch
> PerformSearch(ctx).Query(query).SectionId(sectionId).Limit(limit).Execute()
Perform a search
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
query := TODO // interface{} | The query term
sectionId := TODO // interface{} | This gives context to the search, and can result in re-ordering of search result hubs (optional)
limit := TODO // interface{} | The number of items to return per hub (optional) (default to 3)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.SearchApi.PerformSearch(context.Background()).Query(query).SectionId(sectionId).Limit(limit).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SearchApi.PerformSearch``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiPerformSearchRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**query** | [**interface{}**](interface{}.md) | The query term |
**sectionId** | [**interface{}**](interface{}.md) | This gives context to the search, and can result in re-ordering of search result hubs |
**limit** | [**interface{}**](interface{}.md) | The number of items to return per hub | [default to 3]
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## PerformVoiceSearch
> PerformVoiceSearch(ctx).Query(query).SectionId(sectionId).Limit(limit).Execute()
Perform a voice search
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
query := TODO // interface{} | The query term
sectionId := TODO // interface{} | This gives context to the search, and can result in re-ordering of search result hubs (optional)
limit := TODO // interface{} | The number of items to return per hub (optional) (default to 3)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.SearchApi.PerformVoiceSearch(context.Background()).Query(query).SectionId(sectionId).Limit(limit).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SearchApi.PerformVoiceSearch``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiPerformVoiceSearchRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**query** | [**interface{}**](interface{}.md) | The query term |
**sectionId** | [**interface{}**](interface{}.md) | This gives context to the search, and can result in re-ordering of search result hubs |
**limit** | [**interface{}**](interface{}.md) | The number of items to return per hub | [default to 3]
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

140
pms/docs/SecurityApi.md Normal file
View File

@@ -0,0 +1,140 @@
# \SecurityApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**GetSourceConnectionInformation**](SecurityApi.md#GetSourceConnectionInformation) | **Get** /security/resources | Get Source Connection Information
[**GetTransientToken**](SecurityApi.md#GetTransientToken) | **Get** /security/token | Get a Transient Token.
## GetSourceConnectionInformation
> GetSourceConnectionInformation(ctx).Source(source).Execute()
Get Source Connection Information
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
source := TODO // interface{} | The source identifier with an included prefix.
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.SecurityApi.GetSourceConnectionInformation(context.Background()).Source(source).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SecurityApi.GetSourceConnectionInformation``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiGetSourceConnectionInformationRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**source** | [**interface{}**](interface{}.md) | The source identifier with an included prefix. |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetTransientToken
> GetTransientToken(ctx).Type_(type_).Scope(scope).Execute()
Get a Transient Token.
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
type_ := TODO // interface{} | `delegation` - This is the only supported `type` parameter.
scope := TODO // interface{} | `all` - This is the only supported `scope` parameter.
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.SecurityApi.GetTransientToken(context.Background()).Type_(type_).Scope(scope).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SecurityApi.GetTransientToken``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiGetTransientTokenRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**type_** | [**interface{}**](interface{}.md) | &#x60;delegation&#x60; - This is the only supported &#x60;type&#x60; parameter. |
**scope** | [**interface{}**](interface{}.md) | &#x60;all&#x60; - This is the only supported &#x60;scope&#x60; parameter. |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

517
pms/docs/ServerApi.md Normal file
View File

@@ -0,0 +1,517 @@
# \ServerApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**GetAvailableClients**](ServerApi.md#GetAvailableClients) | **Get** /clients | Get Available Clients
[**GetDevices**](ServerApi.md#GetDevices) | **Get** /devices | Get Devices
[**GetMyPlexAccount**](ServerApi.md#GetMyPlexAccount) | **Get** /myplex/account | Get MyPlex Account
[**GetResizedPhoto**](ServerApi.md#GetResizedPhoto) | **Get** /photo/:/transcode | Get a Resized Photo
[**GetServerCapabilities**](ServerApi.md#GetServerCapabilities) | **Get** / | Server Capabilities
[**GetServerIdentity**](ServerApi.md#GetServerIdentity) | **Get** /identity | Get Server Identity
[**GetServerList**](ServerApi.md#GetServerList) | **Get** /servers | Get Server List
[**GetServerPreferences**](ServerApi.md#GetServerPreferences) | **Get** /:/prefs | Get Server Preferences
## GetAvailableClients
> interface{} GetAvailableClients(ctx).Execute()
Get Available Clients
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ServerApi.GetAvailableClients(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ServerApi.GetAvailableClients``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetAvailableClients`: interface{}
fmt.Fprintf(os.Stdout, "Response from `ServerApi.GetAvailableClients`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetAvailableClientsRequest struct via the builder pattern
### Return type
**interface{}**
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetDevices
> GetDevices200Response GetDevices(ctx).Execute()
Get Devices
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ServerApi.GetDevices(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ServerApi.GetDevices``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetDevices`: GetDevices200Response
fmt.Fprintf(os.Stdout, "Response from `ServerApi.GetDevices`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetDevicesRequest struct via the builder pattern
### Return type
[**GetDevices200Response**](GetDevices200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetMyPlexAccount
> GetMyPlexAccount200Response GetMyPlexAccount(ctx).Execute()
Get MyPlex Account
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ServerApi.GetMyPlexAccount(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ServerApi.GetMyPlexAccount``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetMyPlexAccount`: GetMyPlexAccount200Response
fmt.Fprintf(os.Stdout, "Response from `ServerApi.GetMyPlexAccount`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetMyPlexAccountRequest struct via the builder pattern
### Return type
[**GetMyPlexAccount200Response**](GetMyPlexAccount200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetResizedPhoto
> GetResizedPhoto(ctx).Width(width).Height(height).Opacity(opacity).Blur(blur).MinSize(minSize).Upscale(upscale).Url(url).Execute()
Get a Resized Photo
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
width := TODO // interface{} | The width for the resized photo
height := TODO // interface{} | The height for the resized photo
opacity := TODO // interface{} | The opacity for the resized photo (default to 100)
blur := TODO // interface{} | The width for the resized photo
minSize := TODO // interface{} | images are always scaled proportionally. A value of '1' in minSize will make the smaller native dimension the dimension resized against.
upscale := TODO // interface{} | allow images to be resized beyond native dimensions.
url := TODO // interface{} | path to image within Plex
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ServerApi.GetResizedPhoto(context.Background()).Width(width).Height(height).Opacity(opacity).Blur(blur).MinSize(minSize).Upscale(upscale).Url(url).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ServerApi.GetResizedPhoto``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiGetResizedPhotoRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**width** | [**interface{}**](interface{}.md) | The width for the resized photo |
**height** | [**interface{}**](interface{}.md) | The height for the resized photo |
**opacity** | [**interface{}**](interface{}.md) | The opacity for the resized photo | [default to 100]
**blur** | [**interface{}**](interface{}.md) | The width for the resized photo |
**minSize** | [**interface{}**](interface{}.md) | images are always scaled proportionally. A value of &#39;1&#39; in minSize will make the smaller native dimension the dimension resized against. |
**upscale** | [**interface{}**](interface{}.md) | allow images to be resized beyond native dimensions. |
**url** | [**interface{}**](interface{}.md) | path to image within Plex |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetServerCapabilities
> GetServerCapabilities200Response GetServerCapabilities(ctx).Execute()
Server Capabilities
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ServerApi.GetServerCapabilities(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ServerApi.GetServerCapabilities``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetServerCapabilities`: GetServerCapabilities200Response
fmt.Fprintf(os.Stdout, "Response from `ServerApi.GetServerCapabilities`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetServerCapabilitiesRequest struct via the builder pattern
### Return type
[**GetServerCapabilities200Response**](GetServerCapabilities200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetServerIdentity
> GetServerIdentity200Response GetServerIdentity(ctx).Execute()
Get Server Identity
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ServerApi.GetServerIdentity(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ServerApi.GetServerIdentity``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetServerIdentity`: GetServerIdentity200Response
fmt.Fprintf(os.Stdout, "Response from `ServerApi.GetServerIdentity`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetServerIdentityRequest struct via the builder pattern
### Return type
[**GetServerIdentity200Response**](GetServerIdentity200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetServerList
> GetServerList200Response GetServerList(ctx).Execute()
Get Server List
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ServerApi.GetServerList(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ServerApi.GetServerList``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetServerList`: GetServerList200Response
fmt.Fprintf(os.Stdout, "Response from `ServerApi.GetServerList`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetServerListRequest struct via the builder pattern
### Return type
[**GetServerList200Response**](GetServerList200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetServerPreferences
> GetServerPreferences(ctx).Execute()
Get Server Preferences
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.ServerApi.GetServerPreferences(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `ServerApi.GetServerPreferences``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetServerPreferencesRequest struct via the builder pattern
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

259
pms/docs/SessionsApi.md Normal file
View File

@@ -0,0 +1,259 @@
# \SessionsApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**GetSessionHistory**](SessionsApi.md#GetSessionHistory) | **Get** /status/sessions/history/all | Get Session History
[**GetSessions**](SessionsApi.md#GetSessions) | **Get** /status/sessions | Get Active Sessions
[**GetTranscodeSessions**](SessionsApi.md#GetTranscodeSessions) | **Get** /transcode/sessions | Get Transcode Sessions
[**StopTranscodeSession**](SessionsApi.md#StopTranscodeSession) | **Delete** /transcode/sessions/{sessionKey} | Stop a Transcode Session
## GetSessionHistory
> GetSessionHistory(ctx).Execute()
Get Session History
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.SessionsApi.GetSessionHistory(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SessionsApi.GetSessionHistory``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetSessionHistoryRequest struct via the builder pattern
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetSessions
> GetSessions(ctx).Execute()
Get Active Sessions
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.SessionsApi.GetSessions(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SessionsApi.GetSessions``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetSessionsRequest struct via the builder pattern
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetTranscodeSessions
> GetTranscodeSessions200Response GetTranscodeSessions(ctx).Execute()
Get Transcode Sessions
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.SessionsApi.GetTranscodeSessions(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SessionsApi.GetTranscodeSessions``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetTranscodeSessions`: GetTranscodeSessions200Response
fmt.Fprintf(os.Stdout, "Response from `SessionsApi.GetTranscodeSessions`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetTranscodeSessionsRequest struct via the builder pattern
### Return type
[**GetTranscodeSessions200Response**](GetTranscodeSessions200Response.md)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## StopTranscodeSession
> StopTranscodeSession(ctx, sessionKey).Execute()
Stop a Transcode Session
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
sessionKey := TODO // interface{} | the Key of the transcode session to stop
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.SessionsApi.StopTranscodeSession(context.Background(), sessionKey).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `SessionsApi.StopTranscodeSession``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**sessionKey** | [**interface{}**](.md) | the Key of the transcode session to stop |
### Other Parameters
Other parameters are passed through a pointer to a apiStopTranscodeSessionRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

200
pms/docs/UpdaterApi.md Normal file
View File

@@ -0,0 +1,200 @@
# \UpdaterApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**ApplyUpdates**](UpdaterApi.md#ApplyUpdates) | **Put** /updater/apply | Apply Updates
[**CheckForUpdates**](UpdaterApi.md#CheckForUpdates) | **Put** /updater/check | Checking for updates
[**GetUpdateStatus**](UpdaterApi.md#GetUpdateStatus) | **Get** /updater/status | Querying status of updates
## ApplyUpdates
> ApplyUpdates(ctx).Tonight(tonight).Skip(skip).Execute()
Apply Updates
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
tonight := TODO // interface{} | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install (optional)
skip := TODO // interface{} | Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`. (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.UpdaterApi.ApplyUpdates(context.Background()).Tonight(tonight).Skip(skip).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `UpdaterApi.ApplyUpdates``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiApplyUpdatesRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**tonight** | [**interface{}**](interface{}.md) | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install |
**skip** | [**interface{}**](interface{}.md) | Indicate that the latest version should be marked as skipped. The &lt;Release&gt; entry for this version will have the &#x60;state&#x60; set to &#x60;skipped&#x60;. |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## CheckForUpdates
> CheckForUpdates(ctx).Download(download).Execute()
Checking for updates
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
download := TODO // interface{} | Indicate that you want to start download any updates found. (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.UpdaterApi.CheckForUpdates(context.Background()).Download(download).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `UpdaterApi.CheckForUpdates``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiCheckForUpdatesRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**download** | [**interface{}**](interface{}.md) | Indicate that you want to start download any updates found. |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## GetUpdateStatus
> GetUpdateStatus(ctx).Execute()
Querying status of updates
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.UpdaterApi.GetUpdateStatus(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `UpdaterApi.GetUpdateStatus``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiGetUpdateStatusRequest struct via the builder pattern
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

186
pms/docs/VideoApi.md Normal file
View File

@@ -0,0 +1,186 @@
# \VideoApi
All URIs are relative to *http://10.10.10.47:32400*
Method | HTTP request | Description
------------- | ------------- | -------------
[**GetTimeline**](VideoApi.md#GetTimeline) | **Get** /:/timeline | Get the timeline for a media item
[**StartUniversalTranscode**](VideoApi.md#StartUniversalTranscode) | **Get** /video/:/transcode/universal/start.mpd | Start Universal Transcode
## GetTimeline
> GetTimeline(ctx).RatingKey(ratingKey).Key(key).State(state).HasMDE(hasMDE).Time(time).Duration(duration).Context(context).PlayQueueItemID(playQueueItemID).PlayBackTime(playBackTime).Row(row).Execute()
Get the timeline for a media item
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
ratingKey := TODO // interface{} | The rating key of the media item
key := TODO // interface{} | The key of the media item to get the timeline for
state := TODO // interface{} | The state of the media item
hasMDE := TODO // interface{} | Whether the media item has MDE
time := TODO // interface{} | The time of the media item
duration := TODO // interface{} | The duration of the media item
context := TODO // interface{} | The context of the media item
playQueueItemID := TODO // interface{} | The play queue item ID of the media item
playBackTime := TODO // interface{} | The playback time of the media item
row := TODO // interface{} | The row of the media item
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.VideoApi.GetTimeline(context.Background()).RatingKey(ratingKey).Key(key).State(state).HasMDE(hasMDE).Time(time).Duration(duration).Context(context).PlayQueueItemID(playQueueItemID).PlayBackTime(playBackTime).Row(row).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `VideoApi.GetTimeline``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiGetTimelineRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ratingKey** | [**interface{}**](interface{}.md) | The rating key of the media item |
**key** | [**interface{}**](interface{}.md) | The key of the media item to get the timeline for |
**state** | [**interface{}**](interface{}.md) | The state of the media item |
**hasMDE** | [**interface{}**](interface{}.md) | Whether the media item has MDE |
**time** | [**interface{}**](interface{}.md) | The time of the media item |
**duration** | [**interface{}**](interface{}.md) | The duration of the media item |
**context** | [**interface{}**](interface{}.md) | The context of the media item |
**playQueueItemID** | [**interface{}**](interface{}.md) | The play queue item ID of the media item |
**playBackTime** | [**interface{}**](interface{}.md) | The playback time of the media item |
**row** | [**interface{}**](interface{}.md) | The row of the media item |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## StartUniversalTranscode
> StartUniversalTranscode(ctx).HasMDE(hasMDE).Path(path).MediaIndex(mediaIndex).PartIndex(partIndex).Protocol(protocol).FastSeek(fastSeek).DirectPlay(directPlay).DirectStream(directStream).SubtitleSize(subtitleSize).Subtites(subtites).AudioBoost(audioBoost).Location(location).MediaBufferSize(mediaBufferSize).Session(session).AddDebugOverlay(addDebugOverlay).AutoAdjustQuality(autoAdjustQuality).Execute()
Start Universal Transcode
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "./openapi"
)
func main() {
hasMDE := TODO // interface{} | Whether the media item has MDE
path := TODO // interface{} | The path to the media item to transcode
mediaIndex := TODO // interface{} | The index of the media item to transcode
partIndex := TODO // interface{} | The index of the part to transcode
protocol := TODO // interface{} | The protocol to use for the transcode session
fastSeek := TODO // interface{} | Whether to use fast seek or not (optional)
directPlay := TODO // interface{} | Whether to use direct play or not (optional)
directStream := TODO // interface{} | Whether to use direct stream or not (optional)
subtitleSize := TODO // interface{} | The size of the subtitles (optional)
subtites := TODO // interface{} | The subtitles (optional)
audioBoost := TODO // interface{} | The audio boost (optional)
location := TODO // interface{} | The location of the transcode session (optional)
mediaBufferSize := TODO // interface{} | The size of the media buffer (optional)
session := TODO // interface{} | The session ID (optional)
addDebugOverlay := TODO // interface{} | Whether to add a debug overlay or not (optional)
autoAdjustQuality := TODO // interface{} | Whether to auto adjust quality or not (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.VideoApi.StartUniversalTranscode(context.Background()).HasMDE(hasMDE).Path(path).MediaIndex(mediaIndex).PartIndex(partIndex).Protocol(protocol).FastSeek(fastSeek).DirectPlay(directPlay).DirectStream(directStream).SubtitleSize(subtitleSize).Subtites(subtites).AudioBoost(audioBoost).Location(location).MediaBufferSize(mediaBufferSize).Session(session).AddDebugOverlay(addDebugOverlay).AutoAdjustQuality(autoAdjustQuality).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `VideoApi.StartUniversalTranscode``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiStartUniversalTranscodeRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**hasMDE** | [**interface{}**](interface{}.md) | Whether the media item has MDE |
**path** | [**interface{}**](interface{}.md) | The path to the media item to transcode |
**mediaIndex** | [**interface{}**](interface{}.md) | The index of the media item to transcode |
**partIndex** | [**interface{}**](interface{}.md) | The index of the part to transcode |
**protocol** | [**interface{}**](interface{}.md) | The protocol to use for the transcode session |
**fastSeek** | [**interface{}**](interface{}.md) | Whether to use fast seek or not |
**directPlay** | [**interface{}**](interface{}.md) | Whether to use direct play or not |
**directStream** | [**interface{}**](interface{}.md) | Whether to use direct stream or not |
**subtitleSize** | [**interface{}**](interface{}.md) | The size of the subtitles |
**subtites** | [**interface{}**](interface{}.md) | The subtitles |
**audioBoost** | [**interface{}**](interface{}.md) | The audio boost |
**location** | [**interface{}**](interface{}.md) | The location of the transcode session |
**mediaBufferSize** | [**interface{}**](interface{}.md) | The size of the media buffer |
**session** | [**interface{}**](interface{}.md) | The session ID |
**addDebugOverlay** | [**interface{}**](interface{}.md) | Whether to add a debug overlay or not |
**autoAdjustQuality** | [**interface{}**](interface{}.md) | Whether to auto adjust quality or not |
### Return type
(empty response body)
### Authorization
[accessToken](../README.md#accessToken)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

57
pms/git_push.sh Normal file
View File

@@ -0,0 +1,57 @@
#!/bin/sh
# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
#
# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com"
git_user_id=$1
git_repo_id=$2
release_note=$3
git_host=$4
if [ "$git_host" = "" ]; then
git_host="github.com"
echo "[INFO] No command line input provided. Set \$git_host to $git_host"
fi
if [ "$git_user_id" = "" ]; then
git_user_id="lukehagar"
echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
fi
if [ "$git_repo_id" = "" ]; then
git_repo_id="plexgo"
echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
fi
if [ "$release_note" = "" ]; then
release_note="Minor update"
echo "[INFO] No command line input provided. Set \$release_note to $release_note"
fi
# Initialize the local directory as a Git repository
git init
# Adds the files in the local repository and stages them for commit.
git add .
# Commits the tracked changes and prepares them to be pushed to a remote repository.
git commit -m "$release_note"
# Sets the new remote
git_remote=$(git remote)
if [ "$git_remote" = "" ]; then # git remote not defined
if [ "$GIT_TOKEN" = "" ]; then
echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
else
git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git
fi
fi
git pull origin master
# Pushes (Forces) the changes in the local repository up to the remote repository
echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
git push origin master 2>&1 | grep -v 'To https'

7
pms/go.mod Normal file
View File

@@ -0,0 +1,7 @@
module github.com/sailpoint-oss/golang-sdk/sdk-output/v3
go 1.13
require (
github.com/hashicorp/go-retryablehttp v0.7.2 // indirect
)

Some files were not shown because too many files have changed in this diff Show More