authress-sdk 0.1.18.0

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.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/lib/swagger_client.rb +30 -0
  3. data/lib/swagger_client/api/access_records_api.rb +541 -0
  4. data/lib/swagger_client/api/accounts_api.rb +232 -0
  5. data/lib/swagger_client/api/metadata_api.rb +152 -0
  6. data/lib/swagger_client/api/resource_permissions_api.rb +250 -0
  7. data/lib/swagger_client/api/roles_api.rb +252 -0
  8. data/lib/swagger_client/api/service_clients_api.rb +418 -0
  9. data/lib/swagger_client/api/user_permissions_api.rb +340 -0
  10. data/lib/swagger_client/api_client.rb +388 -0
  11. data/lib/swagger_client/api_error.rb +57 -0
  12. data/lib/swagger_client/configuration.rb +205 -0
  13. data/lib/swagger_client/models/access_record.rb +351 -0
  14. data/lib/swagger_client/models/access_record_collection.rb +229 -0
  15. data/lib/swagger_client/models/access_record_collection_records.rb +351 -0
  16. data/lib/swagger_client/models/account.rb +268 -0
  17. data/lib/swagger_client/models/account_collection.rb +211 -0
  18. data/lib/swagger_client/models/account_collection_accounts.rb +268 -0
  19. data/lib/swagger_client/models/body.rb +236 -0
  20. data/lib/swagger_client/models/body_1.rb +229 -0
  21. data/lib/swagger_client/models/body_10.rb +246 -0
  22. data/lib/swagger_client/models/body_11.rb +246 -0
  23. data/lib/swagger_client/models/body_2.rb +213 -0
  24. data/lib/swagger_client/models/body_3.rb +351 -0
  25. data/lib/swagger_client/models/body_4.rb +351 -0
  26. data/lib/swagger_client/models/body_5.rb +225 -0
  27. data/lib/swagger_client/models/body_6.rb +255 -0
  28. data/lib/swagger_client/models/body_7.rb +255 -0
  29. data/lib/swagger_client/models/body_8.rb +227 -0
  30. data/lib/swagger_client/models/body_9.rb +223 -0
  31. data/lib/swagger_client/models/claim_request.rb +227 -0
  32. data/lib/swagger_client/models/claim_response.rb +197 -0
  33. data/lib/swagger_client/models/client.rb +246 -0
  34. data/lib/swagger_client/models/client_access_key.rb +242 -0
  35. data/lib/swagger_client/models/client_collection.rb +229 -0
  36. data/lib/swagger_client/models/client_collection_clients.rb +246 -0
  37. data/lib/swagger_client/models/identity.rb +228 -0
  38. data/lib/swagger_client/models/identity_collection.rb +213 -0
  39. data/lib/swagger_client/models/identity_collection_identities.rb +228 -0
  40. data/lib/swagger_client/models/identity_request.rb +223 -0
  41. data/lib/swagger_client/models/inline_response_200.rb +247 -0
  42. data/lib/swagger_client/models/inline_response_200_1.rb +236 -0
  43. data/lib/swagger_client/models/inline_response_200_10.rb +255 -0
  44. data/lib/swagger_client/models/inline_response_200_11.rb +211 -0
  45. data/lib/swagger_client/models/inline_response_200_12.rb +213 -0
  46. data/lib/swagger_client/models/inline_response_200_13.rb +229 -0
  47. data/lib/swagger_client/models/inline_response_200_14.rb +246 -0
  48. data/lib/swagger_client/models/inline_response_200_15.rb +242 -0
  49. data/lib/swagger_client/models/inline_response_200_2.rb +238 -0
  50. data/lib/swagger_client/models/inline_response_200_3.rb +260 -0
  51. data/lib/swagger_client/models/inline_response_200_4.rb +228 -0
  52. data/lib/swagger_client/models/inline_response_200_5.rb +213 -0
  53. data/lib/swagger_client/models/inline_response_200_6.rb +229 -0
  54. data/lib/swagger_client/models/inline_response_200_7.rb +229 -0
  55. data/lib/swagger_client/models/inline_response_200_8.rb +351 -0
  56. data/lib/swagger_client/models/inline_response_200_9.rb +268 -0
  57. data/lib/swagger_client/models/invite.rb +225 -0
  58. data/lib/swagger_client/models/link.rb +223 -0
  59. data/lib/swagger_client/models/metadata_object.rb +236 -0
  60. data/lib/swagger_client/models/permission_object.rb +258 -0
  61. data/lib/swagger_client/models/permission_response.rb +238 -0
  62. data/lib/swagger_client/models/resource_permission.rb +213 -0
  63. data/lib/swagger_client/models/resource_permission_collection.rb +228 -0
  64. data/lib/swagger_client/models/resource_permission_collection_links.rb +220 -0
  65. data/lib/swagger_client/models/resource_permission_collection_links_next.rb +223 -0
  66. data/lib/swagger_client/models/resource_permission_collection_resources.rb +213 -0
  67. data/lib/swagger_client/models/resource_users_collection.rb +229 -0
  68. data/lib/swagger_client/models/role.rb +255 -0
  69. data/lib/swagger_client/models/statement.rb +229 -0
  70. data/lib/swagger_client/models/token_request.rb +229 -0
  71. data/lib/swagger_client/models/user.rb +212 -0
  72. data/lib/swagger_client/models/user_resources.rb +247 -0
  73. data/lib/swagger_client/models/user_resources_resources.rb +207 -0
  74. data/lib/swagger_client/models/user_token.rb +260 -0
  75. data/lib/swagger_client/models/user_token_links.rb +211 -0
  76. data/lib/swagger_client/models/user_token_links_self.rb +223 -0
  77. data/lib/swagger_client/models/v1clients_options.rb +218 -0
  78. data/lib/swagger_client/models/v1records_account.rb +211 -0
  79. data/lib/swagger_client/models/v1records_links.rb +211 -0
  80. data/lib/swagger_client/models/v1records_links_self.rb +223 -0
  81. data/lib/swagger_client/models/v1records_users.rb +212 -0
  82. data/lib/swagger_client/models/v1resourcesresource_uri_permissions.rb +259 -0
  83. data/lib/swagger_client/models/v1roles_permissions.rb +258 -0
  84. data/lib/swagger_client/models/v1usersuser_idresourcesresource_urimetadata_account.rb +206 -0
  85. data/lib/swagger_client/models/v1usersuser_idtokens_resources.rb +212 -0
  86. data/lib/swagger_client/models/v1usersuser_idtokens_statements.rb +229 -0
  87. data/lib/swagger_client/version.rb +14 -0
  88. metadata +313 -0
