kinetic_sdk 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/.yardoc-includes/yard-helpers.rb +14 -0
  3. data/.yardopts +7 -0
  4. data/CHANGELOG.md +41 -0
  5. data/GettingStarted.md +6 -12
  6. data/README.md +85 -37
  7. data/Rakefile +13 -0
  8. data/kinetic_sdk.gemspec +33 -0
  9. data/lib/kinetic_sdk/agent/agent-sdk.rb +90 -0
  10. data/lib/kinetic_sdk/agent/lib/bridges.rb +92 -0
  11. data/lib/kinetic_sdk/agent/lib/filestores.rb +91 -0
  12. data/lib/kinetic_sdk/agent/lib/handler.rb +91 -0
  13. data/lib/kinetic_sdk/bridgehub/bridgehub-sdk.rb +11 -3
  14. data/lib/kinetic_sdk/bridgehub/lib/access_keys.rb +5 -5
  15. data/lib/kinetic_sdk/bridgehub/lib/bridge.rb +5 -5
  16. data/lib/kinetic_sdk/{request_ce/request-ce-sdk.rb → core/core-sdk.rb} +30 -16
  17. data/lib/kinetic_sdk/core/lib/attribute_definitions.rb +500 -0
  18. data/lib/kinetic_sdk/core/lib/bridges.rb +141 -0
  19. data/lib/kinetic_sdk/{request_ce → core}/lib/categories.rb +3 -3
  20. data/lib/kinetic_sdk/{request_ce → core}/lib/datastore_form.rb +8 -8
  21. data/lib/kinetic_sdk/{request_ce → core}/lib/datastore_submissions.rb +20 -9
  22. data/lib/kinetic_sdk/{request_ce → core}/lib/form.rb +7 -7
  23. data/lib/kinetic_sdk/{request_ce → core}/lib/form_types.rb +4 -4
  24. data/lib/kinetic_sdk/{request_ce → core}/lib/jwt.rb +4 -4
  25. data/lib/kinetic_sdk/{request_ce → core}/lib/kapp.rb +7 -7
  26. data/lib/kinetic_sdk/{request_ce → core}/lib/meta.rb +3 -3
  27. data/lib/kinetic_sdk/{request_ce → core}/lib/oauth.rb +4 -4
  28. data/lib/kinetic_sdk/{request_ce → core}/lib/security_policy_definitions.rb +11 -11
  29. data/lib/kinetic_sdk/core/lib/space.rb +156 -0
  30. data/lib/kinetic_sdk/{request_ce → core}/lib/submissions.rb +11 -11
  31. data/lib/kinetic_sdk/{request_ce → core}/lib/system_api.rb +19 -7
  32. data/lib/kinetic_sdk/{request_ce → core}/lib/teams.rb +9 -9
  33. data/lib/kinetic_sdk/{request_ce → core}/lib/users.rb +15 -15
  34. data/lib/kinetic_sdk/{request_ce → core}/lib/webhook_jobs.rb +5 -5
  35. data/lib/kinetic_sdk/{request_ce → core}/lib/webhooks.rb +9 -9
  36. data/lib/kinetic_sdk/discussions/discussions-sdk.rb +12 -4
  37. data/lib/kinetic_sdk/discussions/lib/discussions.rb +8 -8
  38. data/lib/kinetic_sdk/discussions/lib/invitations.rb +9 -9
  39. data/lib/kinetic_sdk/discussions/lib/messages.rb +8 -8
  40. data/lib/kinetic_sdk/discussions/lib/meta.rb +1 -1
  41. data/lib/kinetic_sdk/discussions/lib/participants.rb +5 -5
  42. data/lib/kinetic_sdk/discussions/lib/related_items.rb +4 -4
  43. data/lib/kinetic_sdk/discussions/lib/websockets.rb +9 -9
  44. data/lib/kinetic_sdk/filehub/filehub-sdk.rb +11 -3
  45. data/lib/kinetic_sdk/filehub/lib/access_keys.rb +5 -5
  46. data/lib/kinetic_sdk/filehub/lib/filestores.rb +5 -5
  47. data/lib/kinetic_sdk/task/lib/access_keys.rb +35 -7
  48. data/lib/kinetic_sdk/task/lib/categories.rb +30 -17
  49. data/lib/kinetic_sdk/task/lib/config.rb +14 -14
  50. data/lib/kinetic_sdk/task/lib/engine.rb +1 -1
  51. data/lib/kinetic_sdk/task/lib/errors.rb +10 -10
  52. data/lib/kinetic_sdk/task/lib/export.rb +32 -0
  53. data/lib/kinetic_sdk/task/lib/groups.rb +23 -10
  54. data/lib/kinetic_sdk/task/lib/handlers.rb +27 -11
  55. data/lib/kinetic_sdk/task/lib/health.rb +11 -3
  56. data/lib/kinetic_sdk/task/lib/license.rb +4 -4
  57. data/lib/kinetic_sdk/task/lib/policy_rules.rb +25 -12
  58. data/lib/kinetic_sdk/task/lib/runs.rb +43 -0
  59. data/lib/kinetic_sdk/task/lib/setup.rb +2 -2
  60. data/lib/kinetic_sdk/task/lib/sources.rb +39 -8
  61. data/lib/kinetic_sdk/task/lib/tasks.rb +1 -1
  62. data/lib/kinetic_sdk/task/lib/trees.rb +84 -28
  63. data/lib/kinetic_sdk/task/lib/users.rb +6 -6
  64. data/lib/kinetic_sdk/task/task-sdk.rb +16 -4
  65. data/lib/kinetic_sdk/utils/kinetic-export-utils.rb +157 -0
  66. data/lib/kinetic_sdk/utils/kinetic-http.rb +388 -98
  67. data/lib/kinetic_sdk/utils/logger.rb +82 -46
  68. data/lib/kinetic_sdk/utils/prettier-xml-formatter.rb +60 -0
  69. data/lib/kinetic_sdk/version.rb +1 -1
  70. data/lib/kinetic_sdk.rb +5 -2
  71. metadata +41 -27
  72. data/lib/kinetic_sdk/request_ce/lib/attribute_definitions.rb +0 -153
  73. data/lib/kinetic_sdk/request_ce/lib/bridges.rb +0 -66
  74. data/lib/kinetic_sdk/request_ce/lib/space.rb +0 -89
