Skip to content

Commit

Permalink
Add cloudcommerceprocurement API
Browse files Browse the repository at this point in the history
  • Loading branch information
banool committed Aug 14, 2024
1 parent 2834967 commit 757064a
Show file tree
Hide file tree
Showing 13 changed files with 7,940 additions and 5,651 deletions.
5,657 changes: 6 additions & 5,651 deletions apis.json

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions etc/api/api-list.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,8 @@ api:
- v1
cloudchannel:
- v1
cloudcommerceprocurement:
- v1
clouddebugger:
- v2
clouddeploy:
Expand Down
930 changes: 930 additions & 0 deletions etc/api/cloudcommerceprocurement/v1/cloudcommerceprocurement-api.json

Large diffs are not rendered by default.

42 changes: 42 additions & 0 deletions gen/cloudcommerceprocurement1-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# DO NOT EDIT !
# This file was generated automatically from 'src/generator/templates/Cargo.toml.mako'
# DO NOT EDIT !
[package]

name = "google-cloudcommerceprocurement1-cli"
version = "5.0.5+20240804"
authors = ["Sebastian Thiel <[email protected]>"]
description = "A complete library to interact with Cloud Commerce Partner Procurement Service (protocol v1)"
repository = "https://github.com/Byron/google-apis-rs/tree/main/gen/cloudcommerceprocurement1-cli"
homepage = "https://cloud.google.com/marketplace/docs/partners/"
documentation = "http://byron.github.io/google-apis-rs/google_cloudcommerceprocurement1_cli"
license = "MIT"
keywords = ["cloudcommerceprocure", "google", "cli"]
autobins = false
edition = "2018"

[[bin]]
name = "cloudcommerceprocurement1"
path = "src/main.rs"

[dependencies]
anyhow = "^ 1.0"
hyper-rustls = "0.25.0"
mime = "^ 0.3.0"
serde = { version = "^ 1.0", features = ["derive"] }
utoipa = { version = "^4.2", optional = true }
serde_json = "^ 1.0"
itertools = "0.13"
google-clis-common = { path = "../../google-clis-common", version = "6.0" }
clap = "^2.0"
http = "^0.2"
hyper = { version = "0.14", features = ["full"] }
tokio = { version = "^ 1.0", features = ["full"] }
tower-service = "^0.3.1"



[dependencies.google-cloudcommerceprocurement1]
path = "../cloudcommerceprocurement1"
version = "5.0.5+20240804"

30 changes: 30 additions & 0 deletions gen/cloudcommerceprocurement1-cli/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!---
DO NOT EDIT !
This file was generated automatically from 'src/generator/templates/LICENSE.md.mako'
DO NOT EDIT !
-->
The MIT License (MIT)
=====================

Copyright 2015–2024 Sebastian Thiel

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the “Software”), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
117 changes: 117 additions & 0 deletions gen/cloudcommerceprocurement1-cli/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
<!---
DO NOT EDIT !
This file was generated automatically from 'src/generator/templates/cli/README.md.mako'
DO NOT EDIT !
-->
The `cloudcommerceprocurement1` command-line interface *(CLI)* allows to use most features of the *Google Cloud Commerce Partner Procurement Service* service from the comfort of your terminal.

By default all output is printed to standard out, but flags can be set to direct it into a file independent of your shell's
capabilities. Errors will be printed to standard error, and cause the program's exit code to be non-zero.

If data-structures are requested, these will be returned as pretty-printed JSON, to be useful as input to other tools.

