# Go API client for ionoscloud

API description for the IONOS In-Memory DB

## 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: 1.0.0
* Package version: v1.0.0
* Build package: org.openapitools.codegen.languages.GoClientCodegen For more information, please visit <https://docs.ionos.com/support/general-information/contact-information>

## Installation

Install the following dependencies:

```shell
go get github.com/stretchr/testify/assert
go get golang.org/x/net/context
```

Put the package under your project folder and add the following in import:

```golang
import ionoscloud "github.com/ionos-cloud/sdk-go-dbaas-in-memory-db"
```

To use a proxy, set the environment variable `HTTP_PROXY`:

```golang
os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")
```

## Configuration of Server URL

Default configuration comes with `Servers` field that contains server objects as defined in the OpenAPI specification.

### Select Server Configuration

For using other server than the one defined on index 0 set context value `sw.ContextServerIndex` of type `int`.

```golang
ctx := context.WithValue(context.Background(), ionoscloud.ContextServerIndex, 1)
```

### Templated Server URL

Templated server URL is formatted using default variables from configuration or from context value `sw.ContextServerVariables` of type `map[string]string`.

```golang
ctx := context.WithValue(context.Background(), ionoscloud.ContextServerVariables, map[string]string{
	"basePath": "v2",
})
```

Note, enum values are always validated and all unused variables are silently ignored.

## Documentation for API Endpoints

All URIs are relative to *<https://in-memory-db.de-fra.ionos.com>*

| Class           | Method                                                                                                                                         | HTTP request                                         | Description             |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ----------------------- |
| *ReplicaSetApi* | [**ReplicasetsDelete**](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/api/replicasetapi#replicasetsdelete)              | **Delete** /replicasets/{replicasetId}               | Delete ReplicaSet       |
| *ReplicaSetApi* | [**ReplicasetsFindById**](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/api/replicasetapi#replicasetsfindbyid)          | **Get** /replicasets/{replicasetId}                  | Retrieve ReplicaSet     |
| *ReplicaSetApi* | [**ReplicasetsGet**](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/api/replicasetapi#replicasetsget)                    | **Get** /replicasets                                 | Retrieve all ReplicaSet |
| *ReplicaSetApi* | [**ReplicasetsPost**](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/api/replicasetapi#replicasetspost)                  | **Post** /replicasets                                | Create ReplicaSet       |
| *ReplicaSetApi* | [**ReplicasetsPut**](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/api/replicasetapi#replicasetsput)                    | **Put** /replicasets/{replicasetId}                  | Ensure ReplicaSet       |
| *RestoreApi*    | [**SnapshotsRestoresFindById**](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/api/restoreapi#snapshotsrestoresfindbyid) | **Get** /snapshots/{snapshotId}/restores/{restoreId} | Retrieve Restore        |
| *RestoreApi*    | [**SnapshotsRestoresGet**](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/api/restoreapi#snapshotsrestoresget)           | **Get** /snapshots/{snapshotId}/restores             | Retrieve all Restore    |
| *RestoreApi*    | [**SnapshotsRestoresPost**](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/api/restoreapi#snapshotsrestorespost)         | **Post** /snapshots/{snapshotId}/restores            | Create Restore          |
| *SnapshotApi*   | [**SnapshotsFindById**](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/api/snapshotapi#snapshotsfindbyid)                | **Get** /snapshots/{snapshotId}                      | Retrieve Snapshot       |
| *SnapshotApi*   | [**SnapshotsGet**](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/api/snapshotapi#snapshotsget)                          | **Get** /snapshots                                   | Retrieve all Snapshot   |

## Documentation For Models

* [Connection](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/connection)
* [DayOfTheWeek](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/dayoftheweek)
* [Error](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/error)
* [ErrorMessages](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/errormessages)
* [EvictionPolicy](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/evictionpolicy)
* [HashedPassword](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/hashedpassword)
* [Links](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/links)
* [MaintenanceWindow](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/maintenancewindow)
* [Metadata](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/metadata)
* [Pagination](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/pagination)
* [PersistenceMode](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/persistencemode)
* [ReplicaSet](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/replicaset)
* [ReplicaSetCreate](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/replicasetcreate)
* [ReplicaSetEnsure](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/replicasetensure)
* [ReplicaSetMetadata](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/replicasetmetadata)
* [ReplicaSetMetadataAllOf](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/replicasetmetadataallof)
* [ReplicaSetRead](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/replicasetread)
* [ReplicaSetReadList](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/replicasetreadlist)
* [ReplicaSetReadListAllOf](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/replicasetreadlistallof)
* [ResourceState](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/resourcestate)
* [Resources](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/resources)
* [Restore](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/restore)
* [RestoreCreate](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/restorecreate)
* [RestoreMetadata](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/restoremetadata)
* [RestoreMetadataAllOf](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/restoremetadataallof)
* [RestoreRead](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/restoreread)
* [RestoreReadList](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/restorereadlist)
* [RestoreReadListAllOf](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/restorereadlistallof)
* [SnapshotCreate](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/snapshotcreate)
* [SnapshotEnsure](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/snapshotensure)
* [SnapshotMetadata](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/snapshotmetadata)
* [SnapshotMetadataAllOf](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/snapshotmetadataallof)
* [SnapshotRead](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/snapshotread)
* [SnapshotReadList](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/snapshotreadlist)
* [SnapshotReadListAllOf](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/snapshotreadlistallof)
* [User](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/user)
* [UserPassword](https://docs.ionos.com/sections-test/go-sdk/in-memory-db-go-sdk/docs/models/userpassword)

## Documentation For Authorization

Authentication schemes defined for the API:

### tokenAuth

* **Type**: HTTP Bearer token authentication

Example

```golang
auth := context.WithValue(context.Background(), sw.ContextAccessToken, "BEARER_TOKEN_STRING")
r, err := client.Service.Operation(auth, args)
```

## Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:

* `PtrBool`
* `PtrInt`
* `PtrInt32`
* `PtrInt64`
* `PtrFloat`
* `PtrFloat32`
* `PtrFloat64`
* `PtrString`
* `PtrTime`

## Author

<support@cloud.ionos.com>