metadata ADDED
@@ -0,0 +1,313 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: authress-sdk
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.18.0
5
+ platform: ruby
6
+ authors:
7
+ - Rhosys
8
+ - Authress
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2020-12-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: typhoeus
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.0'
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.1
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - "~>"
29
+ - !ruby/object:Gem::Version
30
+ version: '1.0'
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.1
34
+ - !ruby/object:Gem::Dependency
35
+ name: json
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.1'
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 2.1.0
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '2.1'
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 2.1.0
54
+ - !ruby/object:Gem::Dependency
55
+ name: rspec
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.6'
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 3.6.0
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '3.6'
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 3.6.0
74
+ description: |-
75
+ # authress-sdk.rb
76
+ This is the Authress SDK used to integrate with the authorization as a service provider Authress at https://authress.io.
77
+
78
+ [![Gem Version](https://badge.fury.io/rb/authress-sdk.svg)](http://badge.fury.io/rb/authress-sdk)
79
+
80
+
81
+ ## Usage
82
+
83
+ ```sh
84
+ gem install authress-sdk
85
+ ```
86
+
87
+ Then required the package:
88
+ ```rb
89
+ require 'authress-sdk';
90
+ ```
91
+
92
+ ## Getting started examples
93
+
94
+ ### Authorize using a user token
95
+ ```rb
96
+ require 'authress-sdk';
97
+
98
+ # create an instance of the API class during service initialization
99
+ # Replace DOMAIN with the Authress domain for your account
100
+ AuthressClient.configure do |config|
101
+ config.base_url = 'https://DOMAIN.api-REGION.authress.io'
102
+ end
103
+
104
+ # on api route
105
+ [route('/resources/<resourceId>')]
106
+ function getResource(resourceId) {
107
+ # Get the user token and pass it to authress
108
+ authorizationToken = request.headers.get('authorization');
109
+ AuthressClient.setToken(authorizationToken);
110
+
111
+ # Check Authress to authorize the user
112
+ user_id = 'user_id_example' # String | The user to check permissions on
113
+ resource_uri = `resources/${resourceId}` # String | The uri path of a resource to validate, must be URL encoded, uri segments are allowed, the resource must be a full path, and permissions are not inherited by sub-resources.
114
+ permission = 'READ' # String | Permission to check, '*' and scoped permissions can also be checked here.
115
+ begin
116
+ #Check to see if a user has permissions to a resource.
117
+ api_instance = SwaggerClient::UserPermissionsApi.new
118
+ api_instance.authorize_user(user_id, resource_uri, permission)
119
+ rescue SwaggerClient::ApiError => e
120
+ # Will throw except if the user is not authorized to read the resource
121
+ if (e.status === 404) {
122
+ return { statusCode: 404 };
123
+ }
124
+ puts "Exception when calling UserPermissionsApi->authorize_user: #{e}"
125
+ throw e;
126
+ end
127
+
128
+ # On success, continue with the route code to load resource and return it
129
+ return { resource: {}, statusCode: 200 };
130
+ ```
131
+
132
+ ### Authorize with a service client
133
+ ```rb
134
+ require 'authress-sdk';
135
+
136
+ # create an instance of the API class during service initialization
137
+ # Replace DOMAIN with the Authress domain for your account
138
+
139
+ # Create a service client in the Authress management portal and past the access token here
140
+ # This will generate a token automatically instead of passing the user token to the api
141
+ AuthressClient.configure do |config|
142
+ config.base_url = 'https://DOMAIN.api-REGION.authress.io'
143
+ accessToken = 'eyJrZXlJ....';
144
+ config.token_provider = ServiceClientTokenProvider.new(accessToken)
145
+ end
146
+
147
+ # on api route
148
+ [route('/resources/<resourceId>')]
149
+ function getResource(resourceId) {
150
+ # Check Authress to authorize the user
151
+ user_id = 'user_id_example' # String | The user to check permissions on
152
+ resource_uri = `resources/${resourceId}` # String | The uri path of a resource to validate, must be URL encoded, uri segments are allowed, the resource must be a full path, and permissions are not inherited by sub-resources.
153
+ permission = 'READ' # String | Permission to check, '*' and scoped permissions can also be checked here.
154
+ begin
155
+ #Check to see if a user has permissions to a resource.
156
+ api_instance = SwaggerClient::UserPermissionsApi.new
157
+ api_instance.authorize_user(user_id, resource_uri, permission)
158
+ rescue SwaggerClient::ApiError => e
159
+ # Will throw except if the user is not authorized to read the resource
160
+ if (e.status === 404) {
161
+ return { statusCode: 404 };
162
+ }
163
+ puts "Exception when calling UserPermissionsApi->authorize_user: #{e}"
164
+ throw e;
165
+ end
166
+
167
+ # On success, continue with the route code to load resource and return it
168
+ return { resource: {}, statusCode: 200 };
169
+ ```
170
+
171
+ ### Creating resources
172
+ When a user creates a resource in your application, we want to ensure that they get access own that resource.
173
+
174
+ You may receive **User does not have sufficient access to grant permissions to resources** as an error along with the status code **403**. This means that the service client or user jwt does not have access to create the access record. If using a service client, go to the Authress portal and create a one time record which grants the service client `Authress:Owner` to `Resources/` so that it can manage access records for these types of resources.
175
+
176
+ ```rb
177
+ require 'authress-sdk';
178
+
179
+ begin
180
+ #Create a new access record.
181
+ new_record = SwaggerClient::Body3.new {
182
+ name: `Access To New Resource ${NewResourceId}`,
183
+ users: [{ userId: requestUserId }],
184
+ statements: [{
185
+ resources: [{ resourceUri: `Resources/${NewResourceId}` }],
186
+ # Owner by default gives full control over this new resource, including the ability to grant others access as well.
187
+ roles: ['Authress:Owner']
188
+ }]
189
+ };
190
+ api_instance = SwaggerClient::AccessRecordsApi.new
191
+ result = api_instance.create_record(new_record)
192
+ puts result
193
+ rescue SwaggerClient::ApiError => e
194
+ puts "Exception when calling AccessRecordsApi->create_record: #{e}"
195
+ end
196
+ ```
197
+ email:
198
+ - support@authress.io
199
+ executables: []
200
+ extensions: []
201
+ extra_rdoc_files: []
202
+ files:
203
+ - lib/swagger_client.rb
204
+ - lib/swagger_client/api/access_records_api.rb
205
+ - lib/swagger_client/api/accounts_api.rb
206
+ - lib/swagger_client/api/metadata_api.rb
207
+ - lib/swagger_client/api/resource_permissions_api.rb
208
+ - lib/swagger_client/api/roles_api.rb
209
+ - lib/swagger_client/api/service_clients_api.rb
210
+ - lib/swagger_client/api/user_permissions_api.rb
211
+ - lib/swagger_client/api_client.rb
212
+ - lib/swagger_client/api_error.rb
213
+ - lib/swagger_client/configuration.rb
214
+ - lib/swagger_client/models/access_record.rb
215
+ - lib/swagger_client/models/access_record_collection.rb
216
+ - lib/swagger_client/models/access_record_collection_records.rb
217
+ - lib/swagger_client/models/account.rb
218
+ - lib/swagger_client/models/account_collection.rb
219
+ - lib/swagger_client/models/account_collection_accounts.rb
220
+ - lib/swagger_client/models/body.rb
221
+ - lib/swagger_client/models/body_1.rb
222
+ - lib/swagger_client/models/body_10.rb
223
+ - lib/swagger_client/models/body_11.rb
224
+ - lib/swagger_client/models/body_2.rb
225
+ - lib/swagger_client/models/body_3.rb
226
+ - lib/swagger_client/models/body_4.rb
227
+ - lib/swagger_client/models/body_5.rb
228
+ - lib/swagger_client/models/body_6.rb
229
+ - lib/swagger_client/models/body_7.rb
230
+ - lib/swagger_client/models/body_8.rb
231
+ - lib/swagger_client/models/body_9.rb
232
+ - lib/swagger_client/models/claim_request.rb
233
+ - lib/swagger_client/models/claim_response.rb
234
+ - lib/swagger_client/models/client.rb
235
+ - lib/swagger_client/models/client_access_key.rb
236
+ - lib/swagger_client/models/client_collection.rb
237
+ - lib/swagger_client/models/client_collection_clients.rb
238
+ - lib/swagger_client/models/identity.rb
239
+ - lib/swagger_client/models/identity_collection.rb
240
+ - lib/swagger_client/models/identity_collection_identities.rb
241
+ - lib/swagger_client/models/identity_request.rb
242
+ - lib/swagger_client/models/inline_response_200.rb
243
+ - lib/swagger_client/models/inline_response_200_1.rb
244
+ - lib/swagger_client/models/inline_response_200_10.rb
245
+ - lib/swagger_client/models/inline_response_200_11.rb
246
+ - lib/swagger_client/models/inline_response_200_12.rb
247
+ - lib/swagger_client/models/inline_response_200_13.rb
248
+ - lib/swagger_client/models/inline_response_200_14.rb
249
+ - lib/swagger_client/models/inline_response_200_15.rb
250
+ - lib/swagger_client/models/inline_response_200_2.rb
251
+ - lib/swagger_client/models/inline_response_200_3.rb
252
+ - lib/swagger_client/models/inline_response_200_4.rb
253
+ - lib/swagger_client/models/inline_response_200_5.rb
254
+ - lib/swagger_client/models/inline_response_200_6.rb
255
+ - lib/swagger_client/models/inline_response_200_7.rb
256
+ - lib/swagger_client/models/inline_response_200_8.rb
257
+ - lib/swagger_client/models/inline_response_200_9.rb
258
+ - lib/swagger_client/models/invite.rb
259
+ - lib/swagger_client/models/link.rb
260
+ - lib/swagger_client/models/metadata_object.rb
261
+ - lib/swagger_client/models/permission_object.rb
262
+ - lib/swagger_client/models/permission_response.rb
263
+ - lib/swagger_client/models/resource_permission.rb
264
+ - lib/swagger_client/models/resource_permission_collection.rb
265
+ - lib/swagger_client/models/resource_permission_collection_links.rb
266
+ - lib/swagger_client/models/resource_permission_collection_links_next.rb
267
+ - lib/swagger_client/models/resource_permission_collection_resources.rb
268
+ - lib/swagger_client/models/resource_users_collection.rb
269
+ - lib/swagger_client/models/role.rb
270
+ - lib/swagger_client/models/statement.rb
271
+ - lib/swagger_client/models/token_request.rb
272
+ - lib/swagger_client/models/user.rb
273
+ - lib/swagger_client/models/user_resources.rb
274
+ - lib/swagger_client/models/user_resources_resources.rb
275
+ - lib/swagger_client/models/user_token.rb
276
+ - lib/swagger_client/models/user_token_links.rb
277
+ - lib/swagger_client/models/user_token_links_self.rb
278
+ - lib/swagger_client/models/v1clients_options.rb
279
+ - lib/swagger_client/models/v1records_account.rb
280
+ - lib/swagger_client/models/v1records_links.rb
281
+ - lib/swagger_client/models/v1records_links_self.rb
282
+ - lib/swagger_client/models/v1records_users.rb
283
+ - lib/swagger_client/models/v1resourcesresource_uri_permissions.rb
284
+ - lib/swagger_client/models/v1roles_permissions.rb
285
+ - lib/swagger_client/models/v1usersuser_idresourcesresource_urimetadata_account.rb
286
+ - lib/swagger_client/models/v1usersuser_idtokens_resources.rb
287
+ - lib/swagger_client/models/v1usersuser_idtokens_statements.rb
288
+ - lib/swagger_client/version.rb
289
+ homepage: https://authress.io
290
+ licenses:
291
+ - Apache-2.0
292
+ metadata: {}
293
+ post_install_message:
294
+ rdoc_options: []
295
+ require_paths:
296
+ - lib
297
+ required_ruby_version: !ruby/object:Gem::Requirement
298
+ requirements:
299
+ - - ">="
300
+ - !ruby/object:Gem::Version
301
+ version: '2.0'
302
+ required_rubygems_version: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - ">="
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
307
+ requirements: []
308
+ rubygems_version: 3.1.4
309
+ signing_key:
310
+ specification_version: 4
311
+ summary: The Authress SDK for Ruby provides authorization as a service with fully
312
+ compatible REST apis to integrate with Authress at https://authress.io.
313
+ test_files: []