Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
07c7efe
added first draft for targetsource implementation docs
mcdillson May 13, 2026
8bab96c
aligning doc with existing pages
mcdillson May 13, 2026
2d1f5fb
updated targetSource guide based on new CRD
mcdillson May 21, 2026
abbbee4
renamed response field ip to address
mcdillson May 21, 2026
21496fc
moved http into a subfile of TargetSource
mcdillson May 21, 2026
db090b3
restructured http chapter hierarchy
mcdillson May 21, 2026
69d82bb
changed example router names
mcdillson May 21, 2026
7adee4b
add acceptPush
Janooski May 21, 2026
7c34171
update http provider documentation
denyost May 29, 2026
28d8027
tune the http provider doc
denyost May 29, 2026
929a4c2
update default value of timeout
denyost May 29, 2026
c3fe3ca
fix CEL expression
denyost May 29, 2026
0389b9f
docs: update pull mode
denyost May 29, 2026
31fd036
update docs pagination and hybrid CEL mapping
denyost Jun 1, 2026
c12683d
add Netbox example
denyost Jun 1, 2026
b9ddb8b
imporve export template documentation
denyost Jun 1, 2026
9b7dc0b
docs: made TargetProfile optional
mcdillson Jun 1, 2026
b479017
changed authorization to authentication
mcdillson Jun 1, 2026
5086648
add netbox rest api example
denyost Jun 2, 2026
fc6af9c
fix incorrect namespace
denyost Jun 2, 2026
f0d63ff
update netbox export template guide
denyost Jun 2, 2026
0a2bc2b
Merge branch 'docs/targetsource-userguide' of https://github.com/gnmi…
denyost Jun 2, 2026
8aa4ac8
update authorization to authentication
denyost Jun 2, 2026
c3c58af
re-word credentialsSecretRef
denyost Jun 2, 2026
7ea9ade
update targetsource structure
denyost Jun 4, 2026
6050368
ad subsecrtion targetsource provider
denyost Jun 4, 2026
6fc57fc
update reference
denyost Jun 4, 2026
89feb1d
update weights
denyost Jun 4, 2026
1643d48
update description
denyost Jun 4, 2026
bc456c5
update reference
denyost Jun 4, 2026
0154766
refactor titles
denyost Jun 4, 2026
28e84d1
refactor http provider
denyost Jun 4, 2026
cf1104c
update netbox examples
denyost Jun 4, 2026
9fbb433
comment out relref
denyost Jun 4, 2026
80021b7
comment out relref
denyost Jun 4, 2026
9112eaf
comment out relref
denyost Jun 4, 2026
46ca88d
comment out links
denyost Jun 4, 2026
4ac7261
comment out netbox examples
denyost Jun 4, 2026
e43fcda
try finding docu compiling error
denyost Jun 4, 2026
3bd1c1e
try finding compile error
denyost Jun 4, 2026
c456806
add example folder NetBox
denyost Jun 4, 2026
ef97608
add example Netbox Export Template
denyost Jun 4, 2026
7a64601
minimize export template example
denyost Jun 4, 2026
3cd9666
add step 1
denyost Jun 4, 2026
9fb54c3
add step 2 & 3
denyost Jun 4, 2026
fcbd339
remove relref
denyost Jun 4, 2026
1dd827c
complete example without relrefs
denyost Jun 4, 2026
0da0fb0
add relrefs
denyost Jun 4, 2026
20accaa
add one relref
denyost Jun 4, 2026
47918d7
update relref
denyost Jun 4, 2026
e2d6000
replace relref
denyost Jun 4, 2026
1d3f577
add rest api examples
denyost Jun 4, 2026
301abf9
Merge branch 'docs/targetsource-userguide' of github.com:gnmic/operat…
Janooski Jun 4, 2026
00555b4
generate docs
Janooski Jun 8, 2026
ad2b377
add header to generated md
Janooski Jun 8, 2026
3a0f5c8
tests with markdown templates
Janooski Jun 8, 2026
131d838
fix links
Janooski Jun 8, 2026
a7c6321
udpate folder structure
Janooski Jun 8, 2026
7aec4c2
fix links, cleanup some text
Janooski Jun 8, 2026
7732cb4
update inline md links
Janooski Jun 8, 2026
6d6c720
add signature
Janooski Jun 8, 2026
0424404
paths again and small corrections
Janooski Jun 8, 2026
ede85b6
remove #section hyperlink
Janooski Jun 8, 2026
8e8e251
add push-interface document structure
Janooski Jun 8, 2026
7bc8886
first version push
Janooski Jun 8, 2026
a4cdf03
add Netbox webhook example
Janooski Jun 8, 2026
b17bf93
small grammar changes
Janooski Jun 8, 2026
5e5cca7
fix pages build
Janooski Jun 8, 2026
a9ad35f
remove unneeded files, cleanup
Janooski Jun 8, 2026
5394f55
update recommended patterns of CEL expressions
denyost Jun 9, 2026
8984109
update webhook example
Janooski Jun 10, 2026
b2a27d7
remove link
Janooski Jun 10, 2026
a8dae87
restructure moustache templates
Janooski Jun 10, 2026
ea113ae
upate cluster address section
Janooski Jun 10, 2026
0d4d01c
add lines, fix title
Janooski Jun 10, 2026
dde381a
updates after example playthrough
Janooski Jun 10, 2026
2fa4fd5
Merge branch 'docs/targetsource-userguide' of github.com:gnmic/operat…
Janooski Jun 10, 2026
aec169b
Merge branch 'docs/targetsource-userguide' into docs/targetsource-use…
Janooski Jun 10, 2026
c26889a
Merge pull request #91 from gnmic/docs/targetsource-userguide-push
Janooski Jun 10, 2026
979d7e6
run pipeline again
Janooski Jun 10, 2026
cb717ef
remove folders from .gitignore
Janooski Jun 10, 2026
04f8895
Merge branch 'main' into docs/targetsource-userguide
Janooski Jun 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,5 @@ notes/
docs/public
docs/resources/_gen/
docs/.hugo_build.lock
test/integration/clab-*
test/integration/**/clab-*
2 changes: 2 additions & 0 deletions docs/content/docs/Apis/DefaultApi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# DefaultApi

