173 lines
3.8 KiB
Perl
173 lines
3.8 KiB
Perl
|
|
=begin comment
|
|
|
|
Kubernetes
|
|
|
|
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
|
|
The version of the OpenAPI document: v1.13.7
|
|
|
|
Generated by: https://openapi-generator.tech
|
|
|
|
=end comment
|
|
|
|
=cut
|
|
|
|
#
|
|
# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
# Do not edit the class manually.
|
|
# Ref: https://openapi-generator.tech
|
|
#
|
|
package Kubernetes::Configuration;
|
|
|
|
use strict;
|
|
use warnings;
|
|
use utf8;
|
|
|
|
use Log::Any qw($log);
|
|
use Carp;
|
|
|
|
use constant VERSION => '1.0.0';
|
|
|
|
=head1 Name
|
|
|
|
Kubernetes::Configuration - holds the configuration for all Kubernetes Modules
|
|
|
|
=head1 new(%parameters)
|
|
|
|
=over 4
|
|
|
|
=item http_timeout: (optional)
|
|
|
|
Integer. timeout for HTTP requests in seconds
|
|
|
|
default: 180
|
|
|
|
=item http_user_agent: (optional)
|
|
|
|
String. custom UserAgent header
|
|
|
|
default: OpenAPI-Generator/1.0.0/perl
|
|
|
|
=item api_key: (optional)
|
|
|
|
Hashref. Keyed on the name of each key (there can be multiple tokens).
|
|
|
|
api_key => {
|
|
secretKey => 'aaaabbbbccccdddd',
|
|
anotherKey => '1111222233334444',
|
|
};
|
|
|
|
=item api_key_prefix: (optional)
|
|
|
|
Hashref. Keyed on the name of each key (there can be multiple tokens). Note not all api keys require a prefix.
|
|
|
|
api_key_prefix => {
|
|
secretKey => 'string',
|
|
anotherKey => 'same or some other string',
|
|
};
|
|
|
|
=item api_key_in: (optional)
|
|
|
|
=item username: (optional)
|
|
|
|
String. The username for basic auth.
|
|
|
|
=item password: (optional)
|
|
|
|
String. The password for basic auth.
|
|
|
|
=item access_token: (optional)
|
|
|
|
String. The OAuth access token.
|
|
|
|
=item base_url: (optional)
|
|
|
|
String. The base URL of the API
|
|
|
|
default: http://localhost
|
|
|
|
=back
|
|
|
|
=cut
|
|
|
|
sub new {
|
|
my ( $self, %p ) = ( shift, @_ );
|
|
|
|
# class/static variables
|
|
$p{http_timeout} //= 180;
|
|
$p{http_user_agent} //= 'OpenAPI-Generator/1.0.0/perl';
|
|
|
|
# authentication setting
|
|
$p{api_key} //= {};
|
|
$p{api_key_prefix} //= {};
|
|
$p{api_key_in} //= {};
|
|
|
|
# username and password for HTTP basic authentication
|
|
$p{username} //= '';
|
|
$p{password} //= '';
|
|
|
|
# access token for OAuth
|
|
$p{access_token} //= '';
|
|
|
|
# base_url
|
|
$p{base_url} //= 'http://localhost';
|
|
|
|
return bless \%p => $self;
|
|
}
|
|
|
|
sub get_tokens {
|
|
my $self = shift;
|
|
|
|
my $tokens = {};
|
|
$tokens->{username} = $self->{username} if $self->{username};
|
|
$tokens->{password} = $self->{password} if $self->{password};
|
|
$tokens->{access_token} = $self->{access_token} if $self->{access_token};
|
|
|
|
foreach my $token_name ( keys %{ $self->{api_key} } ) {
|
|
$tokens->{$token_name}->{token} = $self->{api_key}{$token_name};
|
|
$tokens->{$token_name}->{prefix} = $self->{api_key_prefix}{$token_name};
|
|
$tokens->{$token_name}->{in} = $self->{api_key_in}{$token_name};
|
|
}
|
|
|
|
return $tokens;
|
|
}
|
|
|
|
sub clear_tokens {
|
|
my $self = shift;
|
|
my %tokens = %{ $self->get_tokens }; # copy
|
|
|
|
$self->{username} = '';
|
|
$self->{password} = '';
|
|
$self->{access_token} = '';
|
|
|
|
$self->{api_key} = {};
|
|
$self->{api_key_prefix} = {};
|
|
$self->{api_key_in} = {};
|
|
|
|
return \%tokens;
|
|
}
|
|
|
|
sub accept_tokens {
|
|
my ( $self, $tokens ) = @_;
|
|
|
|
foreach my $known_name (qw(username password access_token)) {
|
|
next unless $tokens->{$known_name};
|
|
$self->{$known_name} = delete $tokens->{$known_name};
|
|
}
|
|
|
|
foreach my $token_name ( keys %$tokens ) {
|
|
$self->{api_key}{$token_name} = $tokens->{$token_name}{token};
|
|
if ( $tokens->{$token_name}{prefix} ) {
|
|
$self->{api_key_prefix}{$token_name} =
|
|
$tokens->{$token_name}{prefix};
|
|
}
|
|
my $in = $tokens->{$token_name}->{in} || 'head';
|
|
croak "Tokens can only go in 'head' or 'query' (not in '$in')"
|
|
unless $in =~ /^(?:head|query)$/;
|
|
$self->{api_key_in}{$token_name} = $in;
|
|
}
|
|
}
|
|
|
|
1;
|