Files
perl/lib/Kubernetes/Object/V1CSIPersistentVolumeSource.pm
2019-05-16 20:27:55 +08:00

270 lines
7.9 KiB
Perl
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=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::Object::V1CSIPersistentVolumeSource;
require 5.6.0;
use strict;
use warnings;
use utf8;
use JSON qw(decode_json);
use Data::Dumper;
use Module::Runtime qw(use_module);
use Log::Any qw($log);
use Date::Parse;
use DateTime;
use Kubernetes::Object::V1SecretReference;
use base ( "Class::Accessor", "Class::Data::Inheritable" );
#
#Represents storage that is managed by an external CSI volume driver (Beta feature)
#
# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). Do not edit the class manually.
# REF: https://openapi-generator.tech
#
=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__->mk_classdata( 'attribute_map' => {} );
__PACKAGE__->mk_classdata( 'openapi_types' => {} );
__PACKAGE__->mk_classdata( 'method_documentation' => {} );
__PACKAGE__->mk_classdata( 'class_documentation' => {} );
# new plain object
sub new {
my ( $class, %args ) = @_;
my $self = bless {}, $class;
$self->init(%args);
return $self;
}
# initialize the object
sub init {
my ( $self, %args ) = @_;
foreach my $attribute ( keys %{ $self->attribute_map } ) {
my $args_key = $self->attribute_map->{$attribute};
$self->$attribute( $args{$args_key} );
}
}
# return perl hash
sub to_hash {
my $self = shift;
my $_hash = decode_json( JSON->new->convert_blessed->encode($self) );
return $_hash;
}
# used by JSON for serialization
sub TO_JSON {
my $self = shift;
my $_data = {};
foreach my $_key ( keys %{ $self->attribute_map } ) {
if ( defined $self->{$_key} ) {
$_data->{ $self->attribute_map->{$_key} } = $self->{$_key};
}
}
return $_data;
}
# from Perl hashref
sub from_hash {
my ( $self, $hash ) = @_;
# loop through attributes and use openapi_types to deserialize the data
while ( my ( $_key, $_type ) = each %{ $self->openapi_types } ) {
my $_json_attribute = $self->attribute_map->{$_key};
if ( $_type =~ /^array\[(.+)\]$/i ) { # array
my $_subclass = $1;
my @_array = ();
foreach my $_element ( @{ $hash->{$_json_attribute} } ) {
push @_array, $self->_deserialize( $_subclass, $_element );
}
$self->{$_key} = \@_array;
}
elsif ( $_type =~ /^hash\[string,(.+)\]$/i ) { # hash
my $_subclass = $1;
my %_hash = ();
while ( my ( $_key, $_element ) =
each %{ $hash->{$_json_attribute} } )
{
$_hash{$_key} = $self->_deserialize( $_subclass, $_element );
}
$self->{$_key} = \%_hash;
}
elsif ( exists $hash->{$_json_attribute} )
{ #hash(model), primitive, datetime
$self->{$_key} =
$self->_deserialize( $_type, $hash->{$_json_attribute} );
}
else {
$log->debugf( "Warning: %s (%s) does not exist in input hash\n",
$_key, $_json_attribute );
}
}
return $self;
}
# deserialize non-array data
sub _deserialize {
my ( $self, $type, $data ) = @_;
$log->debugf( "deserializing %s with %s", Dumper($data), $type );
if ( $type eq 'DateTime' ) {
return DateTime->from_epoch( epoch => str2time($data) );
}
elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) {
return $data;
}
else { # hash(model)
my $_instance = eval "Kubernetes::Object::$type->new()";
return $_instance->from_hash($data);
}
}
__PACKAGE__->class_documentation(
{
description =>
'Represents storage that is managed by an external CSI volume driver (Beta feature)',
class => 'V1CSIPersistentVolumeSource',
required => [], # TODO
}
);
__PACKAGE__->method_documentation(
{
'controller_publish_secret_ref' => {
datatype => 'V1SecretReference',
base_name => 'controllerPublishSecretRef',
description => '',
format => '',
read_only => '',
},
'driver' => {
datatype => 'string',
base_name => 'driver',
description =>
'Driver is the name of the driver to use for this volume. Required.',
format => '',
read_only => '',
},
'fs_type' => {
datatype => 'string',
base_name => 'fsType',
description =>
'Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".',
format => '',
read_only => '',
},
'node_publish_secret_ref' => {
datatype => 'V1SecretReference',
base_name => 'nodePublishSecretRef',
description => '',
format => '',
read_only => '',
},
'node_stage_secret_ref' => {
datatype => 'V1SecretReference',
base_name => 'nodeStageSecretRef',
description => '',
format => '',
read_only => '',
},
'read_only' => {
datatype => 'boolean',
base_name => 'readOnly',
description =>
'Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).',
format => '',
read_only => '',
},
'volume_attributes' => {
datatype => 'HASH[string,string]',
base_name => 'volumeAttributes',
description => 'Attributes of the volume to publish.',
format => '',
read_only => '',
},
'volume_handle' => {
datatype => 'string',
base_name => 'volumeHandle',
description =>
'VolumeHandle is the unique volume name returned by the CSI volume plugins CreateVolume to refer to the volume on all subsequent calls. Required.',
format => '',
read_only => '',
},
}
);
__PACKAGE__->openapi_types(
{
'controller_publish_secret_ref' => 'V1SecretReference',
'driver' => 'string',
'fs_type' => 'string',
'node_publish_secret_ref' => 'V1SecretReference',
'node_stage_secret_ref' => 'V1SecretReference',
'read_only' => 'boolean',
'volume_attributes' => 'HASH[string,string]',
'volume_handle' => 'string'
}
);
__PACKAGE__->attribute_map(
{
'controller_publish_secret_ref' => 'controllerPublishSecretRef',
'driver' => 'driver',
'fs_type' => 'fsType',
'node_publish_secret_ref' => 'nodePublishSecretRef',
'node_stage_secret_ref' => 'nodeStageSecretRef',
'read_only' => 'readOnly',
'volume_attributes' => 'volumeAttributes',
'volume_handle' => 'volumeHandle'
}
);
__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } );
1;