api-v1, initial commit

This commit is contained in:
Quentin 2023-11-22 18:28:14 +01:00
parent c965fe7f7d
commit bdb4b9b29f
Signed by: quentin
GPG key ID: E9602264D639FF68
60 changed files with 1955 additions and 334 deletions

View file

@ -12,6 +12,7 @@ docs/AddKeyRequest.md
docs/AddNode200ResponseInner.md docs/AddNode200ResponseInner.md
docs/AllowBucketKeyRequest.md docs/AllowBucketKeyRequest.md
docs/AllowBucketKeyRequestPermissions.md docs/AllowBucketKeyRequestPermissions.md
docs/ApplyLayout200Response.md
docs/BucketApi.md docs/BucketApi.md
docs/BucketInfo.md docs/BucketInfo.md
docs/BucketInfoQuotas.md docs/BucketInfoQuotas.md
@ -35,6 +36,9 @@ docs/ListBuckets200ResponseInnerLocalAliasesInner.md
docs/ListKeys200ResponseInner.md docs/ListKeys200ResponseInner.md
docs/NodeClusterInfo.md docs/NodeClusterInfo.md
docs/NodeNetworkInfo.md docs/NodeNetworkInfo.md
docs/NodeRoleChange.md
docs/NodeRoleRemove.md
docs/NodeRoleUpdate.md
docs/NodesApi.md docs/NodesApi.md
docs/UpdateBucketRequest.md docs/UpdateBucketRequest.md
docs/UpdateBucketRequestQuotas.md docs/UpdateBucketRequestQuotas.md
@ -49,6 +53,7 @@ model_add_key_request.go
model_add_node_200_response_inner.go model_add_node_200_response_inner.go
model_allow_bucket_key_request.go model_allow_bucket_key_request.go
model_allow_bucket_key_request_permissions.go model_allow_bucket_key_request_permissions.go
model_apply_layout_200_response.go
model_bucket_info.go model_bucket_info.go
model_bucket_info_quotas.go model_bucket_info_quotas.go
model_bucket_info_website_config.go model_bucket_info_website_config.go
@ -69,6 +74,9 @@ model_list_buckets_200_response_inner_local_aliases_inner.go
model_list_keys_200_response_inner.go model_list_keys_200_response_inner.go
model_node_cluster_info.go model_node_cluster_info.go
model_node_network_info.go model_node_network_info.go
model_node_role_change.go
model_node_role_remove.go
model_node_role_update.go
model_update_bucket_request.go model_update_bucket_request.go
model_update_bucket_request_quotas.go model_update_bucket_request_quotas.go
model_update_bucket_request_website_access.go model_update_bucket_request_website_access.go

View file