@@ -1,5 +1,5 @@
1
1
  module KineticSdk
2
- class RequestCe
2
+ class Core
3
3
 
4
4
  # Add a Datastore Form
5
5
  #
@@ -20,7 +20,7 @@ module KineticSdk
20
20
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
21
21
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
22
22
  def add_datastore_form(form_properties={}, headers=default_headers)
23
- info("Adding the \"#{form_properties['name']}\" Form.")
23
+ @logger.info("Adding the \"#{form_properties['name']}\" Form.")
24
24
  post("#{@api_url}/datastore/forms", form_properties, headers)
25
25
  end
26
26
 
@@ -30,7 +30,7 @@ module KineticSdk
30
30
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
31
31
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
32
32
  def delete_datastore_form(form_slug, headers=default_headers)
33
- info("Deleting the \"#{form_slug}\" Datastore Form")
33
+ @logger.info("Deleting the \"#{form_slug}\" Datastore Form")
34
34
  delete("#{@api_url}/datastore/forms/#{form_slug}", headers)
35
35
  end
36
36
 
@@ -40,7 +40,7 @@ module KineticSdk
40
40
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
41
41
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
42
42
  def export_datastore_form(form_slug, headers=default_headers)
43
- info("Exporting the \"#{form_slug}\" Datastore Form.")
43
+ @logger.info("Exporting the \"#{form_slug}\" Datastore Form.")
44
44
  get("#{@api_url}/datastore/forms/#{form_slug}", { 'export' => true }, headers)
45
45
  end
46
46
 
@@ -50,7 +50,7 @@ module KineticSdk
50
50
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
51
51
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
52
52
  def find_datastore_forms(params={}, headers=default_headers)
53
- info("Finding Forms.")
53
+ @logger.info("Finding Forms.")
54
54
  get("#{@api_url}/datastore/forms", params, headers)
55
55
  end
56
56
 
@@ -61,7 +61,7 @@ module KineticSdk
61
61
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
62
62
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
63
63
  def find_datastore_form(form_slug, params={}, headers=default_headers)
64
- info("Finding the \"#{form_slug}\" Datastore Form")
64
+ @logger.info("Finding the \"#{form_slug}\" Datastore Form")
65
65
  get("#{@api_url}/datastore/forms/#{form_slug}", params, headers)
66
66
  end
67
67
 
@@ -85,7 +85,7 @@ module KineticSdk
85
85
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
86
86
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
87
87
  def update_datastore_form(form_slug, properties={}, headers=default_headers)
88
- info("Updating the \"#{form_slug}\" Datastore Form.")
88
+ @logger.info("Updating the \"#{form_slug}\" Datastore Form.")
89
89
  put("#{@api_url}/datastore/forms/#{form_slug}", properties, headers)
90
90
  end
91
91
 
@@ -102,7 +102,7 @@ module KineticSdk
102
102
  "indexes" => indexes
103
103
  }
104
104
  }
105
- info("Building indexes for the \"#{form_slug}\" Datastore Form.")
105
+ @logger.info("Building indexes for the \"#{form_slug}\" Datastore Form.")
106
106
  post("#{@api_url}/datastore/forms/#{form_slug}/backgroundJobs", payload, headers)
