ibm_cloud_resource_controller 1.0.1 → 2.0.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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/.bumpversion.cfg +13 -0
  3. data/.gitignore +13 -0
  4. data/.openapi-generator-ignore +23 -0
  5. data/.openapi-generator/VERSION +1 -0
  6. data/.rspec +3 -0
  7. data/.travis.yml +49 -0
  8. data/CHANGELOG.md +2 -0
  9. data/CODE_OF_CONDUCT.md +76 -0
  10. data/CONTRIBUTING.md +13 -0
  11. data/Gemfile +4 -6
  12. data/LICENSE +201 -0
  13. data/README.md +56 -120
  14. data/Rakefile +3 -7
  15. data/bin/console +14 -0
  16. data/bin/setup +8 -0
  17. data/ibm_cloud_resource_controller.gemspec +34 -37
  18. data/lib/ibm_cloud_resource_controller.rb +9 -64
  19. data/lib/ibm_cloud_resource_controller/authenticators.rb +15 -0
  20. data/lib/ibm_cloud_resource_controller/common.rb +22 -0
  21. data/lib/ibm_cloud_resource_controller/resource_controller_v2.rb +982 -0
  22. data/lib/ibm_cloud_resource_controller/resource_manager_v2.rb +303 -0
  23. data/lib/ibm_cloud_resource_controller/version.rb +1 -13
  24. metadata +59 -145
  25. data/docs/Credentials.md +0 -25
  26. data/docs/ErrorReport.md +0 -23
  27. data/docs/PlanHistoryItem.md +0 -19
  28. data/docs/Reclamation.md +0 -45
  29. data/docs/ReclamationActionsPost.md +0 -19
  30. data/docs/ReclamationsList.md +0 -17
  31. data/docs/ResourceAlias.md +0 -57
  32. data/docs/ResourceAliasPatch.md +0 -17
  33. data/docs/ResourceAliasPost.md +0 -21
  34. data/docs/ResourceAliasesApi.md +0 -302
  35. data/docs/ResourceAliasesList.md +0 -21
  36. data/docs/ResourceBinding.md +0 -57
  37. data/docs/ResourceBindingPatch.md +0 -17
  38. data/docs/ResourceBindingPost.md +0 -25
  39. data/docs/ResourceBindingPostParameters.md +0 -17
  40. data/docs/ResourceBindingsApi.md +0 -300
  41. data/docs/ResourceBindingsList.md +0 -21
  42. data/docs/ResourceInstance.md +0 -81
  43. data/docs/ResourceInstancePatch.md +0 -23
  44. data/docs/ResourceInstancePost.md +0 -29
  45. data/docs/ResourceInstancesApi.md +0 -418
  46. data/docs/ResourceInstancesList.md +0 -21
  47. data/docs/ResourceKey.md +0 -53
  48. data/docs/ResourceKeyPatch.md +0 -17
  49. data/docs/ResourceKeyPost.md +0 -23
  50. data/docs/ResourceKeysApi.md +0 -298
  51. data/docs/ResourceKeysList.md +0 -21
  52. data/docs/ResourceReclamationsApi.md +0 -128
  53. data/git_push.sh +0 -58
  54. data/lib/ibm_cloud_resource_controller/api/resource_aliases_api.rb +0 -363
  55. data/lib/ibm_cloud_resource_controller/api/resource_bindings_api.rb +0 -360
  56. data/lib/ibm_cloud_resource_controller/api/resource_instances_api.rb +0 -493
  57. data/lib/ibm_cloud_resource_controller/api/resource_keys_api.rb +0 -357
  58. data/lib/ibm_cloud_resource_controller/api/resource_reclamations_api.rb +0 -156
  59. data/lib/ibm_cloud_resource_controller/api_client.rb +0 -388
  60. data/lib/ibm_cloud_resource_controller/api_error.rb +0 -57
  61. data/lib/ibm_cloud_resource_controller/configuration.rb +0 -248
  62. data/lib/ibm_cloud_resource_controller/models/credentials.rb +0 -250
  63. data/lib/ibm_cloud_resource_controller/models/error_report.rb +0 -240
  64. data/lib/ibm_cloud_resource_controller/models/plan_history_item.rb +0 -230
  65. data/lib/ibm_cloud_resource_controller/models/reclamation.rb +0 -352
  66. data/lib/ibm_cloud_resource_controller/models/reclamation_actions_post.rb +0 -220
  67. data/lib/ibm_cloud_resource_controller/models/reclamations_list.rb +0 -212
  68. data/lib/ibm_cloud_resource_controller/models/resource_alias.rb +0 -410
  69. data/lib/ibm_cloud_resource_controller/models/resource_alias_patch.rb +0 -236
  70. data/lib/ibm_cloud_resource_controller/models/resource_alias_post.rb +0 -266
  71. data/lib/ibm_cloud_resource_controller/models/resource_aliases_list.rb +0 -247
  72. data/lib/ibm_cloud_resource_controller/models/resource_binding.rb +0 -410
  73. data/lib/ibm_cloud_resource_controller/models/resource_binding_patch.rb +0 -236
  74. data/lib/ibm_cloud_resource_controller/models/resource_binding_post.rb +0 -278
  75. data/lib/ibm_cloud_resource_controller/models/resource_binding_post_parameters.rb +0 -210
  76. data/lib/ibm_cloud_resource_controller/models/resource_bindings_list.rb +0 -247
  77. data/lib/ibm_cloud_resource_controller/models/resource_instance.rb +0 -536
  78. data/lib/ibm_cloud_resource_controller/models/resource_instance_patch.rb +0 -259
  79. data/lib/ibm_cloud_resource_controller/models/resource_instance_post.rb +0 -317
  80. data/lib/ibm_cloud_resource_controller/models/resource_instances_list.rb +0 -247
  81. data/lib/ibm_cloud_resource_controller/models/resource_key.rb +0 -390
  82. data/lib/ibm_cloud_resource_controller/models/resource_key_patch.rb +0 -236
  83. data/lib/ibm_cloud_resource_controller/models/resource_key_post.rb +0 -251
  84. data/lib/ibm_cloud_resource_controller/models/resource_keys_list.rb +0 -247
  85. data/spec/api/resource_aliases_api_spec.rb +0 -104
  86. data/spec/api/resource_bindings_api_spec.rb +0 -103
  87. data/spec/api/resource_instances_api_spec.rb +0 -130
  88. data/spec/api/resource_keys_api_spec.rb +0 -102
  89. data/spec/api/resource_reclamations_api_spec.rb +0 -62
  90. data/spec/api_client_spec.rb +0 -226
  91. data/spec/configuration_spec.rb +0 -42
  92. data/spec/models/credentials_spec.rb +0 -65
  93. data/spec/models/error_report_spec.rb +0 -59
  94. data/spec/models/plan_history_item_spec.rb +0 -47
  95. data/spec/models/reclamation_actions_post_spec.rb +0 -47
  96. data/spec/models/reclamation_spec.rb +0 -125
  97. data/spec/models/reclamations_list_spec.rb +0 -41
  98. data/spec/models/resource_alias_patch_spec.rb +0 -41
  99. data/spec/models/resource_alias_post_spec.rb +0 -53
  100. data/spec/models/resource_alias_spec.rb +0 -143
  101. data/spec/models/resource_aliases_list_spec.rb +0 -53
  102. data/spec/models/resource_binding_patch_spec.rb +0 -41
  103. data/spec/models/resource_binding_post_parameters_spec.rb +0 -41
  104. data/spec/models/resource_binding_post_spec.rb +0 -65
  105. data/spec/models/resource_binding_spec.rb +0 -137
  106. data/spec/models/resource_bindings_list_spec.rb +0 -53
  107. data/spec/models/resource_instance_patch_spec.rb +0 -59
  108. data/spec/models/resource_instance_post_spec.rb +0 -77
  109. data/spec/models/resource_instance_spec.rb +0 -191
  110. data/spec/models/resource_instances_list_spec.rb +0 -53
  111. data/spec/models/resource_key_patch_spec.rb +0 -41
  112. data/spec/models/resource_key_post_spec.rb +0 -59
  113. data/spec/models/resource_key_spec.rb +0 -125
  114. data/spec/models/resource_keys_list_spec.rb +0 -53
  115. data/spec/spec_helper.rb +0 -111
