Some checks failed
CI / Run lints and checks (push) Failing after 47s
CI / Run tests (push) Failing after 1s
CI / Run race tests (push) Failing after 5s
CI / Build CLI docs (push) Has been skipped
CI / Run buf actions (push) Failing after 5s
CodeQL / Analyze (go) (push) Failing after 3s
CodeQL / Analyze (javascript) (push) Failing after 2s
Docker Image Scanners / scanners (push) Failing after 3s
Format / format (push) Failing after 3s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Draft newsletter (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
154 lines
6.5 KiB
Markdown
Generated
154 lines
6.5 KiB
Markdown
Generated
# Go API client for client
|
|
|
|
Documentation for all of Ory Keto's REST APIs. gRPC is documented separately.
|
|
|
|
|
|
## 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:
|
|
- Package version: 1.0.0
|
|
- Build package: org.openapitools.codegen.languages.GoClientCodegen
|
|
|
|
## Installation
|
|
|
|
Install the following dependencies:
|
|
|
|
```shell
|
|
go get github.com/stretchr/testify/assert
|
|
go get golang.org/x/oauth2
|
|
go get golang.org/x/net/context
|
|
```
|
|
|
|
Put the package under your project folder and add the following in import:
|
|
|
|
```golang
|
|
import client "github.com/ory/keto-client-go"
|
|
```
|
|
|
|
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(), client.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(), client.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 identifield by `"{classname}Service.{nickname}"` string.
|
|
Similar rules for overriding default operation server index and variables applies by using `sw.ContextOperationServerIndices` and `sw.ContextOperationServerVariables` context maps.
|
|
|
|
```
|
|
ctx := context.WithValue(context.Background(), client.ContextOperationServerIndices, map[string]int{
|
|
"{classname}Service.{nickname}": 2,
|
|
})
|
|
ctx = context.WithValue(context.Background(), client.ContextOperationServerVariables, map[string]map[string]string{
|
|
"{classname}Service.{nickname}": {
|
|
"port": "8443",
|
|
},
|
|
})
|
|
```
|
|
|
|
## Documentation for API Endpoints
|
|
|
|
All URIs are relative to *http://localhost*
|
|
|
|
Class | Method | HTTP request | Description
|
|
------------ | ------------- | ------------- | -------------
|
|
*MetadataApi* | [**GetVersion**](docs/MetadataApi.md#getversion) | **Get** /version | Return Running Software Version.
|
|
*MetadataApi* | [**IsAlive**](docs/MetadataApi.md#isalive) | **Get** /health/alive | Check HTTP Server Status
|
|
*MetadataApi* | [**IsReady**](docs/MetadataApi.md#isready) | **Get** /health/ready | Check HTTP Server and Database Status
|
|
*PermissionApi* | [**BatchCheckPermission**](docs/PermissionApi.md#batchcheckpermission) | **Post** /relation-tuples/batch/check | Batch check permissions
|
|
*PermissionApi* | [**CheckPermission**](docs/PermissionApi.md#checkpermission) | **Get** /relation-tuples/check/openapi | Check a permission
|
|
*PermissionApi* | [**CheckPermissionOrError**](docs/PermissionApi.md#checkpermissionorerror) | **Get** /relation-tuples/check | Check a permission
|
|
*PermissionApi* | [**ExpandPermissions**](docs/PermissionApi.md#expandpermissions) | **Get** /relation-tuples/expand | Expand a Relationship into permissions.
|
|
*PermissionApi* | [**PostCheckPermission**](docs/PermissionApi.md#postcheckpermission) | **Post** /relation-tuples/check/openapi | Check a permission
|
|
*PermissionApi* | [**PostCheckPermissionOrError**](docs/PermissionApi.md#postcheckpermissionorerror) | **Post** /relation-tuples/check | Check a permission
|
|
*RelationshipApi* | [**CheckOplSyntax**](docs/RelationshipApi.md#checkoplsyntax) | **Post** /opl/syntax/check | Check the syntax of an OPL file
|
|
*RelationshipApi* | [**CreateRelationship**](docs/RelationshipApi.md#createrelationship) | **Put** /admin/relation-tuples | Create a Relationship
|
|
*RelationshipApi* | [**DeleteRelationships**](docs/RelationshipApi.md#deleterelationships) | **Delete** /admin/relation-tuples | Delete Relationships
|
|
*RelationshipApi* | [**GetRelationships**](docs/RelationshipApi.md#getrelationships) | **Get** /relation-tuples | Query relationships
|
|
*RelationshipApi* | [**ListRelationshipNamespaces**](docs/RelationshipApi.md#listrelationshipnamespaces) | **Get** /namespaces | Query namespaces
|
|
*RelationshipApi* | [**PatchRelationships**](docs/RelationshipApi.md#patchrelationships) | **Patch** /admin/relation-tuples | Patch Multiple Relationships
|
|
|
|
|
|
## Documentation For Models
|
|
|
|
- [BatchCheckPermissionBody](docs/BatchCheckPermissionBody.md)
|
|
- [BatchCheckPermissionResult](docs/BatchCheckPermissionResult.md)
|
|
- [CheckOplSyntaxResult](docs/CheckOplSyntaxResult.md)
|
|
- [CheckPermissionResult](docs/CheckPermissionResult.md)
|
|
- [CheckPermissionResultWithError](docs/CheckPermissionResultWithError.md)
|
|
- [CreateRelationshipBody](docs/CreateRelationshipBody.md)
|
|
- [ErrorGeneric](docs/ErrorGeneric.md)
|
|
- [ExpandedPermissionTree](docs/ExpandedPermissionTree.md)
|
|
- [GenericError](docs/GenericError.md)
|
|
- [GetVersion200Response](docs/GetVersion200Response.md)
|
|
- [HealthNotReadyStatus](docs/HealthNotReadyStatus.md)
|
|
- [HealthStatus](docs/HealthStatus.md)
|
|
- [IsAlive200Response](docs/IsAlive200Response.md)
|
|
- [IsReady503Response](docs/IsReady503Response.md)
|
|
- [Namespace](docs/Namespace.md)
|
|
- [ParseError](docs/ParseError.md)
|
|
- [PostCheckPermissionBody](docs/PostCheckPermissionBody.md)
|
|
- [PostCheckPermissionOrErrorBody](docs/PostCheckPermissionOrErrorBody.md)
|
|
- [RelationQuery](docs/RelationQuery.md)
|
|
- [Relationship](docs/Relationship.md)
|
|
- [RelationshipNamespaces](docs/RelationshipNamespaces.md)
|
|
- [RelationshipPatch](docs/RelationshipPatch.md)
|
|
- [Relationships](docs/Relationships.md)
|
|
- [SourcePosition](docs/SourcePosition.md)
|
|
- [SubjectSet](docs/SubjectSet.md)
|
|
- [Version](docs/Version.md)
|
|
|
|
|
|
## Documentation For Authorization
|
|
|
|
Endpoints do not require authorization.
|
|
|
|
|
|
## 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
|
|
|
|
hi@ory.sh
|
|
|