Class: Lambda::MicroVMs::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/lambda/microvms/client.rb

Overview

Ruby wrapper over Aws::Lambda::Client for Lambda MicroVM lifecycle operations.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(region: nil, profile: nil, sdk: nil) ⇒ Client

Returns a new instance of Client.



15
16
17
# File 'lib/lambda/microvms/client.rb', line 15

def initialize(region: nil, profile: nil, sdk: nil, **)
  @sdk = sdk || build_sdk(region:, profile:, **)
end

Instance Attribute Details

#sdkObject (readonly)

Returns the value of attribute sdk.



13
14
15
# File 'lib/lambda/microvms/client.rb', line 13

def sdk
  @sdk
end

Instance Method Details

#call_sdk(operation, **params) ⇒ Object



73
74
75
76
77
78
79
# File 'lib/lambda/microvms/client.rb', line 73

def call_sdk(operation, **params)
  unless @sdk.respond_to?(operation)
    raise UnsupportedOperationError, "Aws::Lambda::Client does not expose ##{operation}; upgrade aws-sdk-lambda"
  end

  @sdk.public_send(operation, **params)
end

#create_auth_token(**params) ⇒ Object Also known as: create_microvm_auth_token



68
69
70
# File 'lib/lambda/microvms/client.rb', line 68

def create_auth_token(**params)
  call_sdk(:create_microvm_auth_token, **params)
end

#create_image(**params) ⇒ Object



27
28
29
30
# File 'lib/lambda/microvms/client.rb', line 27

def create_image(**params)
  response = call_sdk(:create_microvm_image, **params)
  Image.from_response(client: self, response: response)
end

#delete_image(**params) ⇒ Object



37
38
39
# File 'lib/lambda/microvms/client.rb', line 37

def delete_image(**params)
  call_sdk(:delete_microvm_image, **params)
end

#get_image(**params) ⇒ Object



32
33
34
35
# File 'lib/lambda/microvms/client.rb', line 32

def get_image(**params)
  response = call_sdk(:get_microvm_image, **params)
  Image.from_response(client: self, response: response)
end

#get_microvm(**params) ⇒ Object



47
48
49
50
# File 'lib/lambda/microvms/client.rb', line 47

def get_microvm(**params)
  response = call_sdk(:get_microvm, **params)
  MicroVM.from_response(client: self, response: response)
end

#image(arn) ⇒ Object



19
20
21
# File 'lib/lambda/microvms/client.rb', line 19

def image(arn)
  Image.new(client: self, arn: arn)
end

#list_microvms(**params) ⇒ Object



52
53
54
# File 'lib/lambda/microvms/client.rb', line 52

def list_microvms(**params)
  call_sdk(:list_microvms, **params)
end

#microvm(id_or_arn) ⇒ Object



23
24
25
# File 'lib/lambda/microvms/client.rb', line 23

def microvm(id_or_arn)
  MicroVM.new(client: self, id: id_or_arn)
end

#resume_microvm(**params) ⇒ Object



60
61
62
# File 'lib/lambda/microvms/client.rb', line 60

def resume_microvm(**params)
  call_sdk(:resume_microvm, **params)
end

#run(**params) ⇒ Object Also known as: run_microvm



41
42
43
44
# File 'lib/lambda/microvms/client.rb', line 41

def run(**params)
  response = call_sdk(:run_microvm, **params)
  MicroVM.from_response(client: self, response: response)
end

#suspend_microvm(**params) ⇒ Object



56
57
58
# File 'lib/lambda/microvms/client.rb', line 56

def suspend_microvm(**params)
  call_sdk(:suspend_microvm, **params)
end

#terminate_microvm(**params) ⇒ Object



64
65
66
# File 'lib/lambda/microvms/client.rb', line 64

def terminate_microvm(**params)
  call_sdk(:terminate_microvm, **params)
end