107
107
  end
108
108
 
@@ -1,5 +1,5 @@
1
1
  module KineticSdk
2
- class RequestCe
2
+ class Core
3
3
 
4
4
  # Add a Datastore Submission
5
5
  #
@@ -18,7 +18,7 @@ module KineticSdk
18
18
  # set parent hash if parent was passed as a string
19
19
  payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
20
20
  # Create the submission
21
- info("Adding a submission in the \"#{form_slug}\" Datastore Form.")
21
+ @logger.info("Adding a submission in the \"#{form_slug}\" Datastore Form.")
22
22
  post("#{@api_url}/datastore/forms/#{form_slug}/submissions", payload, headers)
23
23
  end
24
24
 
@@ -40,7 +40,7 @@ module KineticSdk
40
40
  # set parent hash if parent was passed as a string
41
41
  payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
42
42
  # Create the submission
43
- info("Adding a submission page in the \"#{form_slug}\" Datastore Form.")
43
+ @logger.info("Adding a submission page in the \"#{form_slug}\" Datastore Form.")
44
44
  post("#{@api_url}/datastore/forms/#{form_slug}/submissions?page=#{encode(page_name)}", payload, headers)
45
45
  end
46
46
 
@@ -63,7 +63,7 @@ module KineticSdk
63
63
  # set parent hash if parent was passed as a string
64
64
  payload["parent"] = { "id" => payload["parent"] } if payload["parent"].is_a? String
65
65
  # Create the submission
66
- info("Patching a submission in the \"#{form_slug}\" Form.")
66
+ @logger.info("Patching a submission in the \"#{form_slug}\" Form.")
67
67
  patch("#{@api_url}/datastore/forms/#{form_slug}/submissions", payload, headers)
68
68
  end
69
69
 
@@ -80,7 +80,7 @@ module KineticSdk
80
80
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
81
81
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
82
82
  def find_all_form_datastore_submissions(form_slug, params={}, headers=default_headers)
83
- info("Finding submissions for the \"#{form_slug}\" Datastore Form.")
83
+ @logger.info("Finding submissions for the \"#{form_slug}\" Datastore Form.")
84
84
  # Make the initial request of pages submissions
85
85
  response = find_form_datastore_submissions(form_slug, params, headers)
86
86
  # Build the Messages Array
@@ -119,9 +119,9 @@ module KineticSdk
119
119
  # Get next page token
120
120
  token = params["pageToken"]
121
121
  if token.nil?
122
- info("Finding first page of submissions for the \"#{form_slug}\" Datastore.")
122
+ @logger.info("Finding first page of submissions for the \"#{form_slug}\" Datastore.")
123
123
  else
124
- info("Finding page of submissions starting with token \"#{token}\" for the \"#{form_slug}\" Form.")
124
+ @logger.info("Finding page of submissions starting with token \"#{token}\" for the \"#{form_slug}\" Form.")
125
125
  end
126
126
 
127
127
  # Build Submission URL
@@ -130,6 +130,17 @@ module KineticSdk
130
130
  get(url, params, headers)
131
131
  end
132
132
 
133
+ # Find a Datastore submission
134
+ #
135
+ # @param submission_id [String] String value of the Submission Id (UUID)
136
+ # @param params [Hash] Query parameters that are added to the URL, such as +include+
137
+ # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
138
+ # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
139
+ def find_datastore_submission(submission_id, params={}, headers=default_headers)
140
+ @logger.info("Finding Datastore Submission \"#{submission_id}\"")
141
+ get("#{@api_url}/datastore/submissions/#{encode(submission_id)}", params, headers)
142
+ end
143
+
133
144
 
134
145
  # Update a Datastore submission
135
146
  #
@@ -138,7 +149,7 @@ module KineticSdk
138
149
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
139
150
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
140
151
  def update_datastore_submission(submission_id, body={}, headers=default_headers)
141
- info("Updating Datastore Submission \"#{submission_id}\"")
152
+ @logger.info("Updating Datastore Submission \"#{submission_id}\"")
142
153
  put("#{@api_url}/datastore/submissions/#{encode(submission_id)}", body, headers)
143
154
  end
144
155
 
@@ -149,7 +160,7 @@ module KineticSdk
149
160
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
150
161
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
151
162
  def delete_datastore_submission(submission_id, headers=default_headers)
152
- info("Deleting Datastore Submission \"#{submission_id}\"")
163
+ @logger.info("Deleting Datastore Submission \"#{submission_id}\"")
153
164
  delete("#{@api_url}/datastore/submissions/#{encode(submission_id)}", headers)
154
165
  end
155
166
 
@@ -1,5 +1,5 @@
1
1
  module KineticSdk
2
- class RequestCe
2
+ class Core
3
3
 
