Skip to content

Commit

Permalink
feat: implement DNS
Browse files Browse the repository at this point in the history
  • Loading branch information
Leaseweb CI committed Dec 18, 2024
1 parent 4b86f66 commit 09370d6
Show file tree
Hide file tree
Showing 67 changed files with 13,708 additions and 1 deletion.
23 changes: 23 additions & 0 deletions dns/.openapi-generator-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator

# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.

# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs

# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux

# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux

# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md
65 changes: 65 additions & 0 deletions dns/.openapi-generator/FILES
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
.gitignore
.openapi-generator-ignore
.travis.yml
README.md
api/openapi.yaml
api_dns.go
client.go
configuration.go
docs/BaseResourceRecordSetList.md
docs/Collection.md
docs/DnsAPI.md
docs/ErrorResult.md
docs/GeoContent.md
docs/GetResourceRecordSetListLdResult.md
docs/GetResourceRecordSetListResult.md
docs/ImportResourceRecordSetsOpts.md
docs/ImportResourceRecordSetsResult.md
docs/InfoMessageResult.md
docs/LdLinks.md
docs/LdResourceRecordSet.md
docs/LdResourceRecordSetDetails.md
docs/LdResourceRecordSetType.md
docs/Links.md
docs/Parent.md
docs/ResourceRecordSet.md
docs/ResourceRecordSetDetails.md
docs/ResourceRecordSetType.md
docs/ResultRecordSets.md
docs/Self.md
docs/Ttl.md
docs/UpdateResourceRecordSetLdOpts.md
docs/UpdateResourceRecordSetOpts.md
docs/UpdateResourceRecordSetsLdOpts.md
docs/ValidateSet.md
docs/ValidateZoneResult.md
git_push.sh
model_base_resource_record_set_list.go
model_collection.go
model_error_result.go
model_geo_content.go
model_get_resource_record_set_list_ld_result.go
model_get_resource_record_set_list_result.go
model_import_resource_record_sets_opts.go
model_import_resource_record_sets_result.go
model_info_message_result.go
model_ld_links.go
model_ld_resource_record_set.go
model_ld_resource_record_set_details.go
model_ld_resource_record_set_type.go
model_links.go
model_parent.go
model_resource_record_set.go
model_resource_record_set_details.go
model_resource_record_set_type.go
model_result_record_sets.go
model_self.go
model_ttl.go
model_update_resource_record_set_ld_opts.go
model_update_resource_record_set_opts.go
model_update_resource_record_sets_ld_opts.go
model_validate_set.go
model_validate_zone_result.go
response.go
test/api_dns_test.go
utils.go
1 change: 1 addition & 0 deletions dns/.openapi-generator/VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7.10.0
8 changes: 8 additions & 0 deletions dns/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
language: go

install:
- go get -d -v .

script:
- go build -v ./

179 changes: 179 additions & 0 deletions dns/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
# Go API client for dns

>The base URL for this API is: **https://api.leaseweb.com/hosting/v2**
## 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: v2
- Package version: 1.0.0
- Generator version: 7.10.0
- Build package: org.openapitools.codegen.languages.GoClientCodegen

## Installation

Install the following dependencies:

```sh
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:

```go
import dns "github.com/leaseweb/leaseweb-go-sdk/dns"
```

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

```go
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 `dns.ContextServerIndex` of type `int`.

```go
ctx := context.WithValue(context.Background(), dns.ContextServerIndex, 1)
```

### Templated Server URL

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

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

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

### URLs Configuration per Operation

Each operation can use different server URL defined using `OperationServers` map in the `Configuration`.
An operation is uniquely identified by `"{classname}Service.{nickname}"` string.
Similar rules for overriding default operation server index and variables applies by using `dns.ContextOperationServerIndices` and `dns.ContextOperationServerVariables` context maps.

```go
ctx := context.WithValue(context.Background(), dns.ContextOperationServerIndices, map[string]int{
"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), dns.ContextOperationServerVariables, map[string]map[string]string{
"{classname}Service.{nickname}": {
"port": "8443",
},
})
```

## Documentation for API Endpoints

