lex-lambda 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/workflows/ci.yml +16 -0
- data/.rspec +3 -0
- data/.rubocop.yml +48 -0
- data/CHANGELOG.md +17 -0
- data/Gemfile +12 -0
- data/README.md +39 -0
- data/lex-lambda.gemspec +37 -0
- data/lib/legion/extensions/lambda/client.rb +34 -0
- data/lib/legion/extensions/lambda/helpers/client.rb +20 -0
- data/lib/legion/extensions/lambda/runners/functions.rb +43 -0
- data/lib/legion/extensions/lambda/runners/layers.rb +28 -0
- data/lib/legion/extensions/lambda/runners/management.rb +46 -0
- data/lib/legion/extensions/lambda/version.rb +9 -0
- data/lib/legion/extensions/lambda.rb +16 -0
- metadata +172 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 3efafde56225db1020869a0664212bd2402a4bedd733c1e71e0687986234e4b9
|
|
4
|
+
data.tar.gz: a5bee281031a1fe0568b215cd7674ddfceac01c2facd5fea7d4000243c814432
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: f03c7eb48c402f12adb8b414ac8ba93791f9f3bba014ef5370be65e50df49e99ee283d1e1fc202c4170f41b9d69a405e0c14058a0935ca38820e91b6c44543fd
|
|
7
|
+
data.tar.gz: 1bfe4147a02e1a4206218aba99de9b4e44a310930ed60c9797a9cff1bdc3b6954b37655801bc1f9f118f6c38e6426d153110b0fdb8cab28e48b13a88369b30e2
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: [main]
|
|
5
|
+
pull_request:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
ci:
|
|
9
|
+
uses: LegionIO/.github/.github/workflows/ci.yml@main
|
|
10
|
+
|
|
11
|
+
release:
|
|
12
|
+
needs: ci
|
|
13
|
+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
14
|
+
uses: LegionIO/.github/.github/workflows/release.yml@main
|
|
15
|
+
secrets:
|
|
16
|
+
rubygems-api-key: ${{ secrets.RUBYGEMS_API_KEY }}
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
AllCops:
|
|
2
|
+
TargetRubyVersion: 3.4
|
|
3
|
+
NewCops: enable
|
|
4
|
+
SuggestExtensions: false
|
|
5
|
+
|
|
6
|
+
Layout/LineLength:
|
|
7
|
+
Max: 160
|
|
8
|
+
|
|
9
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
|
10
|
+
EnforcedStyle: space
|
|
11
|
+
|
|
12
|
+
Layout/HashAlignment:
|
|
13
|
+
EnforcedHashRocketStyle: table
|
|
14
|
+
EnforcedColonStyle: table
|
|
15
|
+
|
|
16
|
+
Metrics/MethodLength:
|
|
17
|
+
Max: 50
|
|
18
|
+
|
|
19
|
+
Metrics/ClassLength:
|
|
20
|
+
Max: 1500
|
|
21
|
+
|
|
22
|
+
Metrics/ModuleLength:
|
|
23
|
+
Max: 1500
|
|
24
|
+
|
|
25
|
+
Metrics/BlockLength:
|
|
26
|
+
Max: 40
|
|
27
|
+
|
|
28
|
+
Metrics/AbcSize:
|
|
29
|
+
Max: 60
|
|
30
|
+
|
|
31
|
+
Metrics/CyclomaticComplexity:
|
|
32
|
+
Max: 15
|
|
33
|
+
|
|
34
|
+
Metrics/PerceivedComplexity:
|
|
35
|
+
Max: 17
|
|
36
|
+
|
|
37
|
+
Style/Documentation:
|
|
38
|
+
Enabled: false
|
|
39
|
+
|
|
40
|
+
Style/SymbolArray:
|
|
41
|
+
Enabled: true
|
|
42
|
+
|
|
43
|
+
Style/FrozenStringLiteralComment:
|
|
44
|
+
Enabled: true
|
|
45
|
+
EnforcedStyle: always
|
|
46
|
+
|
|
47
|
+
Naming/FileName:
|
|
48
|
+
Enabled: false
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.1.2] - 2026-03-22
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Add legion-cache, legion-crypt, legion-data, legion-json, legion-logging, legion-settings, legion-transport as runtime dependencies
|
|
7
|
+
- Update spec_helper with real sub-gem helper stubs
|
|
8
|
+
|
|
9
|
+
## [0.1.0] - 2026-03-21
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- Initial release of lex-lambda AWS Lambda integration
|
|
13
|
+
- `Helpers::Client` — builds `Aws::Lambda::Client` with region and credential support
|
|
14
|
+
- `Runners::Functions` — `list_functions`, `get_function`, `invoke_function`, `invoke_async`
|
|
15
|
+
- `Runners::Management` — `create_function`, `update_function_code`, `update_function_configuration`, `delete_function`
|
|
16
|
+
- `Runners::Layers` — `list_layers`, `get_layer_version`, `publish_layer_version`
|
|
17
|
+
- Standalone `Client` class for use outside the Legion framework
|
data/Gemfile
ADDED
data/README.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# lex-lambda
|
|
2
|
+
|
|
3
|
+
Legion Extension for AWS Lambda integration. Provides function invocation, management, and layer operations.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Add to your Gemfile:
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
gem 'lex-lambda'
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
### Standalone client
|
|
16
|
+
|
|
17
|
+
```ruby
|
|
18
|
+
require 'legion/extensions/lambda'
|
|
19
|
+
|
|
20
|
+
client = Legion::Extensions::Lambda::Client.new(
|
|
21
|
+
region: 'us-east-1',
|
|
22
|
+
access_key_id: ENV['AWS_ACCESS_KEY_ID'],
|
|
23
|
+
secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
client.list_functions
|
|
27
|
+
client.invoke_function(function_name: 'my-function', payload: { key: 'value' })
|
|
28
|
+
client.invoke_async(function_name: 'my-function')
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Runners
|
|
32
|
+
|
|
33
|
+
- `Functions`: `list_functions`, `get_function`, `invoke_function`, `invoke_async`
|
|
34
|
+
- `Management`: `create_function`, `update_function_code`, `update_function_configuration`, `delete_function`
|
|
35
|
+
- `Layers`: `list_layers`, `get_layer_version`, `publish_layer_version`
|
|
36
|
+
|
|
37
|
+
## License
|
|
38
|
+
|
|
39
|
+
MIT
|
data/lex-lambda.gemspec
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'lib/legion/extensions/lambda/version'
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = 'lex-lambda'
|
|
7
|
+
spec.version = Legion::Extensions::Lambda::VERSION
|
|
8
|
+
spec.authors = ['Esity']
|
|
9
|
+
spec.email = ['matthewdiverson@gmail.com']
|
|
10
|
+
|
|
11
|
+
spec.summary = 'LEX::Lambda'
|
|
12
|
+
spec.description = 'Connects Legion to AWS Lambda for function invocation and management'
|
|
13
|
+
spec.homepage = 'https://github.com/LegionIO/lex-lambda'
|
|
14
|
+
spec.license = 'MIT'
|
|
15
|
+
spec.required_ruby_version = '>= 3.4'
|
|
16
|
+
|
|
17
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
|
18
|
+
spec.metadata['source_code_uri'] = 'https://github.com/LegionIO/lex-lambda'
|
|
19
|
+
spec.metadata['documentation_uri'] = 'https://github.com/LegionIO/lex-lambda'
|
|
20
|
+
spec.metadata['changelog_uri'] = 'https://github.com/LegionIO/lex-lambda'
|
|
21
|
+
spec.metadata['bug_tracker_uri'] = 'https://github.com/LegionIO/lex-lambda/issues'
|
|
22
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
23
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
24
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
25
|
+
end
|
|
26
|
+
spec.require_paths = ['lib']
|
|
27
|
+
|
|
28
|
+
spec.add_dependency 'aws-sdk-lambda', '~> 1.0'
|
|
29
|
+
|
|
30
|
+
spec.add_dependency 'legion-cache', '>= 1.3.11'
|
|
31
|
+
spec.add_dependency 'legion-crypt', '>= 1.4.9'
|
|
32
|
+
spec.add_dependency 'legion-data', '>= 1.4.17'
|
|
33
|
+
spec.add_dependency 'legion-json', '>= 1.2.1'
|
|
34
|
+
spec.add_dependency 'legion-logging', '>= 1.3.2'
|
|
35
|
+
spec.add_dependency 'legion-settings', '>= 1.3.14'
|
|
36
|
+
spec.add_dependency 'legion-transport', '>= 1.3.9'
|
|
37
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'helpers/client'
|
|
4
|
+
require_relative 'runners/functions'
|
|
5
|
+
require_relative 'runners/management'
|
|
6
|
+
require_relative 'runners/layers'
|
|
7
|
+
|
|
8
|
+
module Legion
|
|
9
|
+
module Extensions
|
|
10
|
+
module Lambda
|
|
11
|
+
class Client
|
|
12
|
+
include Helpers::Client
|
|
13
|
+
include Runners::Functions
|
|
14
|
+
include Runners::Management
|
|
15
|
+
include Runners::Layers
|
|
16
|
+
|
|
17
|
+
attr_reader :opts
|
|
18
|
+
|
|
19
|
+
def initialize(region: 'us-east-1', access_key_id: nil, secret_access_key: nil, **extra)
|
|
20
|
+
@opts = { region: region, access_key_id: access_key_id, secret_access_key: secret_access_key,
|
|
21
|
+
**extra }.compact
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def lambda_client(**override)
|
|
25
|
+
super(**@opts, **override)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def settings
|
|
29
|
+
{ options: @opts }
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'aws-sdk-lambda'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Lambda
|
|
8
|
+
module Helpers
|
|
9
|
+
module Client
|
|
10
|
+
def lambda_client(region: 'us-east-1', access_key_id: nil, secret_access_key: nil, **_opts)
|
|
11
|
+
config = { region: region }
|
|
12
|
+
config[:access_key_id] = access_key_id if access_key_id
|
|
13
|
+
config[:secret_access_key] = secret_access_key if secret_access_key
|
|
14
|
+
Aws::Lambda::Client.new(**config)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Lambda
|
|
8
|
+
module Runners
|
|
9
|
+
module Functions
|
|
10
|
+
def list_functions(**)
|
|
11
|
+
resp = lambda_client(**).list_functions
|
|
12
|
+
{ functions: resp.functions.map { |f| { name: f.function_name, runtime: f.runtime, arn: f.function_arn } } }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def get_function(function_name:, **)
|
|
16
|
+
resp = lambda_client(**).get_function(function_name: function_name)
|
|
17
|
+
resp.configuration.to_h
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def invoke_function(function_name:, payload: nil, invocation_type: 'RequestResponse', **)
|
|
21
|
+
params = { function_name: function_name, invocation_type: invocation_type }
|
|
22
|
+
params[:payload] = payload.is_a?(Hash) ? ::JSON.dump(payload) : payload if payload
|
|
23
|
+
resp = lambda_client(**).invoke(**params)
|
|
24
|
+
body = resp.payload&.string
|
|
25
|
+
parsed = begin
|
|
26
|
+
::JSON.parse(body) if body
|
|
27
|
+
rescue ::JSON::ParserError
|
|
28
|
+
body
|
|
29
|
+
end
|
|
30
|
+
{ status_code: resp.status_code, payload: parsed, function_error: resp.function_error }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def invoke_async(function_name:, payload: nil, **)
|
|
34
|
+
params = { function_name: function_name, invocation_type: 'Event' }
|
|
35
|
+
params[:payload] = payload.is_a?(Hash) ? ::JSON.dump(payload) : payload if payload
|
|
36
|
+
resp = lambda_client(**).invoke(**params)
|
|
37
|
+
{ status_code: resp.status_code, function_name: function_name, async: true }
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Lambda
|
|
6
|
+
module Runners
|
|
7
|
+
module Layers
|
|
8
|
+
def list_layers(**)
|
|
9
|
+
resp = lambda_client(**).list_layers
|
|
10
|
+
{ layers: resp.layers.map { |l| { name: l.layer_name, arn: l.layer_arn } } }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def get_layer_version(layer_name:, version_number:, **)
|
|
14
|
+
resp = lambda_client(**).get_layer_version(layer_name: layer_name, version_number: version_number)
|
|
15
|
+
resp.to_h
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def publish_layer_version(layer_name:, content:, compatible_runtimes: [], **)
|
|
19
|
+
params = { layer_name: layer_name, content: content }
|
|
20
|
+
params[:compatible_runtimes] = compatible_runtimes unless compatible_runtimes.empty?
|
|
21
|
+
resp = lambda_client(**).publish_layer_version(**params)
|
|
22
|
+
resp.to_h
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Lambda
|
|
6
|
+
module Runners
|
|
7
|
+
module Management
|
|
8
|
+
def create_function(function_name:, runtime:, handler:, role:, code:, **) # rubocop:disable Metrics/ParameterLists
|
|
9
|
+
resp = lambda_client(**).create_function(
|
|
10
|
+
function_name: function_name,
|
|
11
|
+
runtime: runtime,
|
|
12
|
+
handler: handler,
|
|
13
|
+
role: role,
|
|
14
|
+
code: code
|
|
15
|
+
)
|
|
16
|
+
resp.to_h
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def update_function_code(function_name:, zip_file: nil, s3_bucket: nil, s3_key: nil, **)
|
|
20
|
+
params = { function_name: function_name }
|
|
21
|
+
params[:zip_file] = zip_file if zip_file
|
|
22
|
+
params[:s3_bucket] = s3_bucket if s3_bucket
|
|
23
|
+
params[:s3_key] = s3_key if s3_key
|
|
24
|
+
resp = lambda_client(**).update_function_code(**params)
|
|
25
|
+
resp.to_h
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def update_function_configuration(function_name:, **opts)
|
|
29
|
+
conn_opts = opts.slice(:region, :access_key_id, :secret_access_key)
|
|
30
|
+
config_opts = opts.except(:region, :access_key_id, :secret_access_key)
|
|
31
|
+
resp = lambda_client(**conn_opts).update_function_configuration(
|
|
32
|
+
function_name: function_name,
|
|
33
|
+
**config_opts
|
|
34
|
+
)
|
|
35
|
+
resp.to_h
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def delete_function(function_name:, **)
|
|
39
|
+
lambda_client(**).delete_function(function_name: function_name)
|
|
40
|
+
{ deleted: true, function_name: function_name }
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/lambda/version'
|
|
4
|
+
require 'legion/extensions/lambda/helpers/client'
|
|
5
|
+
require 'legion/extensions/lambda/runners/functions'
|
|
6
|
+
require 'legion/extensions/lambda/runners/management'
|
|
7
|
+
require 'legion/extensions/lambda/runners/layers'
|
|
8
|
+
require 'legion/extensions/lambda/client'
|
|
9
|
+
|
|
10
|
+
module Legion
|
|
11
|
+
module Extensions
|
|
12
|
+
module Lambda
|
|
13
|
+
extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: lex-lambda
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.2
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Esity
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: aws-sdk-lambda
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '1.0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '1.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: legion-cache
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 1.3.11
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: 1.3.11
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: legion-crypt
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: 1.4.9
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: 1.4.9
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: legion-data
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 1.4.17
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 1.4.17
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: legion-json
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.2.1
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 1.2.1
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: legion-logging
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 1.3.2
|
|
89
|
+
type: :runtime
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: 1.3.2
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: legion-settings
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: 1.3.14
|
|
103
|
+
type: :runtime
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: 1.3.14
|
|
110
|
+
- !ruby/object:Gem::Dependency
|
|
111
|
+
name: legion-transport
|
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - ">="
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: 1.3.9
|
|
117
|
+
type: :runtime
|
|
118
|
+
prerelease: false
|
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - ">="
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: 1.3.9
|
|
124
|
+
description: Connects Legion to AWS Lambda for function invocation and management
|
|
125
|
+
email:
|
|
126
|
+
- matthewdiverson@gmail.com
|
|
127
|
+
executables: []
|
|
128
|
+
extensions: []
|
|
129
|
+
extra_rdoc_files: []
|
|
130
|
+
files:
|
|
131
|
+
- ".github/workflows/ci.yml"
|
|
132
|
+
- ".rspec"
|
|
133
|
+
- ".rubocop.yml"
|
|
134
|
+
- CHANGELOG.md
|
|
135
|
+
- Gemfile
|
|
136
|
+
- README.md
|
|
137
|
+
- lex-lambda.gemspec
|
|
138
|
+
- lib/legion/extensions/lambda.rb
|
|
139
|
+
- lib/legion/extensions/lambda/client.rb
|
|
140
|
+
- lib/legion/extensions/lambda/helpers/client.rb
|
|
141
|
+
- lib/legion/extensions/lambda/runners/functions.rb
|
|
142
|
+
- lib/legion/extensions/lambda/runners/layers.rb
|
|
143
|
+
- lib/legion/extensions/lambda/runners/management.rb
|
|
144
|
+
- lib/legion/extensions/lambda/version.rb
|
|
145
|
+
homepage: https://github.com/LegionIO/lex-lambda
|
|
146
|
+
licenses:
|
|
147
|
+
- MIT
|
|
148
|
+
metadata:
|
|
149
|
+
homepage_uri: https://github.com/LegionIO/lex-lambda
|
|
150
|
+
source_code_uri: https://github.com/LegionIO/lex-lambda
|
|
151
|
+
documentation_uri: https://github.com/LegionIO/lex-lambda
|
|
152
|
+
changelog_uri: https://github.com/LegionIO/lex-lambda
|
|
153
|
+
bug_tracker_uri: https://github.com/LegionIO/lex-lambda/issues
|
|
154
|
+
rubygems_mfa_required: 'true'
|
|
155
|
+
rdoc_options: []
|
|
156
|
+
require_paths:
|
|
157
|
+
- lib
|
|
158
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
159
|
+
requirements:
|
|
160
|
+
- - ">="
|
|
161
|
+
- !ruby/object:Gem::Version
|
|
162
|
+
version: '3.4'
|
|
163
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
|
+
requirements:
|
|
165
|
+
- - ">="
|
|
166
|
+
- !ruby/object:Gem::Version
|
|
167
|
+
version: '0'
|
|
168
|
+
requirements: []
|
|
169
|
+
rubygems_version: 3.6.9
|
|
170
|
+
specification_version: 4
|
|
171
|
+
summary: LEX::Lambda
|
|
172
|
+
test_files: []
|