4
4
  # Add a Form
5
5
  #
@@ -21,7 +21,7 @@ module KineticSdk
21
21
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
22
22
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
23
23
  def add_form(kapp_slug, form_properties={}, headers=default_headers)
24
- info("Adding the \"#{form_properties['name']}\" Form.")
24
+ @logger.info("Adding the \"#{form_properties['name']}\" Form.")
25
25
  post("#{@api_url}/kapps/#{kapp_slug}/forms", form_properties, headers)
26
26
  end
27
27
 
@@ -32,7 +32,7 @@ module KineticSdk
32
32
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
33
33
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
34
34
  def delete_form(kapp_slug, form_slug, headers=default_headers)
35
- info("Deleting the \"#{form_slug}\" Form in the \"#{kapp_slug}\" Kapp.")
35
+ @logger.info("Deleting the \"#{form_slug}\" Form in the \"#{kapp_slug}\" Kapp.")
36
36
  delete("#{@api_url}/kapps/#{kapp_slug}/forms/#{form_slug}", headers)
37
37
  end
38
38
 
@@ -43,7 +43,7 @@ module KineticSdk
43
43
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
44
44
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
45
45
  def export_form(kapp_slug, form_slug, headers=default_headers)
46
- info("Exporting the \"#{form_slug}\" Form in the \"#{kapp_slug}\" Kapp.")
46
+ @logger.info("Exporting the \"#{form_slug}\" Form in the \"#{kapp_slug}\" Kapp.")
47
47
  get("#{@api_url}/kapps/#{kapp_slug}/forms/#{form_slug}", { 'export' => true }, headers)
48
48
  end
49
49
 
@@ -54,7 +54,7 @@ module KineticSdk
54
54
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
55
55
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
56
56
  def find_forms(kapp_slug, params={}, headers=default_headers)
57
- info("Finding Forms.")
57
+ @logger.info("Finding Forms.")
58
58
  get("#{@api_url}/kapps/#{kapp_slug}/forms", params, headers)
59
59
  end
60
60
 
@@ -66,7 +66,7 @@ module KineticSdk
66
66
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
67
67
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
68
68
  def find_form(kapp_slug, form_slug, params={}, headers=default_headers)
69
- info("Finding the \"#{form_slug}\" Form in the \"#{kapp_slug}\" Kapp.")
69
+ @logger.info("Finding the \"#{form_slug}\" Form in the \"#{kapp_slug}\" Kapp.")
70
70
  get("#{@api_url}/kapps/#{kapp_slug}/forms/#{form_slug}", params, headers)
71
71
  end
72
72
 
@@ -91,7 +91,7 @@ module KineticSdk
91
91
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
92
92
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
93
93
  def update_form(kapp_slug, form_slug, properties={}, headers=default_headers)
94
- info("Updating the \"#{form_slug}\" Form in the \"#{kapp_slug}\" Kapp.")
94
+ @logger.info("Updating the \"#{form_slug}\" Form in the \"#{kapp_slug}\" Kapp.")
95
95
  put("#{@api_url}/kapps/#{kapp_slug}/forms/#{form_slug}", properties, headers)
96
96
  end
97
97
 
@@ -1,5 +1,5 @@
1
1
  module KineticSdk
2
- class RequestCe
2
+ class Core
3
3
 
4
4
  # Add a form type on a Kapp
5
5
  #
@@ -10,7 +10,7 @@ module KineticSdk
10
10
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
11
11
  def add_form_type_on_kapp(kapp_slug, body, headers=default_headers)
12
12
  raise StandardError.new "Form Type properties is not valid, must be a Hash." unless body.is_a? Hash
13
- info("Adding Form Type \"#{body['name']}\" for \"#{kapp_slug}\" kapp")
13
+ @logger.info("Adding Form Type \"#{body['name']}\" for \"#{kapp_slug}\" kapp")
14
14
  post("#{@api_url}/kapps/#{kapp_slug}/formTypes", body, headers)
15
15
  end
16
16
 
@@ -21,7 +21,7 @@ module KineticSdk
21
21
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
22
22
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
23
23
  def delete_form_type(kapp_slug, name, headers=default_headers)
24
- info("Deleting form type \"#{name}\" from \"#{kapp_slug}\" kapp")
24
+ @logger.info("Deleting form type \"#{name}\" from \"#{kapp_slug}\" kapp")
25
25
  delete("#{@api_url}/kapps/#{kapp_slug}/formTypes/#{encode(name)}", headers)
26
26
  end
27
27
 
@@ -43,7 +43,7 @@ module KineticSdk
43
43
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
44
44
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
45
45
  def find_form_types_on_kapp(kapp_slug, params={}, headers=default_headers)
