permit-sdk 0.0.1

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 (196) hide show
  1. checksums.yaml +7 -0
  2. data/lib/api/api.rb +25 -0
  3. data/lib/api/base.rb +26 -0
  4. data/lib/api/resources.rb +13 -0
  5. data/lib/api/tenants.rb +11 -0
  6. data/lib/api/users.rb +50 -0
  7. data/lib/api/utils.rb +9 -0
  8. data/lib/config.rb +23 -0
  9. data/lib/main.rb +49 -0
  10. data/lib/openapi_client/api/api_keys_api.rb +413 -0
  11. data/lib/openapi_client/api/audit_elements_data_api.rb +118 -0
  12. data/lib/openapi_client/api/audit_logs_api.rb +204 -0
  13. data/lib/openapi_client/api/authentication_api.rb +512 -0
  14. data/lib/openapi_client/api/condition_set_rules_api.rb +278 -0
  15. data/lib/openapi_client/api/condition_sets_api.rb +428 -0
  16. data/lib/openapi_client/api/decision_logs_api.rb +128 -0
  17. data/lib/openapi_client/api/decision_logs_ingress_api.rb +90 -0
  18. data/lib/openapi_client/api/default_api.rb +297 -0
  19. data/lib/openapi_client/api/elements_configs_api.rb +657 -0
  20. data/lib/openapi_client/api/environments_api.rb +462 -0
  21. data/lib/openapi_client/api/instructions_api.rb +91 -0
  22. data/lib/openapi_client/api/members_api.rb +354 -0
  23. data/lib/openapi_client/api/opal_data_api.rb +343 -0
  24. data/lib/openapi_client/api/organizations_api.rb +652 -0
  25. data/lib/openapi_client/api/policy_api.rb +138 -0
  26. data/lib/openapi_client/api/policy_decision_points_api.rb +382 -0
  27. data/lib/openapi_client/api/policy_git_repositories_api.rb +510 -0
  28. data/lib/openapi_client/api/projects_api.rb +365 -0
  29. data/lib/openapi_client/api/resource_actions_api.rb +455 -0
  30. data/lib/openapi_client/api/resource_attributes_api.rb +473 -0
  31. data/lib/openapi_client/api/resource_instances_api.rb +425 -0
  32. data/lib/openapi_client/api/resource_roles_api.rb +813 -0
  33. data/lib/openapi_client/api/resources_api.rb +514 -0
  34. data/lib/openapi_client/api/role_assignments_api.rb +278 -0
  35. data/lib/openapi_client/api/roles_api.rb +759 -0
  36. data/lib/openapi_client/api/tenants_api.rb +603 -0
  37. data/lib/openapi_client/api/user_attributes_api.rb +458 -0
  38. data/lib/openapi_client/api/users_api.rb +684 -0
  39. data/lib/openapi_client/api/users_elements_data_api.rb +638 -0
  40. data/lib/openapi_client/api_client.rb +392 -0
  41. data/lib/openapi_client/api_error.rb +57 -0
  42. data/lib/openapi_client/configuration.rb +280 -0
  43. data/lib/openapi_client/models/action_block_editable.rb +230 -0
  44. data/lib/openapi_client/models/action_block_read.rb +255 -0
  45. data/lib/openapi_client/models/action_object.rb +275 -0
  46. data/lib/openapi_client/models/actor.rb +57 -0
  47. data/lib/openapi_client/models/add_role_permissions.rb +227 -0
  48. data/lib/openapi_client/models/api_key_create.rb +269 -0
  49. data/lib/openapi_client/models/api_key_owner_type.rb +41 -0
  50. data/lib/openapi_client/models/api_key_read.rb +329 -0
  51. data/lib/openapi_client/models/api_key_scope_read.rb +245 -0
  52. data/lib/openapi_client/models/attribute_block_editable.rb +235 -0
  53. data/lib/openapi_client/models/attribute_block_read.rb +260 -0
  54. data/lib/openapi_client/models/attribute_type.rb +44 -0
  55. data/lib/openapi_client/models/attributes.rb +231 -0
  56. data/lib/openapi_client/models/audit_log.rb +415 -0
  57. data/lib/openapi_client/models/audit_log_objects.rb +282 -0
  58. data/lib/openapi_client/models/authn_me_api_key_read.rb +329 -0
  59. data/lib/openapi_client/models/authn_me_member_read.rb +352 -0
  60. data/lib/openapi_client/models/authn_me_read.rb +224 -0
  61. data/lib/openapi_client/models/authn_me_user_read.rb +440 -0
  62. data/lib/openapi_client/models/condition_set_create.rb +340 -0
  63. data/lib/openapi_client/models/condition_set_read.rb +409 -0
  64. data/lib/openapi_client/models/condition_set_rule_create.rb +279 -0
  65. data/lib/openapi_client/models/condition_set_rule_read.rb +360 -0
  66. data/lib/openapi_client/models/condition_set_rule_remove.rb +279 -0
  67. data/lib/openapi_client/models/condition_set_type.rb +40 -0
  68. data/lib/openapi_client/models/condition_set_update.rb +255 -0
  69. data/lib/openapi_client/models/data_source_config.rb +228 -0
  70. data/lib/openapi_client/models/data_source_entry.rb +272 -0
  71. data/lib/openapi_client/models/detailed_audit_log.rb +443 -0
  72. data/lib/openapi_client/models/dev_login.rb +225 -0
  73. data/lib/openapi_client/models/dummy_engine_model.rb +229 -0
  74. data/lib/openapi_client/models/elements_config_create.rb +319 -0
  75. data/lib/openapi_client/models/elements_config_read.rb +402 -0
  76. data/lib/openapi_client/models/elements_config_runtime_read.rb +238 -0
  77. data/lib/openapi_client/models/elements_config_update.rb +268 -0
  78. data/lib/openapi_client/models/elements_env_type_read.rb +242 -0
  79. data/lib/openapi_client/models/elements_env_type_update.rb +222 -0
  80. data/lib/openapi_client/models/elements_permission_level.rb +44 -0
  81. data/lib/openapi_client/models/elements_role_read.rb +378 -0
  82. data/lib/openapi_client/models/elements_type.rb +41 -0
  83. data/lib/openapi_client/models/elements_user_create.rb +295 -0
  84. data/lib/openapi_client/models/elements_user_role_create.rb +225 -0
  85. data/lib/openapi_client/models/elements_user_role_remove.rb +225 -0
  86. data/lib/openapi_client/models/embedded_login_request_output.rb +265 -0
  87. data/lib/openapi_client/models/engine.rb +39 -0
  88. data/lib/openapi_client/models/environment_create.rb +281 -0
  89. data/lib/openapi_client/models/environment_object.rb +295 -0
  90. data/lib/openapi_client/models/environment_read.rb +335 -0
  91. data/lib/openapi_client/models/environment_stats.rb +365 -0
  92. data/lib/openapi_client/models/environment_update.rb +240 -0
  93. data/lib/openapi_client/models/failed_invite.rb +238 -0
  94. data/lib/openapi_client/models/full_data.rb +258 -0
  95. data/lib/openapi_client/models/http_validation_error.rb +221 -0
  96. data/lib/openapi_client/models/identity_read.rb +300 -0
  97. data/lib/openapi_client/models/invite_attempt_result.rb +232 -0
  98. data/lib/openapi_client/models/invite_create.rb +240 -0
  99. data/lib/openapi_client/models/invite_read.rb +325 -0
  100. data/lib/openapi_client/models/invite_status.rb +42 -0
  101. data/lib/openapi_client/models/labels.rb +238 -0
  102. data/lib/openapi_client/models/language_instructions.rb +252 -0
  103. data/lib/openapi_client/models/location_inner.rb +230 -0
  104. data/lib/openapi_client/models/login_result.rb +259 -0
  105. data/lib/openapi_client/models/member_access_level.rb +41 -0
  106. data/lib/openapi_client/models/member_access_obj.rb +41 -0
  107. data/lib/openapi_client/models/multi_invite_result.rb +238 -0
  108. data/lib/openapi_client/models/onboarding_step.rb +46 -0
  109. data/lib/openapi_client/models/opa_decision_log.rb +288 -0
  110. data/lib/openapi_client/models/opa_engine_decision_log.rb +345 -0
  111. data/lib/openapi_client/models/opa_labels.rb +238 -0
  112. data/lib/openapi_client/models/opa_metrics.rb +273 -0
  113. data/lib/openapi_client/models/opal_client.rb +305 -0
  114. data/lib/openapi_client/models/org_member_read.rb +420 -0
  115. data/lib/openapi_client/models/org_member_update.rb +230 -0
  116. data/lib/openapi_client/models/organization_create.rb +292 -0
  117. data/lib/openapi_client/models/organization_object.rb +295 -0
  118. data/lib/openapi_client/models/organization_read.rb +295 -0
  119. data/lib/openapi_client/models/organization_read_with_api_key.rb +313 -0
  120. data/lib/openapi_client/models/organization_update.rb +247 -0
  121. data/lib/openapi_client/models/paginated_result_api_key_read.rb +285 -0
  122. data/lib/openapi_client/models/paginated_result_audit_log.rb +285 -0
  123. data/lib/openapi_client/models/paginated_result_elements_config_read.rb +285 -0
  124. data/lib/openapi_client/models/paginated_result_opa_decision_log.rb +285 -0
  125. data/lib/openapi_client/models/paginated_result_user_read.rb +285 -0
  126. data/lib/openapi_client/models/pdp.rb +259 -0
  127. data/lib/openapi_client/models/pdp_config_object.rb +258 -0
  128. data/lib/openapi_client/models/pdp_config_read.rb +292 -0
  129. data/lib/openapi_client/models/pdp_context.rb +291 -0
  130. data/lib/openapi_client/models/pdp_state.rb +224 -0
  131. data/lib/openapi_client/models/pdp_state_update.rb +238 -0
  132. data/lib/openapi_client/models/pdp_values.rb +252 -0
  133. data/lib/openapi_client/models/permission_level_role_read.rb +254 -0
  134. data/lib/openapi_client/models/policy_repo_create.rb +318 -0
  135. data/lib/openapi_client/models/policy_repo_read.rb +347 -0
  136. data/lib/openapi_client/models/policy_repo_status.rb +41 -0
  137. data/lib/openapi_client/models/programming_language.rb +43 -0
  138. data/lib/openapi_client/models/project_create.rb +318 -0
  139. data/lib/openapi_client/models/project_object.rb +295 -0
  140. data/lib/openapi_client/models/project_read.rb +357 -0
  141. data/lib/openapi_client/models/project_update.rb +250 -0
  142. data/lib/openapi_client/models/raw_data.rb +329 -0
  143. data/lib/openapi_client/models/relationship_tuple_object.rb +252 -0
  144. data/lib/openapi_client/models/remote_config.rb +256 -0
  145. data/lib/openapi_client/models/remove_role_permissions.rb +227 -0
  146. data/lib/openapi_client/models/resource_action_create.rb +271 -0
  147. data/lib/openapi_client/models/resource_action_read.rb +370 -0
  148. data/lib/openapi_client/models/resource_action_update.rb +230 -0
  149. data/lib/openapi_client/models/resource_attribute_create.rb +271 -0
  150. data/lib/openapi_client/models/resource_attribute_read.rb +370 -0
  151. data/lib/openapi_client/models/resource_attribute_update.rb +230 -0
  152. data/lib/openapi_client/models/resource_attributes.rb +238 -0
  153. data/lib/openapi_client/models/resource_create.rb +310 -0
  154. data/lib/openapi_client/models/resource_id.rb +230 -0
  155. data/lib/openapi_client/models/resource_instance_create.rb +281 -0
  156. data/lib/openapi_client/models/resource_instance_read.rb +375 -0
  157. data/lib/openapi_client/models/resource_instance_update.rb +220 -0
  158. data/lib/openapi_client/models/resource_read.rb +374 -0
  159. data/lib/openapi_client/models/resource_replace.rb +274 -0
  160. data/lib/openapi_client/models/resource_role_create.rb +295 -0
  161. data/lib/openapi_client/models/resource_role_read.rb +379 -0
  162. data/lib/openapi_client/models/resource_role_update.rb +254 -0
  163. data/lib/openapi_client/models/resource_type_object.rb +286 -0
  164. data/lib/openapi_client/models/resource_update.rb +264 -0
  165. data/lib/openapi_client/models/role_assignment_create.rb +255 -0
  166. data/lib/openapi_client/models/role_assignment_read.rb +375 -0
  167. data/lib/openapi_client/models/role_assignment_remove.rb +255 -0
  168. data/lib/openapi_client/models/role_block.rb +244 -0
  169. data/lib/openapi_client/models/role_create.rb +295 -0
  170. data/lib/openapi_client/models/role_data.rb +221 -0
  171. data/lib/openapi_client/models/role_read.rb +364 -0
  172. data/lib/openapi_client/models/role_update.rb +254 -0
  173. data/lib/openapi_client/models/settings.rb +231 -0
  174. data/lib/openapi_client/models/ssh_auth_data.rb +295 -0
  175. data/lib/openapi_client/models/statistics.rb +389 -0
  176. data/lib/openapi_client/models/tenant_create.rb +281 -0
  177. data/lib/openapi_client/models/tenant_object.rb +284 -0
  178. data/lib/openapi_client/models/tenant_read.rb +365 -0
  179. data/lib/openapi_client/models/tenant_update.rb +240 -0
  180. data/lib/openapi_client/models/user_create.rb +286 -0
  181. data/lib/openapi_client/models/user_data.rb +232 -0
  182. data/lib/openapi_client/models/user_login_request_input.rb +240 -0
  183. data/lib/openapi_client/models/user_object.rb +313 -0
  184. data/lib/openapi_client/models/user_read.rb +336 -0
  185. data/lib/openapi_client/models/user_role.rb +240 -0
  186. data/lib/openapi_client/models/user_role_create.rb +240 -0
  187. data/lib/openapi_client/models/user_role_remove.rb +240 -0
  188. data/lib/openapi_client/models/user_update.rb +250 -0
  189. data/lib/openapi_client/models/validation_error.rb +254 -0
  190. data/lib/openapi_client/models/webhook_create.rb +235 -0
  191. data/lib/openapi_client/models/webhook_read.rb +315 -0
  192. data/lib/openapi_client/models/webhook_update.rb +230 -0
  193. data/lib/openapi_client/version.rb +15 -0
  194. data/lib/openapi_client.rb +220 -0
  195. data/lib/permit.rb +58 -0
  196. metadata +251 -0
