Google-Cloud-Dataproc-V1
view release on metacpan or search on metacpan
lib/Google/Cloud/Dataproc/V1/ClusterControllerClient.pm view on Meta::CPAN
use Google::Cloud::Dataproc::V1::Sessions;
use Google::Cloud::Dataproc::V1::Batches;
use Google::Cloud::Dataproc::V1::Clusters;
use Google::Cloud::Dataproc::V1::SessionTemplates;
use Google::Cloud::Dataproc::V1::NodeGroups;
use Google::Cloud::Dataproc::V1::WorkflowTemplates;
our $VERSION = '0.02';
has credentials => ( is => 'ro', required => 0 );
has transport => ( is => 'rw' );
sub BUILD {
my ($self) = @_;
# Resolve credentials: use passed credentials object if it implements get_token, or default to ADC
my $auth = $self->credentials;
if (!$auth || !eval { $auth->can('get_token') }) {
$auth = Google::Auth->default();
}
my $token = $auth->get_token();
my $target = 'localhost:50051';
my $t = $self->transport || 'grpc';
if (ref($t) && eval { $t->can('call') }) {
# Already a transport object
} elsif (lc($t) eq 'rest') {
my $client = Google::Cloud::REST::Client->new(
target => $target,
auth_token => $token,
);
$self->transport($client);
} else {
# Default high-performance HTTP/2 gRPC client
my $client = Google::gRPC::Client->new(
target => $target,
auth_token => $token,
);
$self->transport($client);
}
}
sub create_cluster {
my ($self, %params) = @_;
my $request_class = 'Google::Cloud::Dataproc::V1::Clusters::CreateClusterRequest';
my $request = eval { $request_class->new(\%params) } || eval { $request_class->new(%params) } || ($request_class->can('encode') ? $request_class->encode(\%params) : \%params);
my $response_class = 'Google::Longrunning::Operations::Operation';
my $response = $self->transport->call({
service => 'google.cloud.dataproc.v1.ClusterController',
method => 'CreateCluster',
request => $request,
response_class => $response_class,
});
return $response;
}
sub update_cluster {
my ($self, %params) = @_;
my $request_class = 'Google::Cloud::Dataproc::V1::Clusters::UpdateClusterRequest';
my $request = eval { $request_class->new(\%params) } || eval { $request_class->new(%params) } || ($request_class->can('encode') ? $request_class->encode(\%params) : \%params);
my $response_class = 'Google::Longrunning::Operations::Operation';
my $response = $self->transport->call({
service => 'google.cloud.dataproc.v1.ClusterController',
method => 'UpdateCluster',
request => $request,
response_class => $response_class,
});
return $response;
}
sub stop_cluster {
my ($self, %params) = @_;
my $request_class = 'Google::Cloud::Dataproc::V1::Clusters::StopClusterRequest';
my $request = eval { $request_class->new(\%params) } || eval { $request_class->new(%params) } || ($request_class->can('encode') ? $request_class->encode(\%params) : \%params);
my $response_class = 'Google::Longrunning::Operations::Operation';
my $response = $self->transport->call({
service => 'google.cloud.dataproc.v1.ClusterController',
method => 'StopCluster',
request => $request,
response_class => $response_class,
});
return $response;
}
sub start_cluster {
my ($self, %params) = @_;
my $request_class = 'Google::Cloud::Dataproc::V1::Clusters::StartClusterRequest';
my $request = eval { $request_class->new(\%params) } || eval { $request_class->new(%params) } || ($request_class->can('encode') ? $request_class->encode(\%params) : \%params);
my $response_class = 'Google::Longrunning::Operations::Operation';
my $response = $self->transport->call({
service => 'google.cloud.dataproc.v1.ClusterController',
method => 'StartCluster',
request => $request,
response_class => $response_class,
});
return $response;
}
sub delete_cluster {
my ($self, %params) = @_;
my $request_class = 'Google::Cloud::Dataproc::V1::Clusters::DeleteClusterRequest';
my $request = eval { $request_class->new(\%params) } || eval { $request_class->new(%params) } || ($request_class->can('encode') ? $request_class->encode(\%params) : \%params);
my $response_class = 'Google::Longrunning::Operations::Operation';
my $response = $self->transport->call({
service => 'google.cloud.dataproc.v1.ClusterController',
method => 'DeleteCluster',
( run in 0.922 second using v1.01-cache-2.11-cpan-7e94247ccb0 )