46
- info("Finding Form Types for \"#{kapp_slug}\" kapp")
46
+ @logger.info("Finding Form Types for \"#{kapp_slug}\" kapp")
47
47
  get("#{@api_url}/kapps/#{kapp_slug}/formTypes", params, headers)
48
48
  end
49
49
 
@@ -1,7 +1,7 @@
1
1
  module KineticSdk
2
- class RequestCe
2
+ class Core
3
3
 
4
- # Gets an authentication code
4
+ # Gets an authentication token
5
5
  #
6
6
  # @param client_id [String] the oauth client id
7
7
  # @param client_secret [String] the oauth client secret
@@ -11,7 +11,7 @@ module KineticSdk
11
11
  # retrieve the jwt code
12
12
  jwt_code = jwt_code(client_id, headers)
13
13
  # retrieve the jwt token
14
- info("Retrieving JWT authorization token")
14
+ @logger.info("Retrieving JWT authorization token")
15
15
  url = "#{@server}/app/oauth/token?grant_type=authorization_code&response_type=token&client_id=#{client_id}&code=#{jwt_code}"
16
16
  token_headers = header_accept_json.merge(header_basic_auth(client_id, client_secret))
17
17
  response = post(url, {}, token_headers, 0)
@@ -33,7 +33,7 @@ module KineticSdk
33
33
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
34
34
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
35
35
  def jwt_code(client_id, headers=default_headers)
36
- info("Retrieving JWT authorization code")
36
+ @logger.info("Retrieving JWT authorization code")
37
37
  url = "#{@server}/app/oauth/authorize?grant_type=authorization_code&response_type=code&client_id=#{client_id}"
38
38
  response = post(url, {}, headers, -1)
39
39
 
@@ -1,5 +1,5 @@
1
1
  module KineticSdk
2
- class RequestCe
2
+ class Core
3
3
 
4
4
  # Add a Kapp
5
5
  #
@@ -22,7 +22,7 @@ module KineticSdk
22
22
  "name" => kapp_name,
23
23
  "slug" => kapp_slug
24
24
  })
25
- info("Adding the \"#{kapp_name}\" Kapp.")
25
+ @logger.info("Adding the \"#{kapp_name}\" Kapp.")
26
26
  post("#{@api_url}/kapps", properties, headers)
27
27
  end
28
28
 
@@ -32,7 +32,7 @@ module KineticSdk
32
32
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
33
33
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
34
34
  def delete_kapp(kapp_slug, headers=default_headers)
35
- info("Deleting the \"#{kapp_slug}\" Kapp.")
35
+ @logger.info("Deleting the \"#{kapp_slug}\" Kapp.")
36
36
  delete("#{@api_url}/kapps/#{kapp_slug}", headers)
37
37
  end
38
38
 
@@ -42,7 +42,7 @@ module KineticSdk
42
42
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
43
43
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
44
44
  def export_kapp(kapp_slug, headers=default_headers)
45
- info("Exporting the \"#{kapp_slug}\" Kapp.")
45
+ @logger.info("Exporting the \"#{kapp_slug}\" Kapp.")
46
46
  get("#{@api_url}/kapps/#{kapp_slug}", { 'export' => true }, headers)
47
47
  end
48
48
 
@@ -52,7 +52,7 @@ module KineticSdk
52
52
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
53
53
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
54
54
  def find_kapps(params={}, headers=default_headers)
55
- info("Finding Kapps.")
55
+ @logger.info("Finding Kapps.")
56
56
  get("#{@api_url}/kapps", params, headers)
57
57
  end
58
58
 
@@ -63,7 +63,7 @@ module KineticSdk
63
63
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
64
64
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
65
65
  def find_kapp(kapp_slug, params={}, headers=default_headers)
66
- info("Finding Kapp \"#{kapp_slug}\"")
66
+ @logger.info("Finding Kapp \"#{kapp_slug}\"")
67
67
  get("#{@api_url}/kapps/#{kapp_slug}", params, headers)
68
68
  end
69
69
 
@@ -85,7 +85,7 @@ module KineticSdk
85
85
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
86
86
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
87
87
  def update_kapp(kapp_slug, properties={}, headers=default_headers)
88
- info("Updating the \"#{kapp_slug}\" Kapp.")
88
+ @logger.info("Updating the \"#{kapp_slug}\" Kapp.")
89
89
  put("#{@api_url}/kapps/#{kapp_slug}", properties, headers)
90
90
  end
91
91
 
@@ -1,12 +1,12 @@
1
1
  module KineticSdk
2
- class RequestCe
2
+ class Core
3
3
 
4
- # Retrieve Request CE application version
4
+ # Retrieve Core application version
5
5
  #
6
6
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
7
7
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
8
8
  def app_version(headers=default_headers)
