ibm_cloud_global_tagging 0.1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1b98e16fbdc79a562552abdcc28cc816501ceb20e1bf12ecb39eccb0da94aa2b
4
+ data.tar.gz: dc318d07b06565bc6dae87986257074c494c43dad1ae6b145f6661059b78ed69
5
+ SHA512:
6
+ metadata.gz: 627ccff44ff024e7ab892b416871b893c5dabe3902feaadbf66142a3a0d21efe88805b05ec98c18af6ed021ebfab6713b1b619b9152f78a9f05d7251af623fdb
7
+ data.tar.gz: 1b01dbfd1af5ab59d66c1c6316a135c43fa93a56caf2fb2e6601f8565c53bf8616f7e117d0ed1e2fb1a432d4273a14efceef70544c7d25c8ae65ef7c7a267fe9
@@ -0,0 +1,13 @@
1
+ [bumpversion]
2
+ current_version = 0.0.1
3
+ commit = True
4
+ message = Update version {current_version} -> {new_version}
5
+
6
+ [bumpversion:file:lib/ibm_cloud_global_tagging/version.rb]
7
+ search = VERSION = '{current_version}'
8
+ replace = VERSION = '{new_version}'
9
+
10
+ [bumpversion:file:README.md]
11
+ search = {current_version}
12
+ replace = {new_version}
13
+
@@ -0,0 +1,13 @@
1
+ /*.gem
2
+ /.bundle/
3
+ /.yardoc
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ /Gemfile.lock
11
+
12
+ # rspec failure tracking
13
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,49 @@
1
+ language: ruby
2
+ dist: trusty
3
+ cache: bundler
4
+
5
+ notifications:
6
+ email: true
7
+
8
+ matrix:
9
+ fast_finish: true
10
+
11
+ before_install:
12
+ - git fetch --tags
13
+ - sudo apt-get update
14
+ - sudo apt-get install python
15
+ - nvm install node
16
+ - nvm use node
17
+ - gem install bundler:1.16.3
18
+
19
+ install:
20
+ - bundle _1.16.3_ install
21
+
22
+ script:
23
+ - bundle exec rake
24
+
25
+ # To enable semantic-release, uncomment these sections.
26
+ # before_deploy:
27
+ # - pip install --user bumpversion
28
+ # - npm install -g semantic-release
29
+ # - npm install -g @semantic-release/changelog
30
+ # - npm install -g @semantic-release/exec
31
+ # - npm install -g @semantic-release/git
32
+ # - npm install -g @semantic-release/github
33
+ # - npm install -g @semantic-release/commit-analyzer
34
+ #
35
+ # deploy:
36
+ # - provider: script
37
+ # script: npx semantic-release
38
+ # skip_cleanup: true
39
+ # on:
40
+ # branch: master
41
+ # rvm: 2.5.1
42
+ #
43
+ # - provider: rubygems
44
+ # api_key: $RUBYGEMS_API_KEY
45
+ # gem: ibm_cloud_global_tagging
46
+ # on:
47
+ # rvm: '2.5.1'
48
+ # branch: master
49
+ #
@@ -0,0 +1,2 @@
1
+ = 0.0.1
2
+ * Initial release
@@ -0,0 +1,76 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, sex characteristics, gender identity and expression,
9
+ level of experience, education, socio-economic status, nationality, personal
10
+ appearance, race, religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at phil_adams@us.ibm.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72
+
73
+ [homepage]: https://www.contributor-covenant.org
74
+
75
+ For answers to common questions about this code of conduct, see
76
+ https://www.contributor-covenant.org/faq
@@ -0,0 +1,13 @@
1
+ # Questions
2
+ If you are having problems using the APIs or have a question about IBM Cloud services,
3
+ please ask a question at
4
+ [Stack Overflow](http://stackoverflow.com/questions/ask?tags=ibm-cloud).
5
+
6
+ # Issues
7
+ If you encounter an issue with the project, you are welcome to submit a
8
+ [bug report](https://github.com/IBM-Cloud/ibm-cloud-sdk-ruby/issues).
9
+ Before that, please search for similar issues. It's possible that someone has already reported the problem.
10
+
11
+ # General Information
12
+ For general guidance on contributing to this project, please see
13
+ [this link](https://github.com/IBM/ibm-cloud-sdk-common/blob/master/CONTRIBUTING_ruby.md)
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in ibm_cloud_global_tagging.gemspec
4
+ gemspec
5
+
6
+ gem "rake", "~> 12.0"
7
+ gem "rspec", "~> 3.0"
data/LICENSE ADDED
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
@@ -0,0 +1,84 @@
1
+ [![Build Status](https://travis-ci.com/IBM-Cloud/ibm-cloud-sdk-ruby.svg?token=eW5FVD71iyte6tTby8gr&branch=master)](https://travis.ibm.com/IBM-Cloud/ibm-cloud-sdk-ruby)
2
+ [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
3
+ # IBM Cloud Global Tagging Ruby SDK
4
+
5
+ Ruby client library to interact with various [IBM Cloud Platform Services APIs](https://cloud.ibm.com/apidocs?category=platform-services).
6
+
7
+ Disclaimer: this SDK is being released initially as a **pre-release** version.
8
+ Changes might occur which impact applications that use this SDK.
9
+
10
+ ## Table of Contents
11
+
12
+ <!--
13
+ The TOC below is generated using the `markdown-toc` node package.
14
+
15
+ https://github.com/jonschlinkert/markdown-toc
16
+
17
+ You should regenerate the TOC after making changes to this file.
18
+
19
+ npx markdown-toc -i README.md
20
+ -->
21
+
22
+ <!-- toc -->
23
+
24
+ - [Overview](#overview)
25
+ - [Prerequisites](#prerequisites)
26
+ - [Installation](#installation)
27
+ - [Using the SDK](#using-the-sdk)
28
+ - [Questions](#questions)
29
+ - [Issues](#issues)
30
+ - [Open source @ IBM](#open-source--ibm)
31
+ - [Contributing](#contributing)
32
+ - [License](#license)
33
+
34
+ <!-- tocstop -->
35
+
36
+ ## Overview
37
+
38
+ The IBM Cloud Platform Services Ruby SDK allows developers to programmatically interact with the following
39
+ IBM Cloud services:
40
+
41
+ Service Name | Imported Class Name
42
+ --- | ---
43
+ <!-- [Example Service](https://cloud.ibm.com/apidocs/example-service) | exampleservicev1 -->
44
+
45
+ ## Prerequisites
46
+
47
+ [ibm-cloud-onboarding]: https://cloud.ibm.com/registration
48
+
49
+ * An [IBM Cloud][ibm-cloud-onboarding] account.
50
+ * An IAM API key to allow the SDK to access your account. Create one [here](https://cloud.ibm.com/iam/apikeys).
51
+ * Ruby 2.3.0 or above.
52
+
53
+ ## Installation
54
+
55
+ To install, use `gem`
56
+
57
+ ```bash
58
+ gem install "ibm_cloud_global_tagging"
59
+ ```
60
+
61
+ ## Using the SDK
62
+ For general SDK usage information, please see [this link](https://github.com/IBM/ibm-cloud-sdk-common/blob/master/gems/ibm_cloud_global_tagging/README.md)
63
+
64
+ ## Questions
65
+
66
+ If you are having difficulties using this SDK or have a question about the IBM Cloud services,
67
+ please ask a question
68
+ [Stack Overflow](http://stackoverflow.com/questions/ask?tags=ibm-cloud).
69
+
70
+ ## Issues
71
+ If you encounter an issue with the project, you are welcome to submit a
72
+ [bug report](https://github.com/IBM-Cloud/ibm-cloud-sdk-ruby/issues).
73
+ Before that, please search for similar issues. It's possible that someone has already reported the problem.
74
+
75
+ ## Open source @ IBM
76
+ Find more open source projects on the [IBM Github Page](http://ibm.github.io/)
77
+
78
+ ## Contributing
79
+ See [CONTRIBUTING.md](https://github.com/IBM-Cloud/ibm-cloud-sdk-ruby/blob/master/gems/ibm_cloud_global_tagging/CONTRIBUTING.md).
80
+
81
+ ## License
82
+
83
+ This SDK is released under the Apache 2.0 license.
84
+ The license's full text can be found in [LICENSE](https://github.com/IBM-Cloud/ibm-cloud-sdk-ruby/blob/master/gems/ibm_cloud_global_tagging/LICENSE).
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "ibm_cloud_global_tagging"
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__)
@@ -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
@@ -0,0 +1,40 @@
1
+ require_relative 'lib/ibm_cloud_global_tagging/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "ibm_cloud_global_tagging"
5
+ spec.version = IbmCloudGlobalTagging::VERSION
6
+ spec.authors = ["adam.grare@ibm.com"]
7
+ spec.email = ["adam.grare@ibm.com"]
8
+
9
+ spec.summary = %q{IBM Cloud Global Tagging Ruby SDK}
10
+ spec.homepage = "https://github.com/IBM-Cloud/ibm-cloud-sdk-ruby"
11
+ spec.licenses = ["Apache-2.0"]
12
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
+
14
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
15
+
16
+ spec.metadata["homepage_uri"] = spec.homepage
17
+ spec.metadata["source_code_uri"] = spec.homepage
18
+ spec.metadata["changelog_uri"] = "#{spec.metadata["source_code_uri"]}/blob/master/CHANGELOG.md"
19
+
20
+ # Specify which files should be added to the gem when it is released.
21
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
22
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
23
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
+ end
25
+ spec.bindir = "exe"
26
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
+ spec.require_paths = ["lib"]
28
+
29
+ spec.add_runtime_dependency "concurrent-ruby", "~> 1.0"
30
+ spec.add_runtime_dependency "http", "~> 4.1.0"
31
+ spec.add_runtime_dependency "ibm_cloud_sdk_core", "~> 1.1.1"
32
+ spec.add_runtime_dependency "jwt", "~> 2.2.1"
33
+
34
+ spec.add_development_dependency "bundler"
35
+ spec.add_development_dependency "codecov"
36
+ spec.add_development_dependency "rake"
37
+ spec.add_development_dependency "rubocop", "0.62"
38
+ spec.add_development_dependency "simplecov", "~> 0.16"
39
+ spec.add_development_dependency "webmock", "~> 3.4"
40
+ end
@@ -0,0 +1,10 @@
1
+ require "ibm_cloud_global_tagging/version"
2
+ require "ibm_cloud_sdk_core"
3
+
4
+ module IbmCloudGlobalTagging
5
+ ApiException = IBMCloudSdkCore::ApiException
6
+ DetailedResponse = IBMCloudSdkCore::DetailedResponse
7
+
8
+ require_relative "./ibm_cloud_global_tagging/common.rb"
9
+ require_relative "./ibm_cloud_global_tagging/global_tagging_v1.rb"
10
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "./version.rb"
4
+
5
+ module IbmCloudGlobalTagging
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_global_tagging-ruby-sdk-" + IbmCloudGlobalTagging::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,304 @@
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: 99-SNAPSHOT-891116d3-20210112-104458
18
+ #
19
+ # Manage your tags with the Tagging API in IBM Cloud. You can attach, detach, delete a
20
+ # tag or list all tags in your billing account with the Tagging API. The tag name must be
21
+ # unique within a billing account. You can create tags in two formats: `key:value` or
22
+ # `label`. The tagging API supports two types of tag: `user` and `service`. `service` tags
23
+ # cannot be attached to IMS resources (see `providers=ims` query parameter). `service`
24
+ # tags must be in the form `service_prefix:tag_label` where `service_prefix` identifies
25
+ # the Service owning the tag.
26
+
27
+ require "concurrent"
28
+ require "erb"
29
+ require "json"
30
+ require "ibm_cloud_sdk_core"
31
+ require_relative "./common.rb"
32
+
33
+ module IbmCloudGlobalTagging
34
+ ##
35
+ # The global_tagging V1 service.
36
+ class GlobalTaggingV1 < IBMCloudSdkCore::BaseService
37
+ include Concurrent::Async
38
+ DEFAULT_SERVICE_NAME = "global_tagging"
39
+ DEFAULT_SERVICE_URL = "https://tags.global-search-tagging.cloud.ibm.com"
40
+ ##
41
+ # @!method initialize(args)
42
+ # Construct a new client for the global_tagging service.
43
+ #
44
+ # @param args [Hash] The args to initialize with
45
+ # @option args service_url [String] The base service URL to use when contacting the service.
46
+ # The base service_url may differ between IBM Cloud regions.
47
+ # @option args authenticator [Object] The Authenticator instance to be configured for this service.
48
+ # @option args service_name [String] The name of the service to configure. Will be used as the key to load
49
+ # any external configuration, if applicable.
50
+ def initialize(args = {})
51
+ @__async_initialized__ = false
52
+ defaults = {}
53
+ defaults[:service_url] = DEFAULT_SERVICE_URL
54
+ defaults[:service_name] = DEFAULT_SERVICE_NAME
55
+ defaults[:authenticator] = nil
56
+ user_service_url = args[:service_url] unless args[:service_url].nil?
57
+ args = defaults.merge(args)
58
+ super
59
+ @service_url = user_service_url unless user_service_url.nil?
60
+ end
61
+
62
+ #########################
63
+ # tags
64
+ #########################
65
+
66
+ ##
67
+ # @!method list_tags(account_id: nil, tag_type: nil, full_data: nil, providers: nil, attached_to: nil, offset: nil, limit: nil, timeout: nil, order_by_name: nil, attached_only: nil)
68
+ # Get all tags.
69
+ # Lists all tags in a billing account. Use the `attached_to` parameter to return the
70
+ # list of tags attached to the specified resource.
71
+ # @param account_id [String] The ID of the billing account to list the tags for. If it is not set, then it is
72
+ # taken from the authorization token. This parameter is required if `tag_type` is
73
+ # set to `service`.
74
+ # @param tag_type [String] The type of the tag you want to list. Supported values are `user` and `service`.
75
+ # @param full_data [Boolean] If set to `true`, this query returns the provider, `ghost`, `ims` or `ghost,ims`,
76
+ # where the tag exists and the number of attached resources.
77
+ # @param providers [Array[String]] Select a provider. Supported values are `ghost` and `ims`. To list GhoST tags and
78
+ # infrastructure tags use `ghost,ims`. `service` tags can only be attached to GhoST
79
+ # onboarded resources, so you don't need to set this parameter when listing
80
+ # `service` tags.
81
+ # @param attached_to [String] If you want to return only the list of tags attached to a specified resource, pass
82
+ # the ID of the resource on this parameter. For GhoST onboarded resources, the
83
+ # resource ID is the CRN; for IMS resources, it is the IMS ID. When using this
84
+ # parameter, you must specify the appropriate provider (`ims` or `ghost`).
85
+ # @param offset [Fixnum] The offset is the index of the item from which you want to start returning data
86
+ # from.
87
+ # @param limit [Fixnum] The number of tags to return.
88
+ # @param timeout [Fixnum] The search timeout bounds the search request to be executed within the specified
89
+ # time value. It returns the hits accumulated until time runs out.
90
+ # @param order_by_name [String] Order the output by tag name.
91
+ # @param attached_only [Boolean] Filter on attached tags. If `true`, it returns only tags that are attached to one
92
+ # or more resources. If `false`, it returns all tags.
93
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
94
+ def list_tags(account_id: nil, tag_type: nil, full_data: nil, providers: nil, attached_to: nil, offset: nil, limit: nil, timeout: nil, order_by_name: nil, attached_only: nil)
95
+ headers = {
96
+ }
97
+ sdk_headers = Common.new.get_sdk_headers("global_tagging", "V1", "list_tags")
98
+ headers.merge!(sdk_headers)
99
+ providers *= "," unless providers.nil?
100
+
101
+ params = {
102
+ "account_id" => account_id,
103
+ "tag_type" => tag_type,
104
+ "full_data" => full_data,
105
+ "providers" => providers,
106
+ "attached_to" => attached_to,
107
+ "offset" => offset,
108
+ "limit" => limit,
109
+ "timeout" => timeout,
110
+ "order_by_name" => order_by_name,
111
+ "attached_only" => attached_only
112
+ }
113
+
114
+ method_url = "/v3/tags"
115
+
116
+ response = request(
117
+ method: "GET",
118
+ url: method_url,
119
+ headers: headers,
120
+ params: params,
121
+ accept_json: true
122
+ )
123
+ response
124
+ end
125
+
126
+ ##
127
+ # @!method delete_tag_all(providers: nil, account_id: nil, tag_type: nil)
128
+ # Delete all unused tags.
129
+ # Delete the tags that are not attached to any resource.
130
+ # @param providers [String] Select a provider. Supported values are `ghost` and `ims`.
131
+ # @param account_id [String] The ID of the billing account to delete the tags for. If it is not set, then it is
132
+ # taken from the authorization token. It is a required parameter if `tag_type` is
133
+ # set to `service`.
134
+ # @param tag_type [String] The type of the tag. Supported values are `user` and `service`. `service` is not
135
+ # supported if the `providers` parameter is set to `ims`.
136
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
137
+ def delete_tag_all(providers: nil, account_id: nil, tag_type: nil)
138
+ headers = {
139
+ }
140
+ sdk_headers = Common.new.get_sdk_headers("global_tagging", "V1", "delete_tag_all")
141
+ headers.merge!(sdk_headers)
142
+
143
+ params = {
144
+ "providers" => providers,
145
+ "account_id" => account_id,
146
+ "tag_type" => tag_type
147
+ }
148
+
149
+ method_url = "/v3/tags"
150
+
151
+ response = request(
152
+ method: "DELETE",
153
+ url: method_url,
154
+ headers: headers,
155
+ params: params,
156
+ accept_json: true
157
+ )
158
+ response
159
+ end
160
+
161
+ ##
162
+ # @!method delete_tag(tag_name:, providers: nil, account_id: nil, tag_type: nil)
163
+ # Delete an unused tag.
164
+ # Delete an existing tag. A tag can be deleted only if it is not attached to any
165
+ # resource.
166
+ # @param tag_name [String] The name of tag to be deleted.
167
+ # @param providers [Array[String]] Select a provider. Supported values are `ghost` and `ims`. To delete tag both in
168
+ # GhoST in IMS, use `ghost,ims`.
169
+ # @param account_id [String] The ID of the billing account to delete the tag for. It is a required parameter if
170
+ # `tag_type` is set to `service`, otherwise it is inferred from the authorization
171
+ # IAM token.
172
+ # @param tag_type [String] The type of the tag. Supported values are `user` and `service`. `service` is not
173
+ # supported for `providers=ims`.
174
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
175
+ def delete_tag(tag_name:, providers: nil, account_id: nil, tag_type: nil)
176
+ raise ArgumentError.new("tag_name must be provided") if tag_name.nil?
177
+
178
+ headers = {
179
+ }
180
+ sdk_headers = Common.new.get_sdk_headers("global_tagging", "V1", "delete_tag")
181
+ headers.merge!(sdk_headers)
182
+ providers *= "," unless providers.nil?
183
+
184
+ params = {
185
+ "providers" => providers,
186
+ "account_id" => account_id,
187
+ "tag_type" => tag_type
188
+ }
189
+
190
+ method_url = "/v3/tags/%s" % [ERB::Util.url_encode(tag_name)]
191
+
192
+ response = request(
193
+ method: "DELETE",
194
+ url: method_url,
195
+ headers: headers,
196
+ params: params,
197
+ accept_json: true
198
+ )
199
+ response
200
+ end
201
+
202
+ ##
203
+ # @!method attach_tag(resources:, tag_name: nil, tag_names: nil, account_id: nil, tag_type: nil)
204
+ # Attach tags.
205
+ # Attaches one or more tags to one or more resources. To attach a `user` tag on a
206
+ # resource, you must have the access listed in the [Granting users access to tag
207
+ # resources](https://cloud.ibm.com/docs/account?topic=account-access) documentation.
208
+ # To attach a `service` tag, you must be an authorized service. If that is the case,
209
+ # then you can attach a `service` tag with your registered `prefix` to any resource
210
+ # in any account. The account ID must be set through the `account_id` query
211
+ # parameter.
212
+ # @param resources [Array[Resource]] List of resources on which the tag or tags should be attached.
213
+ # @param tag_name [String] The name of the tag to attach.
214
+ # @param tag_names [Array[String]] An array of tag names to attach.
215
+ # @param account_id [String] The ID of the billing account where the resources to be tagged lives. It is a
216
+ # required parameter if `tag_type` is set to `service`. Otherwise, it is inferred
217
+ # from the authorization IAM token.
218
+ # @param tag_type [String] The type of the tag. Supported values are `user` and `service`. `service` is not
219
+ # supported if `providers` is set to `ims`.
220
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
221
+ def attach_tag(resources:, tag_name: nil, tag_names: nil, account_id: nil, tag_type: nil)
222
+ raise ArgumentError.new("resources must be provided") if resources.nil?
223
+
224
+ headers = {
225
+ }
226
+ sdk_headers = Common.new.get_sdk_headers("global_tagging", "V1", "attach_tag")
227
+ headers.merge!(sdk_headers)
228
+
229
+ params = {
230
+ "account_id" => account_id,
231
+ "tag_type" => tag_type
232
+ }
233
+
234
+ data = {
235
+ "resources" => resources,
236
+ "tag_name" => tag_name,
237
+ "tag_names" => tag_names
238
+ }
239
+
240
+ method_url = "/v3/tags/attach"
241
+
242
+ response = request(
243
+ method: "POST",
244
+ url: method_url,
245
+ headers: headers,
246
+ params: params,
247
+ json: data,
248
+ accept_json: true
249
+ )
250
+ response
251
+ end
252
+
253
+ ##
254
+ # @!method detach_tag(resources:, tag_name: nil, tag_names: nil, account_id: nil, tag_type: nil)
255
+ # Detach tags.
256
+ # Detaches one or more tags from one or more resources. To detach a `user` tag on a
257
+ # resource you must have the permissions listed in the [Granting users access to tag
258
+ # resources](https://cloud.ibm.com/docs/account?topic=account-access) documentation.
259
+ # To detach a `service` tag you must be an authorized Service. If that is the case,
260
+ # then you can detach a `service` tag with your registered `prefix` from any
261
+ # resource in any account. The account ID must be set through the `account_id` query
262
+ # parameter.
263
+ # @param resources [Array[Resource]] List of resources on which the tag or tags should be detached.
264
+ # @param tag_name [String] The name of the tag to detach.
265
+ # @param tag_names [Array[String]] An array of tag names to detach.
266
+ # @param account_id [String] The ID of the billing account where the resources to be un-tagged lives. It is a
267
+ # required parameter if `tag_type` is set to `service`, otherwise it is inferred
268
+ # from the authorization IAM token.
269
+ # @param tag_type [String] The type of the tag. Supported values are `user` and `service`. `service` is not
270
+ # supported for `providers=ims`.
271
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
272
+ def detach_tag(resources:, tag_name: nil, tag_names: nil, account_id: nil, tag_type: nil)
273
+ raise ArgumentError.new("resources must be provided") if resources.nil?
274
+
275
+ headers = {
276
+ }
277
+ sdk_headers = Common.new.get_sdk_headers("global_tagging", "V1", "detach_tag")
278
+ headers.merge!(sdk_headers)
279
+
280
+ params = {
281
+ "account_id" => account_id,
282
+ "tag_type" => tag_type
283
+ }
284
+
285
+ data = {
286
+ "resources" => resources,
287
+ "tag_name" => tag_name,
288
+ "tag_names" => tag_names
289
+ }
290
+
291
+ method_url = "/v3/tags/detach"
292
+
293
+ response = request(
294
+ method: "POST",
295
+ url: method_url,
296
+ headers: headers,
297
+ params: params,
298
+ json: data,
299
+ accept_json: true
300
+ )
301
+ response
302
+ end
303
+ end
304
+ end
@@ -0,0 +1,3 @@
1
+ module IbmCloudGlobalTagging
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,205 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ibm_cloud_global_tagging
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - adam.grare@ibm.com
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-01-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: concurrent-ruby
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: http
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 4.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 4.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: ibm_cloud_sdk_core
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.1.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.1.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: jwt
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.2.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.2.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: codecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: '0.62'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: '0.62'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.16'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.16'
139
+ - !ruby/object:Gem::Dependency
140
+ name: webmock
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '3.4'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '3.4'
153
+ description:
154
+ email:
155
+ - adam.grare@ibm.com
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - ".bumpversion.cfg"
161
+ - ".gitignore"
162
+ - ".rspec"
163
+ - ".travis.yml"
164
+ - CHANGELOG.md
165
+ - CODE_OF_CONDUCT.md
166
+ - CONTRIBUTING.md
167
+ - Gemfile
168
+ - LICENSE
169
+ - README.md
170
+ - Rakefile
171
+ - bin/console
172
+ - bin/setup
173
+ - ibm_cloud_global_tagging.gemspec
174
+ - lib/ibm_cloud_global_tagging.rb
175
+ - lib/ibm_cloud_global_tagging/common.rb
176
+ - lib/ibm_cloud_global_tagging/global_tagging_v1.rb
177
+ - lib/ibm_cloud_global_tagging/version.rb
178
+ homepage: https://github.com/IBM-Cloud/ibm-cloud-sdk-ruby
179
+ licenses:
180
+ - Apache-2.0
181
+ metadata:
182
+ allowed_push_host: https://rubygems.org
183
+ homepage_uri: https://github.com/IBM-Cloud/ibm-cloud-sdk-ruby
184
+ source_code_uri: https://github.com/IBM-Cloud/ibm-cloud-sdk-ruby
185
+ changelog_uri: https://github.com/IBM-Cloud/ibm-cloud-sdk-ruby/blob/master/CHANGELOG.md
186
+ post_install_message:
187
+ rdoc_options: []
188
+ require_paths:
189
+ - lib
190
+ required_ruby_version: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: 2.3.0
195
+ required_rubygems_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ requirements: []
201
+ rubygems_version: 3.2.5
202
+ signing_key:
203
+ specification_version: 4
204
+ summary: IBM Cloud Global Tagging Ruby SDK
205
+ test_files: []