@@ -0,0 +1,514 @@
1
+ =begin
2
+ #Permit.io API
3
+
4
+ # Authorization as a service
5
+
6
+ The version of the OpenAPI document: 2.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 6.2.1
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module OpenapiClient
16
+ class ResourcesApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Create Resource
23
+ # Creates a new resource (a type of object you may protect with permissions).
24
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \"slug\").
25
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \"slug\").
26
+ # @param resource_create [ResourceCreate]
27
+ # @param [Hash] opts the optional parameters
28
+ # @return [ResourceRead]
29
+ def create_resource(proj_id, env_id, resource_create, opts = {})
30
+ data, _status_code, _headers = create_resource_with_http_info(proj_id, env_id, resource_create, opts)
31
+ data
32
+ end
33
+
34
+ # Create Resource
35
+ # Creates a new resource (a type of object you may protect with permissions).
36
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \"slug\").
37
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \"slug\").
38
+ # @param resource_create [ResourceCreate]
39
+ # @param [Hash] opts the optional parameters
40
+ # @return [Array<(ResourceRead, Integer, Hash)>] ResourceRead data, response status code and response headers
41
+ def create_resource_with_http_info(proj_id, env_id, resource_create, opts = {})
42
+ if @api_client.config.debugging
43
+ @api_client.config.logger.debug 'Calling API: ResourcesApi.create_resource ...'
44
+ end
45
+ # verify the required parameter 'proj_id' is set
46
+ if @api_client.config.client_side_validation && proj_id.nil?
47
+ fail ArgumentError, "Missing the required parameter 'proj_id' when calling ResourcesApi.create_resource"
48
+ end
49
+ # verify the required parameter 'env_id' is set
50
+ if @api_client.config.client_side_validation && env_id.nil?
51
+ fail ArgumentError, "Missing the required parameter 'env_id' when calling ResourcesApi.create_resource"
52
+ end
53
+ # verify the required parameter 'resource_create' is set
54
+ if @api_client.config.client_side_validation && resource_create.nil?
55
+ fail ArgumentError, "Missing the required parameter 'resource_create' when calling ResourcesApi.create_resource"
56
+ end
57
+ # resource path
58
+ local_var_path = '/v2/schema/{proj_id}/{env_id}/resources'.sub('{' + 'proj_id' + '}', CGI.escape(proj_id.to_s)).sub('{' + 'env_id' + '}', CGI.escape(env_id.to_s))
59
+
60
+ # query parameters
61
+ query_params = opts[:query_params] || {}
62
+
63
+ # header parameters
64
+ header_params = opts[:header_params] || {}
65
+ # HTTP header 'Accept' (if needed)
66
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
67
+ # HTTP header 'Content-Type'
68
+ content_type = @api_client.select_header_content_type(['application/json'])
69
+ if !content_type.nil?
70
+ header_params['Content-Type'] = content_type
71
+ end
72
+
73
+ # form parameters
74
+ form_params = opts[:form_params] || {}
75
+
76
+ # http body (model)
77
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(resource_create)
78
+
79
+ # return_type
80
+ return_type = opts[:debug_return_type] || 'ResourceRead'
81
+
82
+ # auth_names
83
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
84
+
85
+ new_options = opts.merge(
86
+ :operation => :"ResourcesApi.create_resource",
87
+ :header_params => header_params,
88
+ :query_params => query_params,
89
+ :form_params => form_params,
90
+ :body => post_body,
91
+ :auth_names => auth_names,
92
+ :return_type => return_type
93
+ )
94
+
95
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
96
+ if @api_client.config.debugging
97
+ @api_client.config.logger.debug "API called: ResourcesApi#create_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
98
+ end
99
+ return data, status_code, headers
100
+ end
101
+
102
+ # Delete Resource
103
+ # Deletes the resource and all its related data.
104
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \&quot;slug\&quot;).
105
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \&quot;slug\&quot;).
106
+ # @param resource_id [String] Either the unique id of the resource, or the URL-friendly key of the resource (i.e: the \&quot;slug\&quot;).
107
+ # @param [Hash] opts the optional parameters
108
+ # @return [nil]
109
+ def delete_resource(proj_id, env_id, resource_id, opts = {})
110
+ delete_resource_with_http_info(proj_id, env_id, resource_id, opts)
111
+ nil
112
+ end
113
+
114
+ # Delete Resource
115
+ # Deletes the resource and all its related data.
116
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \&quot;slug\&quot;).
117
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \&quot;slug\&quot;).
118
+ # @param resource_id [String] Either the unique id of the resource, or the URL-friendly key of the resource (i.e: the \&quot;slug\&quot;).
119
+ # @param [Hash] opts the optional parameters
120
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
121
+ def delete_resource_with_http_info(proj_id, env_id, resource_id, opts = {})
122
+ if @api_client.config.debugging
123
+ @api_client.config.logger.debug 'Calling API: ResourcesApi.delete_resource ...'
124
+ end
125
+ # verify the required parameter 'proj_id' is set
126
+ if @api_client.config.client_side_validation && proj_id.nil?
127
+ fail ArgumentError, "Missing the required parameter 'proj_id' when calling ResourcesApi.delete_resource"
128
+ end
129
+ # verify the required parameter 'env_id' is set
130
+ if @api_client.config.client_side_validation && env_id.nil?
131
+ fail ArgumentError, "Missing the required parameter 'env_id' when calling ResourcesApi.delete_resource"
132
+ end
133
+ # verify the required parameter 'resource_id' is set
134
+ if @api_client.config.client_side_validation && resource_id.nil?
135
+ fail ArgumentError, "Missing the required parameter 'resource_id' when calling ResourcesApi.delete_resource"
136
+ end
137
+ # resource path
138
+ local_var_path = '/v2/schema/{proj_id}/{env_id}/resources/{resource_id}'.sub('{' + 'proj_id' + '}', CGI.escape(proj_id.to_s)).sub('{' + 'env_id' + '}', CGI.escape(env_id.to_s)).sub('{' + 'resource_id' + '}', CGI.escape(resource_id.to_s))
139
+
140
+ # query parameters
141
+ query_params = opts[:query_params] || {}
142
+
143
+ # header parameters
144
+ header_params = opts[:header_params] || {}
145
+ # HTTP header 'Accept' (if needed)
146
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
147
+
148
+ # form parameters
149
+ form_params = opts[:form_params] || {}
150
+
151
+ # http body (model)
152
+ post_body = opts[:debug_body]
153
+
154
+ # return_type
155
+ return_type = opts[:debug_return_type]
156
+
157
+ # auth_names
158
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
159
+
160
+ new_options = opts.merge(
161
+ :operation => :"ResourcesApi.delete_resource",
162
+ :header_params => header_params,
163
+ :query_params => query_params,
164
+ :form_params => form_params,
165
+ :body => post_body,
166
+ :auth_names => auth_names,
167
+ :return_type => return_type
168
+ )
169
+
170
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
171
+ if @api_client.config.debugging
172
+ @api_client.config.logger.debug "API called: ResourcesApi#delete_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
173
+ end
174
+ return data, status_code, headers
175
+ end
176
+
177
+ # Get Resource
178
+ # Gets a single resource, if such resource exists.
179
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \&quot;slug\&quot;).
180
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \&quot;slug\&quot;).
181
+ # @param resource_id [String] Either the unique id of the resource, or the URL-friendly key of the resource (i.e: the \&quot;slug\&quot;).
182
+ # @param [Hash] opts the optional parameters
183
+ # @return [ResourceRead]
184
+ def get_resource(proj_id, env_id, resource_id, opts = {})
185
+ data, _status_code, _headers = get_resource_with_http_info(proj_id, env_id, resource_id, opts)
186
+ data
187
+ end
188
+
189
+ # Get Resource
190
+ # Gets a single resource, if such resource exists.
191
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \&quot;slug\&quot;).
192
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \&quot;slug\&quot;).
193
+ # @param resource_id [String] Either the unique id of the resource, or the URL-friendly key of the resource (i.e: the \&quot;slug\&quot;).
194
+ # @param [Hash] opts the optional parameters
195
+ # @return [Array<(ResourceRead, Integer, Hash)>] ResourceRead data, response status code and response headers
196
+ def get_resource_with_http_info(proj_id, env_id, resource_id, opts = {})
197
+ if @api_client.config.debugging
198
+ @api_client.config.logger.debug 'Calling API: ResourcesApi.get_resource ...'
199
+ end
200
+ # verify the required parameter 'proj_id' is set
201
+ if @api_client.config.client_side_validation && proj_id.nil?
202
+ fail ArgumentError, "Missing the required parameter 'proj_id' when calling ResourcesApi.get_resource"
203
+ end
204
+ # verify the required parameter 'env_id' is set
205
+ if @api_client.config.client_side_validation && env_id.nil?
206
+ fail ArgumentError, "Missing the required parameter 'env_id' when calling ResourcesApi.get_resource"
207
+ end
208
+ # verify the required parameter 'resource_id' is set
209
+ if @api_client.config.client_side_validation && resource_id.nil?
210
+ fail ArgumentError, "Missing the required parameter 'resource_id' when calling ResourcesApi.get_resource"
211
+ end
212
+ # resource path
213
+ local_var_path = '/v2/schema/{proj_id}/{env_id}/resources/{resource_id}'.sub('{' + 'proj_id' + '}', CGI.escape(proj_id.to_s)).sub('{' + 'env_id' + '}', CGI.escape(env_id.to_s)).sub('{' + 'resource_id' + '}', CGI.escape(resource_id.to_s))
214
+
215
+ # query parameters
216
+ query_params = opts[:query_params] || {}
217
+
218
+ # header parameters
219
+ header_params = opts[:header_params] || {}
220
+ # HTTP header 'Accept' (if needed)
221
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
222
+
223
+ # form parameters
224
+ form_params = opts[:form_params] || {}
225
+
226
+ # http body (model)
227
+ post_body = opts[:debug_body]
228
+
229
+ # return_type
230
+ return_type = opts[:debug_return_type] || 'ResourceRead'
231
+
232
+ # auth_names
233
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
234
+
235
+ new_options = opts.merge(
236
+ :operation => :"ResourcesApi.get_resource",
237
+ :header_params => header_params,
238
+ :query_params => query_params,
239
+ :form_params => form_params,
240
+ :body => post_body,
241
+ :auth_names => auth_names,
242
+ :return_type => return_type
243
+ )
244
+
245
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
246
+ if @api_client.config.debugging
247
+ @api_client.config.logger.debug "API called: ResourcesApi#get_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
248
+ end
249
+ return data, status_code, headers
250
+ end
251
+
252
+ # List Resources
253
+ # Lists all the resources defined in your schema.
254
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \&quot;slug\&quot;).
255
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \&quot;slug\&quot;).
256
+ # @param [Hash] opts the optional parameters
257
+ # @option opts [Boolean] :include_built_in Whether to include or exclude built-in resources, default is False (default to false)
258
+ # @option opts [Integer] :page Page number of the results to fetch, starting at 1. (default to 1)
259
+ # @option opts [Integer] :per_page The number of results per page (max 100). (default to 30)
260
+ # @return [Array<ResourceRead>]
261
+ def list_resources(proj_id, env_id, opts = {})
262
+ data, _status_code, _headers = list_resources_with_http_info(proj_id, env_id, opts)
263
+ data
264
+ end
265
+
266
+ # List Resources
267
+ # Lists all the resources defined in your schema.
268
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \&quot;slug\&quot;).
269
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \&quot;slug\&quot;).
270
+ # @param [Hash] opts the optional parameters
271
+ # @option opts [Boolean] :include_built_in Whether to include or exclude built-in resources, default is False (default to false)
272
+ # @option opts [Integer] :page Page number of the results to fetch, starting at 1. (default to 1)
273
+ # @option opts [Integer] :per_page The number of results per page (max 100). (default to 30)
274
+ # @return [Array<(Array<ResourceRead>, Integer, Hash)>] Array<ResourceRead> data, response status code and response headers
275
+ def list_resources_with_http_info(proj_id, env_id, opts = {})
276
+ if @api_client.config.debugging
277
+ @api_client.config.logger.debug 'Calling API: ResourcesApi.list_resources ...'
278
+ end
279
+ # verify the required parameter 'proj_id' is set
280
+ if @api_client.config.client_side_validation && proj_id.nil?
281
+ fail ArgumentError, "Missing the required parameter 'proj_id' when calling ResourcesApi.list_resources"
282
+ end
283
+ # verify the required parameter 'env_id' is set
284
+ if @api_client.config.client_side_validation && env_id.nil?
285
+ fail ArgumentError, "Missing the required parameter 'env_id' when calling ResourcesApi.list_resources"
286
+ end
287
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
288
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling ResourcesApi.list_resources, must be greater than or equal to 1.'
289
+ end
290
+
291
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] > 100
292
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling ResourcesApi.list_resources, must be smaller than or equal to 100.'
293
+ end
294
+
295
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] < 1
296
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling ResourcesApi.list_resources, must be greater than or equal to 1.'
297
+ end
298
+
299
+ # resource path
300
+ local_var_path = '/v2/schema/{proj_id}/{env_id}/resources'.sub('{' + 'proj_id' + '}', CGI.escape(proj_id.to_s)).sub('{' + 'env_id' + '}', CGI.escape(env_id.to_s))
301
+
302
+ # query parameters
303
+ query_params = opts[:query_params] || {}
304
+ query_params[:'include_built_in'] = opts[:'include_built_in'] if !opts[:'include_built_in'].nil?
305
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
306
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
307
+
308
+ # header parameters
309
+ header_params = opts[:header_params] || {}
310
+ # HTTP header 'Accept' (if needed)
311
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
312
+
313
+ # form parameters
314
+ form_params = opts[:form_params] || {}
315
+
316
+ # http body (model)
317
+ post_body = opts[:debug_body]
318
+
319
+ # return_type
320
+ return_type = opts[:debug_return_type] || 'Array<ResourceRead>'
321
+
322
+ # auth_names
323
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
324
+
325
+ new_options = opts.merge(
326
+ :operation => :"ResourcesApi.list_resources",
327
+ :header_params => header_params,
328
+ :query_params => query_params,
329
+ :form_params => form_params,
330
+ :body => post_body,
331
+ :auth_names => auth_names,
332
+ :return_type => return_type
333
+ )
334
+
335
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
336
+ if @api_client.config.debugging
337
+ @api_client.config.logger.debug "API called: ResourcesApi#list_resources\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
338
+ end
339
+ return data, status_code, headers
340
+ end
341
+
342
+ # Replace Resource
343
+ # Completely replaces the resource definition. - If the resource key is changed, all role and permissions assignments for the the resource will be revoked. - If the resource key is unchanged, but some actions are removed or renamed from the resource definition, role and permissions assignments for these actions will be revoked. TODO: we need to decide if we are auto-revoking, or if we are rejecting the PUT completely while there are permissions that can be affected.
344
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \&quot;slug\&quot;).
345
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \&quot;slug\&quot;).
346
+ # @param resource_id [String] Either the unique id of the resource, or the URL-friendly key of the resource (i.e: the \&quot;slug\&quot;).
347
+ # @param resource_replace [ResourceReplace]
348
+ # @param [Hash] opts the optional parameters
349
+ # @return [ResourceRead]
350
+ def replace_resource(proj_id, env_id, resource_id, resource_replace, opts = {})
351
+ data, _status_code, _headers = replace_resource_with_http_info(proj_id, env_id, resource_id, resource_replace, opts)
352
+ data
353
+ end
354
+
355
+ # Replace Resource
356
+ # Completely replaces the resource definition. - If the resource key is changed, all role and permissions assignments for the the resource will be revoked. - If the resource key is unchanged, but some actions are removed or renamed from the resource definition, role and permissions assignments for these actions will be revoked. TODO: we need to decide if we are auto-revoking, or if we are rejecting the PUT completely while there are permissions that can be affected.
357
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \&quot;slug\&quot;).
358
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \&quot;slug\&quot;).
359
+ # @param resource_id [String] Either the unique id of the resource, or the URL-friendly key of the resource (i.e: the \&quot;slug\&quot;).
360
+ # @param resource_replace [ResourceReplace]
361
+ # @param [Hash] opts the optional parameters
362
+ # @return [Array<(ResourceRead, Integer, Hash)>] ResourceRead data, response status code and response headers
363
+ def replace_resource_with_http_info(proj_id, env_id, resource_id, resource_replace, opts = {})
364
+ if @api_client.config.debugging
365
+ @api_client.config.logger.debug 'Calling API: ResourcesApi.replace_resource ...'
366
+ end
367
+ # verify the required parameter 'proj_id' is set
368
+ if @api_client.config.client_side_validation && proj_id.nil?
369
+ fail ArgumentError, "Missing the required parameter 'proj_id' when calling ResourcesApi.replace_resource"
370
+ end
371
+ # verify the required parameter 'env_id' is set
372
+ if @api_client.config.client_side_validation && env_id.nil?
373
+ fail ArgumentError, "Missing the required parameter 'env_id' when calling ResourcesApi.replace_resource"
374
+ end
375
+ # verify the required parameter 'resource_id' is set
376
+ if @api_client.config.client_side_validation && resource_id.nil?
377
+ fail ArgumentError, "Missing the required parameter 'resource_id' when calling ResourcesApi.replace_resource"
378
+ end
379
+ # verify the required parameter 'resource_replace' is set
380
+ if @api_client.config.client_side_validation && resource_replace.nil?
381
+ fail ArgumentError, "Missing the required parameter 'resource_replace' when calling ResourcesApi.replace_resource"
382
+ end
383
+ # resource path
384
+ local_var_path = '/v2/schema/{proj_id}/{env_id}/resources/{resource_id}'.sub('{' + 'proj_id' + '}', CGI.escape(proj_id.to_s)).sub('{' + 'env_id' + '}', CGI.escape(env_id.to_s)).sub('{' + 'resource_id' + '}', CGI.escape(resource_id.to_s))
385
+
386
+ # query parameters
387
+ query_params = opts[:query_params] || {}
388
+
389
+ # header parameters
390
+ header_params = opts[:header_params] || {}
391
+ # HTTP header 'Accept' (if needed)
392
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
393
+ # HTTP header 'Content-Type'
394
+ content_type = @api_client.select_header_content_type(['application/json'])
395
+ if !content_type.nil?
396
+ header_params['Content-Type'] = content_type
397
+ end
398
+
399
+ # form parameters
400
+ form_params = opts[:form_params] || {}
401
+
402
+ # http body (model)
403
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(resource_replace)
404
+
405
+ # return_type
406
+ return_type = opts[:debug_return_type] || 'ResourceRead'
407
+
408
+ # auth_names
409
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
410
+
411
+ new_options = opts.merge(
412
+ :operation => :"ResourcesApi.replace_resource",
413
+ :header_params => header_params,
414
+ :query_params => query_params,
415
+ :form_params => form_params,
416
+ :body => post_body,
417
+ :auth_names => auth_names,
418
+ :return_type => return_type
419
+ )
420
+
421
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
422
+ if @api_client.config.debugging
423
+ @api_client.config.logger.debug "API called: ResourcesApi#replace_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
424
+ end
425
+ return data, status_code, headers
426
+ end
427
+
428
+ # Update Resource
429
+ # Partially updates the resource definition. Fields that will be provided will be completely overwritten.
430
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \&quot;slug\&quot;).
431
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \&quot;slug\&quot;).
432
+ # @param resource_id [String] Either the unique id of the resource, or the URL-friendly key of the resource (i.e: the \&quot;slug\&quot;).
433
+ # @param resource_update [ResourceUpdate]
434
+ # @param [Hash] opts the optional parameters
435
+ # @return [ResourceRead]
436
+ def update_resource(proj_id, env_id, resource_id, resource_update, opts = {})
437
+ data, _status_code, _headers = update_resource_with_http_info(proj_id, env_id, resource_id, resource_update, opts)
438
+ data
439
+ end
440
+
441
+ # Update Resource
442
+ # Partially updates the resource definition. Fields that will be provided will be completely overwritten.
443
+ # @param proj_id [String] Either the unique id of the project, or the URL-friendly key of the project (i.e: the \&quot;slug\&quot;).
444
+ # @param env_id [String] Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the \&quot;slug\&quot;).
445
+ # @param resource_id [String] Either the unique id of the resource, or the URL-friendly key of the resource (i.e: the \&quot;slug\&quot;).
446
+ # @param resource_update [ResourceUpdate]
447
+ # @param [Hash] opts the optional parameters
448
+ # @return [Array<(ResourceRead, Integer, Hash)>] ResourceRead data, response status code and response headers
449
+ def update_resource_with_http_info(proj_id, env_id, resource_id, resource_update, opts = {})
450
+ if @api_client.config.debugging
451
+ @api_client.config.logger.debug 'Calling API: ResourcesApi.update_resource ...'
452
+ end
453
+ # verify the required parameter 'proj_id' is set
454
+ if @api_client.config.client_side_validation && proj_id.nil?
455
+ fail ArgumentError, "Missing the required parameter 'proj_id' when calling ResourcesApi.update_resource"
456
+ end
457
+ # verify the required parameter 'env_id' is set
458
+ if @api_client.config.client_side_validation && env_id.nil?
459
+ fail ArgumentError, "Missing the required parameter 'env_id' when calling ResourcesApi.update_resource"
460
+ end
461
+ # verify the required parameter 'resource_id' is set
462
+ if @api_client.config.client_side_validation && resource_id.nil?
463
+ fail ArgumentError, "Missing the required parameter 'resource_id' when calling ResourcesApi.update_resource"
464
+ end
465
+ # verify the required parameter 'resource_update' is set
466
+ if @api_client.config.client_side_validation && resource_update.nil?
467
+ fail ArgumentError, "Missing the required parameter 'resource_update' when calling ResourcesApi.update_resource"
468
+ end
469
+ # resource path
470
+ local_var_path = '/v2/schema/{proj_id}/{env_id}/resources/{resource_id}'.sub('{' + 'proj_id' + '}', CGI.escape(proj_id.to_s)).sub('{' + 'env_id' + '}', CGI.escape(env_id.to_s)).sub('{' + 'resource_id' + '}', CGI.escape(resource_id.to_s))
471
+
472
+ # query parameters
473
+ query_params = opts[:query_params] || {}
474
+
475
+ # header parameters
476
+ header_params = opts[:header_params] || {}
477
+ # HTTP header 'Accept' (if needed)
478
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
479
+ # HTTP header 'Content-Type'
480
+ content_type = @api_client.select_header_content_type(['application/json'])
481
+ if !content_type.nil?
482
+ header_params['Content-Type'] = content_type
483
+ end
484
+
485
+ # form parameters
486
+ form_params = opts[:form_params] || {}
487
+
488
+ # http body (model)
489
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(resource_update)
490
+
491
+ # return_type
492
+ return_type = opts[:debug_return_type] || 'ResourceRead'
493
+
494
+ # auth_names
495
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
496
+
497
+ new_options = opts.merge(
498
+ :operation => :"ResourcesApi.update_resource",
499
+ :header_params => header_params,
500
+ :query_params => query_params,
501
+ :form_params => form_params,
502
+ :body => post_body,
503
+ :auth_names => auth_names,
504
+ :return_type => return_type
505
+ )
506
+
507
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
508
+ if @api_client.config.debugging
509
+ @api_client.config.logger.debug "API called: ResourcesApi#update_resource\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
510
+ end
511
+ return data, status_code, headers
512
+ end
513
+ end
514
+ end