9
- info("Retrieving Request CE application version.")
9
+ @logger.info("Retrieving Core application version.")
10
10
  get("#{@api_url}/version", {}, headers)
11
11
  end
12
12
 
@@ -1,5 +1,5 @@
1
1
  module KineticSdk
2
- class RequestCe
2
+ class Core
3
3
 
4
4
  # Add an OAuth client
5
5
  #
@@ -7,7 +7,7 @@ module KineticSdk
7
7
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
8
8
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
9
9
  def add_oauth_client(options, headers=default_headers)
10
- info("Adding the \"#{options['clientId']}\" OAuth client")
10
+ @logger.info("Adding the \"#{options['clientId']}\" OAuth client")
11
11
  post("#{@api_url}/oauthClients", options, headers)
12
12
  end
13
13
 
@@ -18,7 +18,7 @@ module KineticSdk
18
18
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
19
19
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
20
20
  def find_oauth_client(client_id, params={}, headers=default_headers)
21
- info("Finding OAuth Client \"#{client_id}\"")
21
+ @logger.info("Finding OAuth Client \"#{client_id}\"")
22
22
  get("#{@api_url}/oauthClients/#{encode(client_id)}", params, headers)
23
23
  end
24
24
 
@@ -29,7 +29,7 @@ module KineticSdk
29
29
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
30
30
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
31
31
  def update_oauth_client(client_id, options, headers=default_headers)
32
- info("Updating the \"#{client_id}\" OAuth client")
32
+ @logger.info("Updating the \"#{client_id}\" OAuth client")
33
33
  put("#{@api_url}/oauthClients/#{encode(client_id)}", options, headers)
34
34
  end
35
35
 
@@ -1,5 +1,5 @@
1
1
  module KineticSdk
2
- class RequestCe
2
+ class Core
3
3
 
4
4
  # Add a Space security policy definition
5
5
  #
@@ -11,7 +11,7 @@ module KineticSdk
11
11
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
12
12
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
13
13
  def add_space_security_policy_definition(body, headers=default_headers)
14
- info("Adding Space Security Policy Definition \"#{body['name']}\".")
14
+ @logger.info("Adding Space Security Policy Definition \"#{body['name']}\".")
15
15
  # Create the space security policy definition
16
16
  post("#{@api_url}/securityPolicyDefinitions", body, headers)
17
17
  end
@@ -22,7 +22,7 @@ module KineticSdk
22
22
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
23
23
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
24
24
  def delete_space_security_policy_definition(name, headers=default_headers)
25
- info("Deleting Space Security Policy Definition \"#{name}\".")
25
+ @logger.info("Deleting Space Security Policy Definition \"#{name}\".")
26
26
  # Delete the space security policy definition
27
27
  delete("#{@api_url}/securityPolicyDefinitions/#{encode(name)}", headers)
28
28
  end
@@ -43,7 +43,7 @@ module KineticSdk
43
43
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
44
44
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
45
45
  def find_space_security_policy_definitions(params={}, headers=default_headers)
46
- info("Finding Space Security Policy Definitions.")
46
+ @logger.info("Finding Space Security Policy Definitions.")
47
47
  get("#{@api_url}/securityPolicyDefinitions", params, headers)
48
48
  end
49
49
 
@@ -54,7 +54,7 @@ module KineticSdk
54
54
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
55
55
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
56
56
  def find_space_security_policy_definition(name, params={}, headers=default_headers)
57
- info("Finding Space Security Policy Definition \"#{name}\"")
57
+ @logger.info("Finding Space Security Policy Definition \"#{name}\"")
58
58
  get("#{@api_url}/securityPolicyDefinitions/#{encode(name)}", params, headers)
59
59
  end
60
60
 
@@ -69,7 +69,7 @@ module KineticSdk
69
69
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
70
70
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
71
71
  def update_space_security_policy_definition(name, body, headers=default_headers)
72
- info("Updating Space Security Policy Definition \"#{name}\"")
72
+ @logger.info("Updating Space Security Policy Definition \"#{name}\"")
73
73
  put("#{@api_url}/securityPolicyDefinitions/#{encode(name)}", body, headers)
74
74
  end
75
75
 
@@ -86,7 +86,7 @@ module KineticSdk
86
86
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
87
87
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
88
88
  def add_security_policy_definition(kapp_slug, body, headers=default_headers)
89
- info("Adding Security Policy Definition \"#{body['name']}\" to the \"#{kapp_slug}\" kapp.")
89
+ @logger.info("Adding Security Policy Definition \"#{body['name']}\" to the \"#{kapp_slug}\" kapp.")
90
90
  # Create the kapp security policy definition
91
91
  post("#{@api_url}/kapps/#{kapp_slug}/securityPolicyDefinitions", body, headers)
92
92
  end
