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,425 @@
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 ResourceInstancesApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Create Resource Instance
23
+ # Creates a new instance inside the Permit.io system. If the instance is already created: will return 200 instead of 201, and will return the existing instance object in the response body.
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_instance_create [ResourceInstanceCreate]
27
+ # @param [Hash] opts the optional parameters
28
+ # @return [ResourceInstanceRead]
29
+ def create_resource_instance(proj_id, env_id, resource_instance_create, opts = {})
30
+ data, _status_code, _headers = create_resource_instance_with_http_info(proj_id, env_id, resource_instance_create, opts)
31
+ data
32
+ end
33
+
34
+ # Create Resource Instance
35
+ # Creates a new instance inside the Permit.io system. If the instance is already created: will return 200 instead of 201, and will return the existing instance object in the response body.
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_instance_create [ResourceInstanceCreate]
39
+ # @param [Hash] opts the optional parameters
40
+ # @return [Array<(ResourceInstanceRead, Integer, Hash)>] ResourceInstanceRead data, response status code and response headers
41
+ def create_resource_instance_with_http_info(proj_id, env_id, resource_instance_create, opts = {})
42
+ if @api_client.config.debugging
43
+ @api_client.config.logger.debug 'Calling API: ResourceInstancesApi.create_resource_instance ...'
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 ResourceInstancesApi.create_resource_instance"
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 ResourceInstancesApi.create_resource_instance"
52
+ end
53
+ # verify the required parameter 'resource_instance_create' is set
54
+ if @api_client.config.client_side_validation && resource_instance_create.nil?
55
+ fail ArgumentError, "Missing the required parameter 'resource_instance_create' when calling ResourceInstancesApi.create_resource_instance"
56
+ end
57
+ # resource path
58
+ local_var_path = '/v2/facts/{proj_id}/{env_id}/resource_instances'.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_instance_create)
78
+
79
+ # return_type
80
+ return_type = opts[:debug_return_type] || 'ResourceInstanceRead'
81
+
82
+ # auth_names
83
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
84
+
85
+ new_options = opts.merge(
86
+ :operation => :"ResourceInstancesApi.create_resource_instance",
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: ResourceInstancesApi#create_resource_instance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
98
+ end
99
+ return data, status_code, headers
100
+ end
101
+
102
+ # Delete Resource Instance
103
+ # Deletes the instance 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 instance_id [String] Either the unique id of the resource instance, or the URL-friendly key of the resource instance (i.e: the \&quot;slug\&quot;).
107
+ # @param [Hash] opts the optional parameters
108
+ # @return [nil]
109
+ def delete_resource_instance(proj_id, env_id, instance_id, opts = {})
110
+ delete_resource_instance_with_http_info(proj_id, env_id, instance_id, opts)
111
+ nil
112
+ end
113
+
114
+ # Delete Resource Instance
115
+ # Deletes the instance 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 instance_id [String] Either the unique id of the resource instance, or the URL-friendly key of the resource instance (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_instance_with_http_info(proj_id, env_id, instance_id, opts = {})
122
+ if @api_client.config.debugging
123
+ @api_client.config.logger.debug 'Calling API: ResourceInstancesApi.delete_resource_instance ...'
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 ResourceInstancesApi.delete_resource_instance"
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 ResourceInstancesApi.delete_resource_instance"
132
+ end
133
+ # verify the required parameter 'instance_id' is set
134
+ if @api_client.config.client_side_validation && instance_id.nil?
135
+ fail ArgumentError, "Missing the required parameter 'instance_id' when calling ResourceInstancesApi.delete_resource_instance"
136
+ end
137
+ # resource path
138
+ local_var_path = '/v2/facts/{proj_id}/{env_id}/resource_instances/{instance_id}'.sub('{' + 'proj_id' + '}', CGI.escape(proj_id.to_s)).sub('{' + 'env_id' + '}', CGI.escape(env_id.to_s)).sub('{' + 'instance_id' + '}', CGI.escape(instance_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 => :"ResourceInstancesApi.delete_resource_instance",
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: ResourceInstancesApi#delete_resource_instance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
173
+ end
174
+ return data, status_code, headers
175
+ end
176
+
177
+ # Get Resource Instance
178
+ # Gets a instance, if such instance exists. Otherwise returns 404.
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 instance_id [String] Either the unique id of the resource instance, or the URL-friendly key of the resource instance (i.e: the \&quot;slug\&quot;).
182
+ # @param [Hash] opts the optional parameters
183
+ # @return [ResourceInstanceRead]
184
+ def get_resource_instance(proj_id, env_id, instance_id, opts = {})
185
+ data, _status_code, _headers = get_resource_instance_with_http_info(proj_id, env_id, instance_id, opts)
186
+ data
187
+ end
188
+
189
+ # Get Resource Instance
190
+ # Gets a instance, if such instance exists. Otherwise returns 404.
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 instance_id [String] Either the unique id of the resource instance, or the URL-friendly key of the resource instance (i.e: the \&quot;slug\&quot;).
194
+ # @param [Hash] opts the optional parameters
195
+ # @return [Array<(ResourceInstanceRead, Integer, Hash)>] ResourceInstanceRead data, response status code and response headers
196
+ def get_resource_instance_with_http_info(proj_id, env_id, instance_id, opts = {})
197
+ if @api_client.config.debugging
198
+ @api_client.config.logger.debug 'Calling API: ResourceInstancesApi.get_resource_instance ...'
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 ResourceInstancesApi.get_resource_instance"
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 ResourceInstancesApi.get_resource_instance"
207
+ end
208
+ # verify the required parameter 'instance_id' is set
209
+ if @api_client.config.client_side_validation && instance_id.nil?
210
+ fail ArgumentError, "Missing the required parameter 'instance_id' when calling ResourceInstancesApi.get_resource_instance"
211
+ end
212
+ # resource path
213
+ local_var_path = '/v2/facts/{proj_id}/{env_id}/resource_instances/{instance_id}'.sub('{' + 'proj_id' + '}', CGI.escape(proj_id.to_s)).sub('{' + 'env_id' + '}', CGI.escape(env_id.to_s)).sub('{' + 'instance_id' + '}', CGI.escape(instance_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] || 'ResourceInstanceRead'
231
+
232
+ # auth_names
233
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
234
+
235
+ new_options = opts.merge(
236
+ :operation => :"ResourceInstancesApi.get_resource_instance",
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: ResourceInstancesApi#get_resource_instance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
248
+ end
249
+ return data, status_code, headers
250
+ end
251
+
252
+ # List Resource Instances
253
+ # Lists all the resource instances defined within an environment.
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 [Integer] :page Page number of the results to fetch, starting at 1. (default to 1)
258
+ # @option opts [Integer] :per_page The number of results per page (max 100). (default to 30)
259
+ # @return [Array<ResourceInstanceRead>]
260
+ def list_resource_instances(proj_id, env_id, opts = {})
261
+ data, _status_code, _headers = list_resource_instances_with_http_info(proj_id, env_id, opts)
262
+ data
263
+ end
264
+
265
+ # List Resource Instances
266
+ # Lists all the resource instances defined within an environment.
267
+ # @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;).
268
+ # @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;).
269
+ # @param [Hash] opts the optional parameters
270
+ # @option opts [Integer] :page Page number of the results to fetch, starting at 1. (default to 1)
271
+ # @option opts [Integer] :per_page The number of results per page (max 100). (default to 30)
272
+ # @return [Array<(Array<ResourceInstanceRead>, Integer, Hash)>] Array<ResourceInstanceRead> data, response status code and response headers
273
+ def list_resource_instances_with_http_info(proj_id, env_id, opts = {})
274
+ if @api_client.config.debugging
275
+ @api_client.config.logger.debug 'Calling API: ResourceInstancesApi.list_resource_instances ...'
276
+ end
277
+ # verify the required parameter 'proj_id' is set
278
+ if @api_client.config.client_side_validation && proj_id.nil?
279
+ fail ArgumentError, "Missing the required parameter 'proj_id' when calling ResourceInstancesApi.list_resource_instances"
280
+ end
281
+ # verify the required parameter 'env_id' is set
282
+ if @api_client.config.client_side_validation && env_id.nil?
283
+ fail ArgumentError, "Missing the required parameter 'env_id' when calling ResourceInstancesApi.list_resource_instances"
284
+ end
285
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
286
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling ResourceInstancesApi.list_resource_instances, must be greater than or equal to 1.'
287
+ end
288
+
289
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] > 100
290
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling ResourceInstancesApi.list_resource_instances, must be smaller than or equal to 100.'
291
+ end
292
+
293
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] < 1
294
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling ResourceInstancesApi.list_resource_instances, must be greater than or equal to 1.'
295
+ end
296
+
297
+ # resource path
298
+ local_var_path = '/v2/facts/{proj_id}/{env_id}/resource_instances'.sub('{' + 'proj_id' + '}', CGI.escape(proj_id.to_s)).sub('{' + 'env_id' + '}', CGI.escape(env_id.to_s))
299
+
300
+ # query parameters
301
+ query_params = opts[:query_params] || {}
302
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
303
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
304
+
305
+ # header parameters
306
+ header_params = opts[:header_params] || {}
307
+ # HTTP header 'Accept' (if needed)
308
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
309
+
310
+ # form parameters
311
+ form_params = opts[:form_params] || {}
312
+
313
+ # http body (model)
314
+ post_body = opts[:debug_body]
315
+
316
+ # return_type
317
+ return_type = opts[:debug_return_type] || 'Array<ResourceInstanceRead>'
318
+
319
+ # auth_names
320
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
321
+
322
+ new_options = opts.merge(
323
+ :operation => :"ResourceInstancesApi.list_resource_instances",
324
+ :header_params => header_params,
325
+ :query_params => query_params,
326
+ :form_params => form_params,
327
+ :body => post_body,
328
+ :auth_names => auth_names,
329
+ :return_type => return_type
330
+ )
331
+
332
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
333
+ if @api_client.config.debugging
334
+ @api_client.config.logger.debug "API called: ResourceInstancesApi#list_resource_instances\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
335
+ end
336
+ return data, status_code, headers
337
+ end
338
+
339
+ # Update Resource Instance
340
+ # Partially updates the instance definition. Fields that will be provided will be completely overwritten.
341
+ # @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;).
342
+ # @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;).
343
+ # @param instance_id [String] Either the unique id of the resource instance, or the URL-friendly key of the resource instance (i.e: the \&quot;slug\&quot;).
344
+ # @param resource_instance_update [ResourceInstanceUpdate]
345
+ # @param [Hash] opts the optional parameters
346
+ # @return [ResourceInstanceRead]
347
+ def update_resource_instance(proj_id, env_id, instance_id, resource_instance_update, opts = {})
348
+ data, _status_code, _headers = update_resource_instance_with_http_info(proj_id, env_id, instance_id, resource_instance_update, opts)
349
+ data
350
+ end
351
+
352
+ # Update Resource Instance
353
+ # Partially updates the instance definition. Fields that will be provided will be completely overwritten.
354
+ # @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;).
355
+ # @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;).
356
+ # @param instance_id [String] Either the unique id of the resource instance, or the URL-friendly key of the resource instance (i.e: the \&quot;slug\&quot;).
357
+ # @param resource_instance_update [ResourceInstanceUpdate]
358
+ # @param [Hash] opts the optional parameters
359
+ # @return [Array<(ResourceInstanceRead, Integer, Hash)>] ResourceInstanceRead data, response status code and response headers
360
+ def update_resource_instance_with_http_info(proj_id, env_id, instance_id, resource_instance_update, opts = {})
361
+ if @api_client.config.debugging
362
+ @api_client.config.logger.debug 'Calling API: ResourceInstancesApi.update_resource_instance ...'
363
+ end
364
+ # verify the required parameter 'proj_id' is set
365
+ if @api_client.config.client_side_validation && proj_id.nil?
366
+ fail ArgumentError, "Missing the required parameter 'proj_id' when calling ResourceInstancesApi.update_resource_instance"
367
+ end
368
+ # verify the required parameter 'env_id' is set
369
+ if @api_client.config.client_side_validation && env_id.nil?
370
+ fail ArgumentError, "Missing the required parameter 'env_id' when calling ResourceInstancesApi.update_resource_instance"
371
+ end
372
+ # verify the required parameter 'instance_id' is set
373
+ if @api_client.config.client_side_validation && instance_id.nil?
374
+ fail ArgumentError, "Missing the required parameter 'instance_id' when calling ResourceInstancesApi.update_resource_instance"
375
+ end
376
+ # verify the required parameter 'resource_instance_update' is set
377
+ if @api_client.config.client_side_validation && resource_instance_update.nil?
378
+ fail ArgumentError, "Missing the required parameter 'resource_instance_update' when calling ResourceInstancesApi.update_resource_instance"
379
+ end
380
+ # resource path
381
+ local_var_path = '/v2/facts/{proj_id}/{env_id}/resource_instances/{instance_id}'.sub('{' + 'proj_id' + '}', CGI.escape(proj_id.to_s)).sub('{' + 'env_id' + '}', CGI.escape(env_id.to_s)).sub('{' + 'instance_id' + '}', CGI.escape(instance_id.to_s))
382
+
383
+ # query parameters
384
+ query_params = opts[:query_params] || {}
385
+
386
+ # header parameters
387
+ header_params = opts[:header_params] || {}
388
+ # HTTP header 'Accept' (if needed)
389
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
390
+ # HTTP header 'Content-Type'
391
+ content_type = @api_client.select_header_content_type(['application/json'])
392
+ if !content_type.nil?
393
+ header_params['Content-Type'] = content_type
394
+ end
395
+
396
+ # form parameters
397
+ form_params = opts[:form_params] || {}
398
+
399
+ # http body (model)
400
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(resource_instance_update)
401
+
402
+ # return_type
403
+ return_type = opts[:debug_return_type] || 'ResourceInstanceRead'
404
+
405
+ # auth_names
406
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
407
+
408
+ new_options = opts.merge(
409
+ :operation => :"ResourceInstancesApi.update_resource_instance",
410
+ :header_params => header_params,
411
+ :query_params => query_params,
412
+ :form_params => form_params,
413
+ :body => post_body,
414
+ :auth_names => auth_names,
415
+ :return_type => return_type
416
+ )
417
+
418
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
419
+ if @api_client.config.debugging
420
+ @api_client.config.logger.debug "API called: ResourceInstancesApi#update_resource_instance\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
421
+ end
422
+ return data, status_code, headers
423
+ end
424
+ end
425
+ end