=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::ApiFactory; use strict; use warnings; use utf8; use Carp; use Module::Find; usesub Kubernetes::Object; use Kubernetes::ApiClient; =head1 Name Kubernetes::ApiFactory - constructs APIs to retrieve Kubernetes objects =head1 Synopsis package My::Petstore::App; use Kubernetes::ApiFactory; my $api_factory = Kubernetes::ApiFactory->new( ... ); # any args for ApiClient constructor # later... my $pet_api = $api_factory->get_api('Pet'); # $pet_api isa Kubernetes::PetApi my $pet = $pet_api->get_pet_by_id(pet_id => $pet_id); # object attributes have proper accessors: printf "Pet's name is %s", $pet->name; # change the value stored on the object: $pet->name('Dave'); =cut # Load all the API classes and construct a lookup table at startup time my %_apis = map { $_ =~ /^Kubernetes::(.*)$/; $1 => $_ } grep { $_ =~ /Api$/ } usesub 'Kubernetes'; =head1 new($api_client) create a new Kubernetes::ApiFactory instance with the given Kubernetes::ApiClient instance. =head1 new(%parameters) Any parameters are optional, and are passed to and stored on the api_client object. See L and L for valid parameters =cut sub new { my ($class) = shift; my $api_client; if ( $_[0] && ref $_[0] && ref $_[0] eq 'Kubernetes::ApiClient' ) { $api_client = $_[0]; } else { $api_client = Kubernetes::ApiClient->new(@_); } bless { api_client => $api_client }, $class; } =head1 get_api($which) Returns an API object of the requested type. $which is a nickname for the class: FooBarClient::BazApi has nickname 'Baz' =cut sub get_api { my ( $self, $which ) = @_; croak "API not specified" unless $which; my $api_class = $_apis{"${which}Api"} || croak "No known API for '$which'"; return $api_class->new( $self->api_client ); } =head1 api_client() Returns the api_client object, should you ever need it. =cut sub api_client { $_[0]->{api_client} } =head1 apis_available() =cut sub apis_available { return map { $_ =~ s/Api$//; $_ } sort keys %_apis; } =head1 classname_for() =cut sub classname_for { my ( $self, $api_name ) = @_; return $_apis{"${api_name}Api"}; } 1;