@@ -98,7 +98,7 @@ module KineticSdk
98
98
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
99
99
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
100
100
  def delete_security_policy_definition(kapp_slug, name, headers=default_headers)
101
- info("Deleting Security Policy Definition \"#{name}\" from the \"#{kapp_slug}\" kapp.")
101
+ @logger.info("Deleting Security Policy Definition \"#{name}\" from the \"#{kapp_slug}\" kapp.")
102
102
  # Delete the kapp security policy definition
103
103
  delete("#{@api_url}/kapps/#{kapp_slug}/securityPolicyDefinitions/#{encode(name)}", headers)
104
104
  end
@@ -121,7 +121,7 @@ module KineticSdk
121
121
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
122
122
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
123
123
  def find_security_policy_definitions(kapp_slug, params={}, headers=default_headers)
124
- info("Listing Security Policy Definitions on the \"#{kapp_slug}\" kapp.")
124
+ @logger.info("Listing Security Policy Definitions on the \"#{kapp_slug}\" kapp.")
125
125
  get("#{@api_url}/kapps/#{kapp_slug}/securityPolicyDefinitions", params, headers)
126
126
  end
127
127
 
@@ -133,7 +133,7 @@ module KineticSdk
133
133
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
134
134
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
135
135
  def find_security_policy_definition(kapp_slug, name, params={}, headers=default_headers)
136
- info("Finding Security Policy Definition \"#{name}\" on the \"#{kapp_slug}\" kapp.")
136
+ @logger.info("Finding Security Policy Definition \"#{name}\" on the \"#{kapp_slug}\" kapp.")
137
137
  get("#{@api_url}/kapps/#{kapp_slug}/securityPolicyDefinitions/#{encode(name)}", params, headers)
138
138
  end
139
139
 
@@ -149,7 +149,7 @@ module KineticSdk
149
149
  # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
150
150
  # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
151
151
  def update_security_policy_definition(kapp_slug, name, body, headers=default_headers)
152
- info("Updating Security Policy Definition \"#{name}\" on the \"#{kapp_slug}\" kapp.")
152
+ @logger.info("Updating Security Policy Definition \"#{name}\" on the \"#{kapp_slug}\" kapp.")
153
153
  put("#{@api_url}/kapps/#{kapp_slug}/securityPolicyDefinitions/#{encode(name)}", body, headers)
154
154
  end
155
155
 
