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/AllowBucketKeyRequest.md
docs/AllowBucketKeyRequestPermissions.md
docs/ApplyLayout200Response.md
docs/BucketApi.md
docs/BucketInfo.md
docs/BucketInfoQuotas.md
@ -35,6 +36,9 @@ docs/ListBuckets200ResponseInnerLocalAliasesInner.md
docs/ListKeys200ResponseInner.md
docs/NodeClusterInfo.md
docs/NodeNetworkInfo.md
docs/NodeRoleChange.md
docs/NodeRoleRemove.md
docs/NodeRoleUpdate.md
docs/NodesApi.md
docs/UpdateBucketRequest.md
docs/UpdateBucketRequestQuotas.md
@ -49,6 +53,7 @@ model_add_key_request.go
model_add_node_200_response_inner.go
model_allow_bucket_key_request.go
model_allow_bucket_key_request_permissions.go
model_apply_layout_200_response.go
model_bucket_info.go
model_bucket_info_quotas.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_node_cluster_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_quotas.go
model_update_bucket_request_website_access.go

View File

@ -8,7 +8,7 @@ Administrate your Garage cluster programatically, including status, layout, keys
## 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.
- API version: v0.8.0
- API version: v0.9.0
- Package version: 0.8.0
- Build package: org.openapitools.codegen.languages.GoClientCodegen
@ -77,7 +77,7 @@ ctx = context.WithValue(context.Background(), garage.ContextOperationServerVaria
## 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
------------ | ------------- | ------------- | -------------
@ -114,6 +114,7 @@ Class | Method | HTTP request | Description
- [AddNode200ResponseInner](docs/AddNode200ResponseInner.md)
- [AllowBucketKeyRequest](docs/AllowBucketKeyRequest.md)
- [AllowBucketKeyRequestPermissions](docs/AllowBucketKeyRequestPermissions.md)
- [ApplyLayout200Response](docs/ApplyLayout200Response.md)
- [BucketInfo](docs/BucketInfo.md)
- [BucketInfoQuotas](docs/BucketInfoQuotas.md)
- [BucketInfoWebsiteConfig](docs/BucketInfoWebsiteConfig.md)
@ -134,6 +135,9 @@ Class | Method | HTTP request | Description
- [ListKeys200ResponseInner](docs/ListKeys200ResponseInner.md)
- [NodeClusterInfo](docs/NodeClusterInfo.md)
- [NodeNetworkInfo](docs/NodeNetworkInfo.md)
- [NodeRoleChange](docs/NodeRoleChange.md)
- [NodeRoleRemove](docs/NodeRoleRemove.md)
- [NodeRoleUpdate](docs/NodeRoleUpdate.md)
- [UpdateBucketRequest](docs/UpdateBucketRequest.md)
- [UpdateBucketRequestQuotas](docs/UpdateBucketRequestQuotas.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.
*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
version: v0.8.0
title: Garage Administration API v0+garage-v0.9.0
version: v0.9.0
servers:
- description: A local server
url: http://localhost:3903/v0/
url: http://localhost:3903/v1/
security:
- bearerAuth: []
paths:
@ -20,6 +20,8 @@ paths:
- Live nodes
- Currently configured cluster layout
- Staged changes to the cluster layout
*Capacity is given in bytes*
operationId: GetNodes
responses:
"500":
@ -79,8 +81,8 @@ paths:
get:
description: "Returns the cluster's current layout, including:\n - Currently\
\ 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\
\ /status`.*\n"
*Capacity is given in bytes*\n*The info returned by this endpoint is a subset\
\ of the info returned by `GET /status`.*\n"
operationId: GetLayout
responses:
"500":
@ -101,25 +103,32 @@ paths:
post:
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.
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
requestBody:
content:
application/json:
schema:
additionalProperties:
$ref: '#/components/schemas/NodeClusterInfo'
example:
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b:
zone: geneva
capacity: 4
tags:
- gateway
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff": null
type: object
- id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
zone: geneva
capacity: 100000000000
tags:
- gateway
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
remove: true
items:
$ref: '#/components/schemas/NodeRoleChange'
type: array
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 remove a node, set it to `null` instead of passing a configuration object.
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.
required: true
@ -130,6 +139,10 @@ paths:
"400":
description: Invalid syntax or requested change
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/ClusterLayout'
description: The layout modification has been correctly staged
summary: Send modifications to the cluster layout
tags:
@ -138,6 +151,8 @@ paths:
post:
description: |
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
requestBody:
content:
@ -154,6 +169,10 @@ paths:
"400":
description: Invalid syntax or requested change
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/ApplyLayout_200_response'
description: "The staged layout has been applied as the new layout of the\
\ cluster, a rebalance has been triggered."
summary: Apply staged layout
@ -220,7 +239,10 @@ paths:
schema:
$ref: '#/components/schemas/AddKey_request'
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
responses:
"500":
@ -263,8 +285,10 @@ paths:
tags:
- Key
get:
description: |
Return information about a specific key and return its information
description: "Return information about a specific key like its identifiers,\
\ 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
parameters:
- description: The exact API access key generated by Garage
@ -276,6 +300,16 @@ paths:
schema:
type: string
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:
"500":
description: The server can not handle your request. Check your connectivity
@ -293,6 +327,8 @@ paths:
post:
description: |
Updates information about the specified API access key.
*Note: the secret key is not returned in the response, `null` is sent instead.*
operationId: UpdateKey
parameters:
- description: The exact API access key generated by Garage
@ -331,7 +367,9 @@ paths:
/key?search={pattern}:
get:
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
parameters:
- description: A pattern (beginning or full string) corresponding to a key identifier
@ -344,6 +382,16 @@ paths:
schema:
type: string
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:
"500":
description: The server can not handle your request. Check your connectivity
@ -519,7 +567,7 @@ paths:
- Bucket
put:
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.
In `websiteAccess`: if `enabled` is `true`, `indexDocument` must be specified.
@ -846,13 +894,16 @@ components:
schemas:
NodeNetworkInfo:
properties:
id:
example: 6a8e08af2aab1083ebab9b22165ea8b5b9d333b60a39ecd504e85cc1f432c36f
type: string
addr:
example: 10.0.0.11:3901
type: string
is_up:
isUp:
example: true
type: boolean
last_seen_secs_ago:
lastSeenSecsAgo:
example: 9
nullable: true
type: integer
@ -862,16 +913,10 @@ components:
required:
- addr
- hostname
- is_up
- last_seen_secs_ago
- isUp
- lastSeenSecsAgo
type: object
NodeClusterInfo:
example:
zone: dc1
capacity: 4
tags:
- gateway
- fast
properties:
zone:
example: dc1
@ -890,6 +935,45 @@ components:
type: string
type: array
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
- tags
- zone
@ -897,54 +981,58 @@ components:
ClusterLayout:
example:
roles:
ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f:
zone: madrid
capacity: 3
tags:
- fast
- amd64
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff":
zone: geneva
capacity: 7
tags:
- arm64
- id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
zone: madrid
capacity: 300000000000
tags:
- fast
- amd64
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
zone: geneva
capacity: 700000000000
tags:
- arm64
stagedRoleChanges:
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b:
zone: geneva
capacity: 4
tags:
- gateway
- id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
zone: geneva
capacity: 800000000000
tags:
- gateway
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
remove: true
version: 12
properties:
version:
example: 12
type: integer
roles:
additionalProperties:
$ref: '#/components/schemas/NodeClusterInfo'
example:
ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f:
zone: madrid
capacity: 3
tags:
- fast
- amd64
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff":
zone: geneva
capacity: 7
tags:
- arm64
type: object
- id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
zone: madrid
capacity: 300000000000
tags:
- fast
- amd64
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
zone: geneva
capacity: 700000000000
tags:
- arm64
items:
$ref: '#/components/schemas/NodeClusterInfo'
type: array
stagedRoleChanges:
additionalProperties:
$ref: '#/components/schemas/NodeClusterInfo'
example:
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b:
zone: geneva
capacity: 4
tags:
- gateway
type: object
- id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
zone: geneva
capacity: 800000000000
tags:
- gateway
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
remove: true
items:
$ref: '#/components/schemas/NodeRoleChange'
type: array
required:
- roles
- stagedRoleChanges
@ -997,6 +1085,7 @@ components:
type: string
secretAccessKey:
example: b892c0665f0ada8a4755dae98baa3b133590e11dae3bcc1f9d769d67f16c3835
nullable: true
type: string
permissions:
$ref: '#/components/schemas/KeyInfo_permissions'
@ -1100,76 +1189,113 @@ components:
example:
layout:
roles:
ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f:
zone: madrid
capacity: 3
tags:
- fast
- amd64
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff":
zone: geneva
capacity: 7
tags:
- arm64
- id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
zone: madrid
capacity: 300000000000
tags:
- fast
- amd64
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
zone: geneva
capacity: 700000000000
tags:
- arm64
stagedRoleChanges:
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b:
zone: geneva
capacity: 4
tags:
- gateway
- id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
zone: geneva
capacity: 800000000000
tags:
- gateway
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
remove: true
version: 12
node: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
dbEngine: LMDB (using Heed crate)
rustVersion: 1.68.0
knownNodes:
ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f:
addr: 10.0.0.11:3901
is_up: true
last_seen_secs_ago: 9
hostname: orion
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff":
addr: 10.0.0.12:3901
is_up: true
last_seen_secs_ago: 13
hostname: pegasus
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b:
addr: 10.0.0.13:3901
is_up: true
last_seen_secs_ago: 2
hostname: neptune
garageVersion: v0.7.3
- id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
addr: 10.0.0.11:3901
isUp: true
lastSeenSecsAgo: 9
hostname: orion
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
addr: 10.0.0.12:3901
isUp: true
lastSeenSecsAgo: 13
hostname: pegasus
- id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
addr: 10.0.0.13:3901
isUp: true
lastSeenSecsAgo: 2
hostname: neptune
garageFeatures:
- k2v
- sled
- lmdb
- sqlite
- consul-discovery
- kubernetes-discovery
- metrics
- telemetry-otlp
- bundled-libs
garageVersion: v0.9.0
properties:
node:
example: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
type: string
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
knownNodes:
additionalProperties:
$ref: '#/components/schemas/NodeNetworkInfo'
example:
ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f:
addr: 10.0.0.11:3901
is_up: true
last_seen_secs_ago: 9
hostname: orion
"4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff":
addr: 10.0.0.12:3901
is_up: true
last_seen_secs_ago: 13
hostname: pegasus
e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b:
addr: 10.0.0.13:3901
is_up: true
last_seen_secs_ago: 2
hostname: neptune
type: object
- id: ec79480e0ce52ae26fd00c9da684e4fa56658d9c64cdcecb094e936de0bfe71f
addr: 10.0.0.11:3901
isUp: true
lastSeenSecsAgo: 9
hostname: orion
- id: 4a6ae5a1d0d33bf895f5bb4f0a418b7dc94c47c0dd2eb108d1158f3c8f60b0ff
addr: 10.0.0.12:3901
isUp: true
lastSeenSecsAgo: 13
hostname: pegasus
- id: e2ee7984ee65b260682086ec70026165903c86e601a4a5a501c1900afe28d84b
addr: 10.0.0.13:3901
isUp: true
lastSeenSecsAgo: 2
hostname: neptune
items:
$ref: '#/components/schemas/NodeNetworkInfo'
type: array
layout:
$ref: '#/components/schemas/ClusterLayout'
required:
- dbEngine
- garageFeatures
- garageVersion
- knownNodes
- layout
- node
- rustVersion
type: object
AddNode_200_response_inner:
properties:
@ -1181,6 +1307,76 @@ components:
type: string
example: null
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:
properties:
id:
@ -1194,6 +1390,7 @@ components:
properties:
name:
example: test-key
nullable: true
type: string
type: object
UpdateKey_request_allow:
@ -1223,6 +1420,7 @@ components:
properties:
name:
example: test-key
nullable: true
type: string
accessKeyId:
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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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
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.
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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -29,7 +29,7 @@ type ApiAddKeyRequest struct {
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 {
r.addKeyRequest = &addKeyRequest
return r
@ -232,6 +232,13 @@ type ApiGetKeyRequest struct {
ctx context.Context
ApiService *KeyApiService
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) {
@ -241,7 +248,9 @@ func (r ApiGetKeyRequest) Execute() (*KeyInfo, *http.Response, error) {
/*
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().
@ -278,6 +287,9 @@ func (a *KeyApiService) GetKeyExecute(r ApiGetKeyRequest) (*KeyInfo, *http.Respo
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.showSecretKey != nil {
localVarQueryParams.Add("showSecretKey", parameterToString(*r.showSecretKey, ""))
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -550,6 +562,13 @@ type ApiSearchKeyRequest struct {
ctx context.Context
ApiService *KeyApiService
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) {
@ -559,7 +578,9 @@ func (r ApiSearchKeyRequest) Execute() (*KeyInfo, *http.Response, error) {
/*
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().
@ -596,6 +617,9 @@ func (a *KeyApiService) SearchKeyExecute(r ApiSearchKeyRequest) (*KeyInfo, *http
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.showSecretKey != nil {
localVarQueryParams.Add("showSecretKey", parameterToString(*r.showSecretKey, ""))
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -672,6 +696,8 @@ UpdateKey Update a 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 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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -25,16 +25,16 @@ type LayoutApiService service
type ApiAddLayoutRequest struct {
ctx context.Context
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.
func (r ApiAddLayoutRequest) RequestBody(requestBody map[string]NodeClusterInfo) ApiAddLayoutRequest {
r.requestBody = &requestBody
// 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) NodeRoleChange(nodeRoleChange []NodeRoleChange) ApiAddLayoutRequest {
r.nodeRoleChange = &nodeRoleChange
return r
}
func (r ApiAddLayoutRequest) Execute() (*http.Response, error) {
func (r ApiAddLayoutRequest) Execute() (*ClusterLayout, *http.Response, error) {
return r.ApiService.AddLayoutExecute(r)
}
@ -42,7 +42,12 @@ func (r ApiAddLayoutRequest) Execute() (*http.Response, error) {
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.
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().
@ -56,16 +61,18 @@ func (a *LayoutApiService) AddLayout(ctx context.Context) ApiAddLayoutRequest {
}
// 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 (
localVarHTTPMethod = http.MethodPost
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *ClusterLayout
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "LayoutApiService.AddLayout")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/layout"
@ -73,8 +80,8 @@ func (a *LayoutApiService) AddLayoutExecute(r ApiAddLayoutRequest) (*http.Respon
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.requestBody == nil {
return nil, reportError("requestBody is required and must be specified")
if r.nodeRoleChange == nil {
return localVarReturnValue, nil, reportError("nodeRoleChange is required and must be specified")
}
// to determine the Content-Type header
@ -87,7 +94,7 @@ func (a *LayoutApiService) AddLayoutExecute(r ApiAddLayoutRequest) (*http.Respon
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{}
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
@ -95,22 +102,22 @@ func (a *LayoutApiService) AddLayoutExecute(r ApiAddLayoutRequest) (*http.Respon
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
// body params
localVarPostBody = r.requestBody
localVarPostBody = r.nodeRoleChange
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
@ -118,10 +125,19 @@ func (a *LayoutApiService) AddLayoutExecute(r ApiAddLayoutRequest) (*http.Respon
body: localVarBody,
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 {
@ -136,7 +152,7 @@ func (r ApiApplyLayoutRequest) LayoutVersion(layoutVersion LayoutVersion) ApiApp
return r
}
func (r ApiApplyLayoutRequest) Execute() (*http.Response, error) {
func (r ApiApplyLayoutRequest) Execute() (*ApplyLayout200Response, *http.Response, error) {
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.
*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().
@return ApiApplyLayoutRequest
@ -157,16 +175,18 @@ func (a *LayoutApiService) ApplyLayout(ctx context.Context) ApiApplyLayoutReques
}
// 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 (
localVarHTTPMethod = http.MethodPost
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *ApplyLayout200Response
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "LayoutApiService.ApplyLayout")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/layout/apply"
@ -175,7 +195,7 @@ func (a *LayoutApiService) ApplyLayoutExecute(r ApiApplyLayoutRequest) (*http.Re
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
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
@ -188,7 +208,7 @@ func (a *LayoutApiService) ApplyLayoutExecute(r ApiApplyLayoutRequest) (*http.Re
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{}
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
@ -199,19 +219,19 @@ func (a *LayoutApiService) ApplyLayoutExecute(r ApiApplyLayoutRequest) (*http.Re
localVarPostBody = r.layoutVersion
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = ioutil.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
@ -219,10 +239,19 @@ func (a *LayoutApiService) ApplyLayoutExecute(r ApiApplyLayoutRequest) (*http.Re
body: localVarBody,
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 {
@ -241,6 +270,7 @@ Returns the cluster's current layout, including:
- Currently configured 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`.*

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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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
- 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().
@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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -41,7 +41,7 @@ var (
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.
type APIClient struct {
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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -105,7 +105,7 @@ func NewConfiguration() *Configuration {
Debug: false,
Servers: ServerConfigurations{
{
URL: "http://localhost:3903/v0",
URL: "http://localhost:3903/v1",
Description: "A local server",
},
},

View File

@ -4,7 +4,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Name** | Pointer to **string** | | [optional]
**Name** | Pointer to **NullableString** | | [optional]
## Methods
@ -50,6 +50,16 @@ SetName sets Name field to given value.
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)

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
All URIs are relative to *http://localhost:3903/v0*
All URIs are relative to *http://localhost:3903/v1*
Method | HTTP request | Description
------------- | ------------- | -------------

View File

@ -5,14 +5,14 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Version** | **int32** | |
**Roles** | [**map[string]NodeClusterInfo**](NodeClusterInfo.md) | |
**StagedRoleChanges** | [**map[string]NodeClusterInfo**](NodeClusterInfo.md) | |
**Roles** | [**[]NodeClusterInfo**](NodeClusterInfo.md) | |
**StagedRoleChanges** | [**[]NodeRoleChange**](NodeRoleChange.md) | |
## Methods
### 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
This constructor will assign default values to properties that have it defined,
@ -49,40 +49,40 @@ SetVersion sets Version field to given value.
### GetRoles
`func (o *ClusterLayout) GetRoles() map[string]NodeClusterInfo`
`func (o *ClusterLayout) GetRoles() []NodeClusterInfo`
GetRoles returns the Roles field if non-nil, zero value otherwise.
### 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
and a boolean to check if the value has been set.
### SetRoles
`func (o *ClusterLayout) SetRoles(v map[string]NodeClusterInfo)`
`func (o *ClusterLayout) SetRoles(v []NodeClusterInfo)`
SetRoles sets Roles field to given value.
### GetStagedRoleChanges
`func (o *ClusterLayout) GetStagedRoleChanges() map[string]NodeClusterInfo`
`func (o *ClusterLayout) GetStagedRoleChanges() []NodeRoleChange`
GetStagedRoleChanges returns the StagedRoleChanges field if non-nil, zero value otherwise.
### 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
and a boolean to check if the value has been set.
### SetStagedRoleChanges
`func (o *ClusterLayout) SetStagedRoleChanges(v map[string]NodeClusterInfo)`
`func (o *ClusterLayout) SetStagedRoleChanges(v []NodeRoleChange)`
SetStagedRoleChanges sets StagedRoleChanges field to given value.

View File

@ -6,14 +6,17 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Node** | **string** | |
**GarageVersion** | **string** | |
**KnownNodes** | [**map[string]NodeNetworkInfo**](NodeNetworkInfo.md) | |
**GarageFeatures** | **[]string** | |
**RustVersion** | **string** | |
**DbEngine** | **string** | |
**KnownNodes** | [**[]NodeNetworkInfo**](NodeNetworkInfo.md) | |
**Layout** | [**ClusterLayout**](ClusterLayout.md) | |
## Methods
### 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
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.
### 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
`func (o *GetNodes200Response) GetKnownNodes() map[string]NodeNetworkInfo`
`func (o *GetNodes200Response) GetKnownNodes() []NodeNetworkInfo`
GetKnownNodes returns the KnownNodes field if non-nil, zero value otherwise.
### 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
and a boolean to check if the value has been set.
### SetKnownNodes
`func (o *GetNodes200Response) SetKnownNodes(v map[string]NodeNetworkInfo)`
`func (o *GetNodes200Response) SetKnownNodes(v []NodeNetworkInfo)`
SetKnownNodes sets KnownNodes field to given value.

View File

@ -4,7 +4,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Name** | **string** | |
**Name** | **NullableString** | |
**AccessKeyId** | **string** | |
**SecretAccessKey** | **string** | |
@ -12,7 +12,7 @@ Name | Type | Description | Notes
### 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
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.
### 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
`func (o *ImportKeyRequest) GetAccessKeyId() string`

View File

@ -1,6 +1,6 @@
# \KeyApi
All URIs are relative to *http://localhost:3903/v0*
All URIs are relative to *http://localhost:3903/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
@ -35,7 +35,7 @@ import (
)
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()
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
------------- | ------------- | ------------- | -------------
**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
@ -150,7 +150,7 @@ Name | Type | Description | Notes
## GetKey
> KeyInfo GetKey(ctx, accessKey).Execute()
> KeyInfo GetKey(ctx, accessKey).ShowSecretKey(showSecretKey).Execute()
Get key information
@ -170,10 +170,11 @@ import (
func main() {
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()
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 {
fmt.Fprintf(os.Stderr, "Error when calling `KeyApi.GetKey``: %v\n", err)
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
------------- | ------------- | ------------- | -------------
**showSecretKey** | **bool** | Wether or not the secret key should be returned in the response | [default to false]
### Return type
@ -347,7 +349,7 @@ Other parameters are passed through a pointer to a apiListKeysRequest struct via
## SearchKey
> KeyInfo SearchKey(ctx, pattern).Execute()
> KeyInfo SearchKey(ctx, pattern).ShowSecretKey(showSecretKey).Execute()
Select key by pattern
@ -367,10 +369,11 @@ import (
func main() {
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()
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 {
fmt.Fprintf(os.Stderr, "Error when calling `KeyApi.SearchKey``: %v\n", err)
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
------------- | ------------- | ------------- | -------------
**showSecretKey** | **bool** | Wether or not the secret key should be returned in the response | [default to false]
### Return type

View File

@ -6,7 +6,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Name** | 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]
**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.
### 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
`func (o *KeyInfo) GetPermissions() KeyInfoPermissions`

View File

@ -1,6 +1,6 @@
# \LayoutApi
All URIs are relative to *http://localhost:3903/v0*
All URIs are relative to *http://localhost:3903/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
@ -13,7 +13,7 @@ Method | HTTP request | Description
## AddLayout
> AddLayout(ctx).RequestBody(requestBody).Execute()
> ClusterLayout AddLayout(ctx).NodeRoleChange(nodeRoleChange).Execute()
Send modifications to the cluster layout
@ -32,15 +32,17 @@ import (
)
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()
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 {
fmt.Fprintf(os.Stderr, "Error when calling `LayoutApi.AddLayout``: %v\n", err)
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
------------- | ------------- | ------------- | -------------
**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
(empty response body)
[**ClusterLayout**](ClusterLayout.md)
### Authorization
@ -68,7 +70,7 @@ Name | Type | Description | Notes
### HTTP request headers
- **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 Model list]](../README.md#documentation-for-models)
@ -77,7 +79,7 @@ Name | Type | Description | Notes
## ApplyLayout
> ApplyLayout(ctx).LayoutVersion(layoutVersion).Execute()
> ApplyLayout200Response ApplyLayout(ctx).LayoutVersion(layoutVersion).Execute()
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, "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
(empty response body)
[**ApplyLayout200Response**](ApplyLayout200Response.md)
### Authorization
@ -132,7 +136,7 @@ Name | Type | Description | Notes
### HTTP request headers
- **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 Model list]](../README.md#documentation-for-models)

View File

@ -5,14 +5,14 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**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 |
## Methods
### NewNodeClusterInfo
`func NewNodeClusterInfo(zone string, capacity NullableInt32, tags []string, ) *NodeClusterInfo`
`func NewNodeClusterInfo(zone string, tags []string, ) *NodeClusterInfo`
NewNodeClusterInfo instantiates a new NodeClusterInfo object
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.
### HasCapacity
`func (o *NodeClusterInfo) HasCapacity() bool`
HasCapacity returns a boolean if a field has been set.
### SetCapacityNil

View File

@ -4,6 +4,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | Pointer to **string** | | [optional]
**Addr** | **string** | |
**IsUp** | **bool** | |
**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,
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
`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
All URIs are relative to *http://localhost:3903/v0*
All URIs are relative to *http://localhost:3903/v1*
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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -16,7 +16,7 @@ import (
// AddKeyRequest struct for AddKeyRequest
type AddKeyRequest struct {
Name *string `json:"name,omitempty"`
Name NullableString `json:"name,omitempty"`
}
// NewAddKeyRequest instantiates a new AddKeyRequest object
@ -36,42 +36,52 @@ func NewAddKeyRequestWithDefaults() *AddKeyRequest {
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 {
if o == nil || o.Name == nil {
if o == nil || o.Name.Get() == nil {
var ret string
return ret
}
return *o.Name
return *o.Name.Get()
}
// GetNameOk returns a tuple with the Name field value if set, nil otherwise
// 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) {
if o == nil || o.Name == nil {
if o == nil {
return nil, false
}
return o.Name, true
return o.Name.Get(), o.Name.IsSet()
}
// HasName returns a boolean if a field has been set.
func (o *AddKeyRequest) HasName() bool {
if o != nil && o.Name != nil {
if o != nil && o.Name.IsSet() {
return true
}
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) {
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) {
toSerialize := map[string]interface{}{}
if o.Name != nil {
toSerialize["name"] = o.Name
if o.Name.IsSet() {
toSerialize["name"] = o.Name.Get()
}
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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -17,15 +17,15 @@ import (
// ClusterLayout struct for ClusterLayout
type ClusterLayout struct {
Version int32 `json:"version"`
Roles map[string]NodeClusterInfo `json:"roles"`
StagedRoleChanges map[string]NodeClusterInfo `json:"stagedRoleChanges"`
Roles []NodeClusterInfo `json:"roles"`
StagedRoleChanges []NodeRoleChange `json:"stagedRoleChanges"`
}
// NewClusterLayout instantiates a new ClusterLayout 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 NewClusterLayout(version int32, roles map[string]NodeClusterInfo, stagedRoleChanges map[string]NodeClusterInfo) *ClusterLayout {
func NewClusterLayout(version int32, roles []NodeClusterInfo, stagedRoleChanges []NodeRoleChange) *ClusterLayout {
this := ClusterLayout{}
this.Version = version
this.Roles = roles
@ -66,9 +66,9 @@ func (o *ClusterLayout) SetVersion(v int32) {
}
// GetRoles returns the Roles field value
func (o *ClusterLayout) GetRoles() map[string]NodeClusterInfo {
func (o *ClusterLayout) GetRoles() []NodeClusterInfo {
if o == nil {
var ret map[string]NodeClusterInfo
var ret []NodeClusterInfo
return ret
}
@ -77,22 +77,22 @@ func (o *ClusterLayout) GetRoles() map[string]NodeClusterInfo {
// GetRolesOk returns a tuple with the Roles field value
// 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 {
return nil, false
}
return &o.Roles, true
return o.Roles, true
}
// SetRoles sets field value
func (o *ClusterLayout) SetRoles(v map[string]NodeClusterInfo) {
func (o *ClusterLayout) SetRoles(v []NodeClusterInfo) {
o.Roles = v
}
// GetStagedRoleChanges returns the StagedRoleChanges field value
func (o *ClusterLayout) GetStagedRoleChanges() map[string]NodeClusterInfo {
func (o *ClusterLayout) GetStagedRoleChanges() []NodeRoleChange {
if o == nil {
var ret map[string]NodeClusterInfo
var ret []NodeRoleChange
return ret
}
@ -101,15 +101,15 @@ func (o *ClusterLayout) GetStagedRoleChanges() map[string]NodeClusterInfo {
// GetStagedRoleChangesOk returns a tuple with the StagedRoleChanges field value
// 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 {
return nil, false
}
return &o.StagedRoleChanges, true
return o.StagedRoleChanges, true
}
// SetStagedRoleChanges sets field value
func (o *ClusterLayout) SetStagedRoleChanges(v map[string]NodeClusterInfo) {
func (o *ClusterLayout) SetStagedRoleChanges(v []NodeRoleChange) {
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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -18,7 +18,10 @@ import (
type GetNodes200Response struct {
Node string `json:"node"`
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"`
}
@ -26,10 +29,13 @@ type GetNodes200Response struct {
// 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 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.Node = node
this.GarageVersion = garageVersion
this.GarageFeatures = garageFeatures
this.RustVersion = rustVersion
this.DbEngine = dbEngine
this.KnownNodes = knownNodes
this.Layout = layout
return &this
@ -91,10 +97,82 @@ func (o *GetNodes200Response) SetGarageVersion(v string) {
o.GarageVersion = v
}
// GetKnownNodes returns the KnownNodes field value
func (o *GetNodes200Response) GetKnownNodes() map[string]NodeNetworkInfo {
// GetGarageFeatures returns the GarageFeatures field value
func (o *GetNodes200Response) GetGarageFeatures() []string {
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
}
@ -103,15 +181,15 @@ func (o *GetNodes200Response) GetKnownNodes() map[string]NodeNetworkInfo {
// GetKnownNodesOk returns a tuple with the KnownNodes field value
// 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 {
return nil, false
}
return &o.KnownNodes, true
return o.KnownNodes, true
}
// SetKnownNodes sets field value
func (o *GetNodes200Response) SetKnownNodes(v map[string]NodeNetworkInfo) {
func (o *GetNodes200Response) SetKnownNodes(v []NodeNetworkInfo) {
o.KnownNodes = v
}
@ -147,6 +225,15 @@ func (o GetNodes200Response) MarshalJSON() ([]byte, error) {
if true {
toSerialize["garageVersion"] = o.GarageVersion
}
if true {
toSerialize["garageFeatures"] = o.GarageFeatures
}
if true {
toSerialize["rustVersion"] = o.RustVersion
}
if true {
toSerialize["dbEngine"] = o.DbEngine
}
if true {
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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -16,7 +16,7 @@ import (
// ImportKeyRequest struct for ImportKeyRequest
type ImportKeyRequest struct {
Name string `json:"name"`
Name NullableString `json:"name"`
AccessKeyId string `json:"accessKeyId"`
SecretAccessKey string `json:"secretAccessKey"`
}
@ -25,7 +25,7 @@ type ImportKeyRequest struct {
// 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 NewImportKeyRequest(name string, accessKeyId string, secretAccessKey string) *ImportKeyRequest {
func NewImportKeyRequest(name NullableString, accessKeyId string, secretAccessKey string) *ImportKeyRequest {
this := ImportKeyRequest{}
this.Name = name
this.AccessKeyId = accessKeyId
@ -42,27 +42,29 @@ func NewImportKeyRequestWithDefaults() *ImportKeyRequest {
}
// 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 {
if o == nil {
if o == nil || o.Name.Get() == nil {
var ret string
return ret
}
return o.Name
return *o.Name.Get()
}
// GetNameOk returns a tuple with the Name 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 *ImportKeyRequest) GetNameOk() (*string, bool) {
if o == nil {
return nil, false
}
return &o.Name, true
return o.Name.Get(), o.Name.IsSet()
}
// SetName sets field value
func (o *ImportKeyRequest) SetName(v string) {
o.Name = v
o.Name.Set(&v)
}
// GetAccessKeyId returns the AccessKeyId field value
@ -116,7 +118,7 @@ func (o *ImportKeyRequest) SetSecretAccessKey(v string) {
func (o ImportKeyRequest) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if true {
toSerialize["name"] = o.Name
toSerialize["name"] = o.Name.Get()
}
if true {
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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -18,7 +18,7 @@ import (
type KeyInfo struct {
Name *string `json:"name,omitempty"`
AccessKeyId *string `json:"accessKeyId,omitempty"`
SecretAccessKey *string `json:"secretAccessKey,omitempty"`
SecretAccessKey NullableString `json:"secretAccessKey,omitempty"`
Permissions *KeyInfoPermissions `json:"permissions,omitempty"`
Buckets []KeyInfoBucketsInner `json:"buckets,omitempty"`
}
@ -104,36 +104,46 @@ func (o *KeyInfo) SetAccessKeyId(v string) {
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 {
if o == nil || o.SecretAccessKey == nil {
if o == nil || o.SecretAccessKey.Get() == nil {
var ret string
return ret
}
return *o.SecretAccessKey
return *o.SecretAccessKey.Get()
}
// GetSecretAccessKeyOk returns a tuple with the SecretAccessKey field value if set, nil otherwise
// 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) {
if o == nil || o.SecretAccessKey == nil {
if o == nil {
return nil, false
}
return o.SecretAccessKey, true
return o.SecretAccessKey.Get(), o.SecretAccessKey.IsSet()
}
// HasSecretAccessKey returns a boolean if a field has been set.
func (o *KeyInfo) HasSecretAccessKey() bool {
if o != nil && o.SecretAccessKey != nil {
if o != nil && o.SecretAccessKey.IsSet() {
return true
}
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) {
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.
@ -208,8 +218,8 @@ func (o KeyInfo) MarshalJSON() ([]byte, error) {
if o.AccessKeyId != nil {
toSerialize["accessKeyId"] = o.AccessKeyId
}
if o.SecretAccessKey != nil {
toSerialize["secretAccessKey"] = o.SecretAccessKey
if o.SecretAccessKey.IsSet() {
toSerialize["secretAccessKey"] = o.SecretAccessKey.Get()
}
if o.Permissions != nil {
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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -17,7 +17,7 @@ import (
// NodeClusterInfo struct for NodeClusterInfo
type NodeClusterInfo struct {
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
Tags []string `json:"tags"`
}
@ -26,10 +26,9 @@ type NodeClusterInfo struct {
// 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 NewNodeClusterInfo(zone string, capacity NullableInt32, tags []string) *NodeClusterInfo {
func NewNodeClusterInfo(zone string, tags []string) *NodeClusterInfo {
this := NodeClusterInfo{}
this.Zone = zone
this.Capacity = capacity
this.Tags = tags
return &this
}
@ -66,18 +65,16 @@ func (o *NodeClusterInfo) 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
// GetCapacity returns the Capacity field value if set, zero value otherwise (both if not set or set to explicit null).
func (o *NodeClusterInfo) 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
// GetCapacityOk returns a tuple with the Capacity field value if set, nil otherwise
// 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 *NodeClusterInfo) GetCapacityOk() (*int32, bool) {
@ -87,10 +84,28 @@ func (o *NodeClusterInfo) GetCapacityOk() (*int32, bool) {
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) {
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
func (o *NodeClusterInfo) GetTags() []string {
@ -121,7 +136,7 @@ func (o NodeClusterInfo) MarshalJSON() ([]byte, error) {
if true {
toSerialize["zone"] = o.Zone
}
if true {
if o.Capacity.IsSet() {
toSerialize["capacity"] = o.Capacity.Get()
}
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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
@ -16,9 +16,10 @@ import (
// NodeNetworkInfo struct for NodeNetworkInfo
type NodeNetworkInfo struct {
Id *string `json:"id,omitempty"`
Addr string `json:"addr"`
IsUp bool `json:"is_up"`
LastSeenSecsAgo NullableInt32 `json:"last_seen_secs_ago"`
IsUp bool `json:"isUp"`
LastSeenSecsAgo NullableInt32 `json:"lastSeenSecsAgo"`
Hostname string `json:"hostname"`
}
@ -43,6 +44,38 @@ func NewNodeNetworkInfoWithDefaults() *NodeNetworkInfo {
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
func (o *NodeNetworkInfo) GetAddr() string {
if o == nil {
@ -143,14 +176,17 @@ func (o *NodeNetworkInfo) SetHostname(v string) {
func (o NodeNetworkInfo) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.Id != nil {
toSerialize["id"] = o.Id
}
if true {
toSerialize["addr"] = o.Addr
}
if true {
toSerialize["is_up"] = o.IsUp
toSerialize["isUp"] = o.IsUp
}
if true {
toSerialize["last_seen_secs_ago"] = o.LastSeenSecsAgo.Get()
toSerialize["lastSeenSecsAgo"] = o.LastSeenSecsAgo.Get()
}
if true {
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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// 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!*
API version: v0.8.0
API version: v0.9.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.