2019-04-24 12:07:57 +08:00
2019-03-23 16:42:23 +08:00
= begin comment
Kubernetes
No description provided ( generated by Openapi Generator https: //gi thub . com /openapitools/o penapi - generator )
OpenAPI spec version: v1 .13 .5
Generated by: https: //o penapi - 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::V1FlexPersistentVolumeSource ;
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 ;
2019-04-24 12:07:57 +08:00
use base ( "Class::Accessor" , "Class::Data::Inheritable" ) ;
2019-03-23 16:42:23 +08:00
#
#FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.
#
# 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: //gi thub . com /openapitools/o penapi - generator )
OpenAPI spec version: v1 .13 .5
Generated by: https: //o penapi - 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
#
2019-04-24 12:07:57 +08:00
__PACKAGE__ - > mk_classdata ( 'attribute_map' = > { } ) ;
__PACKAGE__ - > mk_classdata ( 'openapi_types' = > { } ) ;
__PACKAGE__ - > mk_classdata ( 'method_documentation' = > { } ) ;
__PACKAGE__ - > mk_classdata ( 'class_documentation' = > { } ) ;
2019-03-23 16:42:23 +08:00
# new object
2019-04-24 12:07:57 +08:00
sub new {
my ( $ class , % args ) = @ _ ;
my $ self = bless { } , $ class ;
foreach my $ attribute ( keys % { $ class - > attribute_map } ) {
my $ args_key = $ class - > attribute_map - > { $ attribute } ;
$ self - > $ attribute ( $ args { $ args_key } ) ;
}
return $ self ;
}
2019-03-23 16:42:23 +08:00
# return perl hash
sub to_hash {
2019-04-24 12:07:57 +08:00
return decode_json ( JSON - > new - > convert_blessed - > encode ( shift ) ) ;
2019-03-23 16:42:23 +08:00
}
# used by JSON for serialization
2019-04-24 12:07:57 +08:00
sub TO_JSON {
my $ self = shift ;
2019-03-23 16:42:23 +08:00
my $ _data = { } ;
2019-04-24 12:07:57 +08:00
foreach my $ _key ( keys % { $ self - > attribute_map } ) {
if ( defined $ self - > { $ _key } ) {
$ _data - > { $ self - > attribute_map - > { $ _key } } = $ self - > { $ _key } ;
2019-03-23 16:42:23 +08:00
}
}
return $ _data ;
}
# from Perl hashref
sub from_hash {
2019-04-24 12:07:57 +08:00
my ( $ self , $ hash ) = @ _ ;
2019-03-23 16:42:23 +08:00
# loop through attributes and use openapi_types to deserialize the data
2019-04-24 12:07:57 +08:00
while ( my ( $ _key , $ _type ) = each % { $ self - > openapi_types } ) {
my $ _json_attribute = $ self - > attribute_map - > { $ _key } ;
if ( $ _type =~ /^array\[/i ) { # array
my $ _subclass = substr ( $ _type , 6 , - 1 ) ;
my @ _array = ( ) ;
foreach my $ _element ( @ { $ hash - > { $ _json_attribute } } ) {
push @ _array , $ self - > _deserialize ( $ _subclass , $ _element ) ;
2019-03-23 16:42:23 +08:00
}
$ self - > { $ _key } = \ @ _array ;
2019-04-24 12:07:57 +08:00
}
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 ) ;
2019-03-23 16:42:23 +08:00
}
}
2019-04-24 12:07:57 +08:00
2019-03-23 16:42:23 +08:00
return $ self ;
}
# deserialize non-array data
sub _deserialize {
2019-04-24 12:07:57 +08:00
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' ) ) ) {
2019-03-23 16:42:23 +08:00
return $ data ;
2019-04-24 12:07:57 +08:00
}
else { # hash(model)
2019-03-23 16:42:23 +08:00
my $ _instance = eval "Kubernetes::Object::$type->new()" ;
return $ _instance - > from_hash ( $ data ) ;
}
}
2019-04-24 12:07:57 +08:00
__PACKAGE__ - > class_documentation (
{
description = >
'FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.' ,
class = > 'V1FlexPersistentVolumeSource' ,
required = > [] , # TODO
}
) ;
__PACKAGE__ - > method_documentation (
{
'driver' = > {
datatype = > 'string' ,
base_name = > 'driver' ,
description = >
'Driver is the name of the driver to use for this volume.' ,
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\". The default filesystem depends on FlexVolume script.' ,
format = > '' ,
read_only = > '' ,
} ,
'options' = > {
datatype = > 'HASH[string,string]' ,
base_name = > 'options' ,
description = > 'Optional: Extra command options if any.' ,
format = > '' ,
read_only = > '' ,
} ,
'read_only' = > {
datatype = > 'boolean' ,
base_name = > 'readOnly' ,
description = >
'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.' ,
format = > '' ,
read_only = > '' ,
} ,
'secret_ref' = > {
datatype = > 'V1SecretReference' ,
base_name = > 'secretRef' ,
description = > '' ,
format = > '' ,
read_only = > '' ,
} ,
}
) ;
__PACKAGE__ - > openapi_types (
{
'driver' = > 'string' ,
'fs_type' = > 'string' ,
'options' = > 'HASH[string,string]' ,
'read_only' = > 'boolean' ,
'secret_ref' = > 'V1SecretReference'
}
) ;
__PACKAGE__ - > attribute_map (
{
'driver' = > 'driver' ,
'fs_type' = > 'fsType' ,
'options' = > 'options' ,
'read_only' = > 'readOnly' ,
'secret_ref' = > 'secretRef'
}
) ;
2019-03-23 16:42:23 +08:00
2019-04-24 12:07:57 +08:00
__PACKAGE__ - > mk_accessors ( keys % { __PACKAGE__ - > attribute_map } ) ;
2019-03-23 16:42:23 +08:00
1 ;