@@ -0,0 +1,156 @@
1
+ module KineticSdk
2
+ class Core
3
+
4
+ # Add an attribute value to the space, or update an attribute if it already exists
5
+ #
6
+ # @param attribute_name [String] name of the attribute
7
+ # @param attribute_value [String] value of the attribute
8
+ # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
9
+ # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
10
+ def add_space_attribute(attribute_name, attribute_value, headers=default_headers)
11
+ # first find the space
12
+ response = find_space({ "include" => "attributes"}, headers)
13
+ # hack to try a second time if space isn't found
14
+ if response.status == 404
15
+ sleep 2
16
+ response = find_space({ "include" => "attributes"}, headers)
17
+ end
18
+ space = response.content["space"]
19
+ attributes = space["attributes"]
20
+ # either add or update the attribute value
21
+ exists = false
22
+ attributes.each do |attribute|
23
+ @logger.info("Attribute: #{attribute.inspect}")
24
+ # if the attribute already exists, update it
25
+ if attribute["name"] == attribute_name
26
+ attribute["values"] = [ attribute_value ]
27
+ exists = true
28
+ end
29
+ end
30
+ # add the attribute if it didn't exist
31
+ attributes.push({
32
+ "name" => attribute_name,
33
+ "values" => [ attribute_value ]
34
+ }) unless exists
35
+
36
+ # set the updated attributes list
37
+ body = { "attributes" => attributes }
38
+ if exists
39
+ @logger.info("Updating attribute \"#{attribute_name}\" = \"#{attribute_value}\" in the \"#{space_slug}\" space.")
40
+ else
41
+ @logger.info("Adding attribute \"#{attribute_name}\" = \"#{attribute_value}\" to the \"#{space_slug}\" space.")
42
+ end
43
+ # Update the space
44
+ put("#{@api_url}/space", body, headers)
45
+ end
46
+
47
+ # Update a space
48
+ #
49
+ # @param body [Hash] properties for the Space
50
+ # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
51
+ # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
52
+ def update_space(body={}, headers=default_headers)
53
+ @logger.info("Updating Space \"#{@space_slug}\"")
54
+ put("#{@api_url}/space", body, headers)
55
+ end
56
+
57
+ # Export a space to the export_directory
58
+ #
59
+ # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
60
+ # @return nil
61
+ def export_space(headers=default_headers)
62
+ raise StandardError.new "An export directory must be defined to export space." if @options[:export_directory].nil?
63
+ @logger.info("Exporting space definition to #{@options[:export_directory]}.")
64
+ # Build up the tree of how files should be written
65
+ export_shape = prepare_shape(
66
+ "space.bridges.{name}",
67
+ "space.datastore.forms.{slug}",
68
+ "space.kapps.{slug}.categories",
69
+ "space.kapps.{slug}.categoryAttributeDefinitions",
70
+ "space.kapps.{slug}.forms.{slug}",
71
+ "space.kapps.{slug}.formAttributeDefinitions",
72
+ "space.kapps.{slug}.formsTypes",
73
+ "space.kapps.{slug}.kappAttributeDefinitions",
74
+ "space.kapps.{slug}.securityPolicyDefinitions",
75
+ "space.kapps.{slug}.webhooks.{name}",
76
+ "space.models.{name}",
77
+ "space.teams.{name}",
78
+ "space.datastoreFormAttributeDefinitions",
79
+ "space.securityPolicyDefinitions",
80
+ "space.spaceAttributeDefinitions",
81
+ "space.teamAttributeDefinitions",
82
+ "space.userAttributeDefinitions",
83
+ "space.userProfileAttributeDefinitions",
84
+ "space.webhooks.{name}",
85
+ )
86
+ core_data = get("#{@api_url}/space", { 'export' => true}, headers).content
87
+ process_export(@options[:export_directory], export_shape, core_data)
88
+ @logger.info("Finished exporting space definition to #{@options[:export_directory]}.")
89
+ end
90
+
91
+ # Find the space
92
+ #
93
+ # @param params [Hash] Query parameters that are added to the URL, such as +include+
94
+ # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
95
+ # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
96
+ def find_space(params={}, headers=default_headers)
97
+ @logger.info("Finding Space \"#{@space_slug}\"")
98
+ get("#{@api_url}/space", params, headers)
99
+ end
100
+
101
+ # Imports a full space definition from the export_directory
102
+ #
103
+ # @param slug [String] the slug of the space that is being imported
104
+ # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
105
+ # @return nil
106
+ def import_space(slug, headers=default_headers)
107
+ raise StandardError.new "An export directory must be defined to import space." if @options[:export_directory].nil?
108
+ @logger.info("Importing space definition from #{@options[:export_directory]}.")
109
+
110
+ # Loop over all provided files sorting files before folders
111
+ Dir["#{@options[:export_directory]}/**/*.json"].map { |file| [file.count("/"), file] }.sort.map { |file| file[1] }.each do |file|
112
+ rel_path = file.gsub("#{@options[:export_directory]}/", '')
113
+ body = JSON.parse(File.read(file))
114
+ if rel_path == "space.json"
115
+ api_path = "/space"
116
+ @logger.info("Importing #{rel_path} to #{api_path}.")
117
+ body['slug'] = slug
118
+ resp = put("#{@api_url}#{api_path}", body, headers)
119
+ elsif body.is_a?(Array)
120
+ api_path = "/#{rel_path.sub(/^space\//,'').sub(/\.json$/,'')}"
121
+ body.each do |part|
122
+ @logger.info("Importing #{rel_path} to #{api_path}.")
123
+ resp = post("#{@api_url}#{api_path}", part, headers)
124
+ end
125
+ else
126
+ api_path = "/#{rel_path.sub(/^space\//,'').sub(/\/[^\/]+$/,'')}"
127
+ # TODO: Remove this block when core API is updated to not export Key
128
+ if api_path == "/bridges" && body.has_key?("key")
129
+ body.delete("key")
130
+ end
131
+ @logger.info("Importing #{rel_path} to #{api_path}.")
132
+ resp = post("#{@api_url}#{api_path}", body, headers)
133
+ # TODO: Remove this block when core API is updated to not pre-create SPDs
134
+ if api_path == "/kapps"
135
+ kapp_slug = resp.content["kapp"]["slug"]
136
+ delete_security_policy_definitions(kapp_slug)
137
+ end
138
+ end
139
+ end
140
+ @logger.info("Finished importing space definition to #{@options[:export_directory]}.")
141
+ end
142
+
143
+ # Checks if the space exists
144
+ #
145
+ # @param slug [String] slug of the space
146
+ # @param params [Hash] Query parameters that are added to the URL, such as +include+
147
+ # @param headers [Hash] hash of headers to send, default is basic authentication and accept JSON content type
148
+ # @return [KineticSdk::Utils::KineticHttpResponse] object, with +code+, +message+, +content_string+, and +content+ properties
149
+ def space_exists?(slug, params={}, headers=default_headers)
150
+ @logger.info("Checking if the \"#{slug}\" space exists")
151
+ response = get("#{@api_url}/spaces/#{slug}", params, headers)
152
+ response.status == 200
153
+ end
154
+
155
+ end
156
+ end