All URIs are relative to *https://api.leaseweb.com/hosting/v2*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*DnsAPI* | [**CreateResourceRecordSet**](docs/DnsAPI.md#createresourcerecordset) | **Post** /domains/{domainName}/resourceRecordSets | Create a resource record set
*DnsAPI* | [**DeleteResourceRecordSet**](docs/DnsAPI.md#deleteresourcerecordset) | **Delete** /domains/{domainName}/resourceRecordSets/{name}/{type} | Delete a resource record set
*DnsAPI* | [**DeleteResourceRecordSets**](docs/DnsAPI.md#deleteresourcerecordsets) | **Delete** /domains/{domainName}/resourceRecordSets | Delete resource record sets
*DnsAPI* | [**GetResourceRecordSet**](docs/DnsAPI.md#getresourcerecordset) | **Get** /domains/{domainName}/resourceRecordSets/{name}/{type} | Inspect resource record set
*DnsAPI* | [**GetResourceRecordSetList**](docs/DnsAPI.md#getresourcerecordsetlist) | **Get** /domains/{domainName}/resourceRecordSets | List resource record sets
*DnsAPI* | [**ImportResourceRecordSets**](docs/DnsAPI.md#importresourcerecordsets) | **Post** /domains/{domainName}/resourceRecordSets/import | Import dns records from bind file content
*DnsAPI* | [**UpdateResourceRecordSet**](docs/DnsAPI.md#updateresourcerecordset) | **Put** /domains/{domainName}/resourceRecordSets/{name}/{type} | Update a resource record set
*DnsAPI* | [**UpdateResourceRecordSets**](docs/DnsAPI.md#updateresourcerecordsets) | **Put** /domains/{domainName}/resourceRecordSets | Update resource record sets
*DnsAPI* | [**ValidateResourceRecordSet**](docs/DnsAPI.md#validateresourcerecordset) | **Post** /domains/{domainName}/resourceRecordSets/validateSet | Validate a resource record set
*DnsAPI* | [**ValidateZone**](docs/DnsAPI.md#validatezone) | **Post** /domains/{domainName}/validateZone | Validate zone


## Documentation For Models

- [BaseResourceRecordSetList](docs/BaseResourceRecordSetList.md)
- [Collection](docs/Collection.md)
- [ErrorResult](docs/ErrorResult.md)
- [GeoContent](docs/GeoContent.md)
- [GetResourceRecordSetListLdResult](docs/GetResourceRecordSetListLdResult.md)
- [GetResourceRecordSetListResult](docs/GetResourceRecordSetListResult.md)
- [ImportResourceRecordSetsOpts](docs/ImportResourceRecordSetsOpts.md)
- [ImportResourceRecordSetsResult](docs/ImportResourceRecordSetsResult.md)
- [InfoMessageResult](docs/InfoMessageResult.md)
- [LdLinks](docs/LdLinks.md)
- [LdResourceRecordSet](docs/LdResourceRecordSet.md)
- [LdResourceRecordSetDetails](docs/LdResourceRecordSetDetails.md)
- [LdResourceRecordSetType](docs/LdResourceRecordSetType.md)
- [Links](docs/Links.md)
- [Parent](docs/Parent.md)
- [ResourceRecordSet](docs/ResourceRecordSet.md)
- [ResourceRecordSetDetails](docs/ResourceRecordSetDetails.md)
- [ResourceRecordSetType](docs/ResourceRecordSetType.md)
- [ResultRecordSets](docs/ResultRecordSets.md)
- [Self](docs/Self.md)
- [Ttl](docs/Ttl.md)
- [UpdateResourceRecordSetLdOpts](docs/UpdateResourceRecordSetLdOpts.md)
- [UpdateResourceRecordSetOpts](docs/UpdateResourceRecordSetOpts.md)
- [UpdateResourceRecordSetsLdOpts](docs/UpdateResourceRecordSetsLdOpts.md)
- [ValidateSet](docs/ValidateSet.md)
- [ValidateZoneResult](docs/ValidateZoneResult.md)


## Documentation For Authorization


Authentication schemes defined for the API:
### BearerAuth

- **Type**: HTTP Bearer token authentication

Example

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

### X-LSW-Auth

- **Type**: API key
- **API key parameter name**: X-LSW-Auth
- **Location**: HTTP header

Note, each API key must be added to a map of `map[string]APIKey` where the key is: X-LSW-Auth and passed in as the auth context for each request.

Example

```go
auth := context.WithValue(
context.Background(),
dns.ContextAPIKeys,
map[string]dns.APIKey{
"X-LSW-Auth": {Key: "API_KEY_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



Loading

0 comments on commit 09370d6

Please sign in to comment.