data/Rakefile CHANGED
@@ -1,10 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
2
3
 
3
- begin
4
- require 'rspec/core/rake_task'
4
+ RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- RSpec::Core::RakeTask.new(:spec)
7
- task default: :spec
8
- rescue LoadError
9
- # no rspec available
10
- end
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "ibm_cloud_resource_controller"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -1,38 +1,35 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- =begin
4
- #IBM Cloud Resource Controller API
5
-
6
- #Manage lifecycle of your Cloud resources using Resource Controller APIs. Resources are provisioned globally in an account scope. Supports asynchronous provisioning of resources. Enables consumption of a global resource through a Cloud Foundry space in any region.
7
-
8
- The version of the OpenAPI document: 2.0
9
-
10
- Generated by: https://openapi-generator.tech
11
- OpenAPI Generator version: 5.0.0-beta2
12
-
13
- =end
14
-
15
- $:.push File.expand_path("../lib", __FILE__)
16
- require "ibm_cloud_resource_controller/version"
17
-
18
- Gem::Specification.new do |s|
19
- s.name = "ibm_cloud_resource_controller"
20
- s.version = IbmCloudResourceController::VERSION
21
- s.platform = Gem::Platform::RUBY
22
- s.authors = ["IBM Cloud Developers"]
23
- s.email = [""]
24
- s.homepage = "https://openapi-generator.tech"
25
- s.summary = "IBM Cloud Resource Controller API"
26
- s.description = "Ruby gem for IBM Cloud Resource Controller API"
27
- s.license = 'Apache-2.0'
28
- s.required_ruby_version = ">= 1.9"
29
-
30
- s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
31
-
32
- s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
33
-
34
- s.files = `find *`.split("\n").uniq.sort.select { |f| !f.empty? }
35
- s.test_files = `find spec/*`.split("\n")
36
- s.executables = []
37
- s.require_paths = ["lib"]
1
+ require_relative 'lib/ibm_cloud_resource_controller/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "ibm_cloud_resource_controller"
5
+ spec.version = IbmCloudResourceController::VERSION
6
+ spec.authors = ["IBM Cloud Developers"]
7
+ spec.email = [""]
8
+
9
+ spec.summary = "IBM Cloud Resource Controller API"
10
+ spec.description = "Ruby gem for IBM Cloud Resource Controller API"
11
+ spec.homepage = "https://github.com/IBM-Cloud/ibm-cloud-sdk-ruby"
12
+ spec.licenses = ["Apache-2.0"]
13
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
14
+
15
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = spec.homepage
19
+ spec.metadata["changelog_uri"] = "#{spec.metadata["source_code_uri"]}/blob/master/CHANGELOG.md"
20
+
21
+ # Specify which files should be added to the gem when it is released.
22
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
24
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
+ end
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_runtime_dependency "ibm_cloud_sdk_core", "~> 1.1.1"
31
+
32
+ spec.add_development_dependency "bundler"
33
+ spec.add_development_dependency "rake"
34
+ spec.add_development_dependency "rubocop"
38
35
  end
@@ -1,67 +1,12 @@
1
- =begin
2
- #IBM Cloud Resource Controller API
3
-
4
- #Manage lifecycle of your Cloud resources using Resource Controller APIs. Resources are provisioned globally in an account scope. Supports asynchronous provisioning of resources. Enables consumption of a global resource through a Cloud Foundry space in any region.
5
-
6
- The version of the OpenAPI document: 2.0
7
-
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.0.0-beta2
10
-
11
- =end
12
-
13
- # Common files
14
- require 'ibm_cloud_resource_controller/api_client'
15
- require 'ibm_cloud_resource_controller/api_error'
16
- require 'ibm_cloud_resource_controller/version'
17
- require 'ibm_cloud_resource_controller/configuration'
18
-
19
- # Models
20
- require 'ibm_cloud_resource_controller/models/credentials'
21
- require 'ibm_cloud_resource_controller/models/error_report'
22
- require 'ibm_cloud_resource_controller/models/plan_history_item'
23
- require 'ibm_cloud_resource_controller/models/reclamation'
24
- require 'ibm_cloud_resource_controller/models/reclamation_actions_post'
25
- require 'ibm_cloud_resource_controller/models/reclamations_list'
26
- require 'ibm_cloud_resource_controller/models/resource_alias'
27
- require 'ibm_cloud_resource_controller/models/resource_alias_patch'
28
- require 'ibm_cloud_resource_controller/models/resource_alias_post'
29
- require 'ibm_cloud_resource_controller/models/resource_aliases_list'
30
- require 'ibm_cloud_resource_controller/models/resource_binding'
31
- require 'ibm_cloud_resource_controller/models/resource_binding_patch'
32
- require 'ibm_cloud_resource_controller/models/resource_binding_post'
33
- require 'ibm_cloud_resource_controller/models/resource_binding_post_parameters'
34
- require 'ibm_cloud_resource_controller/models/resource_bindings_list'
35
- require 'ibm_cloud_resource_controller/models/resource_instance'
36
- require 'ibm_cloud_resource_controller/models/resource_instance_patch'
37
- require 'ibm_cloud_resource_controller/models/resource_instance_post'
38
- require 'ibm_cloud_resource_controller/models/resource_instances_list'
39
- require 'ibm_cloud_resource_controller/models/resource_key'
40
- require 'ibm_cloud_resource_controller/models/resource_key_patch'
41
- require 'ibm_cloud_resource_controller/models/resource_key_post'
42
- require 'ibm_cloud_resource_controller/models/resource_keys_list'
43
-
44
- # APIs
45
- require 'ibm_cloud_resource_controller/api/resource_aliases_api'
46
- require 'ibm_cloud_resource_controller/api/resource_bindings_api'
47
- require 'ibm_cloud_resource_controller/api/resource_instances_api'
48
- require 'ibm_cloud_resource_controller/api/resource_keys_api'
49
- require 'ibm_cloud_resource_controller/api/resource_reclamations_api'
1
+ require "ibm_cloud_resource_controller/version"
2
+ require "ibm_cloud_sdk_core"
50
3
 