@ -8,7 +8,7 @@ Administrate your Garage cluster programatically, including status, layout, keys
## Overview ## Overview
This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client. This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.
- API version: v0.8.0 - API version: v0.9.0
- Package version: 0.8.0 - Package version: 0.8.0
- Build package: org.openapitools.codegen.languages.GoClientCodegen - Build package: org.openapitools.codegen.languages.GoClientCodegen
@ -77,7 +77,7 @@ ctx = context.WithValue(context.Background(), garage.ContextOperationServerVaria
## Documentation for API Endpoints ## Documentation for API Endpoints
All URIs are relative to *http://localhost:3903/v0* All URIs are relative to *http://localhost:3903/v1*
Class | Method | HTTP request | Description Class | Method | HTTP request | Description
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
@ -114,6 +114,7 @@ Class | Method | HTTP request | Description
- [AddNode200ResponseInner](docs/AddNode200ResponseInner.md) - [AddNode200ResponseInner](docs/AddNode200ResponseInner.md)
- [AllowBucketKeyRequest](docs/AllowBucketKeyRequest.md) - [AllowBucketKeyRequest](docs/AllowBucketKeyRequest.md)
- [AllowBucketKeyRequestPermissions](docs/AllowBucketKeyRequestPermissions.md) - [AllowBucketKeyRequestPermissions](docs/AllowBucketKeyRequestPermissions.md)
- [ApplyLayout200Response](docs/ApplyLayout200Response.md)
- [BucketInfo](docs/BucketInfo.md) - [BucketInfo](docs/BucketInfo.md)
- [BucketInfoQuotas](docs/BucketInfoQuotas.md) - [BucketInfoQuotas](docs/BucketInfoQuotas.md)
- [BucketInfoWebsiteConfig](docs/BucketInfoWebsiteConfig.md) - [BucketInfoWebsiteConfig](docs/BucketInfoWebsiteConfig.md)
@ -134,6 +135,9 @@ Class | Method | HTTP request | Description
- [ListKeys200ResponseInner](docs/ListKeys200ResponseInner.md) - [ListKeys200ResponseInner](docs/ListKeys200ResponseInner.md)
- [NodeClusterInfo](docs/NodeClusterInfo.md) - [NodeClusterInfo](docs/NodeClusterInfo.md)
- [NodeNetworkInfo](docs/NodeNetworkInfo.md) - [NodeNetworkInfo](docs/NodeNetworkInfo.md)
- [NodeRoleChange](docs/NodeRoleChange.md)
- [NodeRoleRemove](docs/NodeRoleRemove.md)
- [NodeRoleUpdate](docs/NodeRoleUpdate.md)
- [UpdateBucketRequest](docs/UpdateBucketRequest.md) - [UpdateBucketRequest](docs/UpdateBucketRequest.md)
- [UpdateBucketRequestQuotas](docs/UpdateBucketRequestQuotas.md) - [UpdateBucketRequestQuotas](docs/UpdateBucketRequestQuotas.md)
- [UpdateBucketRequestWebsiteAccess](docs/UpdateBucketRequestWebsiteAccess.md) - [UpdateBucketRequestWebsiteAccess](docs/UpdateBucketRequestWebsiteAccess.md)

View file

@ -4,11 +4,11 @@ info:
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks.
*Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
title: Garage Administration API v0+garage-v0.8.0 title: Garage Administration API v0+garage-v0.9.0
version: v0.8.0 version: v0.9.0
servers: servers:
- description: A local server - description: A local server
url: http://localhost:3903/v0/ url: http://localhost:3903/v1/
security: security:
- bearerAuth: [] - bearerAuth: []
paths: paths:
@ -20,6 +20,8 @@ paths:
- Live nodes - Live nodes
- Currently configured cluster layout - Currently configured cluster layout
- Staged changes to the cluster layout - Staged changes to the cluster layout
*Capacity is given in bytes*
operationId: GetNodes operationId: GetNodes
responses: responses:
"500": "500":
@ -79,8 +81,8 @@ paths:
get: get:
description: "Returns the cluster's current layout, including:\n - Currently\ description: "Returns the cluster's current layout, including:\n - Currently\
\ configured cluster layout\n - Staged changes to the cluster layout\n \n\ \ configured cluster layout\n - Staged changes to the cluster layout\n \n\
*The info returned by this endpoint is a subset of the info returned by `GET\ *Capacity is given in bytes*\n*The info returned by this endpoint is a subset\
\ /status`.*\n" \ of the info returned by `GET /status`.*\n"
operationId: GetLayout operationId: GetLayout
responses: responses:
"500": "500":
@ -101,25 +103,32 @@ paths:
post: post:
description: | description: |
Send modifications to the cluster layout. These modifications will be included in the staged role changes, visible in subsequent calls of `GET /layout`. Once the set of staged changes is satisfactory, the user may call `POST /layout/apply` to apply the changed changes, or `POST /layout/revert` to clear all of the staged changes in the layout. Send modifications to the cluster layout. These modifications will be included in the staged role changes, visible in subsequent calls of `GET /layout`. Once the set of staged changes is satisfactory, the user may call `POST /layout/apply` to apply the changed changes, or `POST /layout/revert` to clear all of the staged changes in the layout.
Note that setting the capacity to `null` will configure the node as a gateway.
Setting the capacity to `null` will configure the node as a gateway.
Otherwise, capacity must be now set in bytes (before Garage 0.9 it was arbitrary weights).
For example to declare 100GB, you must set `capacity: 100000000000`.
Garage uses internally the International System of Units (SI), it assumes that 1kB = 1000 bytes, and displays storage as kB, MB, GB (and not KiB, MiB, GiB that assume 1KiB = 1024 bytes).
operationId: AddLayout operationId: AddLayout
requestBody: requestBody:
content: content:
application/json: application/json:
schema: schema:
additionalProperties:
$ref: '#/components/schemas/NodeClusterInfo'
example: example:
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b: - id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
zone: geneva zone: geneva
capacity: 4 capacity: 100000000000
tags: tags:
- gateway - gateway
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff": null - id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
type: object remove: true
items:
$ref: '#/components/schemas/NodeRoleChange'
type: array
description: | description: |
To add a new node to the layout or to change the configuration of an existing node, simply set the values you want. To add a new node to the layout or to change the configuration of an existing node, simply set the values you want (`zone`, `capacity`, and `tags`).
To remove a node, set it to `null` instead of passing a configuration object. To remove a node, simply pass the `remove: true` field.
This logic is represented in OpenAPI with a "One Of" object.
Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified. Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified.
required: true required: true
@ -130,6 +139,10 @@ paths:
"400": "400":
description: Invalid syntax or requested change description: Invalid syntax or requested change
"200": "200":
content:
application/json:
schema:
$ref: '#/components/schemas/ClusterLayout'
description: The layout modification has been correctly staged description: The layout modification has been correctly staged
summary: Send modifications to the cluster layout summary: Send modifications to the cluster layout
tags: tags:
@ -138,6 +151,8 @@ paths:
post: post:
description: | description: |
Applies to the cluster the layout changes currently registered as staged layout changes. Applies to the cluster the layout changes currently registered as staged layout changes.
*Note: do not try to parse the `message` field of the response, it is given as an array of string specifically because its format is not stable.*
operationId: ApplyLayout operationId: ApplyLayout
requestBody: requestBody:
content: content:
@ -154,6 +169,10 @@ paths:
"400": "400":
description: Invalid syntax or requested change description: Invalid syntax or requested change
"200": "200":
content:
application/json:
schema:
$ref: '#/components/schemas/ApplyLayout_200_response'
description: "The staged layout has been applied as the new layout of the\ description: "The staged layout has been applied as the new layout of the\
\ cluster, a rebalance has been triggered." \ cluster, a rebalance has been triggered."
summary: Apply staged layout summary: Apply staged layout
@ -220,7 +239,10 @@ paths:
schema: schema:
$ref: '#/components/schemas/AddKey_request' $ref: '#/components/schemas/AddKey_request'
description: | description: |
"You can set a friendly name for this key, send an empty string instead" You can set a friendly name for this key.
If you don't want to, you can set the name to `null`.
*Note: the secret key is returned in the response.*
required: true required: true
responses: responses:
"500": "500":
@ -263,8 +285,10 @@ paths:
tags: tags:
- Key - Key
get: get:
description: | description: "Return information about a specific key like its identifiers,\
Return information about a specific key and return its information \ its permissions and buckets on which it has permissions. \n\nFor confidentiality\
\ reasons, the secret key is not returned by default: you must pass the `showSecretKey`\
\ query parameter to get it.\n"
operationId: GetKey operationId: GetKey
parameters: parameters:
- description: The exact API access key generated by Garage - description: The exact API access key generated by Garage
@ -276,6 +300,16 @@ paths:
schema: schema:
type: string type: string
style: simple style: simple
- description: Wether or not the secret key should be returned in the response
example: true
explode: true
in: query
name: showSecretKey
required: false
schema:
default: false
type: boolean
style: form
responses: responses:
"500": "500":
description: The server can not handle your request. Check your connectivity description: The server can not handle your request. Check your connectivity
@ -293,6 +327,8 @@ paths:
post: post:
description: | description: |
Updates information about the specified API access key. Updates information about the specified API access key.
*Note: the secret key is not returned in the response, `null` is sent instead.*
operationId: UpdateKey operationId: UpdateKey
parameters: parameters:
- description: The exact API access key generated by Garage - description: The exact API access key generated by Garage
@ -331,7 +367,9 @@ paths:
/key?search={pattern}: /key?search={pattern}:
get: get:
description: | description: |
Find the first key matching the given pattern based on its identifier aor friendly name and return its information. Find the first key matching the given pattern based on its identifier or friendly name and return its information.
For confidentiality reasons, the secret key is not returned by default: you must pass the `showSecretKey` query parameter to get it.
operationId: SearchKey operationId: SearchKey
parameters: parameters:
- description: A pattern (beginning or full string) corresponding to a key identifier - description: A pattern (beginning or full string) corresponding to a key identifier
@ -344,6 +382,16 @@ paths:
schema: schema:
type: string type: string
style: simple style: simple
- description: Wether or not the secret key should be returned in the response
example: true
explode: true
in: query
name: showSecretKey
required: false
schema:
default: false
type: boolean
style: form
responses: responses:
"500": "500":
description: The server can not handle your request. Check your connectivity description: The server can not handle your request. Check your connectivity
@ -519,7 +567,7 @@ paths:
- Bucket - Bucket
put: put:
description: | description: |
All fields (`websiteAccess` and `quotas`) are optionnal. All fields (`websiteAccess` and `quotas`) are optional.
If they are present, the corresponding modifications are applied to the bucket, otherwise nothing is changed. If they are present, the corresponding modifications are applied to the bucket, otherwise nothing is changed.
In `websiteAccess`: if `enabled` is `true`, `indexDocument` must be specified. In `websiteAccess`: if `enabled` is `true`, `indexDocument` must be specified.
@ -846,13 +894,16 @@ components:
schemas: schemas:
NodeNetworkInfo: NodeNetworkInfo:
properties: properties:
id:
example: 6a8e08af2aab1083ebab9b22165ea8b5b9d333b60a39ecd504e85cc1f432c36f
type: string
addr: addr:
example: 10.0.0.11:3901 example: 10.0.0.11:3901
type: string type: string
is_up: isUp:
example: true example: true
type: boolean type: boolean
last_seen_secs_ago: lastSeenSecsAgo:
example: 9 example: 9
nullable: true nullable: true
type: integer type: integer
@ -862,16 +913,10 @@ components:
required: required:
- addr - addr
- hostname - hostname
- is_up - isUp
- last_seen_secs_ago - lastSeenSecsAgo
type: object type: object
NodeClusterInfo: NodeClusterInfo:
example:
zone: dc1
capacity: 4
tags:
- gateway
- fast
properties: properties:
zone: zone:
example: dc1 example: dc1
@ -890,6 +935,45 @@ components:
type: string type: string
type: array type: array
required: required:
- id
- tags
- zone
type: object
NodeRoleChange:
oneOf:
- $ref: '#/components/schemas/NodeRoleRemove'
- $ref: '#/components/schemas/NodeRoleUpdate'
NodeRoleRemove:
properties:
id:
example: 6a8e08af2aab1083ebab9b22165ea8b5b9d333b60a39ecd504e85cc1f432c36f
type: string
remove:
example: true
type: boolean
required:
- remove
type: object
NodeRoleUpdate:
properties:
id:
example: 6a8e08af2aab1083ebab9b22165ea8b5b9d333b60a39ecd504e85cc1f432c36f
type: string
zone:
example: dc1
type: string
capacity:
example: 150000000000
nullable: true
type: integer
tags:
example:
- gateway
- fast
items:
type: string
type: array
required:
- capacity - capacity
- tags - tags
- zone - zone
@ -897,54 +981,58 @@ components:
ClusterLayout: ClusterLayout:
example: example:
roles: roles:
ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f: - id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
zone: madrid zone: madrid
capacity: 3 capacity: 300000000000
tags: tags:
- fast - fast
- amd64 - amd64
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff": - id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
zone: geneva zone: geneva
capacity: 7 capacity: 700000000000
tags: tags:
- arm64 - arm64
stagedRoleChanges: stagedRoleChanges:
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b: - id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
zone: geneva zone: geneva
capacity: 4 capacity: 800000000000
tags: tags:
- gateway - gateway
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
remove: true
version: 12 version: 12
properties: properties:
version: version:
example: 12 example: 12
type: integer type: integer
roles: roles:
additionalProperties:
$ref: '#/components/schemas/NodeClusterInfo'
example: example:
ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f: - id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
zone: madrid zone: madrid
capacity: 3 capacity: 300000000000
tags: tags:
- fast - fast
- amd64 - amd64
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff": - id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
zone: geneva zone: geneva
capacity: 7 capacity: 700000000000
tags: tags:
- arm64 - arm64
type: object items:
$ref: '#/components/schemas/NodeClusterInfo'
type: array
stagedRoleChanges: stagedRoleChanges:
additionalProperties:
$ref: '#/components/schemas/NodeClusterInfo'
example: example:
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b: - id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
zone: geneva zone: geneva
capacity: 4 capacity: 800000000000
tags: tags:
- gateway - gateway
type: object - id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
remove: true
items:
$ref: '#/components/schemas/NodeRoleChange'
type: array
required: required:
- roles - roles
- stagedRoleChanges - stagedRoleChanges
@ -997,6 +1085,7 @@ components:
type: string type: string
secretAccessKey: secretAccessKey:
example: b892c0665f0ada8a4755dae98baa3b133590e11dae3bcc1f9d769d67f16c3835 example: b892c0665f0ada8a4755dae98baa3b133590e11dae3bcc1f9d769d67f16c3835
nullable: true
type: string type: string
permissions: permissions:
$ref: '#/components/schemas/KeyInfo_permissions' $ref: '#/components/schemas/KeyInfo_permissions'
@ -1100,76 +1189,113 @@ components:
example: example:
layout: layout:
roles: roles:
ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f: - id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
zone: madrid zone: madrid
capacity: 3 capacity: 300000000000
tags: tags:
- fast - fast
- amd64 - amd64
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff": - id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
zone: geneva zone: geneva
capacity: 7 capacity: 700000000000
tags: tags:
- arm64 - arm64
stagedRoleChanges: stagedRoleChanges:
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b: - id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
zone: geneva zone: geneva
capacity: 4 capacity: 800000000000
tags: tags:
- gateway - gateway
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
remove: true
version: 12 version: 12
node: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f node: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
dbEngine: LMDB (using Heed crate)
rustVersion: 1.68.0
knownNodes: knownNodes:
ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f: - id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
addr: 10.0.0.11:3901 addr: 10.0.0.11:3901
is_up: true isUp: true
last_seen_secs_ago: 9 lastSeenSecsAgo: 9
hostname: orion hostname: orion
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff": - id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
addr: 10.0.0.12:3901 addr: 10.0.0.12:3901
is_up: true isUp: true
last_seen_secs_ago: 13 lastSeenSecsAgo: 13
hostname: pegasus hostname: pegasus
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b: - id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
addr: 10.0.0.13:3901 addr: 10.0.0.13:3901
is_up: true isUp: true
last_seen_secs_ago: 2 lastSeenSecsAgo: 2
hostname: neptune hostname: neptune
garageVersion: v0.7.3 garageFeatures:
- k2v
- sled
- lmdb
- sqlite
- consul-discovery
- kubernetes-discovery
- metrics
- telemetry-otlp
- bundled-libs
garageVersion: v0.9.0
properties: properties:
node: node:
example: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f example: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
type: string type: string
garageVersion: garageVersion:
example: v0.7.3 example: v0.9.0
type: string
garageFeatures:
example:
- k2v
- sled
- lmdb
- sqlite
- consul-discovery
- kubernetes-discovery
- metrics
- telemetry-otlp
- bundled-libs
items:
type: string
type: array
rustVersion:
example: 1.68.0
type: string
dbEngine:
example: LMDB (using Heed crate)
type: string type: string
knownNodes: knownNodes:
additionalProperties:
$ref: '#/components/schemas/NodeNetworkInfo'
example: example:
ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f: - id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
addr: 10.0.0.11:3901 addr: 10.0.0.11:3901
is_up: true isUp: true
last_seen_secs_ago: 9 lastSeenSecsAgo: 9
hostname: orion hostname: orion
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff": - id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
addr: 10.0.0.12:3901 addr: 10.0.0.12:3901
is_up: true isUp: true
last_seen_secs_ago: 13 lastSeenSecsAgo: 13
hostname: pegasus hostname: pegasus
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b: - id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
addr: 10.0.0.13:3901 addr: 10.0.0.13:3901
is_up: true isUp: true
last_seen_secs_ago: 2 lastSeenSecsAgo: 2
hostname: neptune hostname: neptune
type: object items:
$ref: '#/components/schemas/NodeNetworkInfo'
type: array
layout: layout:
$ref: '#/components/schemas/ClusterLayout' $ref: '#/components/schemas/ClusterLayout'
required: required:
- dbEngine
- garageFeatures
- garageVersion - garageVersion
- knownNodes - knownNodes
- layout - layout
- node - node
- rustVersion
type: object type: object
AddNode_200_response_inner: AddNode_200_response_inner:
properties: properties:
@ -1181,6 +1307,76 @@ components:
type: string type: string
example: null example: null
type: object type: object
ApplyLayout_200_response:
example:
layout:
roles:
- id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
zone: madrid
capacity: 300000000000
tags:
- fast
- amd64
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
zone: geneva
capacity: 700000000000
tags:
- arm64
stagedRoleChanges:
- id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
zone: geneva
capacity: 800000000000
tags:
- gateway
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
remove: true
version: 12
message:
- ==== COMPUTATION OF A NEW PARTITION ASSIGNATION ====
- ""
- Partitions are replicated 1 times on at least 1 distinct zones.
- ""
- "Optimal partition size: 419.4 MB (3 B in previous layout)"
- "Usable capacity / total cluster capacity: 107.4 GB / 107.4 GB (100.0\
\ %)"
- "Effective capacity (replication factor 1): 107.4 GB"
- ""
- A total of 0 new copies of partitions need to be transferred.
- ""
- |+
dc1 Tags Partitions Capacity Usable capacity
6a8e08af2aab1083 a,v 256 (0 new) 107.4 GB 107.4 GB (100.0%)
TOTAL 256 (256 unique) 107.4 GB 107.4 GB (100.0%)
properties:
message:
example:
- ==== COMPUTATION OF A NEW PARTITION ASSIGNATION ====
- ""
- Partitions are replicated 1 times on at least 1 distinct zones.
- ""
- "Optimal partition size: 419.4 MB (3 B in previous\
\ layout)"
- "Usable capacity / total cluster capacity: 107.4 GB / 107.4 GB (100.0\
\ %)"
- "Effective capacity (replication factor 1): 107.4 GB"
- ""
- A total of 0 new copies of partitions need to be transferred.
- ""
- |+
dc1 Tags Partitions Capacity Usable capacity
6a8e08af2aab1083 a,v 256 (0 new) 107.4 GB 107.4 GB (100.0%)
TOTAL 256 (256 unique) 107.4 GB 107.4 GB (100.0%)
items:
type: string
type: array
layout:
$ref: '#/components/schemas/ClusterLayout'
required:
- layout
- message
type: object
ListKeys_200_response_inner: ListKeys_200_response_inner:
properties: properties:
id: id:
@ -1194,6 +1390,7 @@ components:
properties: properties:
name: name:
example: test-key example: test-key
nullable: true
type: string type: string
type: object type: object
UpdateKey_request_allow: UpdateKey_request_allow:
@ -1223,6 +1420,7 @@ components:
properties: properties:
name: name:
example: test-key example: test-key
nullable: true
type: string type: string
accessKeyId: accessKeyId:
example: GK31c2f218a2e44f485b94239e example: GK31c2f218a2e44f485b94239e

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -1302,7 +1302,7 @@ func (r ApiUpdateBucketRequest) Execute() (*BucketInfo, *http.Response, error) {
/* /*
UpdateBucket Update a bucket UpdateBucket Update a bucket
All fields (`websiteAccess` and `quotas`) are optionnal. All fields (`websiteAccess` and `quotas`) are optional.
If they are present, the corresponding modifications are applied to the bucket, otherwise nothing is changed. If they are present, the corresponding modifications are applied to the bucket, otherwise nothing is changed.
In `websiteAccess`: if `enabled` is `true`, `indexDocument` must be specified. In `websiteAccess`: if `enabled` is `true`, `indexDocument` must be specified.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -29,7 +29,7 @@ type ApiAddKeyRequest struct {
addKeyRequest *AddKeyRequest addKeyRequest *AddKeyRequest
} }
// \"You can set a friendly name for this key, send an empty string instead\" // You can set a friendly name for this key. If you don't want to, you can set the name to `null`. *Note: the secret key is returned in the response.*
func (r ApiAddKeyRequest) AddKeyRequest(addKeyRequest AddKeyRequest) ApiAddKeyRequest { func (r ApiAddKeyRequest) AddKeyRequest(addKeyRequest AddKeyRequest) ApiAddKeyRequest {
r.addKeyRequest = &addKeyRequest r.addKeyRequest = &addKeyRequest
return r return r
@ -232,6 +232,13 @@ type ApiGetKeyRequest struct {
ctx context.Context ctx context.Context
ApiService *KeyApiService ApiService *KeyApiService
accessKey string accessKey string
showSecretKey *bool
}
// Wether or not the secret key should be returned in the response
func (r ApiGetKeyRequest) ShowSecretKey(showSecretKey bool) ApiGetKeyRequest {
r.showSecretKey = &showSecretKey
return r
} }
func (r ApiGetKeyRequest) Execute() (*KeyInfo, *http.Response, error) { func (r ApiGetKeyRequest) Execute() (*KeyInfo, *http.Response, error) {
@ -241,7 +248,9 @@ func (r ApiGetKeyRequest) Execute() (*KeyInfo, *http.Response, error) {
/* /*
GetKey Get key information GetKey Get key information
Return information about a specific key and return its information Return information about a specific key like its identifiers, its permissions and buckets on which it has permissions.
For confidentiality reasons, the secret key is not returned by default: you must pass the `showSecretKey` query parameter to get it.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@ -278,6 +287,9 @@ func (a *KeyApiService) GetKeyExecute(r ApiGetKeyRequest) (*KeyInfo, *http.Respo
localVarQueryParams := url.Values{} localVarQueryParams := url.Values{}
localVarFormParams := url.Values{} localVarFormParams := url.Values{}
if r.showSecretKey != nil {
localVarQueryParams.Add("showSecretKey", parameterToString(*r.showSecretKey, ""))
}
// to determine the Content-Type header // to determine the Content-Type header
localVarHTTPContentTypes := []string{} localVarHTTPContentTypes := []string{}
@ -550,6 +562,13 @@ type ApiSearchKeyRequest struct {
ctx context.Context ctx context.Context
ApiService *KeyApiService ApiService *KeyApiService
pattern string pattern string
showSecretKey *bool
}
// Wether or not the secret key should be returned in the response
func (r ApiSearchKeyRequest) ShowSecretKey(showSecretKey bool) ApiSearchKeyRequest {
r.showSecretKey = &showSecretKey
return r
} }
func (r ApiSearchKeyRequest) Execute() (*KeyInfo, *http.Response, error) { func (r ApiSearchKeyRequest) Execute() (*KeyInfo, *http.Response, error) {
@ -559,7 +578,9 @@ func (r ApiSearchKeyRequest) Execute() (*KeyInfo, *http.Response, error) {
/* /*
SearchKey Select key by pattern SearchKey Select key by pattern
Find the first key matching the given pattern based on its identifier aor friendly name and return its information. Find the first key matching the given pattern based on its identifier or friendly name and return its information.
For confidentiality reasons, the secret key is not returned by default: you must pass the `showSecretKey` query parameter to get it.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@ -596,6 +617,9 @@ func (a *KeyApiService) SearchKeyExecute(r ApiSearchKeyRequest) (*KeyInfo, *http
localVarQueryParams := url.Values{} localVarQueryParams := url.Values{}
localVarFormParams := url.Values{} localVarFormParams := url.Values{}
if r.showSecretKey != nil {
localVarQueryParams.Add("showSecretKey", parameterToString(*r.showSecretKey, ""))
}
// to determine the Content-Type header // to determine the Content-Type header
localVarHTTPContentTypes := []string{} localVarHTTPContentTypes := []string{}
@ -672,6 +696,8 @@ UpdateKey Update a key
Updates information about the specified API access key. Updates information about the specified API access key.
*Note: the secret key is not returned in the response, `null` is sent instead.*
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param accessKey The exact API access key generated by Garage @param accessKey The exact API access key generated by Garage

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -25,16 +25,16 @@ type LayoutApiService service
type ApiAddLayoutRequest struct { type ApiAddLayoutRequest struct {
ctx context.Context ctx context.Context
ApiService *LayoutApiService ApiService *LayoutApiService
requestBody *map[string]NodeClusterInfo nodeRoleChange *[]NodeRoleChange
} }
// To add a new node to the layout or to change the configuration of an existing node, simply set the values you want. To remove a node, set it to `null` instead of passing a configuration object. Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified. // To add a new node to the layout or to change the configuration of an existing node, simply set the values you want (`zone`, `capacity`, and `tags`). To remove a node, simply pass the `remove: true` field. This logic is represented in OpenAPI with a \"One Of\" object. Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified.
func (r ApiAddLayoutRequest) RequestBody(requestBody map[string]NodeClusterInfo) ApiAddLayoutRequest { func (r ApiAddLayoutRequest) NodeRoleChange(nodeRoleChange []NodeRoleChange) ApiAddLayoutRequest {
r.requestBody = &requestBody r.nodeRoleChange = &nodeRoleChange
return r return r
} }
func (r ApiAddLayoutRequest) Execute() (*http.Response, error) { func (r ApiAddLayoutRequest) Execute() (*ClusterLayout, *http.Response, error) {
return r.ApiService.AddLayoutExecute(r) return r.ApiService.AddLayoutExecute(r)
} }
@ -42,7 +42,12 @@ func (r ApiAddLayoutRequest) Execute() (*http.Response, error) {
AddLayout Send modifications to the cluster layout AddLayout Send modifications to the cluster layout
Send modifications to the cluster layout. These modifications will be included in the staged role changes, visible in subsequent calls of `GET /layout`. Once the set of staged changes is satisfactory, the user may call `POST /layout/apply` to apply the changed changes, or `POST /layout/revert` to clear all of the staged changes in the layout. Send modifications to the cluster layout. These modifications will be included in the staged role changes, visible in subsequent calls of `GET /layout`. Once the set of staged changes is satisfactory, the user may call `POST /layout/apply` to apply the changed changes, or `POST /layout/revert` to clear all of the staged changes in the layout.
Note that setting the capacity to `null` will configure the node as a gateway.
Setting the capacity to `null` will configure the node as a gateway.
Otherwise, capacity must be now set in bytes (before Garage 0.9 it was arbitrary weights).
For example to declare 100GB, you must set `capacity: 100000000000`.
Garage uses internally the International System of Units (SI), it assumes that 1kB = 1000 bytes, and displays storage as kB, MB, GB (and not KiB, MiB, GiB that assume 1KiB = 1024 bytes).
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@ -56,16 +61,18 @@ func (a *LayoutApiService) AddLayout(ctx context.Context) ApiAddLayoutRequest {
} }
// Execute executes the request // Execute executes the request
func (a *LayoutApiService) AddLayoutExecute(r ApiAddLayoutRequest) (*http.Response, error) { // @return ClusterLayout
func (a *LayoutApiService) AddLayoutExecute(r ApiAddLayoutRequest) (*ClusterLayout, *http.Response, error) {
var ( var (
localVarHTTPMethod = http.MethodPost localVarHTTPMethod = http.MethodPost
localVarPostBody interface{} localVarPostBody interface{}
formFiles []formFile formFiles []formFile
localVarReturnValue *ClusterLayout
) )
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "LayoutApiService.AddLayout") localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "LayoutApiService.AddLayout")
if err != nil { if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()} return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
} }
localVarPath := localBasePath + "/layout" localVarPath := localBasePath + "/layout"
@ -73,8 +80,8 @@ func (a *LayoutApiService) AddLayoutExecute(r ApiAddLayoutRequest) (*http.Respon
localVarHeaderParams := make(map[string]string) localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{} localVarQueryParams := url.Values{}
localVarFormParams := url.Values{} localVarFormParams := url.Values{}
if r.requestBody == nil { if r.nodeRoleChange == nil {
return nil, reportError("requestBody is required and must be specified") return localVarReturnValue, nil, reportError("nodeRoleChange is required and must be specified")
} }
// to determine the Content-Type header // to determine the Content-Type header
@ -87,7 +94,7 @@ func (a *LayoutApiService) AddLayoutExecute(r ApiAddLayoutRequest) (*http.Respon
} }
// to determine the Accept header // to determine the Accept header
localVarHTTPHeaderAccepts := []string{} localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header // set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
@ -95,22 +102,22 @@ func (a *LayoutApiService) AddLayoutExecute(r ApiAddLayoutRequest) (*http.Respon
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
} }
// body params // body params
localVarPostBody = r.requestBody localVarPostBody = r.nodeRoleChange
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil { if err != nil {
return nil, err return localVarReturnValue, nil, err
} }
localVarHTTPResponse, err := a.client.callAPI(req) localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil { if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err return localVarReturnValue, localVarHTTPResponse, err
} }
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close() localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody)) localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil { if err != nil {
return localVarHTTPResponse, err return localVarReturnValue, localVarHTTPResponse, err
} }
if localVarHTTPResponse.StatusCode >= 300 { if localVarHTTPResponse.StatusCode >= 300 {
@ -118,10 +125,19 @@ func (a *LayoutApiService) AddLayoutExecute(r ApiAddLayoutRequest) (*http.Respon
body: localVarBody, body: localVarBody,
error: localVarHTTPResponse.Status, error: localVarHTTPResponse.Status,
} }
return localVarHTTPResponse, newErr return localVarReturnValue, localVarHTTPResponse, newErr
} }
return localVarHTTPResponse, nil err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
} }
type ApiApplyLayoutRequest struct { type ApiApplyLayoutRequest struct {
@ -136,7 +152,7 @@ func (r ApiApplyLayoutRequest) LayoutVersion(layoutVersion LayoutVersion) ApiApp
return r return r
} }
func (r ApiApplyLayoutRequest) Execute() (*http.Response, error) { func (r ApiApplyLayoutRequest) Execute() (*ApplyLayout200Response, *http.Response, error) {
return r.ApiService.ApplyLayoutExecute(r) return r.ApiService.ApplyLayoutExecute(r)
} }
@ -145,6 +161,8 @@ ApplyLayout Apply staged layout
Applies to the cluster the layout changes currently registered as staged layout changes. Applies to the cluster the layout changes currently registered as staged layout changes.
*Note: do not try to parse the `message` field of the response, it is given as an array of string specifically because its format is not stable.*
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiApplyLayoutRequest @return ApiApplyLayoutRequest
@ -157,16 +175,18 @@ func (a *LayoutApiService) ApplyLayout(ctx context.Context) ApiApplyLayoutReques
} }
// Execute executes the request // Execute executes the request
func (a *LayoutApiService) ApplyLayoutExecute(r ApiApplyLayoutRequest) (*http.Response, error) { // @return ApplyLayout200Response
func (a *LayoutApiService) ApplyLayoutExecute(r ApiApplyLayoutRequest) (*ApplyLayout200Response, *http.Response, error) {
var ( var (
localVarHTTPMethod = http.MethodPost localVarHTTPMethod = http.MethodPost
localVarPostBody interface{} localVarPostBody interface{}
formFiles []formFile formFiles []formFile
localVarReturnValue *ApplyLayout200Response
) )
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "LayoutApiService.ApplyLayout") localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "LayoutApiService.ApplyLayout")
if err != nil { if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()} return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
} }
localVarPath := localBasePath + "/layout/apply" localVarPath := localBasePath + "/layout/apply"
@ -175,7 +195,7 @@ func (a *LayoutApiService) ApplyLayoutExecute(r ApiApplyLayoutRequest) (*http.Re
localVarQueryParams := url.Values{} localVarQueryParams := url.Values{}
localVarFormParams := url.Values{} localVarFormParams := url.Values{}
if r.layoutVersion == nil { if r.layoutVersion == nil {
return nil, reportError("layoutVersion is required and must be specified") return localVarReturnValue, nil, reportError("layoutVersion is required and must be specified")
} }
// to determine the Content-Type header // to determine the Content-Type header
@ -188,7 +208,7 @@ func (a *LayoutApiService) ApplyLayoutExecute(r ApiApplyLayoutRequest) (*http.Re
} }
// to determine the Accept header // to determine the Accept header
localVarHTTPHeaderAccepts := []string{} localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header // set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
@ -199,19 +219,19 @@ func (a *LayoutApiService) ApplyLayoutExecute(r ApiApplyLayoutRequest) (*http.Re
localVarPostBody = r.layoutVersion localVarPostBody = r.layoutVersion
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil { if err != nil {
return nil, err return localVarReturnValue, nil, err
} }
localVarHTTPResponse, err := a.client.callAPI(req) localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil { if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err return localVarReturnValue, localVarHTTPResponse, err
} }
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body) localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close() localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody)) localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil { if err != nil {
return localVarHTTPResponse, err return localVarReturnValue, localVarHTTPResponse, err
} }
if localVarHTTPResponse.StatusCode >= 300 { if localVarHTTPResponse.StatusCode >= 300 {
@ -219,10 +239,19 @@ func (a *LayoutApiService) ApplyLayoutExecute(r ApiApplyLayoutRequest) (*http.Re
body: localVarBody, body: localVarBody,
error: localVarHTTPResponse.Status, error: localVarHTTPResponse.Status,
} }
return localVarHTTPResponse, newErr return localVarReturnValue, localVarHTTPResponse, newErr
} }
return localVarHTTPResponse, nil err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
} }
type ApiGetLayoutRequest struct { type ApiGetLayoutRequest struct {
@ -241,6 +270,7 @@ Returns the cluster's current layout, including:
- Currently configured cluster layout - Currently configured cluster layout
- Staged changes to the cluster layout - Staged changes to the cluster layout
*Capacity is given in bytes*
*The info returned by this endpoint is a subset of the info returned by `GET /status`.* *The info returned by this endpoint is a subset of the info returned by `GET /status`.*

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -151,6 +151,8 @@ Returns the cluster's current status, including:
- Currently configured cluster layout - Currently configured cluster layout
- Staged changes to the cluster layout - Staged changes to the cluster layout
*Capacity is given in bytes*
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiGetNodesRequest @return ApiGetNodesRequest

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -41,7 +41,7 @@ var (
xmlCheck = regexp.MustCompile(`(?i:(?:application|text)/xml)`) xmlCheck = regexp.MustCompile(`(?i:(?:application|text)/xml)`)
) )
// APIClient manages communication with the Garage Administration API v0+garage-v0.8.0 API vv0.8.0 // APIClient manages communication with the Garage Administration API v0+garage-v0.9.0 API vv0.9.0
// In most cases there should be only one, shared, APIClient. // In most cases there should be only one, shared, APIClient.
type APIClient struct { type APIClient struct {
cfg *Configuration cfg *Configuration

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -105,7 +105,7 @@ func NewConfiguration() *Configuration {
Debug: false, Debug: false,
Servers: ServerConfigurations{ Servers: ServerConfigurations{
{ {
URL: "http://localhost:3903/v0", URL: "http://localhost:3903/v1",
Description: "A local server", Description: "A local server",
}, },
}, },

View file

@ -4,7 +4,7 @@
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**Name** | Pointer to **string** | | [optional] **Name** | Pointer to **NullableString** | | [optional]
## Methods ## Methods
@ -50,6 +50,16 @@ SetName sets Name field to given value.
HasName returns a boolean if a field has been set. HasName returns a boolean if a field has been set.
### SetNameNil
`func (o *AddKeyRequest) SetNameNil(b bool)`
SetNameNil sets the value for Name to be an explicit nil
### UnsetName
`func (o *AddKeyRequest) UnsetName()`
UnsetName ensures that no value is present for Name, not even an explicit nil
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View file

@ -0,0 +1,72 @@
# ApplyLayout200Response
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Message** | **[]string** | |
**Layout** | [**ClusterLayout**](ClusterLayout.md) | |
## Methods
### NewApplyLayout200Response
`func NewApplyLayout200Response(message []string, layout ClusterLayout, ) *ApplyLayout200Response`
NewApplyLayout200Response instantiates a new ApplyLayout200Response object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewApplyLayout200ResponseWithDefaults
`func NewApplyLayout200ResponseWithDefaults() *ApplyLayout200Response`
NewApplyLayout200ResponseWithDefaults instantiates a new ApplyLayout200Response object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetMessage
`func (o *ApplyLayout200Response) GetMessage() []string`
GetMessage returns the Message field if non-nil, zero value otherwise.
### GetMessageOk
`func (o *ApplyLayout200Response) GetMessageOk() (*[]string, bool)`
GetMessageOk returns a tuple with the Message field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMessage
`func (o *ApplyLayout200Response) SetMessage(v []string)`
SetMessage sets Message field to given value.
### GetLayout
`func (o *ApplyLayout200Response) GetLayout() ClusterLayout`
GetLayout returns the Layout field if non-nil, zero value otherwise.
### GetLayoutOk
`func (o *ApplyLayout200Response) GetLayoutOk() (*ClusterLayout, bool)`
GetLayoutOk returns a tuple with the Layout field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetLayout
`func (o *ApplyLayout200Response) SetLayout(v ClusterLayout)`
SetLayout sets Layout field to given value.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View file

@ -1,6 +1,6 @@
# \BucketApi # \BucketApi
All URIs are relative to *http://localhost:3903/v0* All URIs are relative to *http://localhost:3903/v1*
Method | HTTP request | Description Method | HTTP request | Description
------------- | ------------- | ------------- ------------- | ------------- | -------------

View file

@ -5,14 +5,14 @@
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**Version** | **int32** | | **Version** | **int32** | |
**Roles** | [**map[string]NodeClusterInfo**](NodeClusterInfo.md) | | **Roles** | [**[]NodeClusterInfo**](NodeClusterInfo.md) | |
**StagedRoleChanges** | [**map[string]NodeClusterInfo**](NodeClusterInfo.md) | | **StagedRoleChanges** | [**[]NodeRoleChange**](NodeRoleChange.md) | |
## Methods ## Methods
### NewClusterLayout ### NewClusterLayout
`func NewClusterLayout(version int32, roles map[string]NodeClusterInfo, stagedRoleChanges map[string]NodeClusterInfo, ) *ClusterLayout` `func NewClusterLayout(version int32, roles []NodeClusterInfo, stagedRoleChanges []NodeRoleChange, ) *ClusterLayout`
NewClusterLayout instantiates a new ClusterLayout object NewClusterLayout instantiates a new ClusterLayout object
This constructor will assign default values to properties that have it defined, This constructor will assign default values to properties that have it defined,
@ -49,40 +49,40 @@ SetVersion sets Version field to given value.
### GetRoles ### GetRoles
`func (o *ClusterLayout) GetRoles() map[string]NodeClusterInfo` `func (o *ClusterLayout) GetRoles() []NodeClusterInfo`
GetRoles returns the Roles field if non-nil, zero value otherwise. GetRoles returns the Roles field if non-nil, zero value otherwise.
### GetRolesOk ### GetRolesOk
`func (o *ClusterLayout) GetRolesOk() (*map[string]NodeClusterInfo, bool)` `func (o *ClusterLayout) GetRolesOk() (*[]NodeClusterInfo, bool)`
GetRolesOk returns a tuple with the Roles field if it's non-nil, zero value otherwise GetRolesOk returns a tuple with the Roles field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set. and a boolean to check if the value has been set.
### SetRoles ### SetRoles
`func (o *ClusterLayout) SetRoles(v map[string]NodeClusterInfo)` `func (o *ClusterLayout) SetRoles(v []NodeClusterInfo)`
SetRoles sets Roles field to given value. SetRoles sets Roles field to given value.
### GetStagedRoleChanges ### GetStagedRoleChanges
`func (o *ClusterLayout) GetStagedRoleChanges() map[string]NodeClusterInfo` `func (o *ClusterLayout) GetStagedRoleChanges() []NodeRoleChange`
GetStagedRoleChanges returns the StagedRoleChanges field if non-nil, zero value otherwise. GetStagedRoleChanges returns the StagedRoleChanges field if non-nil, zero value otherwise.
### GetStagedRoleChangesOk ### GetStagedRoleChangesOk
`func (o *ClusterLayout) GetStagedRoleChangesOk() (*map[string]NodeClusterInfo, bool)` `func (o *ClusterLayout) GetStagedRoleChangesOk() (*[]NodeRoleChange, bool)`
GetStagedRoleChangesOk returns a tuple with the StagedRoleChanges field if it's non-nil, zero value otherwise GetStagedRoleChangesOk returns a tuple with the StagedRoleChanges field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set. and a boolean to check if the value has been set.
### SetStagedRoleChanges ### SetStagedRoleChanges
`func (o *ClusterLayout) SetStagedRoleChanges(v map[string]NodeClusterInfo)` `func (o *ClusterLayout) SetStagedRoleChanges(v []NodeRoleChange)`
SetStagedRoleChanges sets StagedRoleChanges field to given value. SetStagedRoleChanges sets StagedRoleChanges field to given value.

View file

@ -6,14 +6,17 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**Node** | **string** | | **Node** | **string** | |
**GarageVersion** | **string** | | **GarageVersion** | **string** | |
**KnownNodes** | [**map[string]NodeNetworkInfo**](NodeNetworkInfo.md) | | **GarageFeatures** | **[]string** | |
**RustVersion** | **string** | |
**DbEngine** | **string** | |
**KnownNodes** | [**[]NodeNetworkInfo**](NodeNetworkInfo.md) | |
**Layout** | [**ClusterLayout**](ClusterLayout.md) | | **Layout** | [**ClusterLayout**](ClusterLayout.md) | |
## Methods ## Methods
### NewGetNodes200Response ### NewGetNodes200Response
`func NewGetNodes200Response(node string, garageVersion string, knownNodes map[string]NodeNetworkInfo, layout ClusterLayout, ) *GetNodes200Response` `func NewGetNodes200Response(node string, garageVersion string, garageFeatures []string, rustVersion string, dbEngine string, knownNodes []NodeNetworkInfo, layout ClusterLayout, ) *GetNodes200Response`
NewGetNodes200Response instantiates a new GetNodes200Response object NewGetNodes200Response instantiates a new GetNodes200Response object
This constructor will assign default values to properties that have it defined, This constructor will assign default values to properties that have it defined,
@ -68,22 +71,82 @@ and a boolean to check if the value has been set.
SetGarageVersion sets GarageVersion field to given value. SetGarageVersion sets GarageVersion field to given value.
### GetGarageFeatures
`func (o *GetNodes200Response) GetGarageFeatures() []string`
GetGarageFeatures returns the GarageFeatures field if non-nil, zero value otherwise.
### GetGarageFeaturesOk
`func (o *GetNodes200Response) GetGarageFeaturesOk() (*[]string, bool)`
GetGarageFeaturesOk returns a tuple with the GarageFeatures field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetGarageFeatures
`func (o *GetNodes200Response) SetGarageFeatures(v []string)`
SetGarageFeatures sets GarageFeatures field to given value.
### GetRustVersion
`func (o *GetNodes200Response) GetRustVersion() string`
GetRustVersion returns the RustVersion field if non-nil, zero value otherwise.
### GetRustVersionOk
`func (o *GetNodes200Response) GetRustVersionOk() (*string, bool)`
GetRustVersionOk returns a tuple with the RustVersion field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetRustVersion
`func (o *GetNodes200Response) SetRustVersion(v string)`
SetRustVersion sets RustVersion field to given value.
### GetDbEngine
`func (o *GetNodes200Response) GetDbEngine() string`
GetDbEngine returns the DbEngine field if non-nil, zero value otherwise.
### GetDbEngineOk
`func (o *GetNodes200Response) GetDbEngineOk() (*string, bool)`
GetDbEngineOk returns a tuple with the DbEngine field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetDbEngine
`func (o *GetNodes200Response) SetDbEngine(v string)`
SetDbEngine sets DbEngine field to given value.
### GetKnownNodes ### GetKnownNodes
`func (o *GetNodes200Response) GetKnownNodes() map[string]NodeNetworkInfo` `func (o *GetNodes200Response) GetKnownNodes() []NodeNetworkInfo`
GetKnownNodes returns the KnownNodes field if non-nil, zero value otherwise. GetKnownNodes returns the KnownNodes field if non-nil, zero value otherwise.
### GetKnownNodesOk ### GetKnownNodesOk
`func (o *GetNodes200Response) GetKnownNodesOk() (*map[string]NodeNetworkInfo, bool)` `func (o *GetNodes200Response) GetKnownNodesOk() (*[]NodeNetworkInfo, bool)`
GetKnownNodesOk returns a tuple with the KnownNodes field if it's non-nil, zero value otherwise GetKnownNodesOk returns a tuple with the KnownNodes field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set. and a boolean to check if the value has been set.
### SetKnownNodes ### SetKnownNodes
`func (o *GetNodes200Response) SetKnownNodes(v map[string]NodeNetworkInfo)` `func (o *GetNodes200Response) SetKnownNodes(v []NodeNetworkInfo)`
SetKnownNodes sets KnownNodes field to given value. SetKnownNodes sets KnownNodes field to given value.

View file

@ -4,7 +4,7 @@
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**Name** | **string** | | **Name** | **NullableString** | |
**AccessKeyId** | **string** | | **AccessKeyId** | **string** | |
**SecretAccessKey** | **string** | | **SecretAccessKey** | **string** | |
@ -12,7 +12,7 @@ Name | Type | Description | Notes
### NewImportKeyRequest ### NewImportKeyRequest
`func NewImportKeyRequest(name string, accessKeyId string, secretAccessKey string, ) *ImportKeyRequest` `func NewImportKeyRequest(name NullableString, accessKeyId string, secretAccessKey string, ) *ImportKeyRequest`
NewImportKeyRequest instantiates a new ImportKeyRequest object NewImportKeyRequest instantiates a new ImportKeyRequest object
This constructor will assign default values to properties that have it defined, This constructor will assign default values to properties that have it defined,
@ -47,6 +47,16 @@ and a boolean to check if the value has been set.
SetName sets Name field to given value. SetName sets Name field to given value.
### SetNameNil
`func (o *ImportKeyRequest) SetNameNil(b bool)`
SetNameNil sets the value for Name to be an explicit nil
### UnsetName
`func (o *ImportKeyRequest) UnsetName()`
UnsetName ensures that no value is present for Name, not even an explicit nil
### GetAccessKeyId ### GetAccessKeyId
`func (o *ImportKeyRequest) GetAccessKeyId() string` `func (o *ImportKeyRequest) GetAccessKeyId() string`

View file

@ -1,6 +1,6 @@
# \KeyApi # \KeyApi
All URIs are relative to *http://localhost:3903/v0* All URIs are relative to *http://localhost:3903/v1*
Method | HTTP request | Description Method | HTTP request | Description
------------- | ------------- | ------------- ------------- | ------------- | -------------
@ -35,7 +35,7 @@ import (
) )
func main() { func main() {
addKeyRequest := *openapiclient.NewAddKeyRequest() // AddKeyRequest | \"You can set a friendly name for this key, send an empty string instead\" addKeyRequest := *openapiclient.NewAddKeyRequest() // AddKeyRequest | You can set a friendly name for this key. If you don't want to, you can set the name to `null`. *Note: the secret key is returned in the response.*
configuration := openapiclient.NewConfiguration() configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration) apiClient := openapiclient.NewAPIClient(configuration)
@ -60,7 +60,7 @@ Other parameters are passed through a pointer to a apiAddKeyRequest struct via t
Name | Type | Description | Notes Name | Type | Description | Notes
------------- | ------------- | ------------- | ------------- ------------- | ------------- | ------------- | -------------
**addKeyRequest** | [**AddKeyRequest**](AddKeyRequest.md) | \"You can set a friendly name for this key, send an empty string instead\" | **addKeyRequest** | [**AddKeyRequest**](AddKeyRequest.md) | You can set a friendly name for this key. If you don't want to, you can set the name to `null`. *Note: the secret key is returned in the response.* |
### Return type ### Return type
@ -150,7 +150,7 @@ Name | Type | Description | Notes
## GetKey ## GetKey
> KeyInfo GetKey(ctx, accessKey).Execute() > KeyInfo GetKey(ctx, accessKey).ShowSecretKey(showSecretKey).Execute()
Get key information Get key information
@ -170,10 +170,11 @@ import (
func main() { func main() {
accessKey := "GK31c2f218a2e44f485b94239e" // string | The exact API access key generated by Garage accessKey := "GK31c2f218a2e44f485b94239e" // string | The exact API access key generated by Garage
showSecretKey := true // bool | Wether or not the secret key should be returned in the response (optional) (default to false)
configuration := openapiclient.NewConfiguration() configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration) apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.KeyApi.GetKey(context.Background(), accessKey).Execute() resp, r, err := apiClient.KeyApi.GetKey(context.Background(), accessKey).ShowSecretKey(showSecretKey).Execute()
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `KeyApi.GetKey``: %v\n", err) fmt.Fprintf(os.Stderr, "Error when calling `KeyApi.GetKey``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
@ -199,6 +200,7 @@ Other parameters are passed through a pointer to a apiGetKeyRequest struct via t
Name | Type | Description | Notes Name | Type | Description | Notes
------------- | ------------- | ------------- | ------------- ------------- | ------------- | ------------- | -------------
**showSecretKey** | **bool** | Wether or not the secret key should be returned in the response | [default to false]
### Return type ### Return type
@ -347,7 +349,7 @@ Other parameters are passed through a pointer to a apiListKeysRequest struct via
## SearchKey ## SearchKey
> KeyInfo SearchKey(ctx, pattern).Execute() > KeyInfo SearchKey(ctx, pattern).ShowSecretKey(showSecretKey).Execute()
Select key by pattern Select key by pattern
@ -367,10 +369,11 @@ import (
func main() { func main() {
pattern := "test-k" // string | A pattern (beginning or full string) corresponding to a key identifier or friendly name pattern := "test-k" // string | A pattern (beginning or full string) corresponding to a key identifier or friendly name
showSecretKey := true // bool | Wether or not the secret key should be returned in the response (optional) (default to false)
configuration := openapiclient.NewConfiguration() configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration) apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.KeyApi.SearchKey(context.Background(), pattern).Execute() resp, r, err := apiClient.KeyApi.SearchKey(context.Background(), pattern).ShowSecretKey(showSecretKey).Execute()
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `KeyApi.SearchKey``: %v\n", err) fmt.Fprintf(os.Stderr, "Error when calling `KeyApi.SearchKey``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
@ -396,6 +399,7 @@ Other parameters are passed through a pointer to a apiSearchKeyRequest struct vi
Name | Type | Description | Notes Name | Type | Description | Notes
------------- | ------------- | ------------- | ------------- ------------- | ------------- | ------------- | -------------
**showSecretKey** | **bool** | Wether or not the secret key should be returned in the response | [default to false]
### Return type ### Return type

View file

@ -6,7 +6,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**Name** | Pointer to **string** | | [optional] **Name** | Pointer to **string** | | [optional]
**AccessKeyId** | Pointer to **string** | | [optional] **AccessKeyId** | Pointer to **string** | | [optional]
**SecretAccessKey** | Pointer to **string** | | [optional] **SecretAccessKey** | Pointer to **NullableString** | | [optional]
**Permissions** | Pointer to [**KeyInfoPermissions**](KeyInfoPermissions.md) | | [optional] **Permissions** | Pointer to [**KeyInfoPermissions**](KeyInfoPermissions.md) | | [optional]
**Buckets** | Pointer to [**[]KeyInfoBucketsInner**](KeyInfoBucketsInner.md) | | [optional] **Buckets** | Pointer to [**[]KeyInfoBucketsInner**](KeyInfoBucketsInner.md) | | [optional]
@ -104,6 +104,16 @@ SetSecretAccessKey sets SecretAccessKey field to given value.
HasSecretAccessKey returns a boolean if a field has been set. HasSecretAccessKey returns a boolean if a field has been set.
### SetSecretAccessKeyNil
`func (o *KeyInfo) SetSecretAccessKeyNil(b bool)`
SetSecretAccessKeyNil sets the value for SecretAccessKey to be an explicit nil
### UnsetSecretAccessKey
`func (o *KeyInfo) UnsetSecretAccessKey()`
UnsetSecretAccessKey ensures that no value is present for SecretAccessKey, not even an explicit nil
### GetPermissions ### GetPermissions
`func (o *KeyInfo) GetPermissions() KeyInfoPermissions` `func (o *KeyInfo) GetPermissions() KeyInfoPermissions`

View file

@ -1,6 +1,6 @@
# \LayoutApi # \LayoutApi
All URIs are relative to *http://localhost:3903/v0* All URIs are relative to *http://localhost:3903/v1*
Method | HTTP request | Description Method | HTTP request | Description
------------- | ------------- | ------------- ------------- | ------------- | -------------
@ -13,7 +13,7 @@ Method | HTTP request | Description
## AddLayout ## AddLayout
> AddLayout(ctx).RequestBody(requestBody).Execute() > ClusterLayout AddLayout(ctx).NodeRoleChange(nodeRoleChange).Execute()
Send modifications to the cluster layout Send modifications to the cluster layout
@ -32,15 +32,17 @@ import (
) )
func main() { func main() {
requestBody := map[string]NodeClusterInfo{"key": *openapiclient.NewNodeClusterInfo("dc1", NullableInt32(4), []string{"Tags_example"})} // map[string]NodeClusterInfo | To add a new node to the layout or to change the configuration of an existing node, simply set the values you want. To remove a node, set it to `null` instead of passing a configuration object. Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified. nodeRoleChange := []openapiclient.NodeRoleChange{openapiclient.NodeRoleChange{NodeRoleRemove: openapiclient.NewNodeRoleRemove(true)}} // []NodeRoleChange | To add a new node to the layout or to change the configuration of an existing node, simply set the values you want (`zone`, `capacity`, and `tags`). To remove a node, simply pass the `remove: true` field. This logic is represented in OpenAPI with a \"One Of\" object. Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified.
configuration := openapiclient.NewConfiguration() configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration) apiClient := openapiclient.NewAPIClient(configuration)
resp, r, err := apiClient.LayoutApi.AddLayout(context.Background()).RequestBody(requestBody).Execute() resp, r, err := apiClient.LayoutApi.AddLayout(context.Background()).NodeRoleChange(nodeRoleChange).Execute()
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `LayoutApi.AddLayout``: %v\n", err) fmt.Fprintf(os.Stderr, "Error when calling `LayoutApi.AddLayout``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
} }
// response from `AddLayout`: ClusterLayout
fmt.Fprintf(os.Stdout, "Response from `LayoutApi.AddLayout`: %v\n", resp)
} }
``` ```
@ -55,11 +57,11 @@ Other parameters are passed through a pointer to a apiAddLayoutRequest struct vi
Name | Type | Description | Notes Name | Type | Description | Notes
------------- | ------------- | ------------- | ------------- ------------- | ------------- | ------------- | -------------
**requestBody** | [**map[string]NodeClusterInfo**](NodeClusterInfo.md) | To add a new node to the layout or to change the configuration of an existing node, simply set the values you want. To remove a node, set it to `null` instead of passing a configuration object. Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified. | **nodeRoleChange** | [**[]NodeRoleChange**](NodeRoleChange.md) | To add a new node to the layout or to change the configuration of an existing node, simply set the values you want (`zone`, `capacity`, and `tags`). To remove a node, simply pass the `remove: true` field. This logic is represented in OpenAPI with a \"One Of\" object. Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified. |
### Return type ### Return type
(empty response body) [**ClusterLayout**](ClusterLayout.md)
### Authorization ### Authorization
@ -68,7 +70,7 @@ Name | Type | Description | Notes
### HTTP request headers ### HTTP request headers
- **Content-Type**: application/json - **Content-Type**: application/json
- **Accept**: Not defined - **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models) [[Back to Model list]](../README.md#documentation-for-models)
@ -77,7 +79,7 @@ Name | Type | Description | Notes
## ApplyLayout ## ApplyLayout
> ApplyLayout(ctx).LayoutVersion(layoutVersion).Execute() > ApplyLayout200Response ApplyLayout(ctx).LayoutVersion(layoutVersion).Execute()
Apply staged layout Apply staged layout
@ -105,6 +107,8 @@ func main() {
fmt.Fprintf(os.Stderr, "Error when calling `LayoutApi.ApplyLayout``: %v\n", err) fmt.Fprintf(os.Stderr, "Error when calling `LayoutApi.ApplyLayout``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
} }
// response from `ApplyLayout`: ApplyLayout200Response
fmt.Fprintf(os.Stdout, "Response from `LayoutApi.ApplyLayout`: %v\n", resp)
} }
``` ```
@ -123,7 +127,7 @@ Name | Type | Description | Notes
### Return type ### Return type
(empty response body) [**ApplyLayout200Response**](ApplyLayout200Response.md)
### Authorization ### Authorization
@ -132,7 +136,7 @@ Name | Type | Description | Notes
### HTTP request headers ### HTTP request headers
- **Content-Type**: application/json - **Content-Type**: application/json
- **Accept**: Not defined - **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models) [[Back to Model list]](../README.md#documentation-for-models)

View file

@ -5,14 +5,14 @@
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**Zone** | **string** | | **Zone** | **string** | |
**Capacity** | **NullableInt32** | | **Capacity** | Pointer to **NullableInt32** | | [optional]
**Tags** | **[]string** | User defined tags, put whatever makes sense for you, these tags are not interpreted by Garage | **Tags** | **[]string** | User defined tags, put whatever makes sense for you, these tags are not interpreted by Garage |
## Methods ## Methods
### NewNodeClusterInfo ### NewNodeClusterInfo
`func NewNodeClusterInfo(zone string, capacity NullableInt32, tags []string, ) *NodeClusterInfo` `func NewNodeClusterInfo(zone string, tags []string, ) *NodeClusterInfo`
NewNodeClusterInfo instantiates a new NodeClusterInfo object NewNodeClusterInfo instantiates a new NodeClusterInfo object
This constructor will assign default values to properties that have it defined, This constructor will assign default values to properties that have it defined,
@ -66,6 +66,11 @@ and a boolean to check if the value has been set.
SetCapacity sets Capacity field to given value. SetCapacity sets Capacity field to given value.
### HasCapacity
`func (o *NodeClusterInfo) HasCapacity() bool`
HasCapacity returns a boolean if a field has been set.
### SetCapacityNil ### SetCapacityNil

View file

@ -4,6 +4,7 @@
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**Id** | Pointer to **string** | | [optional]
**Addr** | **string** | | **Addr** | **string** | |
**IsUp** | **bool** | | **IsUp** | **bool** | |
**LastSeenSecsAgo** | **NullableInt32** | | **LastSeenSecsAgo** | **NullableInt32** | |
@ -28,6 +29,31 @@ NewNodeNetworkInfoWithDefaults instantiates a new NodeNetworkInfo object
This constructor will only assign default values to properties that have it defined, This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set but it doesn't guarantee that properties required by API are set
### GetId
`func (o *NodeNetworkInfo) GetId() string`
GetId returns the Id field if non-nil, zero value otherwise.
### GetIdOk
`func (o *NodeNetworkInfo) GetIdOk() (*string, bool)`
GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetId
`func (o *NodeNetworkInfo) SetId(v string)`
SetId sets Id field to given value.
### HasId
`func (o *NodeNetworkInfo) HasId() bool`
HasId returns a boolean if a field has been set.
### GetAddr ### GetAddr
`func (o *NodeNetworkInfo) GetAddr() string` `func (o *NodeNetworkInfo) GetAddr() string`

150
docs/NodeRoleChange.md Normal file
View file

@ -0,0 +1,150 @@
# NodeRoleChange
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | Pointer to **string** | | [optional]
**Remove** | **bool** | |
**Zone** | **string** | |
**Capacity** | **NullableInt32** | |
**Tags** | **[]string** | |
## Methods
### NewNodeRoleChange
`func NewNodeRoleChange(remove bool, zone string, capacity NullableInt32, tags []string, ) *NodeRoleChange`
NewNodeRoleChange instantiates a new NodeRoleChange object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewNodeRoleChangeWithDefaults
`func NewNodeRoleChangeWithDefaults() *NodeRoleChange`
NewNodeRoleChangeWithDefaults instantiates a new NodeRoleChange object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetId
`func (o *NodeRoleChange) GetId() string`
GetId returns the Id field if non-nil, zero value otherwise.
### GetIdOk
`func (o *NodeRoleChange) GetIdOk() (*string, bool)`
GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetId
`func (o *NodeRoleChange) SetId(v string)`
SetId sets Id field to given value.
### HasId
`func (o *NodeRoleChange) HasId() bool`
HasId returns a boolean if a field has been set.
### GetRemove
`func (o *NodeRoleChange) GetRemove() bool`
GetRemove returns the Remove field if non-nil, zero value otherwise.
### GetRemoveOk
`func (o *NodeRoleChange) GetRemoveOk() (*bool, bool)`
GetRemoveOk returns a tuple with the Remove field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetRemove
`func (o *NodeRoleChange) SetRemove(v bool)`
SetRemove sets Remove field to given value.
### GetZone
`func (o *NodeRoleChange) GetZone() string`
GetZone returns the Zone field if non-nil, zero value otherwise.
### GetZoneOk
`func (o *NodeRoleChange) GetZoneOk() (*string, bool)`
GetZoneOk returns a tuple with the Zone field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetZone
`func (o *NodeRoleChange) SetZone(v string)`
SetZone sets Zone field to given value.
### GetCapacity
`func (o *NodeRoleChange) GetCapacity() int32`
GetCapacity returns the Capacity field if non-nil, zero value otherwise.
### GetCapacityOk
`func (o *NodeRoleChange) GetCapacityOk() (*int32, bool)`
GetCapacityOk returns a tuple with the Capacity field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCapacity
`func (o *NodeRoleChange) SetCapacity(v int32)`
SetCapacity sets Capacity field to given value.
### SetCapacityNil
`func (o *NodeRoleChange) SetCapacityNil(b bool)`
SetCapacityNil sets the value for Capacity to be an explicit nil
### UnsetCapacity
`func (o *NodeRoleChange) UnsetCapacity()`
UnsetCapacity ensures that no value is present for Capacity, not even an explicit nil
### GetTags
`func (o *NodeRoleChange) GetTags() []string`
GetTags returns the Tags field if non-nil, zero value otherwise.
### GetTagsOk
`func (o *NodeRoleChange) GetTagsOk() (*[]string, bool)`
GetTagsOk returns a tuple with the Tags field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTags
`func (o *NodeRoleChange) SetTags(v []string)`
SetTags sets Tags field to given value.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

77
docs/NodeRoleRemove.md Normal file
View file

@ -0,0 +1,77 @@
# NodeRoleRemove
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | Pointer to **string** | | [optional]
**Remove** | **bool** | |
## Methods
### NewNodeRoleRemove
`func NewNodeRoleRemove(remove bool, ) *NodeRoleRemove`
NewNodeRoleRemove instantiates a new NodeRoleRemove object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewNodeRoleRemoveWithDefaults
`func NewNodeRoleRemoveWithDefaults() *NodeRoleRemove`
NewNodeRoleRemoveWithDefaults instantiates a new NodeRoleRemove object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetId
`func (o *NodeRoleRemove) GetId() string`
GetId returns the Id field if non-nil, zero value otherwise.
### GetIdOk
`func (o *NodeRoleRemove) GetIdOk() (*string, bool)`
GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetId
`func (o *NodeRoleRemove) SetId(v string)`
SetId sets Id field to given value.
### HasId
`func (o *NodeRoleRemove) HasId() bool`
HasId returns a boolean if a field has been set.
### GetRemove
`func (o *NodeRoleRemove) GetRemove() bool`
GetRemove returns the Remove field if non-nil, zero value otherwise.
### GetRemoveOk
`func (o *NodeRoleRemove) GetRemoveOk() (*bool, bool)`
GetRemoveOk returns a tuple with the Remove field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetRemove
`func (o *NodeRoleRemove) SetRemove(v bool)`
SetRemove sets Remove field to given value.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

129
docs/NodeRoleUpdate.md Normal file
View file

@ -0,0 +1,129 @@
# NodeRoleUpdate
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | Pointer to **string** | | [optional]
**Zone** | **string** | |
**Capacity** | **NullableInt32** | |
**Tags** | **[]string** | |
## Methods
### NewNodeRoleUpdate
`func NewNodeRoleUpdate(zone string, capacity NullableInt32, tags []string, ) *NodeRoleUpdate`
NewNodeRoleUpdate instantiates a new NodeRoleUpdate object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewNodeRoleUpdateWithDefaults
`func NewNodeRoleUpdateWithDefaults() *NodeRoleUpdate`
NewNodeRoleUpdateWithDefaults instantiates a new NodeRoleUpdate object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetId
`func (o *NodeRoleUpdate) GetId() string`
GetId returns the Id field if non-nil, zero value otherwise.
### GetIdOk
`func (o *NodeRoleUpdate) GetIdOk() (*string, bool)`
GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetId
`func (o *NodeRoleUpdate) SetId(v string)`
SetId sets Id field to given value.
### HasId
`func (o *NodeRoleUpdate) HasId() bool`
HasId returns a boolean if a field has been set.
### GetZone
`func (o *NodeRoleUpdate) GetZone() string`
GetZone returns the Zone field if non-nil, zero value otherwise.
### GetZoneOk
`func (o *NodeRoleUpdate) GetZoneOk() (*string, bool)`
GetZoneOk returns a tuple with the Zone field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetZone
`func (o *NodeRoleUpdate) SetZone(v string)`
SetZone sets Zone field to given value.
### GetCapacity
`func (o *NodeRoleUpdate) GetCapacity() int32`
GetCapacity returns the Capacity field if non-nil, zero value otherwise.
### GetCapacityOk
`func (o *NodeRoleUpdate) GetCapacityOk() (*int32, bool)`
GetCapacityOk returns a tuple with the Capacity field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCapacity
`func (o *NodeRoleUpdate) SetCapacity(v int32)`
SetCapacity sets Capacity field to given value.
### SetCapacityNil
`func (o *NodeRoleUpdate) SetCapacityNil(b bool)`
SetCapacityNil sets the value for Capacity to be an explicit nil
### UnsetCapacity
`func (o *NodeRoleUpdate) UnsetCapacity()`
UnsetCapacity ensures that no value is present for Capacity, not even an explicit nil
### GetTags
`func (o *NodeRoleUpdate) GetTags() []string`
GetTags returns the Tags field if non-nil, zero value otherwise.
### GetTagsOk
`func (o *NodeRoleUpdate) GetTagsOk() (*[]string, bool)`
GetTagsOk returns a tuple with the Tags field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTags
`func (o *NodeRoleUpdate) SetTags(v []string)`
SetTags sets Tags field to given value.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View file

@ -1,6 +1,6 @@
# \NodesApi # \NodesApi
All URIs are relative to *http://localhost:3903/v0* All URIs are relative to *http://localhost:3903/v1*
Method | HTTP request | Description Method | HTTP request | Description
------------- | ------------- | ------------- ------------- | ------------- | -------------

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -16,7 +16,7 @@ import (
// AddKeyRequest struct for AddKeyRequest // AddKeyRequest struct for AddKeyRequest
type AddKeyRequest struct { type AddKeyRequest struct {
Name *string `json:"name,omitempty"` Name NullableString `json:"name,omitempty"`
} }
// NewAddKeyRequest instantiates a new AddKeyRequest object // NewAddKeyRequest instantiates a new AddKeyRequest object
@ -36,42 +36,52 @@ func NewAddKeyRequestWithDefaults() *AddKeyRequest {
return &this return &this
} }
// GetName returns the Name field value if set, zero value otherwise. // GetName returns the Name field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *AddKeyRequest) GetName() string { func (o *AddKeyRequest) GetName() string {
if o == nil || o.Name == nil { if o == nil || o.Name.Get() == nil {
var ret string var ret string
return ret return ret
} }
return *o.Name return *o.Name.Get()
} }
// GetNameOk returns a tuple with the Name field value if set, nil otherwise // GetNameOk returns a tuple with the Name field value if set, nil otherwise
// and a boolean to check if the value has been set. // and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *AddKeyRequest) GetNameOk() (*string, bool) { func (o *AddKeyRequest) GetNameOk() (*string, bool) {
if o == nil || o.Name == nil { if o == nil {
return nil, false return nil, false
} }
return o.Name, true return o.Name.Get(), o.Name.IsSet()
} }
// HasName returns a boolean if a field has been set. // HasName returns a boolean if a field has been set.
func (o *AddKeyRequest) HasName() bool { func (o *AddKeyRequest) HasName() bool {
if o != nil && o.Name != nil { if o != nil && o.Name.IsSet() {
return true return true
} }
return false return false
} }
// SetName gets a reference to the given string and assigns it to the Name field. // SetName gets a reference to the given NullableString and assigns it to the Name field.
func (o *AddKeyRequest) SetName(v string) { func (o *AddKeyRequest) SetName(v string) {
o.Name = &v o.Name.Set(&v)
}
// SetNameNil sets the value for Name to be an explicit nil
func (o *AddKeyRequest) SetNameNil() {
o.Name.Set(nil)
}
// UnsetName ensures that no value is present for Name, not even an explicit nil
func (o *AddKeyRequest) UnsetName() {
o.Name.Unset()
} }
func (o AddKeyRequest) MarshalJSON() ([]byte, error) { func (o AddKeyRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{} toSerialize := map[string]interface{}{}
if o.Name != nil { if o.Name.IsSet() {
toSerialize["name"] = o.Name toSerialize["name"] = o.Name.Get()
} }
return json.Marshal(toSerialize) return json.Marshal(toSerialize)
} }

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -0,0 +1,137 @@
/*
Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package garage
import (
"encoding/json"
)
// ApplyLayout200Response struct for ApplyLayout200Response
type ApplyLayout200Response struct {
Message []string `json:"message"`
Layout ClusterLayout `json:"layout"`
}
// NewApplyLayout200Response instantiates a new ApplyLayout200Response object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewApplyLayout200Response(message []string, layout ClusterLayout) *ApplyLayout200Response {
this := ApplyLayout200Response{}
this.Message = message
this.Layout = layout
return &this
}
// NewApplyLayout200ResponseWithDefaults instantiates a new ApplyLayout200Response object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewApplyLayout200ResponseWithDefaults() *ApplyLayout200Response {
this := ApplyLayout200Response{}
return &this
}
// GetMessage returns the Message field value
func (o *ApplyLayout200Response) GetMessage() []string {
if o == nil {
var ret []string
return ret
}
return o.Message
}
// GetMessageOk returns a tuple with the Message field value
// and a boolean to check if the value has been set.
func (o *ApplyLayout200Response) GetMessageOk() ([]string, bool) {
if o == nil {
return nil, false
}
return o.Message, true
}
// SetMessage sets field value
func (o *ApplyLayout200Response) SetMessage(v []string) {
o.Message = v
}
// GetLayout returns the Layout field value
func (o *ApplyLayout200Response) GetLayout() ClusterLayout {
if o == nil {
var ret ClusterLayout
return ret
}
return o.Layout
}
// GetLayoutOk returns a tuple with the Layout field value
// and a boolean to check if the value has been set.
func (o *ApplyLayout200Response) GetLayoutOk() (*ClusterLayout, bool) {
if o == nil {
return nil, false
}
return &o.Layout, true
}
// SetLayout sets field value
func (o *ApplyLayout200Response) SetLayout(v ClusterLayout) {
o.Layout = v
}
func (o ApplyLayout200Response) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if true {
toSerialize["message"] = o.Message
}
if true {
toSerialize["layout"] = o.Layout
}
return json.Marshal(toSerialize)
}
type NullableApplyLayout200Response struct {
value *ApplyLayout200Response
isSet bool
}
func (v NullableApplyLayout200Response) Get() *ApplyLayout200Response {
return v.value
}
func (v *NullableApplyLayout200Response) Set(val *ApplyLayout200Response) {
v.value = val
v.isSet = true
}
func (v NullableApplyLayout200Response) IsSet() bool {
return v.isSet
}
func (v *NullableApplyLayout200Response) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableApplyLayout200Response(val *ApplyLayout200Response) *NullableApplyLayout200Response {
return &NullableApplyLayout200Response{value: val, isSet: true}
}
func (v NullableApplyLayout200Response) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableApplyLayout200Response) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -17,15 +17,15 @@ import (
// ClusterLayout struct for ClusterLayout // ClusterLayout struct for ClusterLayout
type ClusterLayout struct { type ClusterLayout struct {
Version int32 `json:"version"` Version int32 `json:"version"`
Roles map[string]NodeClusterInfo `json:"roles"` Roles []NodeClusterInfo `json:"roles"`
StagedRoleChanges map[string]NodeClusterInfo `json:"stagedRoleChanges"` StagedRoleChanges []NodeRoleChange `json:"stagedRoleChanges"`
} }
// NewClusterLayout instantiates a new ClusterLayout object // NewClusterLayout instantiates a new ClusterLayout object
// This constructor will assign default values to properties that have it defined, // This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments // and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed // will change when the set of required properties is changed
func NewClusterLayout(version int32, roles map[string]NodeClusterInfo, stagedRoleChanges map[string]NodeClusterInfo) *ClusterLayout { func NewClusterLayout(version int32, roles []NodeClusterInfo, stagedRoleChanges []NodeRoleChange) *ClusterLayout {
this := ClusterLayout{} this := ClusterLayout{}
this.Version = version this.Version = version
this.Roles = roles this.Roles = roles
@ -66,9 +66,9 @@ func (o *ClusterLayout) SetVersion(v int32) {
} }
// GetRoles returns the Roles field value // GetRoles returns the Roles field value
func (o *ClusterLayout) GetRoles() map[string]NodeClusterInfo { func (o *ClusterLayout) GetRoles() []NodeClusterInfo {
if o == nil { if o == nil {
var ret map[string]NodeClusterInfo var ret []NodeClusterInfo
return ret return ret
} }
@ -77,22 +77,22 @@ func (o *ClusterLayout) GetRoles() map[string]NodeClusterInfo {
// GetRolesOk returns a tuple with the Roles field value // GetRolesOk returns a tuple with the Roles field value
// and a boolean to check if the value has been set. // and a boolean to check if the value has been set.
func (o *ClusterLayout) GetRolesOk() (*map[string]NodeClusterInfo, bool) { func (o *ClusterLayout) GetRolesOk() ([]NodeClusterInfo, bool) {
if o == nil { if o == nil {
return nil, false return nil, false
} }
return &o.Roles, true return o.Roles, true
} }
// SetRoles sets field value // SetRoles sets field value
func (o *ClusterLayout) SetRoles(v map[string]NodeClusterInfo) { func (o *ClusterLayout) SetRoles(v []NodeClusterInfo) {
o.Roles = v o.Roles = v
} }
// GetStagedRoleChanges returns the StagedRoleChanges field value // GetStagedRoleChanges returns the StagedRoleChanges field value
func (o *ClusterLayout) GetStagedRoleChanges() map[string]NodeClusterInfo { func (o *ClusterLayout) GetStagedRoleChanges() []NodeRoleChange {
if o == nil { if o == nil {
var ret map[string]NodeClusterInfo var ret []NodeRoleChange
return ret return ret
} }
@ -101,15 +101,15 @@ func (o *ClusterLayout) GetStagedRoleChanges() map[string]NodeClusterInfo {
// GetStagedRoleChangesOk returns a tuple with the StagedRoleChanges field value // GetStagedRoleChangesOk returns a tuple with the StagedRoleChanges field value
// and a boolean to check if the value has been set. // and a boolean to check if the value has been set.
func (o *ClusterLayout) GetStagedRoleChangesOk() (*map[string]NodeClusterInfo, bool) { func (o *ClusterLayout) GetStagedRoleChangesOk() ([]NodeRoleChange, bool) {
if o == nil { if o == nil {
return nil, false return nil, false
} }
return &o.StagedRoleChanges, true return o.StagedRoleChanges, true
} }
// SetStagedRoleChanges sets field value // SetStagedRoleChanges sets field value
func (o *ClusterLayout) SetStagedRoleChanges(v map[string]NodeClusterInfo) { func (o *ClusterLayout) SetStagedRoleChanges(v []NodeRoleChange) {
o.StagedRoleChanges = v o.StagedRoleChanges = v
} }

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -18,7 +18,10 @@ import (
type GetNodes200Response struct { type GetNodes200Response struct {
Node string `json:"node"` Node string `json:"node"`
GarageVersion string `json:"garageVersion"` GarageVersion string `json:"garageVersion"`
KnownNodes map[string]NodeNetworkInfo `json:"knownNodes"` GarageFeatures []string `json:"garageFeatures"`
RustVersion string `json:"rustVersion"`
DbEngine string `json:"dbEngine"`
KnownNodes []NodeNetworkInfo `json:"knownNodes"`
Layout ClusterLayout `json:"layout"` Layout ClusterLayout `json:"layout"`
} }
@ -26,10 +29,13 @@ type GetNodes200Response struct {
// This constructor will assign default values to properties that have it defined, // This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments // and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed // will change when the set of required properties is changed
func NewGetNodes200Response(node string, garageVersion string, knownNodes map[string]NodeNetworkInfo, layout ClusterLayout) *GetNodes200Response { func NewGetNodes200Response(node string, garageVersion string, garageFeatures []string, rustVersion string, dbEngine string, knownNodes []NodeNetworkInfo, layout ClusterLayout) *GetNodes200Response {
this := GetNodes200Response{} this := GetNodes200Response{}
this.Node = node this.Node = node
this.GarageVersion = garageVersion this.GarageVersion = garageVersion
this.GarageFeatures = garageFeatures
this.RustVersion = rustVersion
this.DbEngine = dbEngine
this.KnownNodes = knownNodes this.KnownNodes = knownNodes
this.Layout = layout this.Layout = layout
return &this return &this
@ -91,10 +97,82 @@ func (o *GetNodes200Response) SetGarageVersion(v string) {
o.GarageVersion = v o.GarageVersion = v
} }
// GetKnownNodes returns the KnownNodes field value // GetGarageFeatures returns the GarageFeatures field value
func (o *GetNodes200Response) GetKnownNodes() map[string]NodeNetworkInfo { func (o *GetNodes200Response) GetGarageFeatures() []string {
if o == nil { if o == nil {
var ret map[string]NodeNetworkInfo var ret []string
return ret
}
return o.GarageFeatures
}
// GetGarageFeaturesOk returns a tuple with the GarageFeatures field value
// and a boolean to check if the value has been set.
func (o *GetNodes200Response) GetGarageFeaturesOk() ([]string, bool) {
if o == nil {
return nil, false
}
return o.GarageFeatures, true
}
// SetGarageFeatures sets field value
func (o *GetNodes200Response) SetGarageFeatures(v []string) {
o.GarageFeatures = v
}
// GetRustVersion returns the RustVersion field value
func (o *GetNodes200Response) GetRustVersion() string {
if o == nil {
var ret string
return ret
}
return o.RustVersion
}
// GetRustVersionOk returns a tuple with the RustVersion field value
// and a boolean to check if the value has been set.
func (o *GetNodes200Response) GetRustVersionOk() (*string, bool) {
if o == nil {
return nil, false
}
return &o.RustVersion, true
}
// SetRustVersion sets field value
func (o *GetNodes200Response) SetRustVersion(v string) {
o.RustVersion = v
}
// GetDbEngine returns the DbEngine field value
func (o *GetNodes200Response) GetDbEngine() string {
if o == nil {
var ret string
return ret
}
return o.DbEngine
}
// GetDbEngineOk returns a tuple with the DbEngine field value
// and a boolean to check if the value has been set.
func (o *GetNodes200Response) GetDbEngineOk() (*string, bool) {
if o == nil {
return nil, false
}
return &o.DbEngine, true
}
// SetDbEngine sets field value
func (o *GetNodes200Response) SetDbEngine(v string) {
o.DbEngine = v
}
// GetKnownNodes returns the KnownNodes field value
func (o *GetNodes200Response) GetKnownNodes() []NodeNetworkInfo {
if o == nil {
var ret []NodeNetworkInfo
return ret return ret
} }
@ -103,15 +181,15 @@ func (o *GetNodes200Response) GetKnownNodes() map[string]NodeNetworkInfo {
// GetKnownNodesOk returns a tuple with the KnownNodes field value // GetKnownNodesOk returns a tuple with the KnownNodes field value
// and a boolean to check if the value has been set. // and a boolean to check if the value has been set.
func (o *GetNodes200Response) GetKnownNodesOk() (*map[string]NodeNetworkInfo, bool) { func (o *GetNodes200Response) GetKnownNodesOk() ([]NodeNetworkInfo, bool) {
if o == nil { if o == nil {
return nil, false return nil, false
} }
return &o.KnownNodes, true return o.KnownNodes, true
} }
// SetKnownNodes sets field value // SetKnownNodes sets field value
func (o *GetNodes200Response) SetKnownNodes(v map[string]NodeNetworkInfo) { func (o *GetNodes200Response) SetKnownNodes(v []NodeNetworkInfo) {
o.KnownNodes = v o.KnownNodes = v
} }
@ -147,6 +225,15 @@ func (o GetNodes200Response) MarshalJSON() ([]byte, error) {
if true { if true {
toSerialize["garageVersion"] = o.GarageVersion toSerialize["garageVersion"] = o.GarageVersion
} }
if true {
toSerialize["garageFeatures"] = o.GarageFeatures
}
if true {
toSerialize["rustVersion"] = o.RustVersion
}
if true {
toSerialize["dbEngine"] = o.DbEngine
}
if true { if true {
toSerialize["knownNodes"] = o.KnownNodes toSerialize["knownNodes"] = o.KnownNodes
} }

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -16,7 +16,7 @@ import (
// ImportKeyRequest struct for ImportKeyRequest // ImportKeyRequest struct for ImportKeyRequest
type ImportKeyRequest struct { type ImportKeyRequest struct {
Name string `json:"name"` Name NullableString `json:"name"`
AccessKeyId string `json:"accessKeyId"` AccessKeyId string `json:"accessKeyId"`
SecretAccessKey string `json:"secretAccessKey"` SecretAccessKey string `json:"secretAccessKey"`
} }
@ -25,7 +25,7 @@ type ImportKeyRequest struct {
// This constructor will assign default values to properties that have it defined, // This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments // and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed // will change when the set of required properties is changed
func NewImportKeyRequest(name string, accessKeyId string, secretAccessKey string) *ImportKeyRequest { func NewImportKeyRequest(name NullableString, accessKeyId string, secretAccessKey string) *ImportKeyRequest {
this := ImportKeyRequest{} this := ImportKeyRequest{}
this.Name = name this.Name = name
this.AccessKeyId = accessKeyId this.AccessKeyId = accessKeyId
@ -42,27 +42,29 @@ func NewImportKeyRequestWithDefaults() *ImportKeyRequest {
} }
// GetName returns the Name field value // GetName returns the Name field value
// If the value is explicit nil, the zero value for string will be returned
func (o *ImportKeyRequest) GetName() string { func (o *ImportKeyRequest) GetName() string {
if o == nil { if o == nil || o.Name.Get() == nil {
var ret string var ret string
return ret return ret
} }
return o.Name return *o.Name.Get()
} }
// GetNameOk returns a tuple with the Name field value // GetNameOk returns a tuple with the Name field value
// and a boolean to check if the value has been set. // and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *ImportKeyRequest) GetNameOk() (*string, bool) { func (o *ImportKeyRequest) GetNameOk() (*string, bool) {
if o == nil { if o == nil {
return nil, false return nil, false
} }
return &o.Name, true return o.Name.Get(), o.Name.IsSet()
} }
// SetName sets field value // SetName sets field value
func (o *ImportKeyRequest) SetName(v string) { func (o *ImportKeyRequest) SetName(v string) {
o.Name = v o.Name.Set(&v)
} }
// GetAccessKeyId returns the AccessKeyId field value // GetAccessKeyId returns the AccessKeyId field value
@ -116,7 +118,7 @@ func (o *ImportKeyRequest) SetSecretAccessKey(v string) {
func (o ImportKeyRequest) MarshalJSON() ([]byte, error) { func (o ImportKeyRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{} toSerialize := map[string]interface{}{}
if true { if true {
toSerialize["name"] = o.Name toSerialize["name"] = o.Name.Get()
} }
if true { if true {
toSerialize["accessKeyId"] = o.AccessKeyId toSerialize["accessKeyId"] = o.AccessKeyId

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -18,7 +18,7 @@ import (
type KeyInfo struct { type KeyInfo struct {
Name *string `json:"name,omitempty"` Name *string `json:"name,omitempty"`
AccessKeyId *string `json:"accessKeyId,omitempty"` AccessKeyId *string `json:"accessKeyId,omitempty"`
SecretAccessKey *string `json:"secretAccessKey,omitempty"` SecretAccessKey NullableString `json:"secretAccessKey,omitempty"`
Permissions *KeyInfoPermissions `json:"permissions,omitempty"` Permissions *KeyInfoPermissions `json:"permissions,omitempty"`
Buckets []KeyInfoBucketsInner `json:"buckets,omitempty"` Buckets []KeyInfoBucketsInner `json:"buckets,omitempty"`
} }
@ -104,36 +104,46 @@ func (o *KeyInfo) SetAccessKeyId(v string) {
o.AccessKeyId = &v o.AccessKeyId = &v
} }
// GetSecretAccessKey returns the SecretAccessKey field value if set, zero value otherwise. // GetSecretAccessKey returns the SecretAccessKey field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *KeyInfo) GetSecretAccessKey() string { func (o *KeyInfo) GetSecretAccessKey() string {
if o == nil || o.SecretAccessKey == nil { if o == nil || o.SecretAccessKey.Get() == nil {
var ret string var ret string
return ret return ret
} }
return *o.SecretAccessKey return *o.SecretAccessKey.Get()
} }
// GetSecretAccessKeyOk returns a tuple with the SecretAccessKey field value if set, nil otherwise // GetSecretAccessKeyOk returns a tuple with the SecretAccessKey field value if set, nil otherwise
// and a boolean to check if the value has been set. // and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *KeyInfo) GetSecretAccessKeyOk() (*string, bool) { func (o *KeyInfo) GetSecretAccessKeyOk() (*string, bool) {
if o == nil || o.SecretAccessKey == nil { if o == nil {
return nil, false return nil, false
} }
return o.SecretAccessKey, true return o.SecretAccessKey.Get(), o.SecretAccessKey.IsSet()
} }
// HasSecretAccessKey returns a boolean if a field has been set. // HasSecretAccessKey returns a boolean if a field has been set.
func (o *KeyInfo) HasSecretAccessKey() bool { func (o *KeyInfo) HasSecretAccessKey() bool {
if o != nil && o.SecretAccessKey != nil { if o != nil && o.SecretAccessKey.IsSet() {
return true return true
} }
return false return false
} }
// SetSecretAccessKey gets a reference to the given string and assigns it to the SecretAccessKey field. // SetSecretAccessKey gets a reference to the given NullableString and assigns it to the SecretAccessKey field.
func (o *KeyInfo) SetSecretAccessKey(v string) { func (o *KeyInfo) SetSecretAccessKey(v string) {
o.SecretAccessKey = &v o.SecretAccessKey.Set(&v)
}
// SetSecretAccessKeyNil sets the value for SecretAccessKey to be an explicit nil
func (o *KeyInfo) SetSecretAccessKeyNil() {
o.SecretAccessKey.Set(nil)
}
// UnsetSecretAccessKey ensures that no value is present for SecretAccessKey, not even an explicit nil
func (o *KeyInfo) UnsetSecretAccessKey() {
o.SecretAccessKey.Unset()
} }
// GetPermissions returns the Permissions field value if set, zero value otherwise. // GetPermissions returns the Permissions field value if set, zero value otherwise.
@ -208,8 +218,8 @@ func (o KeyInfo) MarshalJSON() ([]byte, error) {
if o.AccessKeyId != nil { if o.AccessKeyId != nil {
toSerialize["accessKeyId"] = o.AccessKeyId toSerialize["accessKeyId"] = o.AccessKeyId
} }
if o.SecretAccessKey != nil { if o.SecretAccessKey.IsSet() {
toSerialize["secretAccessKey"] = o.SecretAccessKey toSerialize["secretAccessKey"] = o.SecretAccessKey.Get()
} }
if o.Permissions != nil { if o.Permissions != nil {
toSerialize["permissions"] = o.Permissions toSerialize["permissions"] = o.Permissions

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -17,7 +17,7 @@ import (
// NodeClusterInfo struct for NodeClusterInfo // NodeClusterInfo struct for NodeClusterInfo
type NodeClusterInfo struct { type NodeClusterInfo struct {
Zone string `json:"zone"` Zone string `json:"zone"`
Capacity NullableInt32 `json:"capacity"` Capacity NullableInt32 `json:"capacity,omitempty"`
// User defined tags, put whatever makes sense for you, these tags are not interpreted by Garage // User defined tags, put whatever makes sense for you, these tags are not interpreted by Garage
Tags []string `json:"tags"` Tags []string `json:"tags"`
} }
@ -26,10 +26,9 @@ type NodeClusterInfo struct {
// This constructor will assign default values to properties that have it defined, // This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments // and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed // will change when the set of required properties is changed
func NewNodeClusterInfo(zone string, capacity NullableInt32, tags []string) *NodeClusterInfo { func NewNodeClusterInfo(zone string, tags []string) *NodeClusterInfo {
this := NodeClusterInfo{} this := NodeClusterInfo{}
this.Zone = zone this.Zone = zone
this.Capacity = capacity
this.Tags = tags this.Tags = tags
return &this return &this
} }
@ -66,18 +65,16 @@ func (o *NodeClusterInfo) SetZone(v string) {
o.Zone = v o.Zone = v
} }
// GetCapacity returns the Capacity field value // GetCapacity returns the Capacity field value if set, zero value otherwise (both if not set or set to explicit null).
// If the value is explicit nil, the zero value for int32 will be returned
func (o *NodeClusterInfo) GetCapacity() int32 { func (o *NodeClusterInfo) GetCapacity() int32 {
if o == nil || o.Capacity.Get() == nil { if o == nil || o.Capacity.Get() == nil {
var ret int32 var ret int32
return ret return ret
} }
return *o.Capacity.Get() return *o.Capacity.Get()
} }
// GetCapacityOk returns a tuple with the Capacity field value // GetCapacityOk returns a tuple with the Capacity field value if set, nil otherwise
// and a boolean to check if the value has been set. // and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned // NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *NodeClusterInfo) GetCapacityOk() (*int32, bool) { func (o *NodeClusterInfo) GetCapacityOk() (*int32, bool) {
@ -87,10 +84,28 @@ func (o *NodeClusterInfo) GetCapacityOk() (*int32, bool) {
return o.Capacity.Get(), o.Capacity.IsSet() return o.Capacity.Get(), o.Capacity.IsSet()
} }
// SetCapacity sets field value // HasCapacity returns a boolean if a field has been set.
func (o *NodeClusterInfo) HasCapacity() bool {
if o != nil && o.Capacity.IsSet() {
return true
}
return false
}
// SetCapacity gets a reference to the given NullableInt32 and assigns it to the Capacity field.
func (o *NodeClusterInfo) SetCapacity(v int32) { func (o *NodeClusterInfo) SetCapacity(v int32) {
o.Capacity.Set(&v) o.Capacity.Set(&v)
} }
// SetCapacityNil sets the value for Capacity to be an explicit nil
func (o *NodeClusterInfo) SetCapacityNil() {
o.Capacity.Set(nil)
}
// UnsetCapacity ensures that no value is present for Capacity, not even an explicit nil
func (o *NodeClusterInfo) UnsetCapacity() {
o.Capacity.Unset()
}
// GetTags returns the Tags field value // GetTags returns the Tags field value
func (o *NodeClusterInfo) GetTags() []string { func (o *NodeClusterInfo) GetTags() []string {
@ -121,7 +136,7 @@ func (o NodeClusterInfo) MarshalJSON() ([]byte, error) {
if true { if true {
toSerialize["zone"] = o.Zone toSerialize["zone"] = o.Zone
} }
if true { if o.Capacity.IsSet() {
toSerialize["capacity"] = o.Capacity.Get() toSerialize["capacity"] = o.Capacity.Get()
} }
if true { if true {

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -16,9 +16,10 @@ import (
// NodeNetworkInfo struct for NodeNetworkInfo // NodeNetworkInfo struct for NodeNetworkInfo
type NodeNetworkInfo struct { type NodeNetworkInfo struct {
Id *string `json:"id,omitempty"`
Addr string `json:"addr"` Addr string `json:"addr"`
IsUp bool `json:"is_up"` IsUp bool `json:"isUp"`
LastSeenSecsAgo NullableInt32 `json:"last_seen_secs_ago"` LastSeenSecsAgo NullableInt32 `json:"lastSeenSecsAgo"`
Hostname string `json:"hostname"` Hostname string `json:"hostname"`
} }
@ -43,6 +44,38 @@ func NewNodeNetworkInfoWithDefaults() *NodeNetworkInfo {
return &this return &this
} }
// GetId returns the Id field value if set, zero value otherwise.
func (o *NodeNetworkInfo) GetId() string {
if o == nil || o.Id == nil {
var ret string
return ret
}
return *o.Id
}
// GetIdOk returns a tuple with the Id field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *NodeNetworkInfo) GetIdOk() (*string, bool) {
if o == nil || o.Id == nil {
return nil, false
}
return o.Id, true
}
// HasId returns a boolean if a field has been set.
func (o *NodeNetworkInfo) HasId() bool {
if o != nil && o.Id != nil {
return true
}
return false
}
// SetId gets a reference to the given string and assigns it to the Id field.
func (o *NodeNetworkInfo) SetId(v string) {
o.Id = &v
}
// GetAddr returns the Addr field value // GetAddr returns the Addr field value
func (o *NodeNetworkInfo) GetAddr() string { func (o *NodeNetworkInfo) GetAddr() string {
if o == nil { if o == nil {
@ -143,14 +176,17 @@ func (o *NodeNetworkInfo) SetHostname(v string) {
func (o NodeNetworkInfo) MarshalJSON() ([]byte, error) { func (o NodeNetworkInfo) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{} toSerialize := map[string]interface{}{}
if o.Id != nil {
toSerialize["id"] = o.Id
}
if true { if true {
toSerialize["addr"] = o.Addr toSerialize["addr"] = o.Addr
} }
if true { if true {
toSerialize["is_up"] = o.IsUp toSerialize["isUp"] = o.IsUp
} }
if true { if true {
toSerialize["last_seen_secs_ago"] = o.LastSeenSecsAgo.Get() toSerialize["lastSeenSecsAgo"] = o.LastSeenSecsAgo.Get()
} }
if true { if true {
toSerialize["hostname"] = o.Hostname toSerialize["hostname"] = o.Hostname

148
model_node_role_change.go Normal file
View file

@ -0,0 +1,148 @@
/*
Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package garage
import (
"encoding/json"
"fmt"
)
// NodeRoleChange - struct for NodeRoleChange
type NodeRoleChange struct {
NodeRoleRemove *NodeRoleRemove
NodeRoleUpdate *NodeRoleUpdate
}
// NodeRoleRemoveAsNodeRoleChange is a convenience function that returns NodeRoleRemove wrapped in NodeRoleChange
func NodeRoleRemoveAsNodeRoleChange(v *NodeRoleRemove) NodeRoleChange {
return NodeRoleChange{
NodeRoleRemove: v,
}
}
// NodeRoleUpdateAsNodeRoleChange is a convenience function that returns NodeRoleUpdate wrapped in NodeRoleChange
func NodeRoleUpdateAsNodeRoleChange(v *NodeRoleUpdate) NodeRoleChange {
return NodeRoleChange{
NodeRoleUpdate: v,
}
}
// Unmarshal JSON data into one of the pointers in the struct
func (dst *NodeRoleChange) UnmarshalJSON(data []byte) error {
var err error
match := 0
// try to unmarshal data into NodeRoleRemove
err = newStrictDecoder(data).Decode(&dst.NodeRoleRemove)
if err == nil {
jsonNodeRoleRemove, _ := json.Marshal(dst.NodeRoleRemove)
if string(jsonNodeRoleRemove) == "{}" { // empty struct
dst.NodeRoleRemove = nil
} else {
match++
}
} else {
dst.NodeRoleRemove = nil
}
// try to unmarshal data into NodeRoleUpdate
err = newStrictDecoder(data).Decode(&dst.NodeRoleUpdate)
if err == nil {
jsonNodeRoleUpdate, _ := json.Marshal(dst.NodeRoleUpdate)
if string(jsonNodeRoleUpdate) == "{}" { // empty struct
dst.NodeRoleUpdate = nil
} else {
match++
}
} else {
dst.NodeRoleUpdate = nil
}
if match > 1 { // more than 1 match
// reset to nil
dst.NodeRoleRemove = nil
dst.NodeRoleUpdate = nil
return fmt.Errorf("Data matches more than one schema in oneOf(NodeRoleChange)")
} else if match == 1 {
return nil // exactly one match
} else { // no match
return fmt.Errorf("Data failed to match schemas in oneOf(NodeRoleChange)")
}
}
// Marshal data from the first non-nil pointers in the struct to JSON
func (src NodeRoleChange) MarshalJSON() ([]byte, error) {
if src.NodeRoleRemove != nil {
return json.Marshal(&src.NodeRoleRemove)
}
if src.NodeRoleUpdate != nil {
return json.Marshal(&src.NodeRoleUpdate)
}
return nil, nil // no data in oneOf schemas
}
// Get the actual instance
func (obj *NodeRoleChange) GetActualInstance() (interface{}) {
if obj == nil {
return nil
}
if obj.NodeRoleRemove != nil {
return obj.NodeRoleRemove
}
if obj.NodeRoleUpdate != nil {
return obj.NodeRoleUpdate
}
// all schemas are nil
return nil
}
type NullableNodeRoleChange struct {
value *NodeRoleChange
isSet bool
}
func (v NullableNodeRoleChange) Get() *NodeRoleChange {
return v.value
}
func (v *NullableNodeRoleChange) Set(val *NodeRoleChange) {
v.value = val
v.isSet = true
}
func (v NullableNodeRoleChange) IsSet() bool {
return v.isSet
}
func (v *NullableNodeRoleChange) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableNodeRoleChange(val *NodeRoleChange) *NullableNodeRoleChange {
return &NullableNodeRoleChange{value: val, isSet: true}
}
func (v NullableNodeRoleChange) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableNodeRoleChange) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

144
model_node_role_remove.go Normal file
View file

@ -0,0 +1,144 @@
/*
Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package garage
import (
"encoding/json"
)
// NodeRoleRemove struct for NodeRoleRemove
type NodeRoleRemove struct {
Id *string `json:"id,omitempty"`
Remove bool `json:"remove"`
}
// NewNodeRoleRemove instantiates a new NodeRoleRemove object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewNodeRoleRemove(remove bool) *NodeRoleRemove {
this := NodeRoleRemove{}
this.Remove = remove
return &this
}
// NewNodeRoleRemoveWithDefaults instantiates a new NodeRoleRemove object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewNodeRoleRemoveWithDefaults() *NodeRoleRemove {
this := NodeRoleRemove{}
return &this
}
// GetId returns the Id field value if set, zero value otherwise.
func (o *NodeRoleRemove) GetId() string {
if o == nil || o.Id == nil {
var ret string
return ret
}
return *o.Id
}
// GetIdOk returns a tuple with the Id field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *NodeRoleRemove) GetIdOk() (*string, bool) {
if o == nil || o.Id == nil {
return nil, false
}
return o.Id, true
}
// HasId returns a boolean if a field has been set.
func (o *NodeRoleRemove) HasId() bool {
if o != nil && o.Id != nil {
return true
}
return false
}
// SetId gets a reference to the given string and assigns it to the Id field.
func (o *NodeRoleRemove) SetId(v string) {
o.Id = &v
}
// GetRemove returns the Remove field value
func (o *NodeRoleRemove) GetRemove() bool {
if o == nil {
var ret bool
return ret
}
return o.Remove
}
// GetRemoveOk returns a tuple with the Remove field value
// and a boolean to check if the value has been set.
func (o *NodeRoleRemove) GetRemoveOk() (*bool, bool) {
if o == nil {
return nil, false
}
return &o.Remove, true
}
// SetRemove sets field value
func (o *NodeRoleRemove) SetRemove(v bool) {
o.Remove = v
}
func (o NodeRoleRemove) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Id != nil {
toSerialize["id"] = o.Id
}
if true {
toSerialize["remove"] = o.Remove
}
return json.Marshal(toSerialize)
}
type NullableNodeRoleRemove struct {
value *NodeRoleRemove
isSet bool
}
func (v NullableNodeRoleRemove) Get() *NodeRoleRemove {
return v.value
}
func (v *NullableNodeRoleRemove) Set(val *NodeRoleRemove) {
v.value = val
v.isSet = true
}
func (v NullableNodeRoleRemove) IsSet() bool {
return v.isSet
}
func (v *NullableNodeRoleRemove) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableNodeRoleRemove(val *NodeRoleRemove) *NullableNodeRoleRemove {
return &NullableNodeRoleRemove{value: val, isSet: true}
}
func (v NullableNodeRoleRemove) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableNodeRoleRemove) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

204
model_node_role_update.go Normal file
View file

@ -0,0 +1,204 @@
/*
Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package garage
import (
"encoding/json"
)
// NodeRoleUpdate struct for NodeRoleUpdate
type NodeRoleUpdate struct {
Id *string `json:"id,omitempty"`
Zone string `json:"zone"`
Capacity NullableInt32 `json:"capacity"`
Tags []string `json:"tags"`
}
// NewNodeRoleUpdate instantiates a new NodeRoleUpdate object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewNodeRoleUpdate(zone string, capacity NullableInt32, tags []string) *NodeRoleUpdate {
this := NodeRoleUpdate{}
this.Zone = zone
this.Capacity = capacity
this.Tags = tags
return &this
}
// NewNodeRoleUpdateWithDefaults instantiates a new NodeRoleUpdate object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewNodeRoleUpdateWithDefaults() *NodeRoleUpdate {
this := NodeRoleUpdate{}
return &this
}
// GetId returns the Id field value if set, zero value otherwise.
func (o *NodeRoleUpdate) GetId() string {
if o == nil || o.Id == nil {
var ret string
return ret
}
return *o.Id
}
// GetIdOk returns a tuple with the Id field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *NodeRoleUpdate) GetIdOk() (*string, bool) {
if o == nil || o.Id == nil {
return nil, false
}
return o.Id, true
}
// HasId returns a boolean if a field has been set.
func (o *NodeRoleUpdate) HasId() bool {
if o != nil && o.Id != nil {
return true
}
return false
}
// SetId gets a reference to the given string and assigns it to the Id field.
func (o *NodeRoleUpdate) SetId(v string) {
o.Id = &v
}
// GetZone returns the Zone field value
func (o *NodeRoleUpdate) GetZone() string {
if o == nil {
var ret string
return ret
}
return o.Zone
}
// GetZoneOk returns a tuple with the Zone field value
// and a boolean to check if the value has been set.
func (o *NodeRoleUpdate) GetZoneOk() (*string, bool) {
if o == nil {
return nil, false
}
return &o.Zone, true
}
// SetZone sets field value
func (o *NodeRoleUpdate) SetZone(v string) {
o.Zone = v
}
// GetCapacity returns the Capacity field value
// If the value is explicit nil, the zero value for int32 will be returned
func (o *NodeRoleUpdate) GetCapacity() int32 {
if o == nil || o.Capacity.Get() == nil {
var ret int32
return ret
}
return *o.Capacity.Get()
}
// GetCapacityOk returns a tuple with the Capacity field value
// and a boolean to check if the value has been set.
// NOTE: If the value is an explicit nil, `nil, true` will be returned
func (o *NodeRoleUpdate) GetCapacityOk() (*int32, bool) {
if o == nil {
return nil, false
}
return o.Capacity.Get(), o.Capacity.IsSet()
}
// SetCapacity sets field value
func (o *NodeRoleUpdate) SetCapacity(v int32) {
o.Capacity.Set(&v)
}
// GetTags returns the Tags field value
func (o *NodeRoleUpdate) GetTags() []string {
if o == nil {
var ret []string
return ret
}
return o.Tags
}
// GetTagsOk returns a tuple with the Tags field value
// and a boolean to check if the value has been set.
func (o *NodeRoleUpdate) GetTagsOk() ([]string, bool) {
if o == nil {
return nil, false
}
return o.Tags, true
}
// SetTags sets field value
func (o *NodeRoleUpdate) SetTags(v []string) {
o.Tags = v
}
func (o NodeRoleUpdate) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Id != nil {
toSerialize["id"] = o.Id
}
if true {
toSerialize["zone"] = o.Zone
}
if true {
toSerialize["capacity"] = o.Capacity.Get()
}
if true {
toSerialize["tags"] = o.Tags
}
return json.Marshal(toSerialize)
}
type NullableNodeRoleUpdate struct {
value *NodeRoleUpdate
isSet bool
}
func (v NullableNodeRoleUpdate) Get() *NodeRoleUpdate {
return v.value
}
func (v *NullableNodeRoleUpdate) Set(val *NodeRoleUpdate) {
v.value = val
v.isSet = true
}
func (v NullableNodeRoleUpdate) IsSet() bool {
return v.isSet
}
func (v *NullableNodeRoleUpdate) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableNodeRoleUpdate(val *NodeRoleUpdate) *NullableNodeRoleUpdate {
return &NullableNodeRoleUpdate{value: val, isSet: true}
}
func (v NullableNodeRoleUpdate) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableNodeRoleUpdate) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

View file

@ -1,9 +1,9 @@
/* /*
Garage Administration API v0+garage-v0.8.0 Garage Administration API v0+garage-v0.9.0
Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!* Administrate your Garage cluster programatically, including status, layout, keys, buckets, and maintainance tasks. *Disclaimer: The API is not stable yet, hence its v0 tag. The API can change at any time, and changes can include breaking backward compatibility. Read the changelog and upgrade your scripts before upgrading. Additionnaly, this specification is very early stage and can contain bugs, especially on error return codes/types that are not tested yet. Do not expect a well finished and polished product!*
API version: v0.8.0 API version: v0.9.0
*/ */
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.