Class: Jets::Cfn::Resource::ApiGateway::Deployment
- Inherits:
-
Base
- Object
- Base
- Jets::Cfn::Resource::ApiGateway::Deployment
show all
- Defined in:
- lib/jets/cfn/resource/api_gateway/deployment.rb
Constant Summary
collapse
- @@timestamp =
nil
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
#attributes, #logical_id, #permission, #properties, #replacements, #replacer, #standarize, #template, truncate_id, #type
#camelize
Class Method Details
.logical_id ⇒ Object
69
70
71
|
# File 'lib/jets/cfn/resource/api_gateway/deployment.rb', line 69
def self.logical_id
"ApiDeployment#{timestamp}"
end
|
.stage_name ⇒ Object
51
52
53
54
|
# File 'lib/jets/cfn/resource/api_gateway/deployment.rb', line 51
def self.stage_name
[Jets.short_env, Jets.].compact.join('_').gsub('-','_')
end
|
.timestamp ⇒ Object
61
62
63
|
# File 'lib/jets/cfn/resource/api_gateway/deployment.rb', line 61
def self.timestamp
@@timestamp ||= Time.now.strftime("%Y%m%d%H%M%S")
end
|
Instance Method Details
#definition ⇒ Object
3
4
5
6
7
8
9
10
11
12
13
14
|
# File 'lib/jets/cfn/resource/api_gateway/deployment.rb', line 3
def definition
{
deployment_logical_id => {
Type: "AWS::ApiGateway::Deployment",
Properties: {
Description: "Version #{timestamp} deployed by jets",
RestApiId: "!Ref #{RestApi.logical_id}",
StageName: stage_name,
}
}
}
end
|
#depends_on ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/jets/cfn/resource/api_gateway/deployment.rb', line 29
def depends_on
expression = "#{Jets::Names.templates_folder}/*_controller*"
controller_logical_ids = []
Dir.glob(expression).each do |path|
next unless File.file?(path)
controller_name = path.sub("#{Jets::Names.templates_folder}/", '').sub('.yml', '')
controller_logical_id = controller_name.underscore.camelize
controller_logical_ids << controller_logical_id
end
controller_logical_ids
end
|
#deployment_logical_id ⇒ Object
65
66
67
|
# File 'lib/jets/cfn/resource/api_gateway/deployment.rb', line 65
def deployment_logical_id
self.class.logical_id.underscore
end
|
#outputs(internal = false) ⇒ Object
22
23
24
25
26
27
|
# File 'lib/jets/cfn/resource/api_gateway/deployment.rb', line 22
def outputs(internal=false)
rest_api = internal ? RestApi.internal_logical_id : "RestApi"
{
RestApiUrl: "!Sub 'https://${#{rest_api}}.execute-api.${AWS::Region}.amazonaws.com/#{stage_name}/'",
}
end
|
#parameters ⇒ Object
16
17
18
19
20
|
# File 'lib/jets/cfn/resource/api_gateway/deployment.rb', line 16
def parameters
{
RestApi: "RestApi",
}
end
|
#stage_name ⇒ Object
stage_name: dev, dev-1, dev-2, etc
47
48
49
|
# File 'lib/jets/cfn/resource/api_gateway/deployment.rb', line 47
def stage_name
self.class.stage_name
end
|
#timestamp ⇒ Object
56
57
58
|
# File 'lib/jets/cfn/resource/api_gateway/deployment.rb', line 56
def timestamp
self.class.timestamp
end
|