Everything else about the *Cloud Commerce Partner Procurement Service* API can be found at the
[official documentation site](https://cloud.google.com/marketplace/docs/partners/).

# Installation and Source Code

Install the command-line interface with cargo using:

```bash
cargo install google-cloudcommerceprocurement1-cli
```

Find the source code [on github](https://github.com/Byron/google-apis-rs/tree/main/gen/cloudcommerceprocurement1-cli).

# Usage

This documentation was generated from the *Cloud Commerce Partner Procurement Service* API at revision *20240804*. The CLI is at version *5.0.5*.

```bash
cloudcommerceprocurement1 [options]
providers
accounts-approve <name> (-r <kv>)... [-p <v>]... [-o <out>]
accounts-get <name> [-p <v>]... [-o <out>]
accounts-list <parent> [-p <v>]... [-o <out>]
accounts-reject <name> (-r <kv>)... [-p <v>]... [-o <out>]
accounts-reset <name> (-r <kv>)... [-p <v>]... [-o <out>]
entitlements-approve <name> (-r <kv>)... [-p <v>]... [-o <out>]
entitlements-approve-plan-change <name> (-r <kv>)... [-p <v>]... [-o <out>]
entitlements-get <name> [-p <v>]... [-o <out>]
entitlements-list <parent> [-p <v>]... [-o <out>]
entitlements-patch <name> (-r <kv>)... [-p <v>]... [-o <out>]
entitlements-reject <name> (-r <kv>)... [-p <v>]... [-o <out>]
entitlements-reject-plan-change <name> (-r <kv>)... [-p <v>]... [-o <out>]
entitlements-suspend <name> (-r <kv>)... [-p <v>]... [-o <out>]
cloudcommerceprocurement1 --help

Configuration:
[--scope <url>]...
Specify the authentication a method should be executed in. Each scope
requires the user to grant this application permission to use it.
If unset, it defaults to the shortest scope url for a particular method.
--config-dir <folder>
A directory into which we will store our persistent data. Defaults to
a user-writable directory that we will create during the first invocation.
[default: ~/.google-service-cli]

```

# Configuration

The program will store all persistent data in the `~/.google-service-cli` directory in *JSON* files prefixed with `cloudcommerceprocurement1-`. You can change the directory used to store configuration with the `--config-dir` flag on a per-invocation basis.

More information about the various kinds of persistent data are given in the following paragraphs.

# Authentication

Most APIs require a user to authenticate any request. If this is the case, the [scope][scopes] determines the
set of permissions granted. The granularity of these is usually no more than *read-only* or *full-access*.

If not set, the system will automatically select the smallest feasible scope, e.g. when invoking a
method that is read-only, it will ask only for a read-only scope.
You may use the `--scope` flag to specify a scope directly.
All applicable scopes are documented in the respective method's CLI documentation.

The first time a scope is used, the user is asked for permission. Follow the instructions given
by the CLI to grant permissions, or to decline.

If a scope was authenticated by the user, the respective information will be stored as *JSON* in the configuration
directory, e.g. `~/.google-service-cli/cloudcommerceprocurement1-token-<scope-hash>.json`. No manual management of these tokens
is necessary.

To revoke granted authentication, please refer to the [official documentation][revoke-access].

# Application Secrets

In order to allow any application to use Google services, it will need to be registered using the
[Google Developer Console][google-dev-console]. APIs the application may use are then enabled for it
one by one. Most APIs can be used for free and have a daily quota.

To allow more comfortable usage of the CLI without forcing anyone to register an own application, the CLI
comes with a default application secret that is configured accordingly. This also means that heavy usage
all around the world may deplete the daily quota.

You can workaround this limitation by putting your own secrets file at this location:
`~/.google-service-cli/cloudcommerceprocurement1-secret.json`, assuming that the required *cloudcommerceprocurement* API
was enabled for it. Such a secret file can be downloaded in the *Google Developer Console* at
*APIs & auth -> Credentials -> Download JSON* and used as is.

Learn more about how to setup Google projects and enable APIs using the [official documentation][google-project-new].


# Debugging

Even though the CLI does its best to provide usable error messages, sometimes it might be desirable to know
what exactly led to a particular issue. This is done by allowing all client-server communication to be
output to standard error *as-is*.

The `--debug` flag will print errors using the `Debug` representation to standard error.

You may consider redirecting standard error into a file for ease of use, e.g. `cloudcommerceprocurement1 --debug <resource> <method> [options] 2>debug.txt`.


[scopes]: https://developers.google.com/+/api/oauth#scopes
[revoke-access]: http://webapps.stackexchange.com/a/30849
[google-dev-console]: https://console.developers.google.com/
[google-project-new]: https://developers.google.com/console/help/new/
30 changes: 30 additions & 0 deletions gen/cloudcommerceprocurement1-cli/mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
site_name: Cloud Commerce Partner Procurement Service v5.0.5+20240804
site_url: http://byron.github.io/google-apis-rs/google-cloudcommerceprocurement1-cli
site_description: A complete library to interact with Cloud Commerce Partner Procurement Service (protocol v1)

repo_url: https://github.com/Byron/google-apis-rs/tree/main/gen/cloudcommerceprocurement1-cli

docs_dir: docs
site_dir: build_html

nav:
- Home: 'index.md'
- 'Providers':
- 'Accounts Approve': 'providers_accounts-approve.md'
- 'Accounts Get': 'providers_accounts-get.md'
- 'Accounts List': 'providers_accounts-list.md'
- 'Accounts Reject': 'providers_accounts-reject.md'
- 'Accounts Reset': 'providers_accounts-reset.md'
- 'Entitlements Approve': 'providers_entitlements-approve.md'
- 'Entitlements Approve Plan Change': 'providers_entitlements-approve-plan-change.md'
- 'Entitlements Get': 'providers_entitlements-get.md'
- 'Entitlements List': 'providers_entitlements-list.md'
- 'Entitlements Patch': 'providers_entitlements-patch.md'
- 'Entitlements Reject': 'providers_entitlements-reject.md'
- 'Entitlements Reject Plan Change': 'providers_entitlements-reject-plan-change.md'
- 'Entitlements Suspend': 'providers_entitlements-suspend.md'

theme: readthedocs

copyright: Copyright &copy; 2015–2024, `Sebastian Thiel`

Loading

0 comments on commit 757064a

Please sign in to comment.