Files
plexgo/pms/api_security.go
2023-08-10 21:24:37 -05:00

285 lines
8.8 KiB
Go

/*
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{}
}
// `delegation` - This is the only supported `type` parameter.
func (r ApiGetTransientTokenRequest) Type_(type_ interface{}) ApiGetTransientTokenRequest {
r.type_ = &type_
return r
}
// `all` - This is the only supported `scope` 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
}