9 changes: 9 additions & 0 deletions docs/content/docs/advanced/openapi-generator-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli generate -c /local/docs/content/docs/advanced/openapi-generator-config.yaml

generatorName: markdown
inputSpec: /local/internal/apiserver/openapi.yaml
outputDir: /local/docs/content/docs/advanced/rest-api-documentation
templateDir: /local/docs/content/docs/advanced/openapi-templates
files:
README.mustache:
destinationFilename: _index.md
69 changes: 69 additions & 0 deletions docs/content/docs/advanced/openapi-templates/_index.mustache
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
title: "REST API interface"
linkTitle: "REST API interface"
weight: 3
description: >
This document describes the REST API exposed by the gNMIc Operator, including the available endpoints, request formats, and usage examples.
---

{{#generateApiDocs}}
<a name="documentation-for-api-endpoints"></a>
## Documentation for API Endpoints

All URIs are relative to *{{{basePath}}}:8082*

| Class | Method | HTTP request | Description |
|------------ | ------------- | ------------- | -------------|
{{#apiInfo}}{{#apis}}{{#operations}}| {{#operation}}*{{#lambda.lowercase}}{{classname}}{{/lambda.lowercase}}* | [**{{operationId}}**](/docs/advanced/rest-api-documentation/apis/{{#lambda.lowercase}}{{classname}}{{/lambda.lowercase}}) | **{{httpMethod}}** {{path}} | {{{summary}}}{{^summary}}{{{notes}}}{{/summary}} |
{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}}
{{/generateApiDocs}}

{{#generateModelDocs}}
<a name="documentation-for-models"></a>
## Documentation for Models

{{#modelPackage}}
{{#models}}{{#model}} - [{{#lambda.lowercase}}{{{classname}}}{{/lambda.lowercase}}](/docs/advanced/rest-api-documentation/models/{{#lambda.lowercase}}{{{classFilename}}}{{/lambda.lowercase}}/)
{{/model}}{{/models}}
{{/modelPackage}}
{{^modelPackage}}
No model defined in this package
{{/modelPackage}}
{{/generateModelDocs}}

<a name="documentation-for-authorization"></a>{{! TODO: optional documentation for authorization? }}
## Documentation for Authorization

For a detailed explanation on how to configure the required secrets within the gNMIc Operator, refer to [TargetSource > Push mode](/docs/user-guide/targetsource/push/).

{{^authMethods}}
All endpoints do not require authorization.
{{/authMethods}}
{{#authMethods}}
{{#last}}
Authentication schemes defined for the API:
{{/last}}
{{/authMethods}}
{{#authMethods}}
<a name="{{name}}"></a>
### {{name}}

{{#isApiKey}}- **Type**: API key
- **API key parameter name**: {{keyParamName}}
- **Location**: {{#isKeyInQuery}}URL query string{{/isKeyInQuery}}{{#isKeyInHeader}}HTTP header{{/isKeyInHeader}}
{{/isApiKey}}
{{#isBasicBasic}}- **Type**: HTTP basic authentication
{{/isBasicBasic}}
{{#isBasicBearer}}- **Type**: HTTP Bearer Token authentication{{#bearerFormat}} ({{{.}}}){{/bearerFormat}}
{{/isBasicBearer}}
{{#isHttpSignature}}- **Type**: HTTP signature authentication
{{/isHttpSignature}}
{{#isOAuth}}- **Type**: OAuth
- **Flow**: {{flow}}
- **Authorization URL**: {{authorizationUrl}}
- **Scopes**: {{^scopes}}N/A{{/scopes}}
{{#scopes}} - {{scope}}: {{description}}
{{/scopes}}
{{/isOAuth}}

{{/authMethods}}
50 changes: 50 additions & 0 deletions docs/content/docs/advanced/openapi-templates/apis.mustache
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: "Routes"
linkTitle: "Routes"
weight: 4
description: >
Available HTTP routes on the gNMIc Operator API interface.
---

# {{#lambda.lowercase}}{{classname}}{{/lambda.lowercase}}{{#description}}
{{.}}{{/description}}

All URIs are relative to *{{basePath}}:8082*

| Method | HTTP request | Description |
|------------- | ------------- | -------------|
{{#operations}}{{#operation}}| **{{operationId}}** | **{{httpMethod}}** {{path}} | {{summary}} |
{{/operation}}{{/operations}}

{{#operations}}
{{#operation}}
<a name="{{operationId}}"></a>
# **{{operationId}}**
> {{#returnType}}{{.}} {{/returnType}}{{operationId}}({{#allParams}}{{{paramName}}}{{^-last}}, {{/-last}}{{/allParams}})

{{summary}}{{#notes}}

{{.}}{{/notes}}

### Parameters
{{^allParams}}This endpoint does not need any parameter.{{/allParams}}{{#allParams}}{{#-last}}
|Name | Type | Description | Notes |
|------------- | ------------- | ------------- | -------------|{{/-last}}{{/allParams}}
{{#allParams}}| **{{paramName}}** | {{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}{{#isFile}}**{{dataType}}**{{/isFile}}{{^isFile}}{{#generateModelDocs}}[**{{dataType}}**](/docs/advanced/rest-api-documentation/models/{{#lambda.lowercase}}{{baseType}}{{/lambda.lowercase}}/){{/generateModelDocs}}{{^generateModelDocs}}**{{dataType}}**{{/generateModelDocs}}{{/isFile}}{{/isPrimitiveType}}| {{description}} |{{^required}} [optional]{{/required}}{{#defaultValue}} [default to {{.}}]{{/defaultValue}}{{#allowableValues}} [enum: {{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}]{{/allowableValues}} |
{{/allParams}}

### Return type

{{#returnType}}{{#returnTypeIsPrimitive}}**{{returnType}}**{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}{{#generateModelDocs}}[**{{returnType}}**](/docs/advanced/rest-api-documentation/models/{{#lambda.lowercase}}{{returnBaseType}}{{/lambda.lowercase}}/){{/generateModelDocs}}{{^generateModelDocs}}**{{returnType}}**{{/generateModelDocs}}{{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}}null (empty response body){{/returnType}}

### Authorization

{{^authMethods}}No authorization required{{/authMethods}}{{#authMethods}}[{{name}}](/docs/advanced/rest-api-documentation/#{{name}}){{^-last}}, {{/-last}}{{/authMethods}}

### HTTP request headers

- **Content-Type**: {{#consumes}}{{{mediaType}}}{{^-last}}, {{/-last}}{{/consumes}}{{^consumes}}Not defined{{/consumes}}
- **Accept**: {{#produces}}{{{mediaType}}}{{^-last}}, {{/-last}}{{/produces}}{{^produces}}Not defined{{/produces}}

{{/operation}}
{{/operations}}
29 changes: 29 additions & 0 deletions docs/content/docs/advanced/openapi-templates/models.mustache
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: "Model"
linkTitle: "Model"
weight: 4
description: >
Documentation for OpenAPI models and their schema-defined properties.
---

{{#models}}
{{#model}}
# {{#lambda}}{{{classname}}}{{/lambda}}
{{#description}}
{{{description}}}
{{/description}}

## Properties

| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
{{#parent}}
{{#parentVars}}
| **{{name}}** | {{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}} | {{{description}}} | {{^required}}[optional] {{/required}}{{#readOnly}}[readonly] {{/readOnly}}{{#defaultValue}}[default to {{{.}}}]{{/defaultValue}} |
{{/parentVars}}
{{/parent}}
{{#vars}}| **{{name}}** | {{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}} | {{{description}}} | {{^required}}[optional] {{/required}}{{#readOnly}}[readonly] {{/readOnly}}{{#defaultValue}}[default to {{{.}}}]{{/defaultValue}} |
{{/vars}}

{{/model}}
{{/models}}
33 changes: 33 additions & 0 deletions docs/content/docs/advanced/rest-api-documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
title: "Documentation for gNMIc Operator REST API"
linkTitle: "REST API interface"
weight: 3
description: >
Documentation of REST API interface according to openAPI standard.
---

<a name="documentation-for-api-endpoints"></a>
## Documentation for API Endpoints

All URIs are relative to *http://localhost*

| Class | Method | HTTP request | Description |
|------------ | ------------- | ------------- | -------------|
| *DefaultApi* | [**applyTargets**](../Apis/DefaultApi.md#applyTargets) | **POST** /api/v1/:namespace/target-source/:name/applyTargets | Interface for real-time target updates, usually using a webhook. Targets are applied in the gNMIc Operator. |
*DefaultApi* | [**getClusterPlan**](../Apis/DefaultApi.md#getClusterPlan) | **GET** /clusters/:namespace/:name/plan | Get cluster plan. |


<a name="documentation-for-models"></a>
## Documentation for Models

- [Target](../Models/Target.md)


<a name="documentation-for-authorization"></a>
## Documentation for Authorization

<a name="bearerAuth"></a>
### bearerAuth

- **Type**: HTTP Bearer Token authentication

Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# DefaultApi

All URIs are relative to *http://localhost*

| Method | HTTP request | Description |
|------------- | ------------- | -------------|
| [**applyTargets**](DefaultApi.md#applyTargets) | **POST** /api/v1/:namespace/target-source/:name/applyTargets | Interface for real-time target updates, usually using a webhook. Targets are applied in the gNMIc Operator. |
| [**getClusterPlan**](DefaultApi.md#getClusterPlan) | **GET** /clusters/:namespace/:name/plan | Get cluster plan. |


<a name="applyTargets"></a>
# **applyTargets**
> List applyTargets(Target)

Interface for real-time target updates, usually using a webhook. Targets are applied in the gNMIc Operator.

### Parameters

|Name | Type | Description | Notes |
|------------- | ------------- | ------------- | -------------|
| **Target** | [**List**](../Models/Target.md)| Target must be passed as a list, multiple targets possible. | |

### Return type

[**List**](../Models/Target.md)

### Authorization

[signature](../README.md#signature), [bearerAuth](../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: application/json
- **Accept**: application/json

<a name="getClusterPlan"></a>
# **getClusterPlan**
> getClusterPlan()

Get cluster plan.

### Parameters
This endpoint does not need any parameter.

### Return type

null (empty response body)

### Authorization

No authorization required

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: Not defined

14 changes: 14 additions & 0 deletions docs/content/docs/advanced/rest-api-documentation/Models/Target.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Target
## Properties

| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
| **name** | **String** | Name of device to be monitored. | [default to null] |
| **address** | **String** | IPv4/IPv6 address or hostname. | [default to null] |
| **port** | **Integer** | gNMIc port. | [optional] [default to null] |
| **targetProfile** | **String** | TargetProfile applied to apply to this router. | [optional] [default to null] |
| **labels** | [**List**](map.md) | Labels must be map[string]string. For example vendor:nokia. | [optional] [default to null] |
| **operation** | **String** | Either &#x60;created&#x60;, &#x60;updated&#x60; or &#x60;deleted&#x60;. &#x60;created&#x60; and &#x60;updated&#x60; are identical and both apply the target. | [default to null] |

[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

34 changes: 34 additions & 0 deletions docs/content/docs/advanced/rest-api-documentation/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Documentation for gNMIc Operator REST API

<a name="documentation-for-api-endpoints"></a>
## Documentation for API Endpoints

All URIs are relative to *http://localhost*

| Class | Method | HTTP request | Description |
|------------ | ------------- | ------------- | -------------|
| *DefaultApi* | [**applyTargets**](Apis/DefaultApi.md#applyTargets) | **POST** /api/v1/:namespace/target-source/:name/applyTargets | Interface for real-time target updates, usually using a webhook. Targets are applied in the gNMIc Operator. |
*DefaultApi* | [**getClusterPlan**](Apis/DefaultApi.md#getClusterPlan) | **GET** /clusters/:namespace/:name/plan | Get cluster plan. |


<a name="documentation-for-models"></a>
## Documentation for Models

- [Target](./Models/Target.md)


<a name="documentation-for-authorization"></a>
## Documentation for Authorization

<a name="bearerAuth"></a>
### bearerAuth

- **Type**: HTTP Bearer Token authentication

<a name="signature"></a>
### signature

- **Type**: API key
- **API key parameter name**: X-Hook-Signature
- **Location**: HTTP header

Loading
Loading