51
4
  module IbmCloudResourceController
52
- class << self
53
- # Customize default settings for the SDK using block.
54
- # IbmCloudResourceController.configure do |config|
55
- # config.username = "xxx"
56
- # config.password = "xxx"
57
- # end
58
- # If no block given, return the default Configuration object.
59
- def configure
60
- if block_given?
61
- yield(Configuration.default)
62
- else
63
- Configuration.default
64
- end
65
- end
66
- end
5
+ ApiException = IBMCloudSdkCore::ApiException
6
+ DetailedResponse = IBMCloudSdkCore::DetailedResponse
7
+
8
+ require_relative "./ibm_cloud_resource_controller/authenticators.rb"
9
+ require_relative "./ibm_cloud_resource_controller/common.rb"
10
+ require_relative "./ibm_cloud_resource_controller/resource_controller_v2.rb"
11
+ require_relative "./ibm_cloud_resource_controller/resource_manager_v2.rb"
67
12
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require("ibm_cloud_sdk_core")
4
+
5
+ # Module for the IBM Cloud Resource Controller APIs
6
+ module IbmCloudResourceController
7
+ class Authenticators
8
+ BasicAuthenticator = IBMCloudSdkCore::BasicAuthenticator
9
+ BearerTokenAuthenticator = IBMCloudSdkCore::BearerTokenAuthenticator
10
+ CloudPakForDataAuthenticator = IBMCloudSdkCore::CloudPakForDataAuthenticator
11
+ ConfigBasedAuthenticatorFactory = IBMCloudSdkCore::ConfigBasedAuthenticatorFactory
12
+ IamAuthenticator = IBMCloudSdkCore::IamAuthenticator
13
+ NoAuthAuthenticator = IBMCloudSdkCore::NoAuthAuthenticator
14
+ end
15
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "./version.rb"
4
+
5
+ module IbmCloudResourceController
6
+ # SDK Common class
7
+ class Common
8
+ def initialize(*); end
9
+
10
+ def get_sdk_headers(service_name, service_version, operation_id)
11
+ headers = {}
12
+ user_agent_string = "ibm_cloud_resource_controller-ruby-sdk-" + IbmCloudResourceController::VERSION + " #{RbConfig::CONFIG["host"]}"
13
+ user_agent_string += " #{RbConfig::CONFIG["RUBY_BASE_NAME"]}-#{RbConfig::CONFIG["RUBY_PROGRAM_VERSION"]}"
14
+
15
+ headers["User-Agent"] = user_agent_string
16
+ return headers if service_name.nil? || service_version.nil? || operation_id.nil?
17
+
18
+ headers["X-IBMCloud-SDK-Analytics"] = "service_name=#{service_name};service_version=#{service_version};operation_id=#{operation_id}"
19
+ headers
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,982 @@
1
+ # frozen_string_literal: true
2
+
3
+ # (C) Copyright IBM Corp. 2021.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+ # IBM OpenAPI SDK Code Generator Version: 3.30.0-bd714324-20210406-200538
18
+ #
19
+ # Manage lifecycle of your Cloud resources using Resource Controller APIs. Resources are
20
+ # provisioned globally in an account scope. Supports asynchronous provisioning of
21
+ # resources. Enables consumption of a global resource through a Cloud Foundry space in any
22
+ # region.
23
+
24
+ require "concurrent"
25
+ require "erb"
26
+ require "json"
27
+ require "ibm_cloud_sdk_core"
28
+ require_relative "./common.rb"
29
+
30
+ module IbmCloudResourceController
31
+ ##
32
+ # The resource_controller V2 service.
33
+ class ResourceControllerV2 < IBMCloudSdkCore::BaseService
34
+ include Concurrent::Async
35
+ DEFAULT_SERVICE_NAME = "resource_controller"
36
+ DEFAULT_SERVICE_URL = "https://resource-controller.cloud.ibm.com"
37
+ ##
38
+ # @!method initialize(args)
39
+ # Construct a new client for the resource_controller service.
40
+ #
41
+ # @param args [Hash] The args to initialize with
42
+ # @option args service_url [String] The base service URL to use when contacting the service.
43
+ # The base service_url may differ between IBM Cloud regions.
44
+ # @option args authenticator [Object] The Authenticator instance to be configured for this service.
45
+ # @option args service_name [String] The name of the service to configure. Will be used as the key to load
46
+ # any external configuration, if applicable.
47
+ def initialize(args = {})
48
+ @__async_initialized__ = false
49
+ defaults = {}
50
+ defaults[:service_url] = DEFAULT_SERVICE_URL
51
+ defaults[:service_name] = DEFAULT_SERVICE_NAME
52
+ defaults[:authenticator] = nil
53
+ user_service_url = args[:service_url] unless args[:service_url].nil?
54
+ args = defaults.merge(args)
55
+ super
56
+ @service_url = user_service_url unless user_service_url.nil?
57
+ end
58
+
59
+ #########################
60
+ # Resource Instances
61
+ #########################
62
+
63
+ ##
64
+ # @!method list_resource_instances(guid: nil, name: nil, resource_group_id: nil, resource_id: nil, resource_plan_id: nil, type: nil, sub_type: nil, limit: nil, updated_from: nil, updated_to: nil)
65
+ # Get a list of all resource instances.
66
+ # Get a list of all resource instances.
67
+ # @param guid [String] When you provision a new resource in the specified location for the selected plan,
68
+ # a GUID (globally unique identifier) is created. This is a unique internal GUID
69
+ # managed by Resource controller that corresponds to the instance.
70
+ # @param name [String] The human-readable name of the instance.
71
+ # @param resource_group_id [String] Short ID of a resource group.
72
+ # @param resource_id [String] The unique ID of the offering. This value is provided by and stored in the global
73
+ # catalog.
74
+ # @param resource_plan_id [String] The unique ID of the plan associated with the offering. This value is provided by
75
+ # and stored in the global catalog.
76
+ # @param type [String] The type of the instance. For example, `service_instance`.
77
+ # @param sub_type [String] The sub-type of instance, e.g. `cfaas`.
78
+ # @param limit [String] Limit on how many items should be returned.
79
+ # @param updated_from [String] Start date inclusive filter.
80
+ # @param updated_to [String] End date inclusive filter.
81
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
82
+ def list_resource_instances(guid: nil, name: nil, resource_group_id: nil, resource_id: nil, resource_plan_id: nil, type: nil, sub_type: nil, limit: nil, updated_from: nil, updated_to: nil)
83
+ headers = {
84
+ }
85
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "list_resource_instances")
86
+ headers.merge!(sdk_headers)
87
+
88
+ params = {
89
+ "guid" => guid,
90
+ "name" => name,
91
+ "resource_group_id" => resource_group_id,
92
+ "resource_id" => resource_id,
93
+ "resource_plan_id" => resource_plan_id,
94
+ "type" => type,
95
+ "sub_type" => sub_type,
96
+ "limit" => limit,
97
+ "updated_from" => updated_from,
98
+ "updated_to" => updated_to
99
+ }
100
+
101
+ method_url = "/v2/resource_instances"
102
+
103
+ response = request(
104
+ method: "GET",
105
+ url: method_url,
106
+ headers: headers,
107
+ params: params,
108
+ accept_json: true
109
+ )
110
+ response
111
+ end
112
+
113
+ ##
114
+ # @!method create_resource_instance(name:, target:, resource_group:, resource_plan_id:, tags: nil, allow_cleanup: nil, parameters: nil, entity_lock: nil)
115
+ # Create (provision) a new resource instance.
116
+ # Provision a new resource in the specified location for the selected plan.
117
+ # @param name [String] The name of the instance. Must be 180 characters or less and cannot include any
118
+ # special characters other than `(space) - . _ :`.
119
+ # @param target [String] The deployment location where the instance should be hosted.
120
+ # @param resource_group [String] Short or long ID of resource group.
121
+ # @param resource_plan_id [String] The unique ID of the plan associated with the offering. This value is provided by
122
+ # and stored in the global catalog.
123
+ # @param tags [Array[String]] Tags that are attached to the instance after provisioning. These tags can be
124
+ # searched and managed through the Tagging API in IBM Cloud.
125
+ # @param allow_cleanup [Boolean] A boolean that dictates if the resource instance should be deleted (cleaned up)
126
+ # during the processing of a region instance delete call.
127
+ # @param parameters [Hash] Configuration options represented as key-value pairs that are passed through to
128
+ # the target resource brokers.
129
+ # @param entity_lock [Boolean] Indicates if the resource instance is locked for further update or delete
130
+ # operations. It does not affect actions performed on child resources like aliases,
131
+ # bindings or keys. False by default.
132
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
133
+ def create_resource_instance(name:, target:, resource_group:, resource_plan_id:, tags: nil, allow_cleanup: nil, parameters: nil, entity_lock: nil)
134
+ raise ArgumentError.new("name must be provided") if name.nil?
135
+
136
+ raise ArgumentError.new("target must be provided") if target.nil?
137
+
138
+ raise ArgumentError.new("resource_group must be provided") if resource_group.nil?
139
+
140
+ raise ArgumentError.new("resource_plan_id must be provided") if resource_plan_id.nil?
141
+
142
+ headers = {
143
+ "Entity-Lock" => entity_lock
144
+ }
145
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "create_resource_instance")
146
+ headers.merge!(sdk_headers)
147
+
148
+ data = {
149
+ "name" => name,
150
+ "target" => target,
151
+ "resource_group" => resource_group,
152
+ "resource_plan_id" => resource_plan_id,
153
+ "tags" => tags,
154
+ "allow_cleanup" => allow_cleanup,
155
+ "parameters" => parameters
156
+ }
157
+
158
+ method_url = "/v2/resource_instances"
159
+
160
+ response = request(
161
+ method: "POST",
162
+ url: method_url,
163
+ headers: headers,
164
+ json: data,
165
+ accept_json: true
166
+ )
167
+ response
168
+ end
169
+
170
+ ##
171
+ # @!method get_resource_instance(id:)
172
+ # Get a resource instance.
173
+ # Retrieve a resource instance by ID.
174
+ # @param id [String] The short or long ID of the instance.
175
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
176
+ def get_resource_instance(id:)
177
+ raise ArgumentError.new("id must be provided") if id.nil?
178
+
179
+ headers = {
180
+ }
181
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "get_resource_instance")
182
+ headers.merge!(sdk_headers)
183
+
184
+ method_url = "/v2/resource_instances/%s" % [ERB::Util.url_encode(id)]
185
+
186
+ response = request(
187
+ method: "GET",
188
+ url: method_url,
189
+ headers: headers,
190
+ accept_json: true
191
+ )
192
+ response
193
+ end
194
+
195
+ ##
196
+ # @!method delete_resource_instance(id:, recursive: nil)
197
+ # Delete a resource instance.
198
+ # Delete a resource instance by ID.
199
+ # @param id [String] The short or long ID of the instance.
200
+ # @param recursive [Boolean] Will delete resource bindings, keys and aliases associated with the instance.
201
+ # @return [nil]
202
+ def delete_resource_instance(id:, recursive: nil)
203
+ raise ArgumentError.new("id must be provided") if id.nil?
204
+
205
+ headers = {
206
+ }
207
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "delete_resource_instance")
208
+ headers.merge!(sdk_headers)
209
+
210
+ params = {
211
+ "recursive" => recursive
212
+ }
213
+
214
+ method_url = "/v2/resource_instances/%s" % [ERB::Util.url_encode(id)]
215
+
216
+ request(
217
+ method: "DELETE",
218
+ url: method_url,
219
+ headers: headers,
220
+ params: params,
221
+ accept_json: false
222
+ )
223
+ nil
224
+ end
225
+
226
+ ##
227
+ # @!method update_resource_instance(id:, name: nil, parameters: nil, resource_plan_id: nil, allow_cleanup: nil)
228
+ # Update a resource instance.
229
+ # Update a resource instance by ID.
230
+ # @param id [String] The short or long ID of the instance.
231
+ # @param name [String] The new name of the instance. Must be 180 characters or less and cannot include
232
+ # any special characters other than `(space) - . _ :`.
233
+ # @param parameters [Hash] The new configuration options for the instance.
234
+ # @param resource_plan_id [String] The unique ID of the plan associated with the offering. This value is provided by
235
+ # and stored in the global catalog.
236
+ # @param allow_cleanup [Boolean] A boolean that dictates if the resource instance should be deleted (cleaned up)
237
+ # during the processing of a region instance delete call.
238
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
239
+ def update_resource_instance(id:, name: nil, parameters: nil, resource_plan_id: nil, allow_cleanup: nil)
240
+ raise ArgumentError.new("id must be provided") if id.nil?
241
+
242
+ headers = {
243
+ }
244
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "update_resource_instance")
245
+ headers.merge!(sdk_headers)
246
+
247
+ data = {
248
+ "name" => name,
249
+ "parameters" => parameters,
250
+ "resource_plan_id" => resource_plan_id,
251
+ "allow_cleanup" => allow_cleanup
252
+ }
253
+
254
+ method_url = "/v2/resource_instances/%s" % [ERB::Util.url_encode(id)]
255
+
256
+ response = request(
257
+ method: "PATCH",
258
+ url: method_url,
259
+ headers: headers,
260
+ json: data,
261
+ accept_json: true
262
+ )
263
+ response
264
+ end
265
+
266
+ ##
267
+ # @!method list_resource_aliases_for_instance(id:)
268
+ # Get a list of all resource aliases for the instance.
269
+ # Get a list of all resource aliases for the instance.
270
+ # @param id [String] The short or long ID of the instance.
271
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
272
+ def list_resource_aliases_for_instance(id:)
273
+ raise ArgumentError.new("id must be provided") if id.nil?
274
+
275
+ headers = {
276
+ }
277
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "list_resource_aliases_for_instance")
278
+ headers.merge!(sdk_headers)
279
+
280
+ method_url = "/v2/resource_instances/%s/resource_aliases" % [ERB::Util.url_encode(id)]
281
+
282
+ response = request(
283
+ method: "GET",
284
+ url: method_url,
285
+ headers: headers,
286
+ accept_json: true
287
+ )
288
+ response
289
+ end
290
+
291
+ ##
292
+ # @!method list_resource_keys_for_instance(id:)
293
+ # Get a list of all the resource keys for the instance.
294
+ # Get a list of all the resource keys for the instance.
295
+ # @param id [String] The short or long ID of the instance.
296
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
297
+ def list_resource_keys_for_instance(id:)
298
+ raise ArgumentError.new("id must be provided") if id.nil?
299
+
300
+ headers = {
301
+ }
302
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "list_resource_keys_for_instance")
303
+ headers.merge!(sdk_headers)
304
+
305
+ method_url = "/v2/resource_instances/%s/resource_keys" % [ERB::Util.url_encode(id)]
306
+
307
+ response = request(
308
+ method: "GET",
309
+ url: method_url,
310
+ headers: headers,
311
+ accept_json: true
312
+ )
313
+ response
314
+ end
315
+
316
+ ##
317
+ # @!method lock_resource_instance(id:)
318
+ # Lock a resource instance.
319
+ # Locks a resource instance by ID. A locked instance can not be updated or deleted.
320
+ # It does not affect actions performed on child resources like aliases, bindings or
321
+ # keys.
322
+ # @param id [String] The short or long ID of the instance.
323
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
324
+ def lock_resource_instance(id:)
325
+ raise ArgumentError.new("id must be provided") if id.nil?
326
+
327
+ headers = {
328
+ }
329
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "lock_resource_instance")
330
+ headers.merge!(sdk_headers)
331
+
332
+ method_url = "/v2/resource_instances/%s/lock" % [ERB::Util.url_encode(id)]
333
+
334
+ response = request(
335
+ method: "POST",
336
+ url: method_url,
337
+ headers: headers,
338
+ accept_json: true
339
+ )
340
+ response
341
+ end
342
+
343
+ ##
344
+ # @!method unlock_resource_instance(id:)
345
+ # Unlock a resource instance.
346
+ # Unlocks a resource instance by ID.
347
+ # @param id [String] The short or long ID of the instance.
348
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
349
+ def unlock_resource_instance(id:)
350
+ raise ArgumentError.new("id must be provided") if id.nil?
351
+
352
+ headers = {
353
+ }
354
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "unlock_resource_instance")
355
+ headers.merge!(sdk_headers)
356
+
357
+ method_url = "/v2/resource_instances/%s/lock" % [ERB::Util.url_encode(id)]
358
+
359
+ response = request(
360
+ method: "DELETE",
361
+ url: method_url,
362
+ headers: headers,
363
+ accept_json: true
364
+ )
365
+ response
366
+ end
367
+ #########################
368
+ # Resource Keys
369
+ #########################
370
+
371
+ ##
372
+ # @!method list_resource_keys(guid: nil, name: nil, resource_group_id: nil, resource_id: nil, limit: nil, updated_from: nil, updated_to: nil)
373
+ # Get a list of all of the resource keys.
374
+ # List all resource keys.
375
+ # @param guid [String] When you create a new key, a GUID (globally unique identifier) is assigned. This
376
+ # is a unique internal GUID managed by Resource controller that corresponds to the
377
+ # key.
378
+ # @param name [String] The human-readable name of the key.
379
+ # @param resource_group_id [String] The short ID of the resource group.
380
+ # @param resource_id [String] The unique ID of the offering. This value is provided by and stored in the global
381
+ # catalog.
382
+ # @param limit [String] Limit on how many items should be returned.
383
+ # @param updated_from [String] Start date inclusive filter.
384
+ # @param updated_to [String] End date inclusive filter.
385
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
386
+ def list_resource_keys(guid: nil, name: nil, resource_group_id: nil, resource_id: nil, limit: nil, updated_from: nil, updated_to: nil)
387
+ headers = {
388
+ }
389
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "list_resource_keys")
390
+ headers.merge!(sdk_headers)
391
+
392
+ params = {
393
+ "guid" => guid,
394
+ "name" => name,
395
+ "resource_group_id" => resource_group_id,
396
+ "resource_id" => resource_id,
397
+ "limit" => limit,
398
+ "updated_from" => updated_from,
399
+ "updated_to" => updated_to
400
+ }
401
+
402
+ method_url = "/v2/resource_keys"
403
+
404
+ response = request(
405
+ method: "GET",
406
+ url: method_url,
407
+ headers: headers,
408
+ params: params,
409
+ accept_json: true
410
+ )
411
+ response
412
+ end
413
+
414
+ ##
415
+ # @!method create_resource_key(name:, source:, parameters: nil, role: nil)
416
+ # Create a new resource key.
417
+ # Create a new resource key.
418
+ # @param name [String] The name of the key.
419
+ # @param source [String] The short or long ID of resource instance or alias.
420
+ # @param parameters [ResourceKeyPostParameters] Configuration options represented as key-value pairs. Service defined options are
421
+ # passed through to the target resource brokers, whereas platform defined options
422
+ # are not.
423
+ # @param role [String] The role name or it's CRN.
424
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
425
+ def create_resource_key(name:, source:, parameters: nil, role: nil)
426
+ raise ArgumentError.new("name must be provided") if name.nil?
427
+
428
+ raise ArgumentError.new("source must be provided") if source.nil?
429
+
430
+ headers = {
431
+ }
432
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "create_resource_key")
433
+ headers.merge!(sdk_headers)
434
+
435
+ data = {
436
+ "name" => name,
437
+ "source" => source,
438
+ "parameters" => parameters,
439
+ "role" => role
440
+ }
441
+
442
+ method_url = "/v2/resource_keys"
443
+
444
+ response = request(
445
+ method: "POST",
446
+ url: method_url,
447
+ headers: headers,
448
+ json: data,
449
+ accept_json: true
450
+ )
451
+ response
452
+ end
453
+
454
+ ##
455
+ # @!method get_resource_key(id:)
456
+ # Get resource key by ID.
457
+ # Get resource key by ID.
458
+ # @param id [String] The short or long ID of the key.
459
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
460
+ def get_resource_key(id:)
461
+ raise ArgumentError.new("id must be provided") if id.nil?
462
+
463
+ headers = {
464
+ }
465
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "get_resource_key")
466
+ headers.merge!(sdk_headers)
467
+
468
+ method_url = "/v2/resource_keys/%s" % [ERB::Util.url_encode(id)]
469
+
470
+ response = request(
471
+ method: "GET",
472
+ url: method_url,
473
+ headers: headers,
474
+ accept_json: true
475
+ )
476
+ response
477
+ end
478
+
479
+ ##
480
+ # @!method delete_resource_key(id:)
481
+ # Delete a resource key by ID.
482
+ # Delete a resource key by ID.
483
+ # @param id [String] The short or long ID of the key.
484
+ # @return [nil]
485
+ def delete_resource_key(id:)
486
+ raise ArgumentError.new("id must be provided") if id.nil?
487
+
488
+ headers = {
489
+ }
490
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "delete_resource_key")
491
+ headers.merge!(sdk_headers)
492
+
493
+ method_url = "/v2/resource_keys/%s" % [ERB::Util.url_encode(id)]
494
+
495
+ request(
496
+ method: "DELETE",
497
+ url: method_url,
498
+ headers: headers,
499
+ accept_json: false
500
+ )
501
+ nil
502
+ end
503
+
504
+ ##
505
+ # @!method update_resource_key(id:, name:)
506
+ # Update a resource key.
507
+ # Update a resource key by ID.
508
+ # @param id [String] The short or long ID of the key.
509
+ # @param name [String] The new name of the key. Must be 180 characters or less and cannot include any
510
+ # special characters other than `(space) - . _ :`.
511
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
512
+ def update_resource_key(id:, name:)
513
+ raise ArgumentError.new("id must be provided") if id.nil?
514
+
515
+ raise ArgumentError.new("name must be provided") if name.nil?
516
+
517
+ headers = {
518
+ }
519
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "update_resource_key")
520
+ headers.merge!(sdk_headers)
521
+
522
+ data = {
523
+ "name" => name
524
+ }
525
+
526
+ method_url = "/v2/resource_keys/%s" % [ERB::Util.url_encode(id)]
527
+
528
+ response = request(
529
+ method: "PATCH",
530
+ url: method_url,
531
+ headers: headers,
532
+ json: data,
533
+ accept_json: true
534
+ )
535
+ response
536
+ end
537
+ #########################
538
+ # Resource Bindings
539
+ #########################
540
+
541
+ ##
542
+ # @!method list_resource_bindings(guid: nil, name: nil, resource_group_id: nil, resource_id: nil, region_binding_id: nil, limit: nil, updated_from: nil, updated_to: nil)
543
+ # Get a list of all resource bindings.
544
+ # Get a list of all resource bindings.
545
+ # @param guid [String] The short ID of the binding.
546
+ # @param name [String] The human-readable name of the binding.
547
+ # @param resource_group_id [String] Short ID of the resource group.
548
+ # @param resource_id [String] The unique ID of the offering (service name). This value is provided by and stored
549
+ # in the global catalog.
550
+ # @param region_binding_id [String] Short ID of the binding in the specific targeted environment, e.g.
551
+ # service_binding_id in a given IBM Cloud environment.
552
+ # @param limit [String] Limit on how many items should be returned.
553
+ # @param updated_from [String] Start date inclusive filter.
554
+ # @param updated_to [String] End date inclusive filter.
555
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
556
+ def list_resource_bindings(guid: nil, name: nil, resource_group_id: nil, resource_id: nil, region_binding_id: nil, limit: nil, updated_from: nil, updated_to: nil)
557
+ headers = {
558
+ }
559
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "list_resource_bindings")
560
+ headers.merge!(sdk_headers)
561
+
562
+ params = {
563
+ "guid" => guid,
564
+ "name" => name,
565
+ "resource_group_id" => resource_group_id,
566
+ "resource_id" => resource_id,
567
+ "region_binding_id" => region_binding_id,
568
+ "limit" => limit,
569
+ "updated_from" => updated_from,
570
+ "updated_to" => updated_to
571
+ }
572
+
573
+ method_url = "/v2/resource_bindings"
574
+
575
+ response = request(
576
+ method: "GET",
577
+ url: method_url,
578
+ headers: headers,
579
+ params: params,
580
+ accept_json: true
581
+ )
582
+ response
583
+ end
584
+
585
+ ##
586
+ # @!method create_resource_binding(source:, target:, name: nil, parameters: nil, role: nil)
587
+ # Create a new resource binding.
588
+ # Create a new resource binding.
589
+ # @param source [String] The short or long ID of resource alias.
590
+ # @param target [String] The CRN of application to bind to in a specific environment, e.g. Dallas YP, CFEE
591
+ # instance.
592
+ # @param name [String] The name of the binding. Must be 180 characters or less and cannot include any
593
+ # special characters other than `(space) - . _ :`.
594
+ # @param parameters [ResourceBindingPostParameters] Configuration options represented as key-value pairs. Service defined options are
595
+ # passed through to the target resource brokers, whereas platform defined options
596
+ # are not.
597
+ # @param role [String] The role name or it's CRN.
598
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
599
+ def create_resource_binding(source:, target:, name: nil, parameters: nil, role: nil)
600
+ raise ArgumentError.new("source must be provided") if source.nil?
601
+
602
+ raise ArgumentError.new("target must be provided") if target.nil?
603
+
604
+ headers = {
605
+ }
606
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "create_resource_binding")
607
+ headers.merge!(sdk_headers)
608
+
609
+ data = {
610
+ "source" => source,
611
+ "target" => target,
612
+ "name" => name,
613
+ "parameters" => parameters,
614
+ "role" => role
615
+ }
616
+
617
+ method_url = "/v2/resource_bindings"
618
+
619
+ response = request(
620
+ method: "POST",
621
+ url: method_url,
622
+ headers: headers,
623
+ json: data,
624
+ accept_json: true
625
+ )
626
+ response
627
+ end
628
+
629
+ ##
630
+ # @!method get_resource_binding(id:)
631
+ # Get a resource binding.
632
+ # Retrieve a resource binding by ID.
633
+ # @param id [String] The short or long ID of the binding.
634
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
635
+ def get_resource_binding(id:)
636
+ raise ArgumentError.new("id must be provided") if id.nil?
637
+
638
+ headers = {
639
+ }
640
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "get_resource_binding")
641
+ headers.merge!(sdk_headers)
642
+
643
+ method_url = "/v2/resource_bindings/%s" % [ERB::Util.url_encode(id)]
644
+
645
+ response = request(
646
+ method: "GET",
647
+ url: method_url,
648
+ headers: headers,
649
+ accept_json: true
650
+ )
651
+ response
652
+ end
653
+
654
+ ##
655
+ # @!method delete_resource_binding(id:)
656
+ # Delete a resource binding.
657
+ # Delete a resource binding by ID.
658
+ # @param id [String] The short or long ID of the binding.
659
+ # @return [nil]
660
+ def delete_resource_binding(id:)
661
+ raise ArgumentError.new("id must be provided") if id.nil?
662
+
663
+ headers = {
664
+ }
665
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "delete_resource_binding")
666
+ headers.merge!(sdk_headers)
667
+
668
+ method_url = "/v2/resource_bindings/%s" % [ERB::Util.url_encode(id)]
669
+
670
+ request(
671
+ method: "DELETE",
672
+ url: method_url,
673
+ headers: headers,
674
+ accept_json: false
675
+ )
676
+ nil
677
+ end
678
+
679
+ ##
680
+ # @!method update_resource_binding(id:, name:)
681
+ # Update a resource binding.
682
+ # Update a resource binding by ID.
683
+ # @param id [String] The short or long ID of the binding.
684
+ # @param name [String] The new name of the binding. Must be 180 characters or less and cannot include any
685
+ # special characters other than `(space) - . _ :`.
686
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
687
+ def update_resource_binding(id:, name:)
688
+ raise ArgumentError.new("id must be provided") if id.nil?
689
+
690
+ raise ArgumentError.new("name must be provided") if name.nil?
691
+
692
+ headers = {
693
+ }
694
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "update_resource_binding")
695
+ headers.merge!(sdk_headers)
696
+
697
+ data = {
698
+ "name" => name
699
+ }
700
+
701
+ method_url = "/v2/resource_bindings/%s" % [ERB::Util.url_encode(id)]
702
+
703
+ response = request(
704
+ method: "PATCH",
705
+ url: method_url,
706
+ headers: headers,
707
+ json: data,
708
+ accept_json: true
709
+ )
710
+ response
711
+ end
712
+ #########################
713
+ # Resource Aliases
714
+ #########################
715
+
716
+ ##
717
+ # @!method list_resource_aliases(guid: nil, name: nil, resource_instance_id: nil, region_instance_id: nil, resource_id: nil, resource_group_id: nil, limit: nil, updated_from: nil, updated_to: nil)
718
+ # Get a list of all resource aliases.
719
+ # Get a list of all resource aliases.
720
+ # @param guid [String] Short ID of the alias.
721
+ # @param name [String] The human-readable name of the alias.
722
+ # @param resource_instance_id [String] Resource instance short ID.
723
+ # @param region_instance_id [String] Short ID of the instance in a specific targeted environment. For example,
724
+ # `service_instance_id` in a given IBM Cloud environment.
725
+ # @param resource_id [String] The unique ID of the offering (service name). This value is provided by and stored
726
+ # in the global catalog.
727
+ # @param resource_group_id [String] Short ID of Resource group.
728
+ # @param limit [String] Limit on how many items should be returned.
729
+ # @param updated_from [String] Start date inclusive filter.
730
+ # @param updated_to [String] End date inclusive filter.
731
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
732
+ def list_resource_aliases(guid: nil, name: nil, resource_instance_id: nil, region_instance_id: nil, resource_id: nil, resource_group_id: nil, limit: nil, updated_from: nil, updated_to: nil)
733
+ headers = {
734
+ }
735
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "list_resource_aliases")
736
+ headers.merge!(sdk_headers)
737
+
738
+ params = {
739
+ "guid" => guid,
740
+ "name" => name,
741
+ "resource_instance_id" => resource_instance_id,
742
+ "region_instance_id" => region_instance_id,
743
+ "resource_id" => resource_id,
744
+ "resource_group_id" => resource_group_id,
745
+ "limit" => limit,
746
+ "updated_from" => updated_from,
747
+ "updated_to" => updated_to
748
+ }
749
+
750
+ method_url = "/v2/resource_aliases"
751
+
752
+ response = request(
753
+ method: "GET",
754
+ url: method_url,
755
+ headers: headers,
756
+ params: params,
757
+ accept_json: true
758
+ )
759
+ response
760
+ end
761
+
762
+ ##
763
+ # @!method create_resource_alias(name:, source:, target:)
764
+ # Create a new resource alias.
765
+ # Alias a resource instance into a targeted environment's (name)space.
766
+ # @param name [String] The name of the alias. Must be 180 characters or less and cannot include any
767
+ # special characters other than `(space) - . _ :`.
768
+ # @param source [String] The short or long ID of resource instance.
769
+ # @param target [String] The CRN of target name(space) in a specific environment, e.g. space in Dallas YP,
770
+ # CFEE instance etc.
771
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
772
+ def create_resource_alias(name:, source:, target:)
773
+ raise ArgumentError.new("name must be provided") if name.nil?
774
+
775
+ raise ArgumentError.new("source must be provided") if source.nil?
776
+
777
+ raise ArgumentError.new("target must be provided") if target.nil?
778
+
779
+ headers = {
780
+ }
781
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "create_resource_alias")
782
+ headers.merge!(sdk_headers)
783
+
784
+ data = {
785
+ "name" => name,
786
+ "source" => source,
787
+ "target" => target
788
+ }
789
+
790
+ method_url = "/v2/resource_aliases"
791
+
792
+ response = request(
793
+ method: "POST",
794
+ url: method_url,
795
+ headers: headers,
796
+ json: data,
797
+ accept_json: true
798
+ )
799
+ response
800
+ end
801
+
802
+ ##
803
+ # @!method get_resource_alias(id:)
804
+ # Get a resource alias.
805
+ # Retrieve a resource alias by ID.
806
+ # @param id [String] The short or long ID of the alias.
807
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
808
+ def get_resource_alias(id:)
809
+ raise ArgumentError.new("id must be provided") if id.nil?
810
+
811
+ headers = {
812
+ }
813
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "get_resource_alias")
814
+ headers.merge!(sdk_headers)
815
+
816
+ method_url = "/v2/resource_aliases/%s" % [ERB::Util.url_encode(id)]
817
+
818
+ response = request(
819
+ method: "GET",
820
+ url: method_url,
821
+ headers: headers,
822
+ accept_json: true
823
+ )
824
+ response
825
+ end
826
+
827
+ ##
828
+ # @!method delete_resource_alias(id:)
829
+ # Delete a resource alias.
830
+ # Delete a resource alias by ID.
831
+ # @param id [String] The short or long ID of the alias.
832
+ # @return [nil]
833
+ def delete_resource_alias(id:)
834
+ raise ArgumentError.new("id must be provided") if id.nil?
835
+
836
+ headers = {
837
+ }
838
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "delete_resource_alias")
839
+ headers.merge!(sdk_headers)
840
+
841
+ method_url = "/v2/resource_aliases/%s" % [ERB::Util.url_encode(id)]
842
+
843
+ request(
844
+ method: "DELETE",
845
+ url: method_url,
846
+ headers: headers,
847
+ accept_json: false
848
+ )
849
+ nil
850
+ end
851
+
852
+ ##
853
+ # @!method update_resource_alias(id:, name:)
854
+ # Update a resource alias.
855
+ # Update a resource alias by ID.
856
+ # @param id [String] The short or long ID of the alias.
857
+ # @param name [String] The new name of the alias. Must be 180 characters or less and cannot include any
858
+ # special characters other than `(space) - . _ :`.
859
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
860
+ def update_resource_alias(id:, name:)
861
+ raise ArgumentError.new("id must be provided") if id.nil?
862
+
863
+ raise ArgumentError.new("name must be provided") if name.nil?
864
+
865
+ headers = {
866
+ }
867
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "update_resource_alias")
868
+ headers.merge!(sdk_headers)
869
+
870
+ data = {
871
+ "name" => name
872
+ }
873
+
874
+ method_url = "/v2/resource_aliases/%s" % [ERB::Util.url_encode(id)]
875
+
876
+ response = request(
877
+ method: "PATCH",
878
+ url: method_url,
879
+ headers: headers,
880
+ json: data,
881
+ accept_json: true
882
+ )
883
+ response
884
+ end
885
+
886
+ ##
887
+ # @!method list_resource_bindings_for_alias(id:)
888
+ # Get a list of all resource bindings for the alias.
889
+ # Get a list of all resource bindings for the alias.
890
+ # @param id [String] The short or long ID of the alias.
891
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
892
+ def list_resource_bindings_for_alias(id:)
893
+ raise ArgumentError.new("id must be provided") if id.nil?
894
+
895
+ headers = {
896
+ }
897
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "list_resource_bindings_for_alias")
898
+ headers.merge!(sdk_headers)
899
+
900
+ method_url = "/v2/resource_aliases/%s/resource_bindings" % [ERB::Util.url_encode(id)]
901
+
902
+ response = request(
903
+ method: "GET",
904
+ url: method_url,
905
+ headers: headers,
906
+ accept_json: true
907
+ )
908
+ response
909
+ end
910
+ #########################
911
+ # Resource Reclamations
912
+ #########################
913
+
914
+ ##
915
+ # @!method list_reclamations(account_id: nil, resource_instance_id: nil)
916
+ # Get a list of all reclamations.
917
+ # Get a list of all reclamations.
918
+ # @param account_id [String] An alpha-numeric value identifying the account ID.
919
+ # @param resource_instance_id [String] The short ID of the resource instance.
920
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
921
+ def list_reclamations(account_id: nil, resource_instance_id: nil)
922
+ headers = {
923
+ }
924
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "list_reclamations")
925
+ headers.merge!(sdk_headers)
926
+
927
+ params = {
928
+ "account_id" => account_id,
929
+ "resource_instance_id" => resource_instance_id
930
+ }
931
+
932
+ method_url = "/v1/reclamations"
933
+
934
+ response = request(
935
+ method: "GET",
936
+ url: method_url,
937
+ headers: headers,
938
+ params: params,
939
+ accept_json: true
940
+ )
941
+ response
942
+ end
943
+
944
+ ##
945
+ # @!method run_reclamation_action(id:, action_name:, request_by: nil, comment: nil)
946
+ # Perform a reclamation action.
947
+ # Reclaim (provisionally delete) a resource so that it can no longer be used, or
948
+ # restore a resource so that it's usable again.
949
+ # @param id [String] The ID associated with the reclamation.
950
+ # @param action_name [String] The reclamation action name. Specify `reclaim` to delete a resource, or `restore`
951
+ # to restore a resource.
952
+ # @param request_by [String] The request initiator, if different from the request token.
953
+ # @param comment [String] A comment to describe the action.
954
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
955
+ def run_reclamation_action(id:, action_name:, request_by: nil, comment: nil)
956
+ raise ArgumentError.new("id must be provided") if id.nil?
957
+
958
+ raise ArgumentError.new("action_name must be provided") if action_name.nil?
959
+
960
+ headers = {
961
+ }
962
+ sdk_headers = Common.new.get_sdk_headers("resource_controller", "V2", "run_reclamation_action")
963
+ headers.merge!(sdk_headers)
964
+
965
+ data = {
966
+ "request_by" => request_by,
967
+ "comment" => comment
968
+ }
969
+
970
+ method_url = "/v1/reclamations/%s/actions/%s" % [ERB::Util.url_encode(id), ERB::Util.url_encode(action_name)]
971
+
972
+ response = request(
973
+ method: "POST",
974
+ url: method_url,
975
+ headers: headers,
976
+ json: data,
977
+ accept_json: true
978
+ )
979
+ response
980
+ end
981
+ end
982
+ end