terraform-enterprise-client 0.0.6 → 0.0.7
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 +5 -5
- data/README.md +11 -53
- data/lib/terraform-enterprise-client.rb +1 -39
- data/lib/terraform-enterprise.rb +1 -0
- data/lib/terraform_enterprise.rb +2 -0
- data/lib/terraform_enterprise/api/client.rb +62 -0
- data/lib/terraform_enterprise/api/request.rb +97 -0
- data/lib/terraform_enterprise/api/resource.rb +48 -0
- data/lib/terraform_enterprise/api/resource_request.rb +12 -0
- data/lib/terraform_enterprise/api/resource_requests/configuration_versions.rb +28 -0
- data/lib/{terraform-enterprise/resource_requests/oauth-tokens.rb → terraform_enterprise/api/resource_requests/oauth_tokens.rb} +5 -4
- data/lib/{terraform-enterprise → terraform_enterprise/api}/resource_requests/organizations.rb +8 -7
- data/lib/terraform_enterprise/api/resource_requests/policies.rb +46 -0
- data/lib/terraform_enterprise/api/resource_requests/policy_checks.rb +18 -0
- data/lib/terraform_enterprise/api/resource_requests/runs.rb +53 -0
- data/lib/{terraform-enterprise → terraform_enterprise/api}/resource_requests/teams.rb +8 -8
- data/lib/terraform_enterprise/api/resource_requests/variables.rb +48 -0
- data/lib/terraform_enterprise/api/resource_requests/workspaces.rb +52 -0
- data/lib/terraform_enterprise/api/response.rb +39 -0
- data/lib/terraform_enterprise/api/version.rb +5 -0
- data/lib/terraform_enterprise_client.rb +1 -0
- metadata +24 -88
- data/bin/tfe +0 -4
- data/lib/terraform-enterprise-command-line.rb +0 -29
- data/lib/terraform-enterprise/client/request.rb +0 -82
- data/lib/terraform-enterprise/client/resource.rb +0 -19
- data/lib/terraform-enterprise/client/resource_request.rb +0 -10
- data/lib/terraform-enterprise/client/response.rb +0 -37
- data/lib/terraform-enterprise/commands/command.rb +0 -46
- data/lib/terraform-enterprise/commands/formatter.rb +0 -93
- data/lib/terraform-enterprise/commands/oauth_tokens_command.rb +0 -16
- data/lib/terraform-enterprise/commands/organizations_command.rb +0 -30
- data/lib/terraform-enterprise/commands/strings.rb +0 -79
- data/lib/terraform-enterprise/commands/teams_command.rb +0 -33
- data/lib/terraform-enterprise/commands/variables_command.rb +0 -61
- data/lib/terraform-enterprise/commands/workspaces_command.rb +0 -87
- data/lib/terraform-enterprise/resource_requests/variables.rb +0 -48
- data/lib/terraform-enterprise/resource_requests/workspaces.rb +0 -45
- data/lib/terraform-enterprise/version.rb +0 -3
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'terraform_enterprise/api/resource_request'
|
2
|
+
|
3
|
+
module TerraformEnterprise
|
4
|
+
module API
|
5
|
+
# Teams resource request
|
6
|
+
class Policies < TerraformEnterprise::API::ResourceRequest
|
7
|
+
def list(params = {})
|
8
|
+
@request.get(:organizations, params[:organization], :policies)
|
9
|
+
end
|
10
|
+
|
11
|
+
def get(params = {})
|
12
|
+
@request.get(:policies, params[:id])
|
13
|
+
end
|
14
|
+
|
15
|
+
def create(params = {})
|
16
|
+
org = params.delete(:organization)
|
17
|
+
data = {
|
18
|
+
attributes: params,
|
19
|
+
type: 'policies'
|
20
|
+
}
|
21
|
+
|
22
|
+
@request.post(:organizations, org, :policies, data: data)
|
23
|
+
end
|
24
|
+
|
25
|
+
def update(params = {})
|
26
|
+
id = params.delete(:id)
|
27
|
+
data = {
|
28
|
+
attributes: params,
|
29
|
+
type: 'policies'
|
30
|
+
}
|
31
|
+
|
32
|
+
@request.patch(:policies, id, data: data)
|
33
|
+
end
|
34
|
+
|
35
|
+
def upload(params = {})
|
36
|
+
headers = { 'Content-Type' => 'application/octet-stream' }
|
37
|
+
path = [:policies, params[:id], :upload]
|
38
|
+
@request.request(:put, path, params[:content], headers)
|
39
|
+
end
|
40
|
+
|
41
|
+
def delete(params = {})
|
42
|
+
@request.delete(:policies, params[:id])
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'terraform_enterprise/api/resource_request'
|
2
|
+
|
3
|
+
module TerraformEnterprise
|
4
|
+
module API
|
5
|
+
# Policy Checks resource request
|
6
|
+
class PolicyChecks < TerraformEnterprise::API::ResourceRequest
|
7
|
+
def list(params = {})
|
8
|
+
@request.get(:runs, params[:run_id], 'policy-checks')
|
9
|
+
end
|
10
|
+
|
11
|
+
def action(params = {})
|
12
|
+
id = params.delete(:id)
|
13
|
+
action = params.delete(:action).to_sym
|
14
|
+
@request.post('policy-checks', id, :actions, action, params)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'terraform_enterprise/api/resource_request'
|
2
|
+
|
3
|
+
module TerraformEnterprise
|
4
|
+
module API
|
5
|
+
# Variables resource request
|
6
|
+
class Runs < TerraformEnterprise::API::ResourceRequest
|
7
|
+
|
8
|
+
|
9
|
+
def list(params = {})
|
10
|
+
@request.get(:workspaces, params[:id], :runs)
|
11
|
+
end
|
12
|
+
|
13
|
+
def create(params = {})
|
14
|
+
data = {
|
15
|
+
attributes: {
|
16
|
+
'is-destroy' => params[:destroy] || false
|
17
|
+
},
|
18
|
+
relationships: {
|
19
|
+
workspace: {
|
20
|
+
data: {
|
21
|
+
type: 'workspaces',
|
22
|
+
id: params[:workspace_id]
|
23
|
+
}
|
24
|
+
}
|
25
|
+
},
|
26
|
+
type: 'runs'
|
27
|
+
}
|
28
|
+
|
29
|
+
if params[:configuration_version_id]
|
30
|
+
data[:relationships]['configuration-version'] = {
|
31
|
+
data: {
|
32
|
+
type: 'configuration-version',
|
33
|
+
id: params[:configuration_version_id]
|
34
|
+
}
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
@request.post(:runs, data: data)
|
39
|
+
end
|
40
|
+
|
41
|
+
def get(params = {})
|
42
|
+
id = params.delete(:id)
|
43
|
+
@request.get(:runs, id, params)
|
44
|
+
end
|
45
|
+
|
46
|
+
def action(params = {})
|
47
|
+
id = params.delete(:id)
|
48
|
+
action = params.delete(:action).to_sym
|
49
|
+
@request.post(:runs, id, :actions, action, params)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
1
|
+
require 'terraform_enterprise/api/resource_request'
|
2
2
|
|
3
|
-
module TerraformEnterprise
|
3
|
+
module TerraformEnterprise
|
4
4
|
module API
|
5
|
+
# Teams resource request
|
5
6
|
class Teams < TerraformEnterprise::API::ResourceRequest
|
6
|
-
|
7
|
-
def list(params={})
|
7
|
+
def list(params = {})
|
8
8
|
@request.get(:organizations, params[:organization], :teams)
|
9
9
|
end
|
10
10
|
|
11
|
-
def get(params={})
|
11
|
+
def get(params = {})
|
12
12
|
@request.get(:teams, params[:id])
|
13
13
|
end
|
14
14
|
|
15
|
-
def create(params={})
|
15
|
+
def create(params = {})
|
16
16
|
org = params.delete(:organization)
|
17
17
|
data = {
|
18
18
|
attributes: params,
|
@@ -22,9 +22,9 @@ module TerraformEnterprise
|
|
22
22
|
@request.post(:organizations, org, :teams, data: data)
|
23
23
|
end
|
24
24
|
|
25
|
-
def delete(params={})
|
25
|
+
def delete(params = {})
|
26
26
|
@request.delete(:teams, params[:id])
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
30
|
-
end
|
30
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'terraform_enterprise/api/resource_request'
|
2
|
+
|
3
|
+
module TerraformEnterprise
|
4
|
+
module API
|
5
|
+
# Variables resource request
|
6
|
+
class Variables < TerraformEnterprise::API::ResourceRequest
|
7
|
+
def list(params = {})
|
8
|
+
filter = {}
|
9
|
+
filter[:workspace] = { name: params[:workspace] } if params[:workspace]
|
10
|
+
filter[:organization] = { name: params[:organization] } if params[:organization]
|
11
|
+
@request.get(:vars, filter: filter)
|
12
|
+
end
|
13
|
+
|
14
|
+
def get(params = {})
|
15
|
+
@request.get(:vars, params[:id])
|
16
|
+
end
|
17
|
+
|
18
|
+
def create(params = {})
|
19
|
+
org = params.delete(:organization)
|
20
|
+
workspace = params.delete(:workspace)
|
21
|
+
data = {
|
22
|
+
attributes: params,
|
23
|
+
type: 'vars'
|
24
|
+
}
|
25
|
+
filter = {
|
26
|
+
organization: { name: org },
|
27
|
+
workspace: { name: workspace }
|
28
|
+
}
|
29
|
+
|
30
|
+
@request.post(:vars, data: data, filter: filter)
|
31
|
+
end
|
32
|
+
|
33
|
+
def update(params = {})
|
34
|
+
id = params.delete(:id)
|
35
|
+
data = {
|
36
|
+
attributes: params,
|
37
|
+
type: 'vars'
|
38
|
+
}
|
39
|
+
|
40
|
+
@request.patch(:vars, id, data: data)
|
41
|
+
end
|
42
|
+
|
43
|
+
def delete(params = {})
|
44
|
+
@request.delete(:vars, params[:id])
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'terraform_enterprise/api/resource_request'
|
2
|
+
|
3
|
+
module TerraformEnterprise
|
4
|
+
module API
|
5
|
+
# Workspace resource request
|
6
|
+
class Workspaces < TerraformEnterprise::API::ResourceRequest
|
7
|
+
def list(params = {})
|
8
|
+
@request.get(:organizations, params[:organization], :workspaces)
|
9
|
+
end
|
10
|
+
|
11
|
+
def get(params = {})
|
12
|
+
organization = params[:organization]
|
13
|
+
workspace = params[:workspace]
|
14
|
+
@request.get(:organizations, organization, :workspaces, workspace)
|
15
|
+
end
|
16
|
+
|
17
|
+
def create(params = {})
|
18
|
+
org = params.delete(:organization)
|
19
|
+
data = {
|
20
|
+
attributes: params,
|
21
|
+
type: 'workspaces'
|
22
|
+
}
|
23
|
+
|
24
|
+
@request.post(:organizations, org, :workspaces, data: data)
|
25
|
+
end
|
26
|
+
|
27
|
+
def update(params = {})
|
28
|
+
org = params.delete(:organization)
|
29
|
+
id = params.delete(:workspace)
|
30
|
+
|
31
|
+
data = {
|
32
|
+
attributes: params,
|
33
|
+
type: 'workspaces'
|
34
|
+
}
|
35
|
+
|
36
|
+
@request.patch(:organizations, org, :workspaces, id, data: data)
|
37
|
+
end
|
38
|
+
|
39
|
+
def delete(params = {})
|
40
|
+
organization = params[:organization]
|
41
|
+
workspace = params[:workspace]
|
42
|
+
@request.delete(:organizations, organization, :workspaces, workspace)
|
43
|
+
end
|
44
|
+
|
45
|
+
def action(params = {})
|
46
|
+
id = params[:id]
|
47
|
+
action = params[:action].to_sym
|
48
|
+
@request.post(:workspaces, id, :actions, action)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative 'resource'
|
2
|
+
|
3
|
+
module TerraformEnterprise
|
4
|
+
module API
|
5
|
+
# Wrapps the JSON-API HTTP response for easy access to data and resources
|
6
|
+
class Response
|
7
|
+
include TerraformEnterprise::API
|
8
|
+
|
9
|
+
attr_reader :code, :body, :data, :resource, :resources, :errors
|
10
|
+
def initialize(rest_client_response)
|
11
|
+
@code = rest_client_response.code
|
12
|
+
@body = parse(rest_client_response.body)
|
13
|
+
|
14
|
+
return unless @body.is_a?(Hash)
|
15
|
+
|
16
|
+
@data = @body['data'] || @body
|
17
|
+
@errors = @body['errors'] || []
|
18
|
+
@resource = Resource.new(@body) if @data.is_a?(Hash)
|
19
|
+
@resources = @data.map { |row| Resource.new('data' => row) } if @data.is_a?(Array)
|
20
|
+
end
|
21
|
+
|
22
|
+
def errors?
|
23
|
+
@body.is_a?(Hash) && @body['errors'] && @body['errors'].is_a?(Array)
|
24
|
+
end
|
25
|
+
|
26
|
+
def success?
|
27
|
+
@code.between?(200, 299)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def parse(str)
|
33
|
+
JSON.parse(str)
|
34
|
+
rescue JSON::ParserError
|
35
|
+
str
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'terraform_enterprise'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terraform-enterprise-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maciej Skierkowski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -30,70 +30,9 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 2.0.2
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: colorize
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '0.8'
|
40
|
-
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: 0.8.1
|
43
|
-
type: :runtime
|
44
|
-
prerelease: false
|
45
|
-
version_requirements: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '0.8'
|
50
|
-
- - ">="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 0.8.1
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: thor
|
55
|
-
requirement: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '0.20'
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 0.20.0
|
63
|
-
type: :runtime
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0.20'
|
70
|
-
- - ">="
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: 0.20.0
|
73
|
-
- !ruby/object:Gem::Dependency
|
74
|
-
name: terminal-table
|
75
|
-
requirement: !ruby/object:Gem::Requirement
|
76
|
-
requirements:
|
77
|
-
- - "~>"
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: '1.8'
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 1.8.0
|
83
|
-
type: :runtime
|
84
|
-
prerelease: false
|
85
|
-
version_requirements: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '1.8'
|
90
|
-
- - ">="
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
version: 1.8.0
|
93
33
|
description: " Ruby client that supports all of the Terraform Enterprise API methods. "
|
94
34
|
email: maciej@skierkowski.com
|
95
|
-
executables:
|
96
|
-
- tfe
|
35
|
+
executables: []
|
97
36
|
extensions: []
|
98
37
|
extra_rdoc_files:
|
99
38
|
- LICENSE
|
@@ -101,27 +40,25 @@ extra_rdoc_files:
|
|
101
40
|
files:
|
102
41
|
- LICENSE
|
103
42
|
- README.md
|
104
|
-
- bin/tfe
|
105
43
|
- lib/terraform-enterprise-client.rb
|
106
|
-
- lib/terraform-enterprise
|
107
|
-
- lib/
|
108
|
-
- lib/
|
109
|
-
- lib/
|
110
|
-
- lib/
|
111
|
-
- lib/
|
112
|
-
- lib/
|
113
|
-
- lib/
|
114
|
-
- lib/
|
115
|
-
- lib/
|
116
|
-
- lib/
|
117
|
-
- lib/
|
118
|
-
- lib/
|
119
|
-
- lib/
|
120
|
-
- lib/
|
121
|
-
- lib/
|
122
|
-
- lib/
|
123
|
-
- lib/
|
124
|
-
- lib/terraform-enterprise/version.rb
|
44
|
+
- lib/terraform-enterprise.rb
|
45
|
+
- lib/terraform_enterprise.rb
|
46
|
+
- lib/terraform_enterprise/api/client.rb
|
47
|
+
- lib/terraform_enterprise/api/request.rb
|
48
|
+
- lib/terraform_enterprise/api/resource.rb
|
49
|
+
- lib/terraform_enterprise/api/resource_request.rb
|
50
|
+
- lib/terraform_enterprise/api/resource_requests/configuration_versions.rb
|
51
|
+
- lib/terraform_enterprise/api/resource_requests/oauth_tokens.rb
|
52
|
+
- lib/terraform_enterprise/api/resource_requests/organizations.rb
|
53
|
+
- lib/terraform_enterprise/api/resource_requests/policies.rb
|
54
|
+
- lib/terraform_enterprise/api/resource_requests/policy_checks.rb
|
55
|
+
- lib/terraform_enterprise/api/resource_requests/runs.rb
|
56
|
+
- lib/terraform_enterprise/api/resource_requests/teams.rb
|
57
|
+
- lib/terraform_enterprise/api/resource_requests/variables.rb
|
58
|
+
- lib/terraform_enterprise/api/resource_requests/workspaces.rb
|
59
|
+
- lib/terraform_enterprise/api/response.rb
|
60
|
+
- lib/terraform_enterprise/api/version.rb
|
61
|
+
- lib/terraform_enterprise_client.rb
|
125
62
|
homepage: http://github.com/skierkowski/terraform-enterprise-client
|
126
63
|
licenses:
|
127
64
|
- MPL-2.0
|
@@ -134,7 +71,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
71
|
requirements:
|
135
72
|
- - ">="
|
136
73
|
- !ruby/object:Gem::Version
|
137
|
-
version: 2.
|
74
|
+
version: 2.3.0
|
138
75
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
76
|
requirements:
|
140
77
|
- - ">="
|
@@ -142,9 +79,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
79
|
version: '0'
|
143
80
|
requirements: []
|
144
81
|
rubyforge_project:
|
145
|
-
rubygems_version: 2.
|
82
|
+
rubygems_version: 2.7.6
|
146
83
|
signing_key:
|
147
84
|
specification_version: 4
|
148
|
-
summary: Ruby client for
|
85
|
+
summary: Ruby client for bunthe official Terraform Enterprise API
|
149
86
|
test_files: []
|
150
|